<?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>48179</bug_id>
          
          <creation_ts>2010-10-23 03:45:54 -0700</creation_ts>
          <short_desc>Convert SVGAngle to the new SVGPropertyTearOff concept, reimplement it properly</short_desc>
          <delta_ts>2010-10-24 09:13:34 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298366</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-23 03:45:54 -0700</bug_when>
    <thetext>Convert SVGAngle to the new SVGPropertyTearOff concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298479</commentid>
    <comment_count>1</comment_count>
      <attachid>71658</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-23 16:18:33 -0700</bug_when>
    <thetext>Created attachment 71658
Patch

Tested local mac debug build on leopard and chromium build on snow leopard.
SVG pixel tests pass w/o regressions. Still have to do a full tests run, going to report soon.
The new SVGAngle tests which requires ScriptTypeSetting for attribute setters works perfectly in V8 &amp; JSC, verified that twice :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298483</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-23 16:21:45 -0700</bug_when>
    <thetext>Attachment 71658 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/svg/SVGAnimatedAngle.h:25:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298484</commentid>
    <comment_count>3</comment_count>
      <attachid>71659</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-23 16:26:07 -0700</bug_when>
    <thetext>Created attachment 71659
Patch v2

Fixed style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298490</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-23 16:54:04 -0700</bug_when>
    <thetext>No layout test regression, did a full run-webkit-tests run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298491</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-23 17:10:27 -0700</bug_when>
    <thetext>Attachment 71659 did not build on qt:
Build output: http://queues.webkit.org/results/4607060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298526</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-23 22:05:16 -0700</bug_when>
    <thetext>Attachment 71659 did not build on mac:
Build output: http://queues.webkit.org/results/4670061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298545</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 02:25:09 -0700</bug_when>
    <thetext>Hm, I just tried a clean build on leopard, worked fine. The chrome build, from scratch, also worked fine. I guess I have to try another snow leopard (non-chrome) build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298546</commentid>
    <comment_count>8</comment_count>
      <attachid>71677</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 02:33:40 -0700</bug_when>
    <thetext>Created attachment 71677
Patch v3

*grml* Diffed my working tree against the &quot;Patch v2&quot;, turns out I forgot to include a CodeGenerator.pm change. With that one it builds fine...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298547</commentid>
    <comment_count>9</comment_count>
      <attachid>71677</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-24 03:32:08 -0700</bug_when>
    <thetext>Comment on attachment 71677
Patch v3

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

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1848
&gt; +                                           push(@implContent, &quot;    if (!ec)\n&quot;); 
&gt; +                                        push(@implContent, &quot;        imp-&gt;commitChange();\n&quot;);

Indention looks wrong

Looks great, please take a look at the bots, since EWS will take some while.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298548</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 03:39:50 -0700</bug_when>
    <thetext>Committed r70410: &lt;http://trac.webkit.org/changeset/70410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298552</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 04:47:38 -0700</bug_when>
    <thetext>Ouch, I was not aware the webgl tests don&apos;t run on Leopard. I broke them, investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298553</commentid>
    <comment_count>12</comment_count>
      <attachid>71678</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 04:54:24 -0700</bug_when>
    <thetext>Created attachment 71678
Fix WebGL follow-up patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298554</commentid>
    <comment_count>13</comment_count>
      <attachid>71678</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-24 04:56:58 -0700</bug_when>
    <thetext>Comment on attachment 71678
Fix WebGL follow-up patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298555</commentid>
    <comment_count>14</comment_count>
      <attachid>71678</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 04:59:18 -0700</bug_when>
    <thetext>Comment on attachment 71678
Fix WebGL follow-up patch

Landed speculative WebGL fix in r70411.
Hope these tests work again, otherwhise I have to roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298562</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 06:13:59 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 71678 [details])
&gt; Landed speculative WebGL fix in r70411.
&gt; Hope these tests work again, otherwhise I have to roll it out.

That did not fix it, running a local snow leopard build now, to figure out whats happening.
Will take some time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298596</commentid>
    <comment_count>16</comment_count>
      <attachid>71688</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 08:55:00 -0700</bug_when>
    <thetext>Created attachment 71688
Fix WebGL follow-up patch - v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298599</commentid>
    <comment_count>17</comment_count>
      <attachid>71688</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-24 09:06:42 -0700</bug_when>
    <thetext>Comment on attachment 71688
Fix WebGL follow-up patch - v2

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298602</commentid>
    <comment_count>18</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 09:13:34 -0700</bug_when>
    <thetext>Committed r70414: &lt;http://trac.webkit.org/changeset/70414&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71658</attachid>
            <date>2010-10-23 16:18:33 -0700</date>
            <delta_ts>2010-10-23 16:26:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>SVGAngle.patch</filename>
            <type>text/plain</type>
            <size>84527</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMTAtMjMgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdBbmdsZSB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0LCByZWltcGxlbWVudCBpdCBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzkKKworICAgICAgICBSZXdyaXRlIFNWR0FuZ2xlIHRv
IHVzZSB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25jZXB0LCBhbmQgY29uc3VtZSBtdWNo
IGxlc3MgbWVtb3J5LgorICAgICAgICBEb3duIGZyb20gdHdvIGZsb2F0cywgb25lIHN0cmluZyBh
bmQgYW4gdXNob3J0IHRvIG9uZSBmbG9hdCBhbmQgb25lIHVzaG9ydC4gU3luY2hyb25pemUgdmFs
dWUvdmFsdWVJblNwZWNpZmllZFVuaXRzL3ZhbHVlQXNTdHJpbmcgb24gZGVtYW5kLgorCisgICAg
ICAgIEFkZGluZyBhbiBleHRlbnNpdmUgU1ZHQW5nbGUgdGVzdCwgdGhhdCByZXF1aXJlZCB0byBp
bXBsZW1lbnQgJ1N0cmljdFR5cGVDaGVja2luZycgZm9yIGF0dHJpYnV0ZSBzZXR0ZXJzICh3YXMg
b25seSBpbXBsZW1lbnRlZCBpbiBWOC9KU0MgZm9yIGZ1bmN0aW9uIGNhbHMgc28gZmFyKS4KKwor
ICAgICAgICBUZXN0OiBzdmcvZG9tL1NWR0FuZ2xlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBBZGQgU1ZHQW5pbWF0ZWRBbmdsZS5oIHRvIGJ1aWxkLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTogU3BsaXQgSXNQcmltaXRpdmVUeXBlIGluIElzUHJpbWl0
aXZlVHlwZSBhbmQgSXNOdW1lcmljVHlwZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbTogSW1wbGVtZW50ICdTdHJpY3RUeXBlQ2hlY2tpbmcnIGZvciBzZXR0
ZXJzIGFuZCByZWNvZ25pemUgU1ZHQW5nbGUgYXMgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiB0eXBl
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06IERpdHRv
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBEaXR0by4K
KyAgICAgICAgKiBzdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaDogUmVt
b3ZlIFNWR0FuZ2xlIGhhbmRsaW5nLgorICAgICAgICAqIHN2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oOiBSZW1vdmUgU1ZHQW5pbWF0ZWRBbmdsZSBoYW5kbGluZy4KKyAgICAgICAg
KiBzdmcvU1ZHQW5nbGUuY3BwOiBSZXdyaXRlLCB0byBjb25zdW1lIGxlc3MgbWVtb3J5IGFuZCB0
byBvcGVyYXRlIG1vcmUgZWZmaWNpZW50LgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOiBEaXR0
by4KKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaWRsOiBBZGQgJ1N0cmljdFR5cGVDaGVja2luZycg
dG8gdGhlIHZhbHVlL3ZhbHVlSW5TcGVjaWZpZWRVbml0cyBtZXRob2RzLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZEFuZ2xlLmg6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFu
Z2xlLmlkbDogTWFyayBhcyBbU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0uCisgICAgICAgICogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZygpIG5vdyB0
YWtlcyBhbiBFeGNlcHRpb25Db2RlIHBhcmFtZXRlci4KKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOiBzL0FOSU1BVEVEX1BST1BFUlRZL0FOSU1BVEVEX1BST1BFUlRZX05FVy8gZm9y
IHRoZSBTVkdBbmdsZSB0eXBlLgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXIuaWRsOiBSZW1vdmUg
ZXhjZXB0aW9uIHNldHRlciBleGNlcHRpb25zLCB3aGljaCBhcmVuJ3QgbmVlZGVkLiBBcyB3ZSdy
ZSBub3cgZ2VuZXJhdGluZyBleGNlcHRpb24gaGFuZGxlcnMgaW4gdGhlIGJpbmRpbmdzLCBpdCB3
b3VsZCBsZWFkIHRvIGNvbXBpbGUgZXJyb3JzLgorICAgICAgICAqIHN2Zy9TVkdQb2ludC5pZGw6
IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdSZWN0LmlkbDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuaWRsOiBSZW1vdmUgb2Jzb2xldGUgW1NWR0xpdmVQcm9wZXJ0eV0gZmxh
Zy4KKwogMjAxMC0xMC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzAzODUpCisr
KyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDI3LDYgKzMwMjcs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggXAogCVdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmggXAorCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCBc
CiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOTU4LDYgKzM5NTgsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzU3LDYgKzIzNTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmdsZS5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKICAgICBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwK
ICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTE2Nyw2ICs2MTE2NywxMCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRBbmdsZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkTGVuZ3RoLmgiDQogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBAQAogCQkwODczNUZCOTEw
RTkxMjMyMDA2RDZGQUQgLyogU1ZHTWFya2VyTGF5b3V0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8q
IFNWR01hcmtlckxheW91dEluZm8uaCAqLzsgfTsKIAkJMDg3NDRCQUEwRURCN0Q4NjAwNEM5RTYz
IC8qIFdNTE9uRXZlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4NzQ0QkE5MEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxl
bWVudC5jcHAgKi87IH07CiAJCTA4NzQ0QkFFMEVEQjdEOTIwMDRDOUU2MyAvKiBXTUxPbkV2ZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg3NDRCQUQwRURCN0Q5MjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi87IH07CisJ
CTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdCODQ5NTEyNzJDRUM3MDBB
MTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA4N0Q5N0JGMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BP
RExpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4N0Q5N0JFMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BPRExpc3RDdXN0b20uaCAqLzsg
fTsKIAkJMDg3RkZBMEYwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdG
RkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCAqLzsg
fTsKIAkJMDg3RkZBMTAwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3RkZB
MEUwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVudC5oICovOyB9OwpA
QCAtNjE1Myw2ICs2MTU0LDcgQEAKIAkJMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8qIFNWR01h
cmtlckxheW91dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFy
a2VyTGF5b3V0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODc0NEJBOTBF
REI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV01MT25FdmVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODc0NEJBRDBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MT25FdmVudEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg3Qjg0OTUxMjcyQ0VDNzAwQTE0
NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRBbmdsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODdE
OTdCRTEwRkI4RDc3MDBDMDA4NzQgLyogSlNTVkdQT0RMaXN0Q3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUE9ETGlzdEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODdGRkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRM
ZWdlbmRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdN
TEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4N0ZGQTBFMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkzNSw2ICsxNTkzNyw3IEBACiAJ
CQkJQjIyMjc3RTMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3N0U0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc3RTUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaWRsICovLAorCQkJCTA4N0I4NDk1MTI3MkNFQzcwMEExNDQxNyAvKiBTVkdBbmlt
YXRlZEFuZ2xlLmggKi8sCiAJCQkJQjIyMjc3RTYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkQW5nbGUuaWRsICovLAogCQkJCUIyMjI3N0U3MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZEJvb2xlYW4uaWRsICovLAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLywKQEAgLTIxMTQ1LDYgKzIxMTQ4LDcgQEAKIAkJCQkw
ODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJl
dmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Iu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBT
YW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICMgQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQyLDIwICs0MywyMiBAQCBteSAkY29kZUdlbmVy
YXRvciA9IDA7CiAKIG15ICR2ZXJib3NlID0gMDsKIAotbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0g
KCJpbnQiID0+IDEsICJzaG9ydCIgPT4gMSwgImxvbmciID0+IDEsICJsb25nIGxvbmciID0+IDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgInVuc2lnbmVkIGludCIgPT4gMSwgInVuc2lnbmVk
IHNob3J0IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9
PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICJmbG9hdCIgPT4gMSwgImRvdWJsZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
Ym9vbGVhbiIgPT4gMSwgInZvaWQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkRh
dGUiID0+IDEpOworbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAxLCAic2hvcnQiID0+
IDEsICJsb25nIiA9PiAxLCAibG9uZyBsb25nIiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAidW5zaWduZWQgaW50IiA9PiAxLCAidW5zaWduZWQgc2hvcnQiID0+IDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9
PiAxLAorICAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQiID0+IDEsICJkb3VibGUiID0+IDEp
OworCitteSAlcHJpbWl0aXZlVHlwZUhhc2ggPSAoICJib29sZWFuIiA9PiAxLCAidm9pZCIgPT4g
MSwgIkRhdGUiID0+IDEpOwogCiBteSAlcG9kVHlwZUhhc2ggPSAoIlNWR051bWJlciIgPT4gMSwg
IlNWR1RyYW5zZm9ybSIgPT4gMSk7Ci1teSAlcG9kVHlwZXNXaXRoV3JpdGFibGVQcm9wZXJ0aWVz
SGFzaCA9ICgiU1ZHQW5nbGUiID0+IDEsICJTVkdNYXRyaXgiID0+IDEsICJTVkdQb2ludCIgPT4g
MSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9PiAxKTsKK215ICVw
b2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEsICJT
VkdQb2ludCIgPT4gMSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9
PiAxKTsKIG15ICVzdHJpbmdUeXBlSGFzaCA9ICgiRE9NU3RyaW5nIiA9PiAxLCAiQXRvbWljU3Ry
aW5nIiA9PiAxKTsKIAogbXkgJW5vblBvaW50ZXJUeXBlSGFzaCA9ICgiRE9NVGltZVN0YW1wIiA9
PiAxLCAiQ29tcGFyZUhvdyIgPT4gMSwgIlNWR1BhaW50VHlwZSIgPT4gMSk7CiAKLW15ICVzdmdO
ZXdTdHlsZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkTGVuZ3RoIiA9PiAxLCAiU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxKTsKK215ICVzdmdUeXBlTmVlZGluZ1RlYXJPZmZIYXNo
ID0gKCJTVkdMZW5ndGgiID0+IDEsICJTVkdBbmdsZSIgPT4gMSk7CisKK215ICVzdmdOZXdTdHls
ZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJTVkdBbmltYXRl
ZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdCIgPT4gMSk7CiAKIG15ICVzdmdB
bmltYXRlZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRC
b29sZWFuIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkRW51
bWVyYXRpb24iID0+IDEsICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsCkBAIC0yODMsNiArMjg2
LDggQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiB9CiAKICMgSGVscGVycyBmb3IgYWxsIENvZGVHZW5l
cmF0b3IqKioucG0gbW9kdWxlcworCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkg
b25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3
IHNjaGVtZS4KIHN1YiBJc1BvZFR5cGUKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0z
MDIsMTIgKzMwNywyMiBAQCBzdWIgSXNQb2RUeXBlV2l0aFdyaXRlYWJsZVByb3BlcnRpZXMKICAg
ICByZXR1cm4gMDsKIH0KIAorc3ViIElzTnVtZXJpY1R5cGUKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAxIGlmICRudW1lcmlj
VHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAwOworfQorCiBzdWIgSXNQcmltaXRpdmVUeXBl
CiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKICAg
ICByZXR1cm4gMSBpZiAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAxIGlm
ICRudW1lcmljVHlwZUhhc2h7JHR5cGV9OwogICAgIHJldHVybiAwOwogfQogCkBAIC0zMjksNiAr
MzQ0LDE2IEBAIHN1YiBJc05vblBvaW50ZXJUeXBlCiAgICAgcmV0dXJuIDA7CiB9CiAKKworc3Vi
IElzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gMSBpZiAkc3ZnVHlwZU5lZWRpbmdUZWFy
T2ZmSGFzaHskdHlwZX07CisgICAgcmV0dXJuIDA7Cit9CisKICMgRklYTUU6IFRoaXMgbWV0aG9k
IHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVy
dGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUKIHsK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2
aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsMTUgKzMyNCwxOCBAQCBzdWIgQWRkQ2xhc3NGb3J3
YXJkSWZOZWVkZWQKICAgICB9CiB9CiAKKyMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdh
eSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBu
ZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyCiB7CisgICAg
IyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlbW92ZWQsIGFzIHNvb24gdGhlIFBPRFR5
cGUgY29uY2VwdCBpcyBnb25lLCBhbmQgYWxsIFNWRyBkYXRhdHlwZXMgdXNlIHRoZSBuZXcgc3R5
bGUgSlMgYmluZGluZ3MuCisKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogCiAgICAg
cmV0dXJuIDAgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvOwogICAgIHJldHVybiAwIGlm
ICRpbXBsQ2xhc3NOYW1lID1+IC9FbGVtZW50LzsKICAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVy
YXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSk7CiAKLSAgICBt
eSBAbm9Db250ZXh0TmVlZGVkID0gKCJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3RoTGlzdCIsICJTVkdQ
YWludCIsICJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZlbnQiKTsKKyAgICBt
eSBAbm9Db250ZXh0TmVlZGVkID0gKCJTVkdBbmdsZSIsICJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3Ro
TGlzdCIsICJTVkdQYWludCIsICJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZl
bnQiKTsKICAgICBmb3JlYWNoIChAbm9Db250ZXh0TmVlZGVkKSB7CiAgICAgICAgIHJldHVybiAw
IGlmICRpbXBsQ2xhc3NOYW1lIGVxICRfOwogICAgIH0KQEAgLTE4MDIsMjEgKzE4MDUsNTMgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2Jq
ZWN0KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRpbXBsVHlwZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxUeXBlKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5z
ZXR0ZXJFeGNlcHRpb25zfTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRm9yIHNl
dHRlcnMgd2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3Mg
dHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxs
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkYXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlzT2JqZWN0KCkpIHtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIH07XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmlzTnVtYmVyKCkpIHtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoIUlzTmF0aXZl
VHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAh
dmFsdWUuaW5oZXJpdHMoJkpTJHthcmdUeXBlfTo6c19pbmZvKSkge1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG5hdGl2ZVZhbHVl
ID0gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yUG9kVHlwZSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3Zn
UHJvcGVydHlPclBvZFR5cGUgcG9kSW1wKCppbXApO1xuIikgaWYgJHBvZFR5cGU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRzdmdQcm9w
ZXJ0eU9yUG9kVHlwZSYgcG9kSW1wID0gaW1wLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIikgaWYg
ISRwb2RUeXBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3Bl
cnR5T3JQb2RUeXBlIGVxICJmbG9hdCIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVy
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBwb2RJbXAgPSAiIC4gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwg
InZhbHVlIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXAgPSAkbmF0aXZlVmFsdWU7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHBvZEltcC5zZXQkaW1wbFNl
dHRlckZ1bmN0aW9uTmFtZSgiIC4gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZSwgInZhbHVlIikgLiAiKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wLnNldCRpbXBsU2V0dGVyRnVuY3Rpb25O
YW1lKCRuYXRpdmVWYWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRp
b25zfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGF0
dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wLT5jb21taXRDaGFuZ2UocG9kSW1wLCBjYXN0ZWRUaGlzKTtcbiIpIGlmICRwb2RU
eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpbXAtPmNvbW1pdENoYW5nZSgpO1xuIikgaWYgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPnNldHRlckV4
Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFlYylcbiIpOyAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaW1wLT5j
b21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpbXAtPmNvbW1pdENoYW5nZSgpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJHNldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhw
cmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUp
OwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNl
cHRpb25zfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaW1wLT4kc2V0dGVyRXhwcmVzc2lvblByZWZpeCRuYXRpdmVWYWx1ZSIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgZWMiKSBp
ZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIik7XG4iKTsKQEAgLTIwMDgsOCArMjA0Myw5
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lID0gJHBhcmFtZXRlci0+bmFtZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0
cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRhcmdUeXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPFhQYXRo
TlNSZXNvbHZlcj4gY3VzdG9tUmVzb2x2ZXI7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0g
dG9YUGF0aE5TUmVzb2x2ZXIoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFyZXNv
bHZlcikge1xuIik7CkBAIC0yMDE5LDEwICsyMDU1LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJlc29sdmVyID0gY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYWxsYmFjayJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxiYWNr
Q2xhc3NOYW1lID0gR2V0Q2FsbGJhY2tDbGFzc05hbWUoJHBhcmFtZXRlci0+dHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxiYWNrQ2xhc3NOYW1lID0gR2V0Q2FsbGJh
Y2tDbGFzc05hbWUoJGFyZ1R5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IiRjYWxsYmFja0NsYXNzTmFtZS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwi
fSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBSZWZQdHI8IiAuICRwYXJhbWV0ZXItPnR5cGUuICI+ICRuYW1lO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwk
YXJnVHlwZT4gJG5hbWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5k
ZXggJiYgIWV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpLmlzTnVsbCgpICYmICFleGVjLT5hcmd1
bWVudCgkYXJnc0luZGV4KS5pc1VuZGVmaW5lZCgpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmICghZXhlYy0+YXJn
dW1lbnQoJGFyZ3NJbmRleCkuaXNPYmplY3QoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTtcbiIpOwpAQCAtMjAzNSwyMSArMjA3MSwyMyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZ
UEVfTUlTTUFUQ0hfRVJSKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCIgLiAkcGFyYW1ldGVyLT50eXBlIC4gIj4gJG5h
bWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50
KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwk
YXJnVHlwZT4gJG5hbWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4
ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZvciBmdW5jdGlvbnMg
d2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBk
b2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4
KSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVlfS5pc1VuZGVm
aW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pbmhlcml0cygmSlMke2FyZ1R5cGV9OjpzX2lu
Zm8pKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklz
U3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmlu
ZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNTdHJpbmcoKSAmJiAhJHthcmdWYWx1ZX0uaXNP
YmplY3QoKSlcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5
cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHth
cmdWYWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNOdW1iZXIoKSlc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJGFyZ1R5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdW
YWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaW5oZXJpdHMoJkpTJHth
cmdUeXBlfTo6c19pbmZvKSlcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0
ZXIpIC4gIiAkbmFtZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFy
Z3VtZW50KCRhcmdzSW5kZXgpIikgLiAiO1xuIik7CkBAIC0yMDY3LDEyICsyMTA1LDIxIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBD
aGVjayBpZiB0aGUgdHlwZSBjb252ZXJzaW9uIHN1Y2NlZWRlZC4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVO
ZWVkaW5nVGVhck9mZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQv
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghJG5hbWUpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlT
TUFUQ0hfRVJSKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblN0cmlu
ZyAuPSAiLCAiIGlmICRwYXJhbUluZGV4OwogCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHBhcmFtZXRlci0+dHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkYXJnVHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gIiRuYW1lLmdldCgpIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9m
ZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkbmFtZS0+cHJvcGVydHlS
ZWZlcmVuY2UoKSI7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblN0cmluZyAuPSAkbmFtZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KQEAgLTIzNzEsNyArMjQxOCwxNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50
IC4gIiRmdW5jdGlvblN0cmluZztcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGlu
ZGVudCAuICJzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikgaWYgQHskZnVuY3Rpb24tPnJh
aXNlc0V4Y2VwdGlvbnN9OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJp
bXAtPmNvbW1pdENoYW5nZShwb2RJbXAsIGNhc3RlZFRoaXMpO1xuIikgaWYgJHBvZFR5cGU7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gImltcC0+Y29tbWl0Q2hhbmdlKCk7
XG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlOworCisgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBl
KSB7CisgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFlYylcbiIp
OyAKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgaW1w
LT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJpbXAtPmNvbW1pdENoYW5nZSgpO1xu
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgJGluZGVudCAuICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5kZW50
IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNzTmFtZSwgIiIsICRmdW5jdGlvblN0cmluZywgImNhc3Rl
ZFRoaXMiKSAuICI7XG4iKTsKQEAgLTI0MTMsNyArMjQ2OSw3IEBAIG15ICVuYXRpdmVUeXBlID0g
KAogICAgICJOb2RlRmlsdGVyIiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+IiwKICAgICAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAogICAg
ICJJREJLZXkiID0+ICJSZWZQdHI8SURCS2V5PiIsCi0gICAgIlNWR0FuZ2xlIiA9PiAiU1ZHQW5n
bGUiLAorICAgICJTVkdBbmdsZSIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZT4qIiwK
ICAgICAiU1ZHTGVuZ3RoIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aD4qIiwKICAg
ICAiU1ZHTWF0cml4IiA9PiAiQWZmaW5lVHJhbnNmb3JtIiwKICAgICAiU1ZHTnVtYmVyIiA9PiAi
ZmxvYXQiLApAQCAtMjU2NywxMiArMjYyMyw2IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAg
ICAgfQogICAgIH0gCiAKLSAgICBteSAkc3ZnTGl2ZVByb3BlcnR5VHlwZSA9ICRzaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXZlUHJvcGVydHkifTsKLSAgICBpZiAoJHN2Z0xp
dmVQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAx
OwotICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgU1ZHUHJvcGVydHlU
ZWFyT2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCkpIjsKLSAgICB9Ci0KICAgICBpZiAo
JHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7
IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDE7CiAgICAgfQpAQCAtMjYxMiwxMyAr
MjY2MiwxNSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgIHJldHVybiAidG9KU05ld2x5
Q3JlYXRlZChleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CiAgICAg
fQogCi0gICAgIyBDb252ZXJ0IGZyb20gYWJzdHJhY3QgU1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBl
LCBzbyB0aGUgcmlnaHQgdG9KUygpIG1ldGhvZCBjYW4gYmUgaW52b2tlZC4KICAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGltcGxDbGFzc05hbWUpKSB7
CisgICAgICAgICMgQ29udmVydCBmcm9tIGFic3RyYWN0IFNWR1Byb3BlcnR5IHRvIHJlYWwgdHlw
ZSwgc28gdGhlIHJpZ2h0IHRvSlMoKSBtZXRob2QgY2FuIGJlIGludm9rZWQuCiAgICAgICAgIGlm
ICgkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CiAgICAgICAgICAgICAkdmFsdWUgPSAic3Rh
dGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5VGVhck9mZjwkdHlwZT4qPigkdmFsdWUpIjsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDxTVkdQcm9wZXJ0
eVRlYXJPZmY8JHR5cGU+Kj4oJHZhbHVlKSI7CiAgICAgICAgIH0KKyAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGltcGxD
bGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgICAgICAkdmFsdWUgPSAiU1ZHUHJvcGVydHlUZWFy
T2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1ZSkiOwogICAgIH0KIAogICAgIHJldHVybiAidG9KUyhl
eGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiA3MDM4
NSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29y
a2luZyBjb3B5KQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4KKyMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xMzY5LDggKzEzNzAsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewogICAgICAgICAgICAgICAgICAgICAkZ2V0
dGVyQ29udGVudEhlYWQgPSAiJGdldHRlckV4cHJlc3Npb25QcmVmaXgiOwogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlUeXBlV2l0aE5hbWVz
cGFjZSYgcG9kSW1wbCA9IElNUEwtPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wbC4kY29yZVNldHRlck5h
bWUoJGFyZyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGVj
ID0gJGhhc1NldHRlckV4Y2VwdGlvbiA/ICIsIGVjIiA6ICIiOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZXhjZXB0aW9uSW5pdFxuIikgaWYgJGhhc1NldHRl
ckV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cG9kSW1wbC4kY29yZVNldHRlck5hbWUoJGFyZyRlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRoYXNTZXR0ZXJFeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZWMpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2Vw
dGlvblJhaXNlT25FcnJvclxuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+Y29t
bWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICRn
ZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPiRjb3JlU2V0dGVyTmFtZSgk
YXJnKTtcbiIpOwpAQCAtMTUwMyw2ICsxNTEyLDM1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAiZWMiKSBpZiAkcmFpc2Vz
RXhjZXB0aW9ucyBhbmQgISgkc3ZnTWF0cml4Um90YXRlRnJvbVZlY3RvciB8fCAkc3ZnTWF0cml4
SW52ZXJzZSk7CiAgICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgIjAgLyogRklYTUUg
Ki8iKSBpZiAkc3ZnTGVuZ3RoQ29udmVydFRvU3BlY2lmaWVkVW5pdHM7IAorCisgICAgICAgICAg
ICAjIEhhbmRsZSBhcmd1bWVudHMgdGhhdCBhcmUgJ1NWR1Byb3BlcnR5JyBiYXNlZCAoU1ZHQW5n
bGUvU1ZHTGVuZ3RoKS4gV2UgbmVlZCB0byBjb252ZXJ0IGZyb20gU1ZHUHJvcGVydHlUZWFyT2Zm
PFR5cGU+KiB0byBUeXBlLAorICAgICAgICAgICAgIyB0byBiZSBhYmxlIHRvIGNhbGwgdGhlIGRl
c2lyZWQgV2ViQ29yZSBmdW5jdGlvbi4gSWYgdGhlIGNvbnZlcnNpb24gZmFpbHMsIHdlIGNhbid0
IGV4dHJhY3QgVHlwZSBhbmQgbmVlZCB0byByYWlzZSBhbiBleGNlcHRpb24uCisgICAgICAgICAg
ICBteSAkY3VycmVudFBhcmFtZXRlciA9IC0xOworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFy
YW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICRjdXJyZW50
UGFyYW1ldGVyKys7CisKKyAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5u
YW1lOworICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlw
TW9kdWxlKCRwYXJhbS0+dHlwZSk7CisgICAgICAgICAgICAgICAgbmV4dCBpZiBub3QgJGNvZGVH
ZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpZGxUeXBlKSBvciAkaW1wbENsYXNz
TmFtZSA9fiAvTGlzdCQvOworCisgICAgICAgICAgICAgICAgbXkgJGltcGxHZXR0ZXIgPSBHZXRP
YmpDVHlwZUdldHRlcigkcGFyYW1OYW1lLCAkaWRsVHlwZSk7CisgICAgICAgICAgICAgICAgbXkg
JGlkbFR5cGVXaXRoTmFtZXNwYWNlID0gKCRpZGxUeXBlIGVxICJmbG9hdCIpID8gIiRpZGxUeXBl
IiA6ICJXZWJDb3JlOjokaWRsVHlwZSI7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlv
bkNvbnRlbnQsICIgICAgV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPCRpZGxUeXBlV2l0aE5h
bWVzcGFjZT4qICR7cGFyYW1OYW1lfUNvcmUgPSAkaW1wbEdldHRlcjtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoISR7cGFyYW1OYW1lfUNvcmUp
IHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IFdlYkNvcmU6OlRZUEVfTUlTTUFUQ0hfRVJSO1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICAkZXhj
ZXB0aW9uUmFpc2VPbkVycm9yXG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
ZXEgInZvaWQiKSB7IAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQs
ICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5pbDtc
biIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNv
bnRlbnQsICIgICAgfVxuIik7CisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIHBhcmFt
dGVyIGNvcmUoKSBnZXR0ZXIsIGJ5IHRoZSBjYWNoZWQgdmFyaWFibGUuCisgICAgICAgICAgICAg
ICAgc3BsaWNlKEBwYXJhbWV0ZXJOYW1lcywgJGN1cnJlbnRQYXJhbWV0ZXIsIDEsICIke3BhcmFt
TmFtZX1Db3JlLT5wcm9wZXJ0eVJlZmVyZW5jZSgpIik7CisgICAgICAgICAgICB9CisKICAgICAg
ICAgICAgIG15ICRjb250ZW50ID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9u
TmFtZSkgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7IAogCiAgICAg
ICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewpAQCAtMTU1NCw5ICsxNTkyLDggQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJmb28i
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoQ29udmVyc2lvbk5l
ZWRlZCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
bXkgJHN2Z0xpdmVQcm9wZXJ0eSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiU1ZHTGl2ZVByb3BlcnR5In07Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3Zn
TGl2ZVByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJraXQo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPFdlYkNvcmU6OiIgLiAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZSAuICI+OjpjcmVhdGUoJGNvbnRlbnQpLmdldCgpKSI7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykg
eworICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAia2l0KFdURjo6Z2V0UHRyKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjxXZWJDb3JlOjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgLiAiPjo6Y3JlYXRlKCRjb250ZW50KSkpIjsKICAgICAgICAgICAgICAgICAgICAg
fSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
dHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gImtpdCgkY29udGVu
dCkiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAg
LTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgog
IyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4KICMgQ29weXJpZ2h0
IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg3LDYgKzg4LDcgQEAgc3ViIGZpbmlzaAogfQogCiAjIFdv
cmthcm91bmQgZm9yIFY4IGJpbmRpbmdzIGRpZmZlcmVuY2Ugd2hlcmUgUkdCQ29sb3IgaXMgbm90
IGEgUE9EIHR5cGUuCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwg
U1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4K
IHN1YiBJc1BvZFR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwpAQCAtOTM2LDYgKzkzOCwy
OCBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgInN0YXRpYyB2b2lkICR7YXR0ck5hbWV9QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pXG57XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIElO
Q19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFtZS4kYXR0ck5hbWUuX3NldFwiKTtcbiIpOwogCisg
ICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0
IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAjIGEg
VHlwZUVycm9yIGlzIHRocm93biBpbnN0ZWFkIG9mIGNhc3RpbmcgdG8gbnVsbC4KKyAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNo
ZWNraW5nIn0pIHsKKyAgICAgICAgbXkgJGFyZ1R5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgk
YXR0cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkgJiYgIXZhbHVlLT5Jc1N0cmluZygp
ICYmICF2YWx1ZS0+SXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm47XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRhcmdUeXBlKSkgeworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxs
KHZhbHVlKSAmJiAhdmFsdWUtPklzTnVtYmVyKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOworICAg
ICAgICB9IGVsc2lmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAm
JiAhVjgke2FyZ1R5cGV9OjpIYXNJbnN0YW5jZSh2YWx1ZSkpIHtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0
dXJuO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIp
OworICAgICAgICB9CisgICAgfQorCiAgICAgbXkgJGlzUG9kVHlwZSA9IElzUG9kVHlwZSgkaW1w
bENsYXNzTmFtZSk7CiAgICAgbXkgJHN2Z1Byb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07CiAgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5
cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsK
QEAgLTEwNTAsNyArMTA3NCwxMiBAQCBFTkQKICAgICBpZiAoJGlzUG9kVHlwZSkgewogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHdyYXBwZXItPmNvbW1pdENoYW5nZSgqaW1w
LCBWOFByb3h5OjpzdmdDb250ZXh0KHdyYXBwZXIpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRzdmdQ
cm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB3cmFw
cGVyLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFlYylcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlci0+Y29t
bWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgd3JhcHBlci0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAg
ICAgfQogICAgIH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBs
Q2xhc3NOYW1lKSkgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdFbGVtZW50LmgifSA9IDE7
CiAKQEAgLTEzNzcsMTMgKzE0MDYsMTggQEAgRU5ECiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkg
ewogICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJhcmdzWyRwYXJhbUluZGV4XSI7CiAg
ICAgICAgICAgICAgICAgbXkgJGFyZ1R5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1l
dGVyKTsKLSAgICAgICAgICAgICAgICBpZiAoSXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5M
ZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYm
ICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNlKCRhcmdWYWx1ZSkpIHtcbiIpOworICAgICAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYg
ISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAg
IFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5k
ZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYmICEk
e2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAk
cGFyYW1JbmRleCAmJiAhaXNVbmRlZmluZWRPck51bGwoJGFyZ1ZhbHVlKSAmJiAhJHthcmdWYWx1
ZX0tPklzTnVtYmVyKCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFp
c1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNl
KCRhcmdWYWx1ZSkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CkBAIC0yNzExLDYgKzI3NDUsMTIgQEAgc3ViIEdl
bmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKIAogICAgICAgICBpZiAoJHBhcmFtZXRlci0+dHlw
ZSBlcSAiTm9kZUZpbHRlciIgfHwgJHBhcmFtZXRlci0+dHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVy
IikgewogICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkcGFyYW1OYW1lLmdldCgpIjsK
KyAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2Zm
KCRwYXJhbWV0ZXItPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewor
ICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkcGFyYW1OYW1lLT5wcm9wZXJ0eVJlZmVy
ZW5jZSgpIjsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJpZiAoISRwYXJhbU5h
bWUpIHtcbiI7CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihXZWJDb3JlOjpUWVBFX01JU01BVENIX0VSUik7XG4iOworICAgICAg
ICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIn1cbiI7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gJHBhcmFtTmFtZTsK
ICAgICAgICAgfQpAQCAtMjc3NSwxMiArMjgxNSwxMSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNh
bGxTdHJpbmcoKQogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlwZVdy
YXBwZXIoJHJldHVyblR5cGUsICRyZXR1cm4pIC4gIjtcbiI7CiAgICAgICAgICRyZXR1cm4gPSAi
d3JhcHBlciI7CiAgICAgfQotICAgIAotICAgIG15ICRzdmdMaXZlUHJvcGVydHlUeXBlID0gJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXZlUHJvcGVydHki
fTsKLSAgICBpZiAoJHN2Z0xpdmVQcm9wZXJ0eVR5cGUpIHsKKworICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpIGFuZCBub3QgJGltcGxD
bGFzc05hbWUgPX4gL0xpc3QkLykgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCRyZXR1cm5U
eXBlLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5o
In0gPSAxOwotICAgICAgICByZXR1cm4gJGluZGVudCAuICJyZXR1cm4gdG9WOChTVkdQcm9wZXJ0
eVRlYXJPZmY8JHJldHVyblR5cGU+OjpjcmVhdGUoJHJldHVybikuZ2V0KCkpO1xuIjsKKyAgICAg
ICAgcmV0dXJuICRpbmRlbnQgLiAicmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoU1ZHUHJvcGVydHlU
ZWFyT2ZmPCRyZXR1cm5UeXBlPjo6Y3JlYXRlKCRyZXR1cm4pKSk7XG4iOwogICAgIH0KIAogICAg
IG15ICRnZW5lcmF0ZWRTVkdDb250ZXh0UmV0cmlldmFsID0gMDsKQEAgLTI5MDIsNyArMjk0MSw3
IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJGbG9hdFBvaW50IiBpZiAkdHlwZSBl
cSAiU1ZHUG9pbnQiOwogICAgIHJldHVybiAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAi
U1ZHTWF0cml4IjsKICAgICByZXR1cm4gIlNWR1RyYW5zZm9ybSIgaWYgJHR5cGUgZXEgIlNWR1Ry
YW5zZm9ybSI7Ci0gICAgcmV0dXJuICJTVkdBbmdsZSIgaWYgJHR5cGUgZXEgIlNWR0FuZ2xlIjsK
KyAgICByZXR1cm4gIlJlZlB0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGU+ID4iIGlmICR0
eXBlIGVxICJTVkdBbmdsZSI7CiAgICAgcmV0dXJuICJSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR0xlbmd0aD4gPiIgaWYgJHR5cGUgZXEgIlNWR0xlbmd0aCI7CiAgICAgcmV0dXJuICJTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aExpc3Q+KiIgaWYgJHR5cGUgZXEgIlNWR0xlbmd0
aExpc3QiOwogICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJTVkdOdW1iZXIiOwpAQCAt
Mjk1Niw3ICsyOTk1LDYgQEAgc3ViIEJhc2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uCiAgICAgbXkg
JHNpZ25hdHVyZSA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUo
JHNpZ25hdHVyZSk7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZHQW5nbGUiOwogICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgIHJldHVybiAxIGlmICR0eXBl
IGVxICJTVkdQb2ludCI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8iOwpAQCAtMzI4MCw2ICszMzE4LDcgQEAgc3ViIFJldHVybk5hdGl2ZVRvSlNWYWx1
ZQogICAgIHJldHVybiAicmV0dXJuIHRvVjgoJHZhbHVlKSI7CiB9CiAKKyMgRklYTUU6IFRoaXMg
bWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUg
Y29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlw
ZVdyYXBwZXIgewogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlID0gc2hpZnQ7
CkBAIC0zMzM0LDE4ICszMzczLDI1IEBAIHN1YiBXcml0ZURhdGEKICAgICB9CiB9CiAKKyMgRklY
TUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVy
dGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyCiB7CiAgICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKIAog
ICAgIHJldHVybiAwIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5pbWF0ZWRUeXBl
KCRpbXBsQ2xhc3NOYW1lKTsKICAgICBpZiAoJGltcGxDbGFzc05hbWUgPX4gL1NWRy8gYW5kIG5v
dCAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC8pIHsKLSAgICAgICAgcmV0dXJuIDEgdW5sZXNz
ICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdQYWludC8gb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0Nv
bG9yLyBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHRG9jdW1lbnQvIG9yICRpbXBsQ2xhc3NOYW1l
ID1+IC9TVkdMZW5ndGgvIG9yICRpbXBsQ2xhc3NOYW1lID1+L1NWR0xlbmd0aExpc3QvOworICAg
ICAgICByZXR1cm4gMSB1bmxlc3MgJGltcGxDbGFzc05hbWUgPX4gL1NWR0FuZ2xlLworICAgICAg
ICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR1BhaW50LworICAgICAgICAg
ICAgICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0NvbG9yLworICAgICAgICAgICAg
ICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0RvY3VtZW50LworICAgICAgICAgICAg
ICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0xlbmd0aC8KKyAgICAgICAgICAgICAg
ICAgICAgIG9yICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdMZW5ndGhMaXN0LzsKICAgICB9CiAKICAg
ICByZXR1cm4gMDsKIH0KIAorIyBGSVhNRTogVGhpcyBtZXRob2Qgd2lsbCBnbyBhd2F5IG9uY2Ug
YWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0aWVzIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hl
bWUuCiBzdWIgR2VuZXJhdGVTVkdDb250ZXh0QXNzaWdubWVudAogewogICAgIG15ICRzcmNUeXBl
ID0gc2hpZnQ7CkBAIC0zMzU4LDYgKzM0MDQsNyBAQCBzdWIgR2VuZXJhdGVTVkdDb250ZXh0QXNz
aWdubWVudAogICAgIHJldHVybiAkcmVzdWx0OwogfQogCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3
aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRl
ZCB0byB0aGUgbmV3IHNjaGVtZS4KIHN1YiBHZW5lcmF0ZVNWR0NvbnRleHRSZXRyaWV2YWwKIHsK
ICAgICBteSAkc3JjVHlwZSA9IHNoaWZ0OwpJbmRleDogV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNW
R0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9EZXBy
ZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiA3MDM4NSkKKysrIFdl
YkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDcgKzI0LDYgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHQW5nbGUu
aCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKQEAgLTM0LDE4ICszMyw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBzdHJ1Y3Qg
RGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMgOiBwdWJsaWMgTm9uY29weWFibGUg
eyB9OwogCi0vLyBTVkdBbmltYXRlZEFuZ2xlCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgRGVwcmVjYXRl
ZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHM8U1ZHQW5nbGU+IDogcHVibGljIE5vbmNvcHlhYmxl
IHsKLSAgICB0eXBlZGVmIGNvbnN0IFNWR0FuZ2xlJiBQYXNzVHlwZTsKLSAgICB0eXBlZGVmIFNW
R0FuZ2xlIFJldHVyblR5cGU7Ci0gICAgdHlwZWRlZiBTVkdBbmdsZSBTdG9yZWRUeXBlOwotCi0g
ICAgc3RhdGljIFJldHVyblR5cGUgbnVsbCgpIHsgcmV0dXJuIFNWR0FuZ2xlKCk7IH0KLSAgICBz
dGF0aWMgUmV0dXJuVHlwZSB0b1JldHVyblR5cGUoY29uc3QgU3RvcmVkVHlwZSYgdHlwZSkgeyBy
ZXR1cm4gdHlwZTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoUGFzc1R5cGUgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KLX07Ci0KIC8vIFNWR0FuaW1hdGVkQm9v
bGVhbgogdGVtcGxhdGU8Pgogc3RydWN0IERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJh
aXRzPGJvb2w+IDogcHVibGljIE5vbmNvcHlhYmxlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL0RlcHJl
Y2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvRGVw
cmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGUuaAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3Jl
L3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw3ICsyOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgIAotICAgIGNsYXNzIFNWR0Fu
Z2xlOwogICAgIGNsYXNzIFNWR0VsZW1lbnQ7CiAgICAgY2xhc3MgU1ZHTnVtYmVyTGlzdDsKICAg
ICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOwpAQCAtMTU1LDcgKzE1NCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICB9CiAKICAgICAvLyBDb21tb24gdHlwZSBkZWZpbml0aW9ucywg
dG8gZWFzZSBJREwgZ2VuZXJhdGlvbi4KLSAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdBbmltYXRl
ZFRlbXBsYXRlPFNWR0FuZ2xlPiBTVkdBbmltYXRlZEFuZ2xlOwogICAgIHR5cGVkZWYgRGVwcmVj
YXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8Ym9vbD4gU1ZHQW5pbWF0ZWRCb29sZWFuOwogICAgIHR5
cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8aW50PiBTVkdBbmltYXRlZEVudW1l
cmF0aW9uOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8bG9uZz4g
U1ZHQW5pbWF0ZWRJbnRlZ2VyOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcAkocmV2aXNpb24gNzAzODUpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTE5LDExMSArMjAsMjE3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAKICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0Fu
Z2xlLmgiCiAKKyNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHQW5nbGU6OlNWR0FuZ2xlKCkKLSAgICA6IG1fdW5p
dFR5cGUoU1ZHX0FOR0xFVFlQRV9VTktOT1dOKQotICAgICwgbV92YWx1ZSgwKQorICAgIDogbV91
bml0VHlwZShTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEKQogICAgICwgbV92YWx1ZUluU3BlY2lm
aWVkVW5pdHMoMCkKIHsKIH0KIAorZmxvYXQgU1ZHQW5nbGU6OnZhbHVlKCkgY29uc3QKK3sKKyAg
ICBzd2l0Y2ggKG1fdW5pdFR5cGUpIHsKKyAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAg
ICAgICAgcmV0dXJuIGdyYWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICBjYXNl
IFNWR19BTkdMRVRZUEVfUkFEOgorICAgICAgICByZXR1cm4gcmFkMmRlZyhtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cyk7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOgorICAgIGNh
c2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6Cisg
ICAgICAgIHJldHVybiBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0czsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBTVkdBbmdsZTo6c2V0
VmFsdWUoZmxvYXQgdmFsdWUpCiB7Ci0gICAgbV92YWx1ZSA9IHZhbHVlOworICAgIHN3aXRjaCAo
bV91bml0VHlwZSkgeworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOgorICAgICAgICBtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cyA9IGRlZzJncmFkKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5p
dHMgPSBkZWcycmFkKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX1VOU1BFQ0lGSUVEOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgIGNh
c2UgU1ZHX0FOR0xFVFlQRV9ERUc6CisgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0g
dmFsdWU7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAotLy8gY2FsYyBtX3ZhbHVlCi12b2lk
IFNWR0FuZ2xlOjpjYWxjdWxhdGUoKQoraW5saW5lIFNWR0FuZ2xlOjpTVkdBbmdsZVR5cGUgc3Ry
aW5nVG9BbmdsZVR5cGUoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQpCiB7Ci0g
ICAgaWYgKG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9HUkFEKQotICAgICAgICBtX3ZhbHVl
ID0gZ3JhZDJkZWcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5p
dFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9SQUQpCi0gICAgICAgIG1fdmFsdWUgPSByYWQyZGVnKG1f
dmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgICBlbHNlIGlmIChtX3VuaXRUeXBlID09IFNWR19B
TkdMRVRZUEVfVU5TUEVDSUZJRUQgfHwgbV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0RFRykK
LSAgICAgICAgbV92YWx1ZSA9IG1fdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgIC8vIElmIHRo
ZXJlJ3Mgbm8gdW5pdCBnaXZlbiwgdGhlIGFuZ2xlIHR5cGUgaXMgdW5zcGVjaWZpZWQuCisgICAg
aWYgKHB0ciA9PSBlbmQpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRDsKKworICAgIGNvbnN0IFVDaGFyIGZpcnN0Q2hhciA9ICpwdHI7CisgICAgCisg
ICAgLy8gSWYgdGhlIHVuaXQgY29udGFpbnMgb25seSBvbmUgY2hhcmFjdGVyLCB0aGUgYW5nbGUg
dHlwZSBpcyB1bmtub3duLgorICAgICsrcHRyOworICAgIGlmIChwdHIgPT0gZW5kKQorICAgICAg
ICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKKworICAgIGNvbnN0IFVD
aGFyIHNlY29uZENoYXIgPSAqcHRyOworIAorICAgIC8vIElmIHRoZSB1bml0IGNvbnRhaW5zIG9u
bHkgdHdvIGNoYXJhY3RlcnMsIHRoZSBhbmdsZSB0eXBlIGlzIHVua25vd24uCisgICAgKytwdHI7
CisgICAgaWYgKHB0ciA9PSBlbmQpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xF
VFlQRV9VTktOT1dOOworCisgICAgY29uc3QgVUNoYXIgdGhpcmRDaGFyID0gKnB0cjsKKyAgICBp
ZiAoZmlyc3RDaGFyID09ICdkJyAmJiBzZWNvbmRDaGFyID09ICdlJyAmJiB0aGlyZENoYXIgPT0g
J2cnKQorICAgICAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfREVHOworICAgIGlm
IChmaXJzdENoYXIgPT0gJ3InICYmIHNlY29uZENoYXIgPT0gJ2EnICYmIHRoaXJkQ2hhciA9PSAn
ZCcpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9SQUQ7CisKKyAgICAv
LyBJZiB0aGUgdW5pdCBjb250YWlucyB0aHJlZSBjaGFyYWN0ZXJzLCBidXQgaXMgbm90IGRlZyBv
ciByYWQsIHRoZW4gaXQncyB1bmtub3duLgorICAgICsrcHRyOworICAgIGlmIChwdHIgPT0gZW5k
KQorICAgICAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKKworICAg
IGNvbnN0IFVDaGFyIGZvdXJ0aENoYXIgPSAqcHRyOworCisgICAgaWYgKGZpcnN0Q2hhciA9PSAn
ZycgJiYgc2Vjb25kQ2hhciA9PSAncicgJiYgdGhpcmRDaGFyID09ICdhJyAmJiBmb3VydGhDaGFy
ID09ICdkJykKKyAgICAgICAgcmV0dXJuIFNWR0FuZ2xlOjpTVkdfQU5HTEVUWVBFX0dSQUQ7CisK
KyAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKIH0KIAotdm9pZCBT
VkdBbmdsZTo6c2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cykKK1N0cmluZyBTVkdBbmdsZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiB7Ci0gICAgbV92
YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAgY2FsY3Vs
YXRlKCk7CisgICAgc3dpdGNoIChtX3VuaXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X0RFRzoKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIobV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMpLCAiZGVnIik7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAg
ICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMpLCAicmFkIik7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0dSQUQ6CisgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSwg
ImdyYWQiKTsKKyAgICBjYXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6CisgICAgY2FzZSBT
VkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6
bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSk7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIFNWR0FuZ2xlOjpz
ZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYgcykKK3ZvaWQgU1ZHQW5nbGU6OnNldFZhbHVl
QXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
bV92YWx1ZUFzU3RyaW5nID0gczsKKyAgICBpZiAodmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fdW5pdFR5cGUgPSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOworICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgYm9vbCBiT0s7Ci0gICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBt
X3ZhbHVlQXNTdHJpbmcudG9GbG9hdCgmYk9LKTsKLSAgICBtX3VuaXRUeXBlID0gU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRDsKKyAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSAwOwor
ICAgIGNvbnN0IFVDaGFyKiBwdHIgPSB2YWx1ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNo
YXIqIGVuZCA9IHB0ciArIHZhbHVlLmxlbmd0aCgpOwogCi0gICAgaWYgKCFiT0spIHsKLSAgICAg
ICAgaWYgKG1fdmFsdWVBc1N0cmluZy5lbmRzV2l0aCgiZGVnIikpCi0gICAgICAgICAgICBtX3Vu
aXRUeXBlID0gU1ZHX0FOR0xFVFlQRV9ERUc7Ci0gICAgICAgIGVsc2UgaWYgKG1fdmFsdWVBc1N0
cmluZy5lbmRzV2l0aCgiZ3JhZCIpKQotICAgICAgICAgICAgbV91bml0VHlwZSA9IFNWR19BTkdM
RVRZUEVfR1JBRDsKLSAgICAgICAgZWxzZSBpZiAobV92YWx1ZUFzU3RyaW5nLmVuZHNXaXRoKCJy
YWQiKSkKLSAgICAgICAgICAgIG1fdW5pdFR5cGUgPSBTVkdfQU5HTEVUWVBFX1JBRDsKKyAgICBp
ZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGZhbHNlKSkg
eworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
Ci0gICAgY2FsY3VsYXRlKCk7CisKKyAgICBTVkdBbmdsZVR5cGUgdW5pdFR5cGUgPSBzdHJpbmdU
b0FuZ2xlVHlwZShwdHIsIGVuZCk7CisgICAgaWYgKHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVf
VU5LTk9XTikgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBtX3VuaXRUeXBlID0gdW5pdFR5cGU7CisgICAgbV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7CiB9CiAKLVN0cmluZyBTVkdBbmdsZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0Cit2b2lkIFNWR0FuZ2xlOjpuZXdWYWx1ZVNwZWNpZmllZFVuaXRz
KHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICh1bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX1VO
S05PV04gfHwgdW5pdFR5cGUgPiBTVkdfQU5HTEVUWVBFX0dSQUQpIHsKKyAgICAgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh1bml0
VHlwZSAhPSBtX3VuaXRUeXBlKQorICAgICAgICBtX3VuaXRUeXBlID0gc3RhdGljX2Nhc3Q8U1ZH
QW5nbGVUeXBlPih1bml0VHlwZSk7CisKKyAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IHZh
bHVlSW5TcGVjaWZpZWRVbml0czsKK30KKwordm9pZCBTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lm
aWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIG1fdmFsdWVBc1N0cmluZyA9IFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVu
aXRzKTsKKyAgICBpZiAodW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9VTktOT1dOIHx8IG1fdW5p
dFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0FOR0xFVFlQ
RV9HUkFEKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAodW5pdFR5cGUgPT0gbV91bml0VHlwZSkKKyAgICAgICAgcmV0
dXJuOwogCiAgICAgc3dpdGNoIChtX3VuaXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X1JBRDoKKyAgICAgICAgc3dpdGNoICh1bml0VHlwZSkgeworICAgICAgICBjYXNlIFNWR19BTkdM
RVRZUEVfR1JBRDoKKyAgICAgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmdy
YWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX0RFRzoKKyAgICAgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmRlZyht
X3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOgor
ICAgICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7CisgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9S
QUQ6CisgICAgICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFs
dWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNW
R19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6CiAgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6
Ci0gICAgICAgICAgICBtX3ZhbHVlQXNTdHJpbmcgKz0gImRlZyI7CisgICAgICAgICAgICBtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsK
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAg
ICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKKyAgICAgICAgLy8gU3BlYzog
Rm9yIGFuZ2xlcywgYSB1bml0bGVzcyB2YWx1ZSBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlmIGRl
Z3JlZXMgd2VyZSBzcGVjaWZpZWQuCisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKKyAgICAg
ICAgc3dpdGNoICh1bml0VHlwZSkgewogICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOgot
ICAgICAgICAgICAgbV92YWx1ZUFzU3RyaW5nICs9ICJyYWQiOworICAgICAgICAgICAgbV92YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSBkZWcycmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKLSAgICAg
ICAgICAgIG1fdmFsdWVBc1N0cmluZyArPSAiZ3JhZCI7CisgICAgICAgICAgICBtX3ZhbHVlSW5T
cGVjaWZpZWRVbml0cyA9IGRlZzJncmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKICAgICAg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAotICAgIHJldHVybiBtX3ZhbHVlQXNT
dHJpbmc7Ci19Ci0KLXZvaWQgU1ZHQW5nbGU6Om5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWdu
ZWQgc2hvcnQgdW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKLXsKLSAgICBt
X3VuaXRUeXBlID0gKFNWR0FuZ2xlVHlwZSl1bml0VHlwZTsKLSAgICBtX3ZhbHVlSW5TcGVjaWZp
ZWRVbml0cyA9IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKLSAgICBjYWxjdWxhdGUoKTsKLX0KLQot
dm9pZCBTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5p
dFR5cGUpCi17Ci0gICAgaWYgKG1fdW5pdFR5cGUgPT0gdW5pdFR5cGUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfREVHICYmIHVuaXRUeXBl
ID09IFNWR19BTkdMRVRZUEVfUkFEKQotICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9
IGRlZzJyYWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5
cGUgPT0gU1ZHX0FOR0xFVFlQRV9HUkFEICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfUkFE
KQotICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKLSAgICBlbHNlIGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVf
REVHICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfR1JBRCkKLSAgICAgICAgbV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgPSBkZWcyZ3JhZChtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gICAg
ZWxzZSBpZiAobV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX1JBRCAmJiB1bml0VHlwZSA9PSBT
VkdfQU5HTEVUWVBFX0dSQUQpCi0gICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFk
MmdyYWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5cGUg
PT0gU1ZHX0FOR0xFVFlQRV9SQUQgJiYgdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9ERUcpCi0g
ICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmRlZyhtX3ZhbHVlSW5TcGVjaWZp
ZWRVbml0cyk7Ci0gICAgZWxzZSBpZiAobV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0dSQUQg
JiYgdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9ERUcpCi0gICAgICAgIG1fdmFsdWVJblNwZWNp
ZmllZFVuaXRzID0gZ3JhZDJkZWcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogCi0gICAgbV91
bml0VHlwZSA9IChTVkdBbmdsZVR5cGUpdW5pdFR5cGU7CisgICAgbV91bml0VHlwZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVHlwZT4odW5pdFR5cGUpOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdBbmdsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHJldmlz
aW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNDUgKzIzLDQyIEBACiAjZGVmaW5lIFNWR0FuZ2xl
X2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFNWR0FuZ2xlIHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR0FuZ2xlKCk7Ci0KLSAgICAgICAgZW51bSBTVkdBbmdsZVR5cGUgewotICAg
ICAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTktOT1dOICAgICAgICAgICA9IDAsCi0gICAgICAgICAg
ICBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEICAgICAgID0gMSwKLSAgICAgICAgICAgIFNWR19B
TkdMRVRZUEVfREVHICAgICAgICAgICAgICAgPSAyLAotICAgICAgICAgICAgU1ZHX0FOR0xFVFlQ
RV9SQUQgICAgICAgICAgICAgICA9IDMsCi0gICAgICAgICAgICBTVkdfQU5HTEVUWVBFX0dSQUQg
ICAgICAgICAgICAgID0gNAotICAgICAgICB9OwotCi0gICAgICAgIFNWR0FuZ2xlVHlwZSB1bml0
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdFR5cGU7IH0KLQotICAgICAgICB2b2lkIHNldFZh
bHVlKGZsb2F0KTsKLSAgICAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKLSAgICAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZUluU3BlY2lmaWVkVW5pdHM7IH0KLQotICAgICAgICB2b2lk
IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAg
ICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBl
KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFNWR0FuZ2xlVHlwZSBtX3VuaXRUeXBlOwotICAg
ICAgICBmbG9hdCBtX3ZhbHVlOwotICAgICAgICBmbG9hdCBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0
czsKLSAgICAgICAgbXV0YWJsZSBTdHJpbmcgbV92YWx1ZUFzU3RyaW5nOwotCi0gICAgICAgIHZv
aWQgY2FsY3VsYXRlKCk7CitjbGFzcyBTVkdBbmdsZSB7CitwdWJsaWM6CisgICAgU1ZHQW5nbGUo
KTsKKworICAgIGVudW0gU1ZHQW5nbGVUeXBlIHsKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTktO
T1dOID0gMCwKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCA9IDEsCisgICAgICAg
IFNWR19BTkdMRVRZUEVfREVHID0gMiwKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9SQUQgPSAzLAor
ICAgICAgICBTVkdfQU5HTEVUWVBFX0dSQUQgPSA0CiAgICAgfTsKIAorICAgIFNWR0FuZ2xlVHlw
ZSB1bml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdFR5cGU7IH0KKworICAgIHZvaWQgc2V0
VmFsdWUoZmxvYXQpOworICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFZh
bHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpIHsgbV92YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7IH0KKyAgICBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlSW5TcGVjaWZpZWRV
bml0czsgfQorCisgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OworCisgICAgdm9p
ZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGNvbnZlcnRU
b1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBFeGNlcHRpb25Db2RlJik7
CisKK3ByaXZhdGU6CisgICAgU1ZHQW5nbGVUeXBlIG1fdW5pdFR5cGU7CisgICAgZmxvYXQgbV92
YWx1ZUluU3BlY2lmaWVkVW5pdHM7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbAkocmV2aXNpb24gNzAzODUpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIyICsyMiwyNiBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBQT0RU
eXBlPVNWR0FuZ2xlXSBTVkdBbmdsZSB7IAorICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
LCBTVkdQcm9wZXJ0eT1TVkdBbmdsZV0gU1ZHQW5nbGUgeyAKICAgICAgICAgLy8gQW5nbGUgVW5p
dCBUeXBlcwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05P
V04gICAgID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9V
TktOT1dOID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRCA9IDE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZ
UEVfREVHICAgICAgICAgPSAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5H
TEVUWVBFX1JBRCAgICAgICAgID0gMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X0FOR0xFVFlQRV9HUkFEICAgICAgICA9IDQ7Ci0gICAgICAgIAorICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0RFRyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19BTkdMRVRZUEVfUkFEID0gMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX0FOR0xFVFlQRV9HUkFEID0gNDsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAg
ICAgIHZhbHVlSW5TcGVjaWZpZWRVbml0czsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgdmFsdWVBc1N0cmluZzsKLSAg
ICAgICAgCi0gICAgICAgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyhpbiB1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKKyAgICAgICAgYXR0cmlidXRl
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgW1N0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworCisgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZUFzU3Ry
aW5nCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAg
dm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBp
biBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKworICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKGluIHVuc2ln
bmVkIHNob3J0IHVuaXRUeXBlKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZEFuZ2xlX2gKKyNkZWZpbmUg
U1ZHQW5pbWF0ZWRBbmdsZV9oCisKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuaW1h
dGVkUHJvcGVydHlUZWFyT2ZmLmgiCisjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0eXBlZGVmIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xl
PiBTVkdBbmltYXRlZEFuZ2xlOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU1ZHKQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xl
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkocmV2
aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZEFuZ2xlIHsKKyAgICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPVNWRywgU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0gU1ZHQW5pbWF0ZWRBbmdsZSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYW5pbVZhbDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5jcHAJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDggQEAgdm9pZCBTVkdNYXJr
ZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogICAgICAgICBpZiAoYXR0ci0+dmFsdWUoKSA9
PSAiYXV0byIpCiAgICAgICAgICAgICBzZXRPcmllbnRUeXBlQmFzZVZhbHVlKFNWR19NQVJLRVJf
T1JJRU5UX0FVVE8pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFuZ2xlLnNldFZhbHVl
QXNTdHJpbmcoYXR0ci0+dmFsdWUoKSk7CisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICAgICAgICAgIGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcoYXR0ci0+dmFsdWUoKSwgZWMp
OwogICAgICAgICAgICAgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShTVkdfTUFSS0VSX09SSUVOVF9B
TkdMRSk7CiAgICAgICAgIH0KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24g
NzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZ
X05FVyhTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0ciwgU1ZHTGVu
Z3RoLCBNYXJrZXJIZWlnaHQsIG1hcmtlckhlaWdodCkKICAgICBERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRZKFNWR01hcmtlckVsZW1lbnQsIFNWR05hbWVzOjptYXJrZXJVbml0c0F0dHIsIGludCwg
TWFya2VyVW5pdHMsIG1hcmtlclVuaXRzKQogICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlf
TVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIs
IFNWR09yaWVudFR5cGVBdHRySWRlbnRpZmllciwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBl
KQotICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFy
a2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNWR09yaWVudEFuZ2xlQXR0cklkZW50
aWZpZXIsIFNWR0FuZ2xlLCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCisgICAgREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUWV9ORVdfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwg
U1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNWR09yaWVudEFuZ2xlQXR0cklkZW50aWZpZXIsIFNWR0Fu
Z2xlLCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCiAKICAgICAvLyBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkCiAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdNYXJrZXJFbGVt
ZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR051
bWJlci5pZGwJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBAQAogbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgUE9EVHlwZT1mbG9hdF0gU1ZHTnVtYmVyIHsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1
ZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNv
cmUvc3ZnL1NWR1BvaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDggQEAKIG1v
ZHVsZSBzdmcgewogCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFBPRFR5cGU9Rmxv
YXRQb2ludF0gU1ZHUG9pbnQgewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeAot
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IHk7CiAKICAgICAgICAgU1ZHUG9pbnQgbWF0cml4VHJhbnNmb3Jt
KGluIFNWR01hdHJpeCBtYXRyaXgpOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdSZWN0
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAkocmV2aXNpb24gNzAz
ODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTQg
KzIzLDEwIEBACiBtb2R1bGUgc3ZnIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
LCBQT0RUeXBlPUZsb2F0UmVjdF0gU1ZHUmVjdCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBmbG9hdCB4Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5Ci0gICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBmbG9hdCB3aWR0aAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0Ci0gICAg
ICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgYXR0
cmlidXRlIGZsb2F0IHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIG1vZHVsZSBzdmcgewogICAgICAgICB2b2lkIGRlc2VsZWN0QWxsKCk7CiAKICAgICAgICAg
U1ZHTnVtYmVyIGNyZWF0ZVNWR051bWJlcigpOwotICAgICAgICBbU1ZHTGl2ZVByb3BlcnR5XSBT
VkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CisgICAgICAgIFNWR0xlbmd0aCBjcmVhdGVTVkdM
ZW5ndGgoKTsKICAgICAgICAgU1ZHQW5nbGUgY3JlYXRlU1ZHQW5nbGUoKTsKICAgICAgICAgU1ZH
UG9pbnQgY3JlYXRlU1ZHUG9pbnQoKTsKICAgICAgICAgU1ZHTWF0cml4IGNyZWF0ZVNWR01hdHJp
eCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA0MDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMC0yMyAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR0FuZ2xlIHRvIHRoZSBuZXcgU1ZHUHJv
cGVydHlUZWFyT2ZmIGNvbmNlcHQsIHJlaW1wbGVtZW50IGl0IHByb3Blcmx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE3OQorCisgICAgICAgIEFk
ZCBhbiBleHRlbnNpdmUgU1ZHQW5nbGUgdGVzdCwgY2hlY2tpbmcgYWxsIGdldHRlci9zZXR0ZXJz
ICYgbWV0aG9kcywgd2l0aCB2YWxpZCBhbmQgaW52YWxpZCBhcmd1bWVudHMuCisgICAgICAgIFRo
ZSB0ZXN0IGV4cG9zZXMgYnVncyBpbiBPcGVyYSAmIEZpcmVGb3gsIHdlIG5vdyBwYXNzIHRoZW0g
YWxsLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdBbmdsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9kb20vU1ZHQW5nbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2Rv
bS9zY3JpcHQtdGVzdHMvU1ZHQW5nbGUuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3Zn
LWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9k
b20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwueGh0bWw6IFVwZGF0ZSBpbmNvcnJlY3Qg
dGVzdCwgc2V0dGluZyB2YWx1ZUFzU3RyaW5nIHRvIG51bGwsIHNob3VsZCBub3QgcmVzdWx0IGlu
ICIwZGVnIiBidXQgIjAiLgorCiAyMDEwLTEwLTIzICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNzczIuMS8gbGF5b3V0IHRlc3RzIG5lZWQgbmV3IE1h
YyBiYXNlbGluZXMgZm9yIFNub3cgTGVvcGFyZApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9T
VkdBbmdsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9T
VkdBbmdsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR0FuZ2xlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzMgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhlIFNWR0FuZ2xlIEFQSQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworCitDaGVjayBpbml0aWFsIGFuZ2xlIHZhbHVlcworUEFTUyBhbmdsZS51bml0VHlw
ZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVl
QXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJ
blNwZWNpZmllZFVuaXRzIGlzIDAKKworQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICdjb252
ZXJ0VG9TcGVjaWZpZWRVbml0cycKK1BBU1MgYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMo
U1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTktOT1dOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5P
VF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JURURfRVJS
OiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKDUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24g
OS4KK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRAorCitDaGVjayB2YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cycsIHRoYXQgc2hvdWxkIG9ubHkgbW9kaWZ5IHRoZSAndmFsdWVBc1N0cmluZycKK1BBU1MgYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQpIGlz
IHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMHJhZCIKK1BBU1MgYW5n
bGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFT
UyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRAorUEFTUyBhbmds
ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0dSQUQpIGlz
IHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMGdyYWQiCitQQVNTIGFu
Z2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BB
U1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECitQQVNTIGFu
Z2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHKSBp
cyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjBkZWciCitQQVNTIGFu
Z2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BB
U1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1MgYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRCkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFT
UyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAw
CitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJ
RUQKKworQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICduZXdWYWx1ZVNwZWNpZmllZFVuaXRz
JworUEFTUyBhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZ
UEVfVU5LTk9XTiwgNTApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6
IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cygtMSwg
NTApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRp
b24gOS4KK1BBU1MgYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyg1LCA1MCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBh
bmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0No
ZWNrIHZhbGlkIGFyZ3VtZW50cyBmb3IgJ25ld1ZhbHVlU3BlY2lmaWVkVW5pdHMnLCB0aGF0IHNo
b3VsZCBvbmx5IG1vZGlmeSB0aGUgJ3ZhbHVlQXNTdHJpbmcnCitQQVNTIGFuZ2xlLm5ld1ZhbHVl
U3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQsIHBhcnNlRmxvYXQoTWF0
aC5QSS50b0ZpeGVkKDUpKSkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5n
IGlzICIzLjE0MTU5cmFkIgorUEFTUyBhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIK
K1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkgaXMgTWF0aC5QSS50
b0ZpeGVkKDUpCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVf
UkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9HUkFELCA0MDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBp
cyAiNDAwZ3JhZCIKK1BBU1MgYW5nbGUudmFsdWUudG9GaXhlZCgxKSBpcyAiMzYwLjAiCitQQVNT
IGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyA0MDAKK1BBU1MgYW5nbGUudW5pdFR5cGUg
aXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcsIDM2MCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIzNjBkZWciCitQQVNTIGFuZ2xlLnZhbHVlIGlz
IDM2MAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMzYwCitQQVNTIGFuZ2xl
LnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHCitQQVNTIGFuZ2xlLm5ld1Zh
bHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMTgw
KSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MCIKK1BBU1Mg
YW5nbGUudmFsdWUgaXMgMTgwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAx
ODAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRAorCitSZXNldCB0byBpbml0aWFsIGFuZ2xlIHN0YXRlCitQQVNTIGFuZ2xlLm5ld1ZhbHVl
U3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBF
X1VOU1BFQ0lGSUVECisKK0NoZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVBc1N0cmluZycgYXJn
dW1lbnRzCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMTBweCcgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBhbmdsZS52YWx1ZUFz
U3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5T
cGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19B
TkdMRVRZUEVfVU5TUEVDSUZJRUQKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcxMHgnIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mg
YW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBh
bmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJp
bmcgPSAnNWdyYUQnIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFs
dWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmds
ZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFu
Z2xlLnZhbHVlQXNTdHJpbmcgPSAnNVJhZCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhf
RVJSOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgor
UEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBp
cyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVD
SUZJRUQKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcsNSByYWQnIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdf
QU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0NoZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVJblNw
ZWNpZmllZFVuaXRzJyBhcmd1bWVudHMKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
ID0gJ3Rlc3QnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFu
Z2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lm
aWVkVW5pdHMgPSBhbmdsZSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQ
QVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBl
IGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQKKworQ2hlY2sgc2V0dGluZyBp
bnZhbGlkICd2YWx1ZScgYXJndW1lbnRzCitQQVNTIGFuZ2xlLnZhbHVlID0gJ3Rlc3QnIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJp
bmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRAorUEFTUyBhbmdsZS52YWx1ZSA9IGFuZ2xlIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAi
CitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
IGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQ
RUNJRklFRAorCitSZXNldCB0byBhbmdsZSBpbiBkZWdyZWUgdW5pdHMKK1BBU1MgYW5nbGUubmV3
VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RF
RworCitDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAn
dmFsdWVJblNwZWNpZmllZFVuaXRzJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6
ZWQKK1BBU1MgYW5nbGUudmFsdWUgPSA1MCBpcyA1MAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lm
aWVkVW5pdHMgaXMgNTAKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiNTBkZWciCitQQVNT
IGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHCisKK1RyeSBtb2Rp
Zml5aW5nIHRoZSByZWFkb25seSAndW5pdFR5cGUnLCBuZWVkcyB0byBmYWlsCitQQVNTIGFuZ2xl
LnVuaXRUeXBlID0gU1ZHQW5nbGUuU1ZHX0FOR0xFVFRZRV9SQUQgaXMgdW5kZWZpbmVkLgorUEFT
UyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBz
ZXR0aW5nIHZhbGlkICd2YWx1ZUluU3BlY2lmaWVkVW5pdHMnIGFyZ3VtZW50cywgYXNzdXJlIHRo
YXQgJ3ZhbHVlJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzID0gMTAwIGlzIDEwMAorUEFTUyBhbmdsZS52YWx1ZSBp
cyAxMDAKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMTAwZGVnIgorUEFTUyBhbmdsZS51
bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBzZXR0aW5nIHZh
bGlkICd2YWx1ZUFzU3RyaW5nJyBhcmd1bWVudHMsIGFzc3VyZSB0aGF0ICd2YWx1ZScgYW5kICd2
YWx1ZUluU3BlY2lmaWVkVW5pdHMnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyA9ICcyMDBncmFkJyBpcyAiMjAwZ3JhZCIKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzIGlzIDIwMAorUEFTUyBhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIK
K1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECisKK05v
dyBjb252ZXJ0IHRoZSBHUkFEIHZhbHVlIGludG8gYSBSQUQgdmFsdWUsIGFuZCBhc3N1cmUgdGhh
dCBhbGwgcHJvcGVydGllcyBoYXZlIGJlZW4gc3luY2hyb25pemVkCitQQVNTIGFuZ2xlLmNvbnZl
cnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfUkFEKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkgaXMgIjE4MC4wIgorUEFTUyBhbmdsZS52
YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhlZCg1KSBpcyAiMy4xNDE1OSIKK1BBU1MgYW5nbGUu
dmFsdWVBc1N0cmluZyBpcyAiMy4xNDE1OXJhZCIKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQKKworTm93IHRyeSBjb252ZXJ0aW5nIHRoZSBSQUQgdmFs
dWUgaW50byBhbiB1bmtub3duIHZhbHVlLCB0aGF0IHNob3VsZCBmYWlsIGFuZCB0aHJvdworUEFT
UyBhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VO
S05PV04pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNl
cHRpb24gOS4KK1BBU1MgYW5nbGUudmFsdWUudG9GaXhlZCgxKSBpcyAiMTgwLjAiCitQQVNTIGFu
Z2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cy50b0ZpeGVkKDUpIGlzICIzLjE0MTU5IgorUEFTUyBh
bmdsZS52YWx1ZUFzU3RyaW5nIGlzICIzLjE0MTU5cmFkIgorUEFTUyBhbmdsZS51bml0VHlwZSBp
cyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRAorCitOb3cgY29udmVydCB0aGUgUkFEIHZhbHVl
IGludG8gYSBERUcgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJvcGVydGllcyBoYXZlIGJl
ZW4gc3luY2hyb25pemVkCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfREVHKSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRv
Rml4ZWQoMSkgaXMgIjE4MC4wIgorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9G
aXhlZCgxKSBpcyAiMTgwLjAiCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MGRlZyIK
K1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR0FuZ2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2RvbS9TVkdBbmdsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9TVkdBbmdsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9TVkdBbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0
cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3MDM4NSkKKysrIExheW91dFRl
c3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUaGlzIHRlc3Qgc2V0dGluZyB2YXJpb3VzIGF0
dHJpYnV0ZXMgb2YgCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3Ry
aW5nLiBbdGVzdGVkIFNWR0VsZW1lbnQuaWRdCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdh
cyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVkIFNWR0VsZW1lbnQueG1sYmFzZV0KIAotVEVTVCBT
VUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMgdGhlIHN0cmluZyAnMGRlZycuIFt0ZXN0ZWQgU1ZHQW5n
bGUudmFsdWVBc1N0cmluZ10KK1RFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJp
bmcgJzAnLiBbdGVzdGVkIFNWR0FuZ2xlLnZhbHVlQXNTdHJpbmddCiAKIFRFU1QgU1VDQ0VFREVE
OiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJpbmcgJzAnLiBbdGVzdGVkIFNWR0xlbmd0aC52YWx1ZUFz
U3RyaW5nXQogCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1lbGVtZW50LWF0dHJpYnV0
ZS1qcy1udWxsLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVs
ZW1lbnQtYXR0cmlidXRlLWpzLW51bGwueGh0bWwJKHJldmlzaW9uIDcwMzg1KQorKysgTGF5b3V0
VGVzdHMvc3ZnL2RvbS9zdmctZWxlbWVudC1hdHRyaWJ1dGUtanMtbnVsbC54aHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQAogICAgICAgICAgICAgICAgICAgICB0eXBlOiAnU1ZH
QW5nbGUnLAogICAgICAgICAgICAgICAgICAgICBlbGVtZW50VG9Vc2U6IHN2Zy5jcmVhdGVTVkdB
bmdsZSgpLAogICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7bmFtZTogJ3ZhbHVlQXNTdHJpbmcnLCBleHBlY3RlZE51bGw6ICcwZGVnJ30K
KyAgICAgICAgICAgICAgICAgICAgICAgIHtuYW1lOiAndmFsdWVBc1N0cmluZycsIGV4cGVjdGVk
TnVsbDogJzAnfQogICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9T
VkdBbmdsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0
cy9TVkdBbmdsZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0
LXRlc3RzL1NWR0FuZ2xlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwMiBAQAorZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFNWR0FuZ2xlIEFQSSIpOworCit2YXIgc3ZnRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciLCAic3ZnIik7Cit2YXIgYW5nbGUgPSBzdmdFbGVtZW50LmNyZWF0ZVNWR0FuZ2xlKCk7CisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBpbml0aWFsIGFuZ2xlIHZhbHVlcyIpOworc2hvdWxk
QmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7Citz
aG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVj
aWZpZWRVbml0cyIsICIwIik7CisKKy8vIFNwZWM6IFJhaXNlZCBpZiB1bml0VHlwZSBpcyBTVkdf
QU5HTEVUWVBFX1VOS05PV04gb3Igbm90IGEgdmFsaWQgdW5pdCB0eXBlIGNvbnN0YW50IChvbmUg
b2YgdGhlIG90aGVyIFNWR19BTkdMRVRZUEVfKiBjb25zdGFudHMgZGVmaW5lZCBvbiB0aGlzIGlu
dGVyZmFjZSkuCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9y
ICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyciKTsKK3Nob3VsZFRocm93KCJhbmdsZS5jb252ZXJ0
VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIik7CitzaG91
bGRUaHJvdygiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoLTEpIik7CitzaG91bGRUaHJv
dygiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoNSkiKTsKK3Nob3VsZEJlKCJhbmdsZS51
bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJDaGVjayB2YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZp
ZWRVbml0cycsIHRoYXQgc2hvdWxkIG9ubHkgbW9kaWZ5IHRoZSAndmFsdWVBc1N0cmluZyciKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFs
dWVBc1N0cmluZyIsICIwcmFkIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hv
dWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5n
bGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsKKworc2hvdWxkQmVV
bmRlZmluZWQoImFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdM
RVRZUEVfR1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmlu
ZyIsICIwZ3JhZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJh
bmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRU
eXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitzaG91bGRCZVVuZGVmaW5l
ZCgiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9E
RUcpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMGRl
ZyIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHIik7CisKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5j
b252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVE
KSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjAiKTsK
K3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNw
ZWNpZmllZFVuaXRzIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKKy8vIFNwZWM6IFJhaXNlZCBpZiB1bml0
VHlwZSBpcyBTVkdfQU5HTEVUWVBFX1VOS05PV04gb3Igbm90IGEgdmFsaWQgdW5pdCB0eXBlIGNv
bnN0YW50IChvbmUgb2YgdGhlIG90aGVyIFNWR19BTkdMRVRZUEVfKiBjb25zdGFudHMgZGVmaW5l
ZCBvbiB0aGlzIGludGVyZmFjZSkuCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW52YWxpZCBh
cmd1bWVudHMgZm9yICduZXdWYWx1ZVNwZWNpZmllZFVuaXRzJyIpOworc2hvdWxkVGhyb3coImFu
Z2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTktOT1dO
LCA1MCkiKTsKK3Nob3VsZFRocm93KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKC0xLCA1
MCkiKTsKK3Nob3VsZFRocm93KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKDUsIDUwKSIp
Oworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5T
UEVDSUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIHZhbGlkIGFyZ3VtZW50cyBm
b3IgJ25ld1ZhbHVlU3BlY2lmaWVkVW5pdHMnLCB0aGF0IHNob3VsZCBvbmx5IG1vZGlmeSB0aGUg
J3ZhbHVlQXNTdHJpbmcnIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUubmV3VmFsdWVTcGVj
aWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRCwgcGFyc2VGbG9hdChNYXRoLlBJ
LnRvRml4ZWQoNSkpKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3Ry
aW5nIiwgTWF0aC5QSS50b0ZpeGVkKDUpICsgInJhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIiwgIjE4MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFs
dWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkiLCAiTWF0aC5QSS50b0ZpeGVkKDUpIik7Citz
aG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsK
Kworc2hvdWxkQmVVbmRlZmluZWQoImFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5n
bGUuU1ZHX0FOR0xFVFlQRV9HUkFELCA0MDApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFu
Z2xlLnZhbHVlQXNTdHJpbmciLCAiNDAwZ3JhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJh
bmdsZS52YWx1ZS50b0ZpeGVkKDEpIiwgIjM2MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJ
blNwZWNpZmllZFVuaXRzIiwgIjQwMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUu
bmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMzYwKSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjM2MGRlZyIp
Oworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjM2MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
SW5TcGVjaWZpZWRVbml0cyIsICIzNjAiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUu
bmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVE
LCAxODApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAi
MTgwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMTgwIik7CitzaG91bGRCZSgiYW5nbGUu
dmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjE4MCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBl
IiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIpOwor
ZGVidWcoIlJlc2V0IHRvIGluaXRpYWwgYW5nbGUgc3RhdGUiKTsKK3Nob3VsZEJlVW5kZWZpbmVk
KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5T
UEVDSUZJRUQsIDApIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZH
X0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCisvLyBTcGVjOiBSYWlzZWQgaWYgdGhlIGFzc2ln
bmVkIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgdmFsaWQgPGFuZ2xlPi4KK2RlYnVnKCIi
KTsKK2RlYnVnKCJDaGVjayBzZXR0aW5nIGludmFsaWQgJ3ZhbHVlQXNTdHJpbmcnIGFyZ3VtZW50
cyIpOworc2hvdWxkVGhyb3coImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMTBweCciKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgi
YW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0
cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9
ICcxMHgnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAi
MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworc2hvdWxkVGhyb3coImFuZ2xl
LnZhbHVlQXNTdHJpbmcgPSAnNWdyYUQnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xl
LnZhbHVlQXNTdHJpbmciLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3No
b3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFu
Z2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKwor
c2hvdWxkVGhyb3coImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnNVJhZCciKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUu
dmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIw
Iik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9ICcsNSBy
YWQnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMCIp
Oworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNo
ZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBhcmd1bWVudHMiKTsK
K3Nob3VsZFRocm93KCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSAndGVzdCciKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRC
ZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRV
bml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzID0gYW5nbGUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVB
c1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5p
dFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitkZWJ1Zygi
Iik7CitkZWJ1ZygiQ2hlY2sgc2V0dGluZyBpbnZhbGlkICd2YWx1ZScgYXJndW1lbnRzIik7Citz
aG91bGRUaHJvdygiYW5nbGUudmFsdWUgPSAndGVzdCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAi
MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91
bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklF
RCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWUgPSBhbmdsZSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52
YWx1ZSIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjAi
KTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVEIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJSZXNldCB0byBhbmdsZSBpbiBkZWdy
ZWUgdW5pdHMiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVu
aXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHLCAwKSIpOworc2hvdWxkQmUoImFuZ2xlLnVu
aXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHIik7CisKK2RlYnVnKCIiKTsKK2Rl
YnVnKCJDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAn
dmFsdWVJblNwZWNpZmllZFVuaXRzJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6
ZWQiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSA9IDUwIiwgIjUwIik7CitzaG91bGRCZSgiYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjUwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiNTBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlw
ZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
VHJ5IG1vZGlmaXlpbmcgdGhlIHJlYWRvbmx5ICd1bml0VHlwZScsIG5lZWRzIHRvIGZhaWwiKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS51bml0VHlwZSA9IFNWR0FuZ2xlLlNWR19BTkdMRVRU
WUVfUkFEIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9ERUciKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIHNldHRpbmcgdmFsaWQgJ3Zh
bHVlSW5TcGVjaWZpZWRVbml0cycgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWUnIGFuZCAn
dmFsdWVBc1N0cmluZycgYXJlIHN5bmNocm9uaXplZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
SW5TcGVjaWZpZWRVbml0cyA9IDEwMCIsICIxMDAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIs
ICIxMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIx
MDBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVU
WVBFX0RFRyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgc2V0dGluZyB2YWxpZCAndmFs
dWVBc1N0cmluZycgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWUnIGFuZCAndmFsdWVJblNw
ZWNpZmllZFVuaXRzJyBhcmUgc3luY2hyb25pemVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMjAwZ3JhZCciLCAiMjAwZ3JhZCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIyMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiYW5nbGUudmFsdWUudG9GaXhlZCgxKSIsICIxODAuMCIpOworc2hvdWxkQmUoImFuZ2xl
LnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiTm93IGNvbnZlcnQgdGhlIEdSQUQgdmFsdWUgaW50byBhIFJBRCB2YWx1ZSwgYW5k
IGFzc3VyZSB0aGF0IGFsbCBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBzeW5jaHJvbml6ZWQiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5T
VkdfQU5HTEVUWVBFX1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWUu
dG9GaXhlZCgxKSIsICIxODAuMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhlZCg1KSIsIE1hdGguUEkudG9GaXhlZCg1KSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCBNYXRoLlBJLnRvRml4ZWQo
NSkgKyAicmFkIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9SQUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIk5vdyB0cnkgY29udmVydGluZyB0
aGUgUkFEIHZhbHVlIGludG8gYW4gdW5rbm93biB2YWx1ZSwgdGhhdCBzaG91bGQgZmFpbCBhbmQg
dGhyb3ciKTsKK3Nob3VsZFRocm93KCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdB
bmdsZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFu
Z2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAiMTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
YW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkiLCBNYXRoLlBJLnRvRml4ZWQo
NSkpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgTWF0aC5Q
SS50b0ZpeGVkKDUpICsgInJhZCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfUkFEIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJOb3cgY29udmVy
dCB0aGUgUkFEIHZhbHVlIGludG8gYSBERUcgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJv
cGVydGllcyBoYXZlIGJlZW4gc3luY2hyb25pemVkIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcpIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAiMTgwLjAi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRv
Rml4ZWQoMSkiLCAiMTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVB
c1N0cmluZyIsICIxODBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71659</attachid>
            <date>2010-10-23 16:26:07 -0700</date>
            <delta_ts>2010-10-24 02:33:40 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>SVGAngle.patch</filename>
            <type>text/plain</type>
            <size>84527</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMTAtMjMgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdBbmdsZSB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0LCByZWltcGxlbWVudCBpdCBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzkKKworICAgICAgICBSZXdyaXRlIFNWR0FuZ2xlIHRv
IHVzZSB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25jZXB0LCBhbmQgY29uc3VtZSBtdWNo
IGxlc3MgbWVtb3J5LgorICAgICAgICBEb3duIGZyb20gdHdvIGZsb2F0cywgb25lIHN0cmluZyBh
bmQgYW4gdXNob3J0IHRvIG9uZSBmbG9hdCBhbmQgb25lIHVzaG9ydC4gU3luY2hyb25pemUgdmFs
dWUvdmFsdWVJblNwZWNpZmllZFVuaXRzL3ZhbHVlQXNTdHJpbmcgb24gZGVtYW5kLgorCisgICAg
ICAgIEFkZGluZyBhbiBleHRlbnNpdmUgU1ZHQW5nbGUgdGVzdCwgdGhhdCByZXF1aXJlZCB0byBp
bXBsZW1lbnQgJ1N0cmljdFR5cGVDaGVja2luZycgZm9yIGF0dHJpYnV0ZSBzZXR0ZXJzICh3YXMg
b25seSBpbXBsZW1lbnRlZCBpbiBWOC9KU0MgZm9yIGZ1bmN0aW9uIGNhbHMgc28gZmFyKS4KKwor
ICAgICAgICBUZXN0OiBzdmcvZG9tL1NWR0FuZ2xlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBBZGQgU1ZHQW5pbWF0ZWRBbmdsZS5oIHRvIGJ1aWxkLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTogU3BsaXQgSXNQcmltaXRpdmVUeXBlIGluIElzUHJpbWl0
aXZlVHlwZSBhbmQgSXNOdW1lcmljVHlwZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbTogSW1wbGVtZW50ICdTdHJpY3RUeXBlQ2hlY2tpbmcnIGZvciBzZXR0
ZXJzIGFuZCByZWNvZ25pemUgU1ZHQW5nbGUgYXMgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiB0eXBl
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06IERpdHRv
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBEaXR0by4K
KyAgICAgICAgKiBzdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaDogUmVt
b3ZlIFNWR0FuZ2xlIGhhbmRsaW5nLgorICAgICAgICAqIHN2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oOiBSZW1vdmUgU1ZHQW5pbWF0ZWRBbmdsZSBoYW5kbGluZy4KKyAgICAgICAg
KiBzdmcvU1ZHQW5nbGUuY3BwOiBSZXdyaXRlLCB0byBjb25zdW1lIGxlc3MgbWVtb3J5IGFuZCB0
byBvcGVyYXRlIG1vcmUgZWZmaWNpZW50LgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOiBEaXR0
by4KKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaWRsOiBBZGQgJ1N0cmljdFR5cGVDaGVja2luZycg
dG8gdGhlIHZhbHVlL3ZhbHVlSW5TcGVjaWZpZWRVbml0cyBtZXRob2RzLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZEFuZ2xlLmg6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFu
Z2xlLmlkbDogTWFyayBhcyBbU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0uCisgICAgICAgICogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZygpIG5vdyB0
YWtlcyBhbiBFeGNlcHRpb25Db2RlIHBhcmFtZXRlci4KKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOiBzL0FOSU1BVEVEX1BST1BFUlRZL0FOSU1BVEVEX1BST1BFUlRZX05FVy8gZm9y
IHRoZSBTVkdBbmdsZSB0eXBlLgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXIuaWRsOiBSZW1vdmUg
ZXhjZXB0aW9uIHNldHRlciBleGNlcHRpb25zLCB3aGljaCBhcmVuJ3QgbmVlZGVkLiBBcyB3ZSdy
ZSBub3cgZ2VuZXJhdGluZyBleGNlcHRpb24gaGFuZGxlcnMgaW4gdGhlIGJpbmRpbmdzLCBpdCB3
b3VsZCBsZWFkIHRvIGNvbXBpbGUgZXJyb3JzLgorICAgICAgICAqIHN2Zy9TVkdQb2ludC5pZGw6
IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdSZWN0LmlkbDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuaWRsOiBSZW1vdmUgb2Jzb2xldGUgW1NWR0xpdmVQcm9wZXJ0eV0gZmxh
Zy4KKwogMjAxMC0xMC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzAzODUpCisr
KyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDI3LDYgKzMwMjcs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggXAogCVdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmggXAorCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCBc
CiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOTU4LDYgKzM5NTgsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzU3LDYgKzIzNTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmdsZS5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKICAgICBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwK
ICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTE2Nyw2ICs2MTE2NywxMCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRBbmdsZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkTGVuZ3RoLmgiDQogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBAQAogCQkwODczNUZCOTEw
RTkxMjMyMDA2RDZGQUQgLyogU1ZHTWFya2VyTGF5b3V0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8q
IFNWR01hcmtlckxheW91dEluZm8uaCAqLzsgfTsKIAkJMDg3NDRCQUEwRURCN0Q4NjAwNEM5RTYz
IC8qIFdNTE9uRXZlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4NzQ0QkE5MEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxl
bWVudC5jcHAgKi87IH07CiAJCTA4NzQ0QkFFMEVEQjdEOTIwMDRDOUU2MyAvKiBXTUxPbkV2ZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg3NDRCQUQwRURCN0Q5MjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi87IH07CisJ
CTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdCODQ5NTEyNzJDRUM3MDBB
MTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA4N0Q5N0JGMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BP
RExpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4N0Q5N0JFMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BPRExpc3RDdXN0b20uaCAqLzsg
fTsKIAkJMDg3RkZBMEYwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdG
RkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCAqLzsg
fTsKIAkJMDg3RkZBMTAwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3RkZB
MEUwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVudC5oICovOyB9OwpA
QCAtNjE1Myw2ICs2MTU0LDcgQEAKIAkJMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8qIFNWR01h
cmtlckxheW91dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFy
a2VyTGF5b3V0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODc0NEJBOTBF
REI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV01MT25FdmVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODc0NEJBRDBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MT25FdmVudEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg3Qjg0OTUxMjcyQ0VDNzAwQTE0
NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRBbmdsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODdE
OTdCRTEwRkI4RDc3MDBDMDA4NzQgLyogSlNTVkdQT0RMaXN0Q3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUE9ETGlzdEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODdGRkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRM
ZWdlbmRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdN
TEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4N0ZGQTBFMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkzNSw2ICsxNTkzNyw3IEBACiAJ
CQkJQjIyMjc3RTMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3N0U0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc3RTUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaWRsICovLAorCQkJCTA4N0I4NDk1MTI3MkNFQzcwMEExNDQxNyAvKiBTVkdBbmlt
YXRlZEFuZ2xlLmggKi8sCiAJCQkJQjIyMjc3RTYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkQW5nbGUuaWRsICovLAogCQkJCUIyMjI3N0U3MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZEJvb2xlYW4uaWRsICovLAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLywKQEAgLTIxMTQ1LDYgKzIxMTQ4LDcgQEAKIAkJCQkw
ODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJl
dmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Iu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBT
YW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICMgQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQyLDIwICs0MywyMiBAQCBteSAkY29kZUdlbmVy
YXRvciA9IDA7CiAKIG15ICR2ZXJib3NlID0gMDsKIAotbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0g
KCJpbnQiID0+IDEsICJzaG9ydCIgPT4gMSwgImxvbmciID0+IDEsICJsb25nIGxvbmciID0+IDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgInVuc2lnbmVkIGludCIgPT4gMSwgInVuc2lnbmVk
IHNob3J0IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9
PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICJmbG9hdCIgPT4gMSwgImRvdWJsZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
Ym9vbGVhbiIgPT4gMSwgInZvaWQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkRh
dGUiID0+IDEpOworbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAxLCAic2hvcnQiID0+
IDEsICJsb25nIiA9PiAxLCAibG9uZyBsb25nIiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAidW5zaWduZWQgaW50IiA9PiAxLCAidW5zaWduZWQgc2hvcnQiID0+IDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9
PiAxLAorICAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQiID0+IDEsICJkb3VibGUiID0+IDEp
OworCitteSAlcHJpbWl0aXZlVHlwZUhhc2ggPSAoICJib29sZWFuIiA9PiAxLCAidm9pZCIgPT4g
MSwgIkRhdGUiID0+IDEpOwogCiBteSAlcG9kVHlwZUhhc2ggPSAoIlNWR051bWJlciIgPT4gMSwg
IlNWR1RyYW5zZm9ybSIgPT4gMSk7Ci1teSAlcG9kVHlwZXNXaXRoV3JpdGFibGVQcm9wZXJ0aWVz
SGFzaCA9ICgiU1ZHQW5nbGUiID0+IDEsICJTVkdNYXRyaXgiID0+IDEsICJTVkdQb2ludCIgPT4g
MSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9PiAxKTsKK215ICVw
b2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEsICJT
VkdQb2ludCIgPT4gMSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9
PiAxKTsKIG15ICVzdHJpbmdUeXBlSGFzaCA9ICgiRE9NU3RyaW5nIiA9PiAxLCAiQXRvbWljU3Ry
aW5nIiA9PiAxKTsKIAogbXkgJW5vblBvaW50ZXJUeXBlSGFzaCA9ICgiRE9NVGltZVN0YW1wIiA9
PiAxLCAiQ29tcGFyZUhvdyIgPT4gMSwgIlNWR1BhaW50VHlwZSIgPT4gMSk7CiAKLW15ICVzdmdO
ZXdTdHlsZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkTGVuZ3RoIiA9PiAxLCAiU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxKTsKK215ICVzdmdUeXBlTmVlZGluZ1RlYXJPZmZIYXNo
ID0gKCJTVkdMZW5ndGgiID0+IDEsICJTVkdBbmdsZSIgPT4gMSk7CisKK215ICVzdmdOZXdTdHls
ZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJTVkdBbmltYXRl
ZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdCIgPT4gMSk7CiAKIG15ICVzdmdB
bmltYXRlZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRC
b29sZWFuIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkRW51
bWVyYXRpb24iID0+IDEsICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsCkBAIC0yODMsNiArMjg2
LDggQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiB9CiAKICMgSGVscGVycyBmb3IgYWxsIENvZGVHZW5l
cmF0b3IqKioucG0gbW9kdWxlcworCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkg
b25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3
IHNjaGVtZS4KIHN1YiBJc1BvZFR5cGUKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0z
MDIsMTIgKzMwNywyMiBAQCBzdWIgSXNQb2RUeXBlV2l0aFdyaXRlYWJsZVByb3BlcnRpZXMKICAg
ICByZXR1cm4gMDsKIH0KIAorc3ViIElzTnVtZXJpY1R5cGUKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAxIGlmICRudW1lcmlj
VHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAwOworfQorCiBzdWIgSXNQcmltaXRpdmVUeXBl
CiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKICAg
ICByZXR1cm4gMSBpZiAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAxIGlm
ICRudW1lcmljVHlwZUhhc2h7JHR5cGV9OwogICAgIHJldHVybiAwOwogfQogCkBAIC0zMjksNiAr
MzQ0LDE2IEBAIHN1YiBJc05vblBvaW50ZXJUeXBlCiAgICAgcmV0dXJuIDA7CiB9CiAKKworc3Vi
IElzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gMSBpZiAkc3ZnVHlwZU5lZWRpbmdUZWFy
T2ZmSGFzaHskdHlwZX07CisgICAgcmV0dXJuIDA7Cit9CisKICMgRklYTUU6IFRoaXMgbWV0aG9k
IHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVy
dGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUKIHsK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2
aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsMTUgKzMyNCwxOCBAQCBzdWIgQWRkQ2xhc3NGb3J3
YXJkSWZOZWVkZWQKICAgICB9CiB9CiAKKyMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdh
eSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBu
ZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyCiB7CisgICAg
IyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlbW92ZWQsIGFzIHNvb24gdGhlIFBPRFR5
cGUgY29uY2VwdCBpcyBnb25lLCBhbmQgYWxsIFNWRyBkYXRhdHlwZXMgdXNlIHRoZSBuZXcgc3R5
bGUgSlMgYmluZGluZ3MuCisKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogCiAgICAg
cmV0dXJuIDAgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvOwogICAgIHJldHVybiAwIGlm
ICRpbXBsQ2xhc3NOYW1lID1+IC9FbGVtZW50LzsKICAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVy
YXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSk7CiAKLSAgICBt
eSBAbm9Db250ZXh0TmVlZGVkID0gKCJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3RoTGlzdCIsICJTVkdQ
YWludCIsICJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZlbnQiKTsKKyAgICBt
eSBAbm9Db250ZXh0TmVlZGVkID0gKCJTVkdBbmdsZSIsICJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3Ro
TGlzdCIsICJTVkdQYWludCIsICJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZl
bnQiKTsKICAgICBmb3JlYWNoIChAbm9Db250ZXh0TmVlZGVkKSB7CiAgICAgICAgIHJldHVybiAw
IGlmICRpbXBsQ2xhc3NOYW1lIGVxICRfOwogICAgIH0KQEAgLTE4MDIsMjEgKzE4MDUsNTMgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2Jq
ZWN0KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRpbXBsVHlwZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxUeXBlKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5z
ZXR0ZXJFeGNlcHRpb25zfTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRm9yIHNl
dHRlcnMgd2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3Mg
dHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxs
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkYXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlzT2JqZWN0KCkpIHtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIH07XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmlzTnVtYmVyKCkpIHtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoIUlzTmF0aXZl
VHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAh
dmFsdWUuaW5oZXJpdHMoJkpTJHthcmdUeXBlfTo6c19pbmZvKSkge1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG5hdGl2ZVZhbHVl
ID0gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yUG9kVHlwZSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3Zn
UHJvcGVydHlPclBvZFR5cGUgcG9kSW1wKCppbXApO1xuIikgaWYgJHBvZFR5cGU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRzdmdQcm9w
ZXJ0eU9yUG9kVHlwZSYgcG9kSW1wID0gaW1wLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIikgaWYg
ISRwb2RUeXBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3Bl
cnR5T3JQb2RUeXBlIGVxICJmbG9hdCIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVy
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBwb2RJbXAgPSAiIC4gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwg
InZhbHVlIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXAgPSAkbmF0aXZlVmFsdWU7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHBvZEltcC5zZXQkaW1wbFNl
dHRlckZ1bmN0aW9uTmFtZSgiIC4gSlNWYWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZSwgInZhbHVlIikgLiAiKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wLnNldCRpbXBsU2V0dGVyRnVuY3Rpb25O
YW1lKCRuYXRpdmVWYWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRp
b25zfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGF0
dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaW1wLT5jb21taXRDaGFuZ2UocG9kSW1wLCBjYXN0ZWRUaGlzKTtcbiIpIGlmICRwb2RU
eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpbXAtPmNvbW1pdENoYW5nZSgpO1xuIikgaWYgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPnNldHRlckV4
Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFlYylcbiIpOyAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaW1wLT5j
b21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpbXAtPmNvbW1pdENoYW5nZSgpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJHNldHRlckV4cHJlc3Npb25QcmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhw
cmVzc2lvblByZWZpeChcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUp
OwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNl
cHRpb25zfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaW1wLT4kc2V0dGVyRXhwcmVzc2lvblByZWZpeCRuYXRpdmVWYWx1ZSIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgZWMiKSBp
ZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIik7XG4iKTsKQEAgLTIwMDgsOCArMjA0Myw5
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lID0gJHBhcmFtZXRlci0+bmFtZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0
cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRhcmdUeXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPFhQYXRo
TlNSZXNvbHZlcj4gY3VzdG9tUmVzb2x2ZXI7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0g
dG9YUGF0aE5TUmVzb2x2ZXIoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFyZXNv
bHZlcikge1xuIik7CkBAIC0yMDE5LDEwICsyMDU1LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJlc29sdmVyID0gY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYWxsYmFjayJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxiYWNr
Q2xhc3NOYW1lID0gR2V0Q2FsbGJhY2tDbGFzc05hbWUoJHBhcmFtZXRlci0+dHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxiYWNrQ2xhc3NOYW1lID0gR2V0Q2FsbGJh
Y2tDbGFzc05hbWUoJGFyZ1R5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IiRjYWxsYmFja0NsYXNzTmFtZS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwi
fSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBSZWZQdHI8IiAuICRwYXJhbWV0ZXItPnR5cGUuICI+ICRuYW1lO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwk
YXJnVHlwZT4gJG5hbWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5k
ZXggJiYgIWV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpLmlzTnVsbCgpICYmICFleGVjLT5hcmd1
bWVudCgkYXJnc0luZGV4KS5pc1VuZGVmaW5lZCgpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmICghZXhlYy0+YXJn
dW1lbnQoJGFyZ3NJbmRleCkuaXNPYmplY3QoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTtcbiIpOwpAQCAtMjAzNSwyMSArMjA3MSwyMyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZ
UEVfTUlTTUFUQ0hfRVJSKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCIgLiAkcGFyYW1ldGVyLT50eXBlIC4gIj4gJG5h
bWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50
KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwk
YXJnVHlwZT4gJG5hbWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4
ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZvciBmdW5jdGlvbnMg
d2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBk
b2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4
KSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5cGUpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVlfS5pc1VuZGVm
aW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pbmhlcml0cygmSlMke2FyZ1R5cGV9OjpzX2lu
Zm8pKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklz
U3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmlu
ZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNTdHJpbmcoKSAmJiAhJHthcmdWYWx1ZX0uaXNP
YmplY3QoKSlcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5
cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHth
cmdWYWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNOdW1iZXIoKSlc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJGFyZ1R5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdW
YWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1ZX0uaW5oZXJpdHMoJkpTJHth
cmdUeXBlfTo6c19pbmZvKSlcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0
ZXIpIC4gIiAkbmFtZSA9ICIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFy
Z3VtZW50KCRhcmdzSW5kZXgpIikgLiAiO1xuIik7CkBAIC0yMDY3LDEyICsyMTA1LDIxIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBD
aGVjayBpZiB0aGUgdHlwZSBjb252ZXJzaW9uIHN1Y2NlZWRlZC4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVO
ZWVkaW5nVGVhck9mZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQv
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghJG5hbWUpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlT
TUFUQ0hfRVJSKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblN0cmlu
ZyAuPSAiLCAiIGlmICRwYXJhbUluZGV4OwogCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHBhcmFtZXRlci0+dHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkYXJnVHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gIiRuYW1lLmdldCgpIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9m
ZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkbmFtZS0+cHJvcGVydHlS
ZWZlcmVuY2UoKSI7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblN0cmluZyAuPSAkbmFtZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KQEAgLTIzNzEsNyArMjQxOCwxNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50
IC4gIiRmdW5jdGlvblN0cmluZztcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGlu
ZGVudCAuICJzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikgaWYgQHskZnVuY3Rpb24tPnJh
aXNlc0V4Y2VwdGlvbnN9OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJp
bXAtPmNvbW1pdENoYW5nZShwb2RJbXAsIGNhc3RlZFRoaXMpO1xuIikgaWYgJHBvZFR5cGU7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gImltcC0+Y29tbWl0Q2hhbmdlKCk7
XG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlOworCisgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBl
KSB7CisgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFlYylcbiIp
OyAKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgaW1w
LT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJpbXAtPmNvbW1pdENoYW5nZSgpO1xu
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgJGluZGVudCAuICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5kZW50
IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNzTmFtZSwgIiIsICRmdW5jdGlvblN0cmluZywgImNhc3Rl
ZFRoaXMiKSAuICI7XG4iKTsKQEAgLTI0MTMsNyArMjQ2OSw3IEBAIG15ICVuYXRpdmVUeXBlID0g
KAogICAgICJOb2RlRmlsdGVyIiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+IiwKICAgICAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAogICAg
ICJJREJLZXkiID0+ICJSZWZQdHI8SURCS2V5PiIsCi0gICAgIlNWR0FuZ2xlIiA9PiAiU1ZHQW5n
bGUiLAorICAgICJTVkdBbmdsZSIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZT4qIiwK
ICAgICAiU1ZHTGVuZ3RoIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aD4qIiwKICAg
ICAiU1ZHTWF0cml4IiA9PiAiQWZmaW5lVHJhbnNmb3JtIiwKICAgICAiU1ZHTnVtYmVyIiA9PiAi
ZmxvYXQiLApAQCAtMjU2NywxMiArMjYyMyw2IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAg
ICAgfQogICAgIH0gCiAKLSAgICBteSAkc3ZnTGl2ZVByb3BlcnR5VHlwZSA9ICRzaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXZlUHJvcGVydHkifTsKLSAgICBpZiAoJHN2Z0xp
dmVQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAx
OwotICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgU1ZHUHJvcGVydHlU
ZWFyT2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCkpIjsKLSAgICB9Ci0KICAgICBpZiAo
JHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7
IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDE7CiAgICAgfQpAQCAtMjYxMiwxMyAr
MjY2MiwxNSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgIHJldHVybiAidG9KU05ld2x5
Q3JlYXRlZChleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CiAgICAg
fQogCi0gICAgIyBDb252ZXJ0IGZyb20gYWJzdHJhY3QgU1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBl
LCBzbyB0aGUgcmlnaHQgdG9KUygpIG1ldGhvZCBjYW4gYmUgaW52b2tlZC4KICAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGltcGxDbGFzc05hbWUpKSB7
CisgICAgICAgICMgQ29udmVydCBmcm9tIGFic3RyYWN0IFNWR1Byb3BlcnR5IHRvIHJlYWwgdHlw
ZSwgc28gdGhlIHJpZ2h0IHRvSlMoKSBtZXRob2QgY2FuIGJlIGludm9rZWQuCiAgICAgICAgIGlm
ICgkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CiAgICAgICAgICAgICAkdmFsdWUgPSAic3Rh
dGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5VGVhck9mZjwkdHlwZT4qPigkdmFsdWUpIjsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDxTVkdQcm9wZXJ0
eVRlYXJPZmY8JHR5cGU+Kj4oJHZhbHVlKSI7CiAgICAgICAgIH0KKyAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGltcGxD
bGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgICAgICAkdmFsdWUgPSAiU1ZHUHJvcGVydHlUZWFy
T2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1ZSkiOwogICAgIH0KIAogICAgIHJldHVybiAidG9KUyhl
eGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiA3MDM4
NSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29y
a2luZyBjb3B5KQpAQCAtNiw2ICs2LDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4KKyMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xMzY5LDggKzEzNzAsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewogICAgICAgICAgICAgICAgICAgICAkZ2V0
dGVyQ29udGVudEhlYWQgPSAiJGdldHRlckV4cHJlc3Npb25QcmVmaXgiOwogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlUeXBlV2l0aE5hbWVz
cGFjZSYgcG9kSW1wbCA9IElNUEwtPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wbC4kY29yZVNldHRlck5h
bWUoJGFyZyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGVj
ID0gJGhhc1NldHRlckV4Y2VwdGlvbiA/ICIsIGVjIiA6ICIiOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZXhjZXB0aW9uSW5pdFxuIikgaWYgJGhhc1NldHRl
ckV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cG9kSW1wbC4kY29yZVNldHRlck5hbWUoJGFyZyRlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRoYXNTZXR0ZXJFeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZWMpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2Vw
dGlvblJhaXNlT25FcnJvclxuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+Y29t
bWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICRn
ZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIElNUEwtPiRjb3JlU2V0dGVyTmFtZSgk
YXJnKTtcbiIpOwpAQCAtMTUwMyw2ICsxNTEyLDM1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAiZWMiKSBpZiAkcmFpc2Vz
RXhjZXB0aW9ucyBhbmQgISgkc3ZnTWF0cml4Um90YXRlRnJvbVZlY3RvciB8fCAkc3ZnTWF0cml4
SW52ZXJzZSk7CiAgICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgIjAgLyogRklYTUUg
Ki8iKSBpZiAkc3ZnTGVuZ3RoQ29udmVydFRvU3BlY2lmaWVkVW5pdHM7IAorCisgICAgICAgICAg
ICAjIEhhbmRsZSBhcmd1bWVudHMgdGhhdCBhcmUgJ1NWR1Byb3BlcnR5JyBiYXNlZCAoU1ZHQW5n
bGUvU1ZHTGVuZ3RoKS4gV2UgbmVlZCB0byBjb252ZXJ0IGZyb20gU1ZHUHJvcGVydHlUZWFyT2Zm
PFR5cGU+KiB0byBUeXBlLAorICAgICAgICAgICAgIyB0byBiZSBhYmxlIHRvIGNhbGwgdGhlIGRl
c2lyZWQgV2ViQ29yZSBmdW5jdGlvbi4gSWYgdGhlIGNvbnZlcnNpb24gZmFpbHMsIHdlIGNhbid0
IGV4dHJhY3QgVHlwZSBhbmQgbmVlZCB0byByYWlzZSBhbiBleGNlcHRpb24uCisgICAgICAgICAg
ICBteSAkY3VycmVudFBhcmFtZXRlciA9IC0xOworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFy
YW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICRjdXJyZW50
UGFyYW1ldGVyKys7CisKKyAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5u
YW1lOworICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlw
TW9kdWxlKCRwYXJhbS0+dHlwZSk7CisgICAgICAgICAgICAgICAgbmV4dCBpZiBub3QgJGNvZGVH
ZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpZGxUeXBlKSBvciAkaW1wbENsYXNz
TmFtZSA9fiAvTGlzdCQvOworCisgICAgICAgICAgICAgICAgbXkgJGltcGxHZXR0ZXIgPSBHZXRP
YmpDVHlwZUdldHRlcigkcGFyYW1OYW1lLCAkaWRsVHlwZSk7CisgICAgICAgICAgICAgICAgbXkg
JGlkbFR5cGVXaXRoTmFtZXNwYWNlID0gKCRpZGxUeXBlIGVxICJmbG9hdCIpID8gIiRpZGxUeXBl
IiA6ICJXZWJDb3JlOjokaWRsVHlwZSI7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlv
bkNvbnRlbnQsICIgICAgV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPCRpZGxUeXBlV2l0aE5h
bWVzcGFjZT4qICR7cGFyYW1OYW1lfUNvcmUgPSAkaW1wbEdldHRlcjtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoISR7cGFyYW1OYW1lfUNvcmUp
IHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IFdlYkNvcmU6OlRZUEVfTUlTTUFUQ0hfRVJSO1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICAkZXhj
ZXB0aW9uUmFpc2VPbkVycm9yXG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
ZXEgInZvaWQiKSB7IAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQs
ICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5pbDtc
biIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNv
bnRlbnQsICIgICAgfVxuIik7CisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIHBhcmFt
dGVyIGNvcmUoKSBnZXR0ZXIsIGJ5IHRoZSBjYWNoZWQgdmFyaWFibGUuCisgICAgICAgICAgICAg
ICAgc3BsaWNlKEBwYXJhbWV0ZXJOYW1lcywgJGN1cnJlbnRQYXJhbWV0ZXIsIDEsICIke3BhcmFt
TmFtZX1Db3JlLT5wcm9wZXJ0eVJlZmVyZW5jZSgpIik7CisgICAgICAgICAgICB9CisKICAgICAg
ICAgICAgIG15ICRjb250ZW50ID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9u
TmFtZSkgLiAiKCIgLiBqb2luKCIsICIsIEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7IAogCiAgICAg
ICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewpAQCAtMTU1NCw5ICsxNTkyLDggQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJmb28i
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoQ29udmVyc2lvbk5l
ZWRlZCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
bXkgJHN2Z0xpdmVQcm9wZXJ0eSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiU1ZHTGl2ZVByb3BlcnR5In07Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3Zn
TGl2ZVByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJraXQo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPFdlYkNvcmU6OiIgLiAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZSAuICI+OjpjcmVhdGUoJGNvbnRlbnQpLmdldCgpKSI7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykg
eworICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAia2l0KFdURjo6Z2V0UHRyKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjxXZWJDb3JlOjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUgLiAiPjo6Y3JlYXRlKCRjb250ZW50KSkpIjsKICAgICAgICAgICAgICAgICAgICAg
fSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
dHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gImtpdCgkY29udGVu
dCkiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAg
LTYsNiArNiw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgog
IyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4KICMgQ29weXJpZ2h0
IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg3LDYgKzg4LDcgQEAgc3ViIGZpbmlzaAogfQogCiAjIFdv
cmthcm91bmQgZm9yIFY4IGJpbmRpbmdzIGRpZmZlcmVuY2Ugd2hlcmUgUkdCQ29sb3IgaXMgbm90
IGEgUE9EIHR5cGUuCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwg
U1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4K
IHN1YiBJc1BvZFR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwpAQCAtOTM2LDYgKzkzOCwy
OCBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgInN0YXRpYyB2b2lkICR7YXR0ck5hbWV9QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pXG57XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIElO
Q19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFtZS4kYXR0ck5hbWUuX3NldFwiKTtcbiIpOwogCisg
ICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0
IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAjIGEg
VHlwZUVycm9yIGlzIHRocm93biBpbnN0ZWFkIG9mIGNhc3RpbmcgdG8gbnVsbC4KKyAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNo
ZWNraW5nIn0pIHsKKyAgICAgICAgbXkgJGFyZ1R5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgk
YXR0cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkgJiYgIXZhbHVlLT5Jc1N0cmluZygp
ICYmICF2YWx1ZS0+SXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm47XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRhcmdUeXBlKSkgeworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxs
KHZhbHVlKSAmJiAhdmFsdWUtPklzTnVtYmVyKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOworICAg
ICAgICB9IGVsc2lmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAm
JiAhVjgke2FyZ1R5cGV9OjpIYXNJbnN0YW5jZSh2YWx1ZSkpIHtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0
dXJuO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIp
OworICAgICAgICB9CisgICAgfQorCiAgICAgbXkgJGlzUG9kVHlwZSA9IElzUG9kVHlwZSgkaW1w
bENsYXNzTmFtZSk7CiAgICAgbXkgJHN2Z1Byb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07CiAgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5
cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsK
QEAgLTEwNTAsNyArMTA3NCwxMiBAQCBFTkQKICAgICBpZiAoJGlzUG9kVHlwZSkgewogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHdyYXBwZXItPmNvbW1pdENoYW5nZSgqaW1w
LCBWOFByb3h5OjpzdmdDb250ZXh0KHdyYXBwZXIpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRzdmdQ
cm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB3cmFw
cGVyLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFlYylcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlci0+Y29t
bWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgd3JhcHBlci0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAg
ICAgfQogICAgIH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBs
Q2xhc3NOYW1lKSkgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdFbGVtZW50LmgifSA9IDE7
CiAKQEAgLTEzNzcsMTMgKzE0MDYsMTggQEAgRU5ECiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkg
ewogICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJhcmdzWyRwYXJhbUluZGV4XSI7CiAg
ICAgICAgICAgICAgICAgbXkgJGFyZ1R5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1l
dGVyKTsKLSAgICAgICAgICAgICAgICBpZiAoSXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5M
ZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYm
ICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNlKCRhcmdWYWx1ZSkpIHtcbiIpOworICAgICAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYg
ISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAg
IFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5k
ZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYmICEk
e2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAk
cGFyYW1JbmRleCAmJiAhaXNVbmRlZmluZWRPck51bGwoJGFyZ1ZhbHVlKSAmJiAhJHthcmdWYWx1
ZX0tPklzTnVtYmVyKCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFp
c1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNl
KCRhcmdWYWx1ZSkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CkBAIC0yNzExLDYgKzI3NDUsMTIgQEAgc3ViIEdl
bmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKIAogICAgICAgICBpZiAoJHBhcmFtZXRlci0+dHlw
ZSBlcSAiTm9kZUZpbHRlciIgfHwgJHBhcmFtZXRlci0+dHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVy
IikgewogICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkcGFyYW1OYW1lLmdldCgpIjsK
KyAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2Zm
KCRwYXJhbWV0ZXItPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewor
ICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIkcGFyYW1OYW1lLT5wcm9wZXJ0eVJlZmVy
ZW5jZSgpIjsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJpZiAoISRwYXJhbU5h
bWUpIHtcbiI7CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihXZWJDb3JlOjpUWVBFX01JU01BVENIX0VSUik7XG4iOworICAgICAg
ICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIn1cbiI7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gJHBhcmFtTmFtZTsK
ICAgICAgICAgfQpAQCAtMjc3NSwxMiArMjgxNSwxMSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNh
bGxTdHJpbmcoKQogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlwZVdy
YXBwZXIoJHJldHVyblR5cGUsICRyZXR1cm4pIC4gIjtcbiI7CiAgICAgICAgICRyZXR1cm4gPSAi
d3JhcHBlciI7CiAgICAgfQotICAgIAotICAgIG15ICRzdmdMaXZlUHJvcGVydHlUeXBlID0gJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXZlUHJvcGVydHki
fTsKLSAgICBpZiAoJHN2Z0xpdmVQcm9wZXJ0eVR5cGUpIHsKKworICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpIGFuZCBub3QgJGltcGxD
bGFzc05hbWUgPX4gL0xpc3QkLykgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCRyZXR1cm5U
eXBlLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5o
In0gPSAxOwotICAgICAgICByZXR1cm4gJGluZGVudCAuICJyZXR1cm4gdG9WOChTVkdQcm9wZXJ0
eVRlYXJPZmY8JHJldHVyblR5cGU+OjpjcmVhdGUoJHJldHVybikuZ2V0KCkpO1xuIjsKKyAgICAg
ICAgcmV0dXJuICRpbmRlbnQgLiAicmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoU1ZHUHJvcGVydHlU
ZWFyT2ZmPCRyZXR1cm5UeXBlPjo6Y3JlYXRlKCRyZXR1cm4pKSk7XG4iOwogICAgIH0KIAogICAg
IG15ICRnZW5lcmF0ZWRTVkdDb250ZXh0UmV0cmlldmFsID0gMDsKQEAgLTI5MDIsNyArMjk0MSw3
IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJGbG9hdFBvaW50IiBpZiAkdHlwZSBl
cSAiU1ZHUG9pbnQiOwogICAgIHJldHVybiAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAi
U1ZHTWF0cml4IjsKICAgICByZXR1cm4gIlNWR1RyYW5zZm9ybSIgaWYgJHR5cGUgZXEgIlNWR1Ry
YW5zZm9ybSI7Ci0gICAgcmV0dXJuICJTVkdBbmdsZSIgaWYgJHR5cGUgZXEgIlNWR0FuZ2xlIjsK
KyAgICByZXR1cm4gIlJlZlB0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGU+ID4iIGlmICR0
eXBlIGVxICJTVkdBbmdsZSI7CiAgICAgcmV0dXJuICJSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR0xlbmd0aD4gPiIgaWYgJHR5cGUgZXEgIlNWR0xlbmd0aCI7CiAgICAgcmV0dXJuICJTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aExpc3Q+KiIgaWYgJHR5cGUgZXEgIlNWR0xlbmd0
aExpc3QiOwogICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJTVkdOdW1iZXIiOwpAQCAt
Mjk1Niw3ICsyOTk1LDYgQEAgc3ViIEJhc2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uCiAgICAgbXkg
JHNpZ25hdHVyZSA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUo
JHNpZ25hdHVyZSk7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZHQW5nbGUiOwogICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgIHJldHVybiAxIGlmICR0eXBl
IGVxICJTVkdQb2ludCI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8iOwpAQCAtMzI4MCw2ICszMzE4LDcgQEAgc3ViIFJldHVybk5hdGl2ZVRvSlNWYWx1
ZQogICAgIHJldHVybiAicmV0dXJuIHRvVjgoJHZhbHVlKSI7CiB9CiAKKyMgRklYTUU6IFRoaXMg
bWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUg
Y29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlw
ZVdyYXBwZXIgewogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlID0gc2hpZnQ7
CkBAIC0zMzM0LDE4ICszMzczLDI1IEBAIHN1YiBXcml0ZURhdGEKICAgICB9CiB9CiAKKyMgRklY
TUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVy
dGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyCiB7CiAgICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKIAog
ICAgIHJldHVybiAwIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5pbWF0ZWRUeXBl
KCRpbXBsQ2xhc3NOYW1lKTsKICAgICBpZiAoJGltcGxDbGFzc05hbWUgPX4gL1NWRy8gYW5kIG5v
dCAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC8pIHsKLSAgICAgICAgcmV0dXJuIDEgdW5sZXNz
ICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdQYWludC8gb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0Nv
bG9yLyBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHRG9jdW1lbnQvIG9yICRpbXBsQ2xhc3NOYW1l
ID1+IC9TVkdMZW5ndGgvIG9yICRpbXBsQ2xhc3NOYW1lID1+L1NWR0xlbmd0aExpc3QvOworICAg
ICAgICByZXR1cm4gMSB1bmxlc3MgJGltcGxDbGFzc05hbWUgPX4gL1NWR0FuZ2xlLworICAgICAg
ICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR1BhaW50LworICAgICAgICAg
ICAgICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0NvbG9yLworICAgICAgICAgICAg
ICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0RvY3VtZW50LworICAgICAgICAgICAg
ICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0xlbmd0aC8KKyAgICAgICAgICAgICAg
ICAgICAgIG9yICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdMZW5ndGhMaXN0LzsKICAgICB9CiAKICAg
ICByZXR1cm4gMDsKIH0KIAorIyBGSVhNRTogVGhpcyBtZXRob2Qgd2lsbCBnbyBhd2F5IG9uY2Ug
YWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0aWVzIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hl
bWUuCiBzdWIgR2VuZXJhdGVTVkdDb250ZXh0QXNzaWdubWVudAogewogICAgIG15ICRzcmNUeXBl
ID0gc2hpZnQ7CkBAIC0zMzU4LDYgKzM0MDQsNyBAQCBzdWIgR2VuZXJhdGVTVkdDb250ZXh0QXNz
aWdubWVudAogICAgIHJldHVybiAkcmVzdWx0OwogfQogCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3
aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRl
ZCB0byB0aGUgbmV3IHNjaGVtZS4KIHN1YiBHZW5lcmF0ZVNWR0NvbnRleHRSZXRyaWV2YWwKIHsK
ICAgICBteSAkc3JjVHlwZSA9IHNoaWZ0OwpJbmRleDogV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNW
R0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9EZXBy
ZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiA3MDM4NSkKKysrIFdl
YkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDcgKzI0LDYgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHQW5nbGUu
aCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKQEAgLTM0LDE4ICszMyw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBzdHJ1Y3Qg
RGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMgOiBwdWJsaWMgTm9uY29weWFibGUg
eyB9OwogCi0vLyBTVkdBbmltYXRlZEFuZ2xlCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgRGVwcmVjYXRl
ZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHM8U1ZHQW5nbGU+IDogcHVibGljIE5vbmNvcHlhYmxl
IHsKLSAgICB0eXBlZGVmIGNvbnN0IFNWR0FuZ2xlJiBQYXNzVHlwZTsKLSAgICB0eXBlZGVmIFNW
R0FuZ2xlIFJldHVyblR5cGU7Ci0gICAgdHlwZWRlZiBTVkdBbmdsZSBTdG9yZWRUeXBlOwotCi0g
ICAgc3RhdGljIFJldHVyblR5cGUgbnVsbCgpIHsgcmV0dXJuIFNWR0FuZ2xlKCk7IH0KLSAgICBz
dGF0aWMgUmV0dXJuVHlwZSB0b1JldHVyblR5cGUoY29uc3QgU3RvcmVkVHlwZSYgdHlwZSkgeyBy
ZXR1cm4gdHlwZTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoUGFzc1R5cGUgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KLX07Ci0KIC8vIFNWR0FuaW1hdGVkQm9v
bGVhbgogdGVtcGxhdGU8Pgogc3RydWN0IERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJh
aXRzPGJvb2w+IDogcHVibGljIE5vbmNvcHlhYmxlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL0RlcHJl
Y2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvRGVw
cmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGUuaAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3Jl
L3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw3ICsyOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgIAotICAgIGNsYXNzIFNWR0Fu
Z2xlOwogICAgIGNsYXNzIFNWR0VsZW1lbnQ7CiAgICAgY2xhc3MgU1ZHTnVtYmVyTGlzdDsKICAg
ICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOwpAQCAtMTU1LDcgKzE1NCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICB9CiAKICAgICAvLyBDb21tb24gdHlwZSBkZWZpbml0aW9ucywg
dG8gZWFzZSBJREwgZ2VuZXJhdGlvbi4KLSAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdBbmltYXRl
ZFRlbXBsYXRlPFNWR0FuZ2xlPiBTVkdBbmltYXRlZEFuZ2xlOwogICAgIHR5cGVkZWYgRGVwcmVj
YXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8Ym9vbD4gU1ZHQW5pbWF0ZWRCb29sZWFuOwogICAgIHR5
cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8aW50PiBTVkdBbmltYXRlZEVudW1l
cmF0aW9uOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8bG9uZz4g
U1ZHQW5pbWF0ZWRJbnRlZ2VyOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcAkocmV2aXNpb24gNzAzODUpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTE5LDExMSArMjAsMjE3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAKICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0Fu
Z2xlLmgiCiAKKyNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHQW5nbGU6OlNWR0FuZ2xlKCkKLSAgICA6IG1fdW5p
dFR5cGUoU1ZHX0FOR0xFVFlQRV9VTktOT1dOKQotICAgICwgbV92YWx1ZSgwKQorICAgIDogbV91
bml0VHlwZShTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEKQogICAgICwgbV92YWx1ZUluU3BlY2lm
aWVkVW5pdHMoMCkKIHsKIH0KIAorZmxvYXQgU1ZHQW5nbGU6OnZhbHVlKCkgY29uc3QKK3sKKyAg
ICBzd2l0Y2ggKG1fdW5pdFR5cGUpIHsKKyAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAg
ICAgICAgcmV0dXJuIGdyYWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICBjYXNl
IFNWR19BTkdMRVRZUEVfUkFEOgorICAgICAgICByZXR1cm4gcmFkMmRlZyhtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cyk7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOgorICAgIGNh
c2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6Cisg
ICAgICAgIHJldHVybiBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0czsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBTVkdBbmdsZTo6c2V0
VmFsdWUoZmxvYXQgdmFsdWUpCiB7Ci0gICAgbV92YWx1ZSA9IHZhbHVlOworICAgIHN3aXRjaCAo
bV91bml0VHlwZSkgeworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOgorICAgICAgICBtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cyA9IGRlZzJncmFkKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5p
dHMgPSBkZWcycmFkKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX1VOU1BFQ0lGSUVEOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgIGNh
c2UgU1ZHX0FOR0xFVFlQRV9ERUc6CisgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0g
dmFsdWU7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0KIAotLy8gY2FsYyBtX3ZhbHVlCi12b2lk
IFNWR0FuZ2xlOjpjYWxjdWxhdGUoKQoraW5saW5lIFNWR0FuZ2xlOjpTVkdBbmdsZVR5cGUgc3Ry
aW5nVG9BbmdsZVR5cGUoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQpCiB7Ci0g
ICAgaWYgKG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9HUkFEKQotICAgICAgICBtX3ZhbHVl
ID0gZ3JhZDJkZWcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5p
dFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9SQUQpCi0gICAgICAgIG1fdmFsdWUgPSByYWQyZGVnKG1f
dmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgICBlbHNlIGlmIChtX3VuaXRUeXBlID09IFNWR19B
TkdMRVRZUEVfVU5TUEVDSUZJRUQgfHwgbV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0RFRykK
LSAgICAgICAgbV92YWx1ZSA9IG1fdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgIC8vIElmIHRo
ZXJlJ3Mgbm8gdW5pdCBnaXZlbiwgdGhlIGFuZ2xlIHR5cGUgaXMgdW5zcGVjaWZpZWQuCisgICAg
aWYgKHB0ciA9PSBlbmQpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRDsKKworICAgIGNvbnN0IFVDaGFyIGZpcnN0Q2hhciA9ICpwdHI7CisgICAgCisg
ICAgLy8gSWYgdGhlIHVuaXQgY29udGFpbnMgb25seSBvbmUgY2hhcmFjdGVyLCB0aGUgYW5nbGUg
dHlwZSBpcyB1bmtub3duLgorICAgICsrcHRyOworICAgIGlmIChwdHIgPT0gZW5kKQorICAgICAg
ICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKKworICAgIGNvbnN0IFVD
aGFyIHNlY29uZENoYXIgPSAqcHRyOworIAorICAgIC8vIElmIHRoZSB1bml0IGNvbnRhaW5zIG9u
bHkgdHdvIGNoYXJhY3RlcnMsIHRoZSBhbmdsZSB0eXBlIGlzIHVua25vd24uCisgICAgKytwdHI7
CisgICAgaWYgKHB0ciA9PSBlbmQpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xF
VFlQRV9VTktOT1dOOworCisgICAgY29uc3QgVUNoYXIgdGhpcmRDaGFyID0gKnB0cjsKKyAgICBp
ZiAoZmlyc3RDaGFyID09ICdkJyAmJiBzZWNvbmRDaGFyID09ICdlJyAmJiB0aGlyZENoYXIgPT0g
J2cnKQorICAgICAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfREVHOworICAgIGlm
IChmaXJzdENoYXIgPT0gJ3InICYmIHNlY29uZENoYXIgPT0gJ2EnICYmIHRoaXJkQ2hhciA9PSAn
ZCcpCisgICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9SQUQ7CisKKyAgICAv
LyBJZiB0aGUgdW5pdCBjb250YWlucyB0aHJlZSBjaGFyYWN0ZXJzLCBidXQgaXMgbm90IGRlZyBv
ciByYWQsIHRoZW4gaXQncyB1bmtub3duLgorICAgICsrcHRyOworICAgIGlmIChwdHIgPT0gZW5k
KQorICAgICAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKKworICAg
IGNvbnN0IFVDaGFyIGZvdXJ0aENoYXIgPSAqcHRyOworCisgICAgaWYgKGZpcnN0Q2hhciA9PSAn
ZycgJiYgc2Vjb25kQ2hhciA9PSAncicgJiYgdGhpcmRDaGFyID09ICdhJyAmJiBmb3VydGhDaGFy
ID09ICdkJykKKyAgICAgICAgcmV0dXJuIFNWR0FuZ2xlOjpTVkdfQU5HTEVUWVBFX0dSQUQ7CisK
KyAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKIH0KIAotdm9pZCBT
VkdBbmdsZTo6c2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cykKK1N0cmluZyBTVkdBbmdsZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiB7Ci0gICAgbV92
YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAgY2FsY3Vs
YXRlKCk7CisgICAgc3dpdGNoIChtX3VuaXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X0RFRzoKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIobV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMpLCAiZGVnIik7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAg
ICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMpLCAicmFkIik7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0dSQUQ6CisgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSwg
ImdyYWQiKTsKKyAgICBjYXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6CisgICAgY2FzZSBT
VkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6
bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSk7CisgICAgfQorCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lkIFNWR0FuZ2xlOjpz
ZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYgcykKK3ZvaWQgU1ZHQW5nbGU6OnNldFZhbHVl
QXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
bV92YWx1ZUFzU3RyaW5nID0gczsKKyAgICBpZiAodmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAg
IG1fdW5pdFR5cGUgPSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOworICAgICAgICByZXR1cm47
CisgICAgfQogCi0gICAgYm9vbCBiT0s7Ci0gICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBt
X3ZhbHVlQXNTdHJpbmcudG9GbG9hdCgmYk9LKTsKLSAgICBtX3VuaXRUeXBlID0gU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRDsKKyAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSAwOwor
ICAgIGNvbnN0IFVDaGFyKiBwdHIgPSB2YWx1ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNo
YXIqIGVuZCA9IHB0ciArIHZhbHVlLmxlbmd0aCgpOwogCi0gICAgaWYgKCFiT0spIHsKLSAgICAg
ICAgaWYgKG1fdmFsdWVBc1N0cmluZy5lbmRzV2l0aCgiZGVnIikpCi0gICAgICAgICAgICBtX3Vu
aXRUeXBlID0gU1ZHX0FOR0xFVFlQRV9ERUc7Ci0gICAgICAgIGVsc2UgaWYgKG1fdmFsdWVBc1N0
cmluZy5lbmRzV2l0aCgiZ3JhZCIpKQotICAgICAgICAgICAgbV91bml0VHlwZSA9IFNWR19BTkdM
RVRZUEVfR1JBRDsKLSAgICAgICAgZWxzZSBpZiAobV92YWx1ZUFzU3RyaW5nLmVuZHNXaXRoKCJy
YWQiKSkKLSAgICAgICAgICAgIG1fdW5pdFR5cGUgPSBTVkdfQU5HTEVUWVBFX1JBRDsKKyAgICBp
ZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGZhbHNlKSkg
eworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
Ci0gICAgY2FsY3VsYXRlKCk7CisKKyAgICBTVkdBbmdsZVR5cGUgdW5pdFR5cGUgPSBzdHJpbmdU
b0FuZ2xlVHlwZShwdHIsIGVuZCk7CisgICAgaWYgKHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVf
VU5LTk9XTikgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBtX3VuaXRUeXBlID0gdW5pdFR5cGU7CisgICAgbV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7CiB9CiAKLVN0cmluZyBTVkdBbmdsZTo6dmFs
dWVBc1N0cmluZygpIGNvbnN0Cit2b2lkIFNWR0FuZ2xlOjpuZXdWYWx1ZVNwZWNpZmllZFVuaXRz
KHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICh1bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX1VO
S05PV04gfHwgdW5pdFR5cGUgPiBTVkdfQU5HTEVUWVBFX0dSQUQpIHsKKyAgICAgICAgZWMgPSBO
T1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh1bml0
VHlwZSAhPSBtX3VuaXRUeXBlKQorICAgICAgICBtX3VuaXRUeXBlID0gc3RhdGljX2Nhc3Q8U1ZH
QW5nbGVUeXBlPih1bml0VHlwZSk7CisKKyAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IHZh
bHVlSW5TcGVjaWZpZWRVbml0czsKK30KKwordm9pZCBTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lm
aWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIG1fdmFsdWVBc1N0cmluZyA9IFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVu
aXRzKTsKKyAgICBpZiAodW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9VTktOT1dOIHx8IG1fdW5p
dFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0FOR0xFVFlQ
RV9HUkFEKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAodW5pdFR5cGUgPT0gbV91bml0VHlwZSkKKyAgICAgICAgcmV0
dXJuOwogCiAgICAgc3dpdGNoIChtX3VuaXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X1JBRDoKKyAgICAgICAgc3dpdGNoICh1bml0VHlwZSkgeworICAgICAgICBjYXNlIFNWR19BTkdM
RVRZUEVfR1JBRDoKKyAgICAgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmdy
YWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX0RFRzoKKyAgICAgICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmRlZyht
X3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOgor
ICAgICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7CisgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9S
QUQ6CisgICAgICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFs
dWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNW
R19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6CiAgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6
Ci0gICAgICAgICAgICBtX3ZhbHVlQXNTdHJpbmcgKz0gImRlZyI7CisgICAgICAgICAgICBtX3Zh
bHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsK
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAg
ICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKKyAgICAgICAgLy8gU3BlYzog
Rm9yIGFuZ2xlcywgYSB1bml0bGVzcyB2YWx1ZSBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlmIGRl
Z3JlZXMgd2VyZSBzcGVjaWZpZWQuCisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKKyAgICAg
ICAgc3dpdGNoICh1bml0VHlwZSkgewogICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOgot
ICAgICAgICAgICAgbV92YWx1ZUFzU3RyaW5nICs9ICJyYWQiOworICAgICAgICAgICAgbV92YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSBkZWcycmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKLSAgICAg
ICAgICAgIG1fdmFsdWVBc1N0cmluZyArPSAiZ3JhZCI7CisgICAgICAgICAgICBtX3ZhbHVlSW5T
cGVjaWZpZWRVbml0cyA9IGRlZzJncmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKICAgICAg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAotICAgIHJldHVybiBtX3ZhbHVlQXNT
dHJpbmc7Ci19Ci0KLXZvaWQgU1ZHQW5nbGU6Om5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWdu
ZWQgc2hvcnQgdW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKLXsKLSAgICBt
X3VuaXRUeXBlID0gKFNWR0FuZ2xlVHlwZSl1bml0VHlwZTsKLSAgICBtX3ZhbHVlSW5TcGVjaWZp
ZWRVbml0cyA9IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKLSAgICBjYWxjdWxhdGUoKTsKLX0KLQot
dm9pZCBTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5p
dFR5cGUpCi17Ci0gICAgaWYgKG1fdW5pdFR5cGUgPT0gdW5pdFR5cGUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfREVHICYmIHVuaXRUeXBl
ID09IFNWR19BTkdMRVRZUEVfUkFEKQotICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9
IGRlZzJyYWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5
cGUgPT0gU1ZHX0FOR0xFVFlQRV9HUkFEICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfUkFE
KQotICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKLSAgICBlbHNlIGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVf
REVHICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfR1JBRCkKLSAgICAgICAgbV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgPSBkZWcyZ3JhZChtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gICAg
ZWxzZSBpZiAobV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX1JBRCAmJiB1bml0VHlwZSA9PSBT
VkdfQU5HTEVUWVBFX0dSQUQpCi0gICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFk
MmdyYWQobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5cGUg
PT0gU1ZHX0FOR0xFVFlQRV9SQUQgJiYgdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9ERUcpCi0g
ICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmRlZyhtX3ZhbHVlSW5TcGVjaWZp
ZWRVbml0cyk7Ci0gICAgZWxzZSBpZiAobV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0dSQUQg
JiYgdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9ERUcpCi0gICAgICAgIG1fdmFsdWVJblNwZWNp
ZmllZFVuaXRzID0gZ3JhZDJkZWcobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogCi0gICAgbV91
bml0VHlwZSA9IChTVkdBbmdsZVR5cGUpdW5pdFR5cGU7CisgICAgbV91bml0VHlwZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVHlwZT4odW5pdFR5cGUpOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdBbmdsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHJldmlz
aW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjIsNDUgKzIzLDQyIEBACiAjZGVmaW5lIFNWR0FuZ2xl
X2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFNWR0FuZ2xlIHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR0FuZ2xlKCk7Ci0KLSAgICAgICAgZW51bSBTVkdBbmdsZVR5cGUgewotICAg
ICAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTktOT1dOICAgICAgICAgICA9IDAsCi0gICAgICAgICAg
ICBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEICAgICAgID0gMSwKLSAgICAgICAgICAgIFNWR19B
TkdMRVRZUEVfREVHICAgICAgICAgICAgICAgPSAyLAotICAgICAgICAgICAgU1ZHX0FOR0xFVFlQ
RV9SQUQgICAgICAgICAgICAgICA9IDMsCi0gICAgICAgICAgICBTVkdfQU5HTEVUWVBFX0dSQUQg
ICAgICAgICAgICAgID0gNAotICAgICAgICB9OwotCi0gICAgICAgIFNWR0FuZ2xlVHlwZSB1bml0
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdFR5cGU7IH0KLQotICAgICAgICB2b2lkIHNldFZh
bHVlKGZsb2F0KTsKLSAgICAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
OyB9Ci0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKLSAgICAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZUluU3BlY2lmaWVkVW5pdHM7IH0KLQotICAgICAgICB2b2lk
IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAg
ICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBl
KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFNWR0FuZ2xlVHlwZSBtX3VuaXRUeXBlOwotICAg
ICAgICBmbG9hdCBtX3ZhbHVlOwotICAgICAgICBmbG9hdCBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0
czsKLSAgICAgICAgbXV0YWJsZSBTdHJpbmcgbV92YWx1ZUFzU3RyaW5nOwotCi0gICAgICAgIHZv
aWQgY2FsY3VsYXRlKCk7CitjbGFzcyBTVkdBbmdsZSB7CitwdWJsaWM6CisgICAgU1ZHQW5nbGUo
KTsKKworICAgIGVudW0gU1ZHQW5nbGVUeXBlIHsKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTktO
T1dOID0gMCwKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCA9IDEsCisgICAgICAg
IFNWR19BTkdMRVRZUEVfREVHID0gMiwKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9SQUQgPSAzLAor
ICAgICAgICBTVkdfQU5HTEVUWVBFX0dSQUQgPSA0CiAgICAgfTsKIAorICAgIFNWR0FuZ2xlVHlw
ZSB1bml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdFR5cGU7IH0KKworICAgIHZvaWQgc2V0
VmFsdWUoZmxvYXQpOworICAgIGZsb2F0IHZhbHVlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFZh
bHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpIHsgbV92YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7IH0KKyAgICBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlSW5TcGVjaWZpZWRV
bml0czsgfQorCisgICAgdm9pZCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OworCisgICAgdm9p
ZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGNvbnZlcnRU
b1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBFeGNlcHRpb25Db2RlJik7
CisKK3ByaXZhdGU6CisgICAgU1ZHQW5nbGVUeXBlIG1fdW5pdFR5cGU7CisgICAgZmxvYXQgbV92
YWx1ZUluU3BlY2lmaWVkVW5pdHM7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbAkocmV2aXNpb24gNzAzODUpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDIyICsyMiwyNiBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBQT0RU
eXBlPVNWR0FuZ2xlXSBTVkdBbmdsZSB7IAorICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
LCBTVkdQcm9wZXJ0eT1TVkdBbmdsZV0gU1ZHQW5nbGUgeyAKICAgICAgICAgLy8gQW5nbGUgVW5p
dCBUeXBlcwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05P
V04gICAgID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9V
TktOT1dOID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRCA9IDE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZ
UEVfREVHICAgICAgICAgPSAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5H
TEVUWVBFX1JBRCAgICAgICAgID0gMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X0FOR0xFVFlQRV9HUkFEICAgICAgICA9IDQ7Ci0gICAgICAgIAorICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX0RFRyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19BTkdMRVRZUEVfUkFEID0gMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX0FOR0xFVFlQRV9HUkFEID0gNDsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9h
dCAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAg
ICAgIHZhbHVlSW5TcGVjaWZpZWRVbml0czsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgdmFsdWVBc1N0cmluZzsKLSAg
ICAgICAgCi0gICAgICAgIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyhpbiB1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKKyAgICAgICAgYXR0cmlidXRl
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgW1N0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworCisgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZUFzU3Ry
aW5nCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAg
dm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBp
biBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKworICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKGluIHVuc2ln
bmVkIHNob3J0IHVuaXRUeXBlKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlZEFuZ2xlX2gKKyNkZWZpbmUg
U1ZHQW5pbWF0ZWRBbmdsZV9oCisKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuZ2xl
LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0eXBlZGVmIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xl
PiBTVkdBbmltYXRlZEFuZ2xlOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU1ZHKQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xl
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkocmV2
aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZEFuZ2xlIHsKKyAgICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPVNWRywgU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0gU1ZHQW5pbWF0ZWRBbmdsZSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYW5pbVZhbDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5jcHAJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDggQEAgdm9pZCBTVkdNYXJr
ZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogICAgICAgICBpZiAoYXR0ci0+dmFsdWUoKSA9
PSAiYXV0byIpCiAgICAgICAgICAgICBzZXRPcmllbnRUeXBlQmFzZVZhbHVlKFNWR19NQVJLRVJf
T1JJRU5UX0FVVE8pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGFuZ2xlLnNldFZhbHVl
QXNTdHJpbmcoYXR0ci0+dmFsdWUoKSk7CisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICAgICAgICAgIGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcoYXR0ci0+dmFsdWUoKSwgZWMp
OwogICAgICAgICAgICAgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShTVkdfTUFSS0VSX09SSUVOVF9B
TkdMRSk7CiAgICAgICAgIH0KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24g
NzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZ
X05FVyhTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0ciwgU1ZHTGVu
Z3RoLCBNYXJrZXJIZWlnaHQsIG1hcmtlckhlaWdodCkKICAgICBERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRZKFNWR01hcmtlckVsZW1lbnQsIFNWR05hbWVzOjptYXJrZXJVbml0c0F0dHIsIGludCwg
TWFya2VyVW5pdHMsIG1hcmtlclVuaXRzKQogICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlf
TVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIs
IFNWR09yaWVudFR5cGVBdHRySWRlbnRpZmllciwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBl
KQotICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFy
a2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNWR09yaWVudEFuZ2xlQXR0cklkZW50
aWZpZXIsIFNWR0FuZ2xlLCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCisgICAgREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUWV9ORVdfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwg
U1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNWR09yaWVudEFuZ2xlQXR0cklkZW50aWZpZXIsIFNWR0Fu
Z2xlLCBPcmllbnRBbmdsZSwgb3JpZW50QW5nbGUpCiAKICAgICAvLyBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkCiAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdNYXJrZXJFbGVt
ZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR051
bWJlci5pZGwJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBAQAogbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgUE9EVHlwZT1mbG9hdF0gU1ZHTnVtYmVyIHsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1
ZTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNv
cmUvc3ZnL1NWR1BvaW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDggQEAKIG1v
ZHVsZSBzdmcgewogCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFBPRFR5cGU9Rmxv
YXRQb2ludF0gU1ZHUG9pbnQgewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeAot
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IHk7CiAKICAgICAgICAgU1ZHUG9pbnQgbWF0cml4VHJhbnNmb3Jt
KGluIFNWR01hdHJpeCBtYXRyaXgpOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdSZWN0
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAkocmV2aXNpb24gNzAz
ODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTQg
KzIzLDEwIEBACiBtb2R1bGUgc3ZnIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
LCBQT0RUeXBlPUZsb2F0UmVjdF0gU1ZHUmVjdCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBmbG9hdCB4Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5Ci0gICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBmbG9hdCB3aWR0aAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0Ci0gICAg
ICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgYXR0
cmlidXRlIGZsb2F0IHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIG1vZHVsZSBzdmcgewogICAgICAgICB2b2lkIGRlc2VsZWN0QWxsKCk7CiAKICAgICAgICAg
U1ZHTnVtYmVyIGNyZWF0ZVNWR051bWJlcigpOwotICAgICAgICBbU1ZHTGl2ZVByb3BlcnR5XSBT
VkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CisgICAgICAgIFNWR0xlbmd0aCBjcmVhdGVTVkdM
ZW5ndGgoKTsKICAgICAgICAgU1ZHQW5nbGUgY3JlYXRlU1ZHQW5nbGUoKTsKICAgICAgICAgU1ZH
UG9pbnQgY3JlYXRlU1ZHUG9pbnQoKTsKICAgICAgICAgU1ZHTWF0cml4IGNyZWF0ZVNWR01hdHJp
eCgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA0MDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMC0yMyAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR0FuZ2xlIHRvIHRoZSBuZXcgU1ZHUHJv
cGVydHlUZWFyT2ZmIGNvbmNlcHQsIHJlaW1wbGVtZW50IGl0IHByb3Blcmx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE3OQorCisgICAgICAgIEFk
ZCBhbiBleHRlbnNpdmUgU1ZHQW5nbGUgdGVzdCwgY2hlY2tpbmcgYWxsIGdldHRlci9zZXR0ZXJz
ICYgbWV0aG9kcywgd2l0aCB2YWxpZCBhbmQgaW52YWxpZCBhcmd1bWVudHMuCisgICAgICAgIFRo
ZSB0ZXN0IGV4cG9zZXMgYnVncyBpbiBPcGVyYSAmIEZpcmVGb3gsIHdlIG5vdyBwYXNzIHRoZW0g
YWxsLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdBbmdsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9kb20vU1ZHQW5nbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2Rv
bS9zY3JpcHQtdGVzdHMvU1ZHQW5nbGUuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3Zn
LWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9k
b20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwueGh0bWw6IFVwZGF0ZSBpbmNvcnJlY3Qg
dGVzdCwgc2V0dGluZyB2YWx1ZUFzU3RyaW5nIHRvIG51bGwsIHNob3VsZCBub3QgcmVzdWx0IGlu
ICIwZGVnIiBidXQgIjAiLgorCiAyMDEwLTEwLTIzICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNzczIuMS8gbGF5b3V0IHRlc3RzIG5lZWQgbmV3IE1h
YyBiYXNlbGluZXMgZm9yIFNub3cgTGVvcGFyZApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9T
VkdBbmdsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9T
VkdBbmdsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR0FuZ2xlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzMgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhlIFNWR0FuZ2xlIEFQSQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworCitDaGVjayBpbml0aWFsIGFuZ2xlIHZhbHVlcworUEFTUyBhbmdsZS51bml0VHlw
ZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVl
QXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJ
blNwZWNpZmllZFVuaXRzIGlzIDAKKworQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICdjb252
ZXJ0VG9TcGVjaWZpZWRVbml0cycKK1BBU1MgYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMo
U1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTktOT1dOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5P
VF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JURURfRVJS
OiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKDUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24g
OS4KK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRAorCitDaGVjayB2YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cycsIHRoYXQgc2hvdWxkIG9ubHkgbW9kaWZ5IHRoZSAndmFsdWVBc1N0cmluZycKK1BBU1MgYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQpIGlz
IHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMHJhZCIKK1BBU1MgYW5n
bGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFT
UyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRAorUEFTUyBhbmds
ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0dSQUQpIGlz
IHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMGdyYWQiCitQQVNTIGFu
Z2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BB
U1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECitQQVNTIGFu
Z2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHKSBp
cyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjBkZWciCitQQVNTIGFu
Z2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BB
U1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1MgYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRCkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFT
UyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAw
CitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJ
RUQKKworQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICduZXdWYWx1ZVNwZWNpZmllZFVuaXRz
JworUEFTUyBhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZ
UEVfVU5LTk9XTiwgNTApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6
IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cygtMSwg
NTApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRp
b24gOS4KK1BBU1MgYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyg1LCA1MCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBh
bmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0No
ZWNrIHZhbGlkIGFyZ3VtZW50cyBmb3IgJ25ld1ZhbHVlU3BlY2lmaWVkVW5pdHMnLCB0aGF0IHNo
b3VsZCBvbmx5IG1vZGlmeSB0aGUgJ3ZhbHVlQXNTdHJpbmcnCitQQVNTIGFuZ2xlLm5ld1ZhbHVl
U3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQsIHBhcnNlRmxvYXQoTWF0
aC5QSS50b0ZpeGVkKDUpKSkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5n
IGlzICIzLjE0MTU5cmFkIgorUEFTUyBhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIK
K1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkgaXMgTWF0aC5QSS50
b0ZpeGVkKDUpCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVf
UkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9HUkFELCA0MDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBp
cyAiNDAwZ3JhZCIKK1BBU1MgYW5nbGUudmFsdWUudG9GaXhlZCgxKSBpcyAiMzYwLjAiCitQQVNT
IGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyA0MDAKK1BBU1MgYW5nbGUudW5pdFR5cGUg
aXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcsIDM2MCkgaXMgdW5kZWZpbmVkLgor
UEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIzNjBkZWciCitQQVNTIGFuZ2xlLnZhbHVlIGlz
IDM2MAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMzYwCitQQVNTIGFuZ2xl
LnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHCitQQVNTIGFuZ2xlLm5ld1Zh
bHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMTgw
KSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MCIKK1BBU1Mg
YW5nbGUudmFsdWUgaXMgMTgwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAx
ODAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRAorCitSZXNldCB0byBpbml0aWFsIGFuZ2xlIHN0YXRlCitQQVNTIGFuZ2xlLm5ld1ZhbHVl
U3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMCkgaXMg
dW5kZWZpbmVkLgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBF
X1VOU1BFQ0lGSUVECisKK0NoZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVBc1N0cmluZycgYXJn
dW1lbnRzCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMTBweCcgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBhbmdsZS52YWx1ZUFz
U3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5T
cGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19B
TkdMRVRZUEVfVU5TUEVDSUZJRUQKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcxMHgnIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mg
YW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBh
bmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJp
bmcgPSAnNWdyYUQnIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFs
dWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmds
ZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFu
Z2xlLnZhbHVlQXNTdHJpbmcgPSAnNVJhZCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhf
RVJSOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgor
UEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBp
cyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVD
SUZJRUQKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcsNSByYWQnIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdf
QU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0NoZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVJblNw
ZWNpZmllZFVuaXRzJyBhcmd1bWVudHMKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
ID0gJ3Rlc3QnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFu
Z2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lm
aWVkVW5pdHMgPSBhbmdsZSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQ
QVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBl
IGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQKKworQ2hlY2sgc2V0dGluZyBp
bnZhbGlkICd2YWx1ZScgYXJndW1lbnRzCitQQVNTIGFuZ2xlLnZhbHVlID0gJ3Rlc3QnIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJp
bmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRAorUEFTUyBhbmdsZS52YWx1ZSA9IGFuZ2xlIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAi
CitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
IGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQ
RUNJRklFRAorCitSZXNldCB0byBhbmdsZSBpbiBkZWdyZWUgdW5pdHMKK1BBU1MgYW5nbGUubmV3
VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RF
RworCitDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAn
dmFsdWVJblNwZWNpZmllZFVuaXRzJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6
ZWQKK1BBU1MgYW5nbGUudmFsdWUgPSA1MCBpcyA1MAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lm
aWVkVW5pdHMgaXMgNTAKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiNTBkZWciCitQQVNT
IGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHCisKK1RyeSBtb2Rp
Zml5aW5nIHRoZSByZWFkb25seSAndW5pdFR5cGUnLCBuZWVkcyB0byBmYWlsCitQQVNTIGFuZ2xl
LnVuaXRUeXBlID0gU1ZHQW5nbGUuU1ZHX0FOR0xFVFRZRV9SQUQgaXMgdW5kZWZpbmVkLgorUEFT
UyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBz
ZXR0aW5nIHZhbGlkICd2YWx1ZUluU3BlY2lmaWVkVW5pdHMnIGFyZ3VtZW50cywgYXNzdXJlIHRo
YXQgJ3ZhbHVlJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzID0gMTAwIGlzIDEwMAorUEFTUyBhbmdsZS52YWx1ZSBp
cyAxMDAKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMTAwZGVnIgorUEFTUyBhbmdsZS51
bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBzZXR0aW5nIHZh
bGlkICd2YWx1ZUFzU3RyaW5nJyBhcmd1bWVudHMsIGFzc3VyZSB0aGF0ICd2YWx1ZScgYW5kICd2
YWx1ZUluU3BlY2lmaWVkVW5pdHMnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyA9ICcyMDBncmFkJyBpcyAiMjAwZ3JhZCIKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzIGlzIDIwMAorUEFTUyBhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIK
K1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECisKK05v
dyBjb252ZXJ0IHRoZSBHUkFEIHZhbHVlIGludG8gYSBSQUQgdmFsdWUsIGFuZCBhc3N1cmUgdGhh
dCBhbGwgcHJvcGVydGllcyBoYXZlIGJlZW4gc3luY2hyb25pemVkCitQQVNTIGFuZ2xlLmNvbnZl
cnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfUkFEKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkgaXMgIjE4MC4wIgorUEFTUyBhbmdsZS52
YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhlZCg1KSBpcyAiMy4xNDE1OSIKK1BBU1MgYW5nbGUu
dmFsdWVBc1N0cmluZyBpcyAiMy4xNDE1OXJhZCIKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQKKworTm93IHRyeSBjb252ZXJ0aW5nIHRoZSBSQUQgdmFs
dWUgaW50byBhbiB1bmtub3duIHZhbHVlLCB0aGF0IHNob3VsZCBmYWlsIGFuZCB0aHJvdworUEFT
UyBhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VO
S05PV04pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNl
cHRpb24gOS4KK1BBU1MgYW5nbGUudmFsdWUudG9GaXhlZCgxKSBpcyAiMTgwLjAiCitQQVNTIGFu
Z2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cy50b0ZpeGVkKDUpIGlzICIzLjE0MTU5IgorUEFTUyBh
bmdsZS52YWx1ZUFzU3RyaW5nIGlzICIzLjE0MTU5cmFkIgorUEFTUyBhbmdsZS51bml0VHlwZSBp
cyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRAorCitOb3cgY29udmVydCB0aGUgUkFEIHZhbHVl
IGludG8gYSBERUcgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJvcGVydGllcyBoYXZlIGJl
ZW4gc3luY2hyb25pemVkCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfREVHKSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRv
Rml4ZWQoMSkgaXMgIjE4MC4wIgorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9G
aXhlZCgxKSBpcyAiMTgwLjAiCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MGRlZyIK
K1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR0FuZ2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2RvbS9TVkdBbmdsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9TVkdBbmdsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9TVkdBbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0
cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3MDM4NSkKKysrIExheW91dFRl
c3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUaGlzIHRlc3Qgc2V0dGluZyB2YXJpb3VzIGF0
dHJpYnV0ZXMgb2YgCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3Ry
aW5nLiBbdGVzdGVkIFNWR0VsZW1lbnQuaWRdCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdh
cyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVkIFNWR0VsZW1lbnQueG1sYmFzZV0KIAotVEVTVCBT
VUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMgdGhlIHN0cmluZyAnMGRlZycuIFt0ZXN0ZWQgU1ZHQW5n
bGUudmFsdWVBc1N0cmluZ10KK1RFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJp
bmcgJzAnLiBbdGVzdGVkIFNWR0FuZ2xlLnZhbHVlQXNTdHJpbmddCiAKIFRFU1QgU1VDQ0VFREVE
OiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJpbmcgJzAnLiBbdGVzdGVkIFNWR0xlbmd0aC52YWx1ZUFz
U3RyaW5nXQogCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3N2Zy1lbGVtZW50LWF0dHJpYnV0
ZS1qcy1udWxsLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVs
ZW1lbnQtYXR0cmlidXRlLWpzLW51bGwueGh0bWwJKHJldmlzaW9uIDcwMzg1KQorKysgTGF5b3V0
VGVzdHMvc3ZnL2RvbS9zdmctZWxlbWVudC1hdHRyaWJ1dGUtanMtbnVsbC54aHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQAogICAgICAgICAgICAgICAgICAgICB0eXBlOiAnU1ZH
QW5nbGUnLAogICAgICAgICAgICAgICAgICAgICBlbGVtZW50VG9Vc2U6IHN2Zy5jcmVhdGVTVkdB
bmdsZSgpLAogICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7bmFtZTogJ3ZhbHVlQXNTdHJpbmcnLCBleHBlY3RlZE51bGw6ICcwZGVnJ30K
KyAgICAgICAgICAgICAgICAgICAgICAgIHtuYW1lOiAndmFsdWVBc1N0cmluZycsIGV4cGVjdGVk
TnVsbDogJzAnfQogICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgICB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9T
VkdBbmdsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0
cy9TVkdBbmdsZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0
LXRlc3RzL1NWR0FuZ2xlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwMiBAQAorZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFNWR0FuZ2xlIEFQSSIpOworCit2YXIgc3ZnRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciLCAic3ZnIik7Cit2YXIgYW5nbGUgPSBzdmdFbGVtZW50LmNyZWF0ZVNWR0FuZ2xlKCk7CisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBpbml0aWFsIGFuZ2xlIHZhbHVlcyIpOworc2hvdWxk
QmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7Citz
aG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVj
aWZpZWRVbml0cyIsICIwIik7CisKKy8vIFNwZWM6IFJhaXNlZCBpZiB1bml0VHlwZSBpcyBTVkdf
QU5HTEVUWVBFX1VOS05PV04gb3Igbm90IGEgdmFsaWQgdW5pdCB0eXBlIGNvbnN0YW50IChvbmUg
b2YgdGhlIG90aGVyIFNWR19BTkdMRVRZUEVfKiBjb25zdGFudHMgZGVmaW5lZCBvbiB0aGlzIGlu
dGVyZmFjZSkuCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9y
ICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyciKTsKK3Nob3VsZFRocm93KCJhbmdsZS5jb252ZXJ0
VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIik7CitzaG91
bGRUaHJvdygiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoLTEpIik7CitzaG91bGRUaHJv
dygiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoNSkiKTsKK3Nob3VsZEJlKCJhbmdsZS51
bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJDaGVjayB2YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZp
ZWRVbml0cycsIHRoYXQgc2hvdWxkIG9ubHkgbW9kaWZ5IHRoZSAndmFsdWVBc1N0cmluZyciKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFs
dWVBc1N0cmluZyIsICIwcmFkIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hv
dWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5n
bGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsKKworc2hvdWxkQmVV
bmRlZmluZWQoImFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdM
RVRZUEVfR1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmlu
ZyIsICIwZ3JhZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJh
bmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRU
eXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitzaG91bGRCZVVuZGVmaW5l
ZCgiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9E
RUcpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMGRl
ZyIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHIik7CisKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5j
b252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVE
KSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjAiKTsK
K3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNw
ZWNpZmllZFVuaXRzIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKKy8vIFNwZWM6IFJhaXNlZCBpZiB1bml0
VHlwZSBpcyBTVkdfQU5HTEVUWVBFX1VOS05PV04gb3Igbm90IGEgdmFsaWQgdW5pdCB0eXBlIGNv
bnN0YW50IChvbmUgb2YgdGhlIG90aGVyIFNWR19BTkdMRVRZUEVfKiBjb25zdGFudHMgZGVmaW5l
ZCBvbiB0aGlzIGludGVyZmFjZSkuCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW52YWxpZCBh
cmd1bWVudHMgZm9yICduZXdWYWx1ZVNwZWNpZmllZFVuaXRzJyIpOworc2hvdWxkVGhyb3coImFu
Z2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTktOT1dO
LCA1MCkiKTsKK3Nob3VsZFRocm93KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKC0xLCA1
MCkiKTsKK3Nob3VsZFRocm93KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKDUsIDUwKSIp
Oworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5T
UEVDSUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIHZhbGlkIGFyZ3VtZW50cyBm
b3IgJ25ld1ZhbHVlU3BlY2lmaWVkVW5pdHMnLCB0aGF0IHNob3VsZCBvbmx5IG1vZGlmeSB0aGUg
J3ZhbHVlQXNTdHJpbmcnIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUubmV3VmFsdWVTcGVj
aWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRCwgcGFyc2VGbG9hdChNYXRoLlBJ
LnRvRml4ZWQoNSkpKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3Ry
aW5nIiwgTWF0aC5QSS50b0ZpeGVkKDUpICsgInJhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIiwgIjE4MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFs
dWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkiLCAiTWF0aC5QSS50b0ZpeGVkKDUpIik7Citz
aG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsK
Kworc2hvdWxkQmVVbmRlZmluZWQoImFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5n
bGUuU1ZHX0FOR0xFVFlQRV9HUkFELCA0MDApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFu
Z2xlLnZhbHVlQXNTdHJpbmciLCAiNDAwZ3JhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJh
bmdsZS52YWx1ZS50b0ZpeGVkKDEpIiwgIjM2MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJ
blNwZWNpZmllZFVuaXRzIiwgIjQwMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUu
bmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMzYwKSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjM2MGRlZyIp
Oworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjM2MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
SW5TcGVjaWZpZWRVbml0cyIsICIzNjAiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUu
bmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVE
LCAxODApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAi
MTgwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMTgwIik7CitzaG91bGRCZSgiYW5nbGUu
dmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjE4MCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBl
IiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIpOwor
ZGVidWcoIlJlc2V0IHRvIGluaXRpYWwgYW5nbGUgc3RhdGUiKTsKK3Nob3VsZEJlVW5kZWZpbmVk
KCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5T
UEVDSUZJRUQsIDApIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZH
X0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCisvLyBTcGVjOiBSYWlzZWQgaWYgdGhlIGFzc2ln
bmVkIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgdmFsaWQgPGFuZ2xlPi4KK2RlYnVnKCIi
KTsKK2RlYnVnKCJDaGVjayBzZXR0aW5nIGludmFsaWQgJ3ZhbHVlQXNTdHJpbmcnIGFyZ3VtZW50
cyIpOworc2hvdWxkVGhyb3coImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMTBweCciKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgi
YW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0
cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9
ICcxMHgnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAi
MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworc2hvdWxkVGhyb3coImFuZ2xl
LnZhbHVlQXNTdHJpbmcgPSAnNWdyYUQnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xl
LnZhbHVlQXNTdHJpbmciLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3No
b3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFu
Z2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKwor
c2hvdWxkVGhyb3coImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnNVJhZCciKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUu
dmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIw
Iik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9V
TlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9ICcsNSBy
YWQnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMCIp
Oworc2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNo
ZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBhcmd1bWVudHMiKTsK
K3Nob3VsZFRocm93KCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSAndGVzdCciKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRC
ZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRV
bml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzID0gYW5nbGUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVB
c1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5p
dFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitkZWJ1Zygi
Iik7CitkZWJ1ZygiQ2hlY2sgc2V0dGluZyBpbnZhbGlkICd2YWx1ZScgYXJndW1lbnRzIik7Citz
aG91bGRUaHJvdygiYW5nbGUudmFsdWUgPSAndGVzdCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAi
MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91
bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklF
RCIpOworCitzaG91bGRUaHJvdygiYW5nbGUudmFsdWUgPSBhbmdsZSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52
YWx1ZSIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjAi
KTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVEIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJSZXNldCB0byBhbmdsZSBpbiBkZWdy
ZWUgdW5pdHMiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVu
aXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHLCAwKSIpOworc2hvdWxkQmUoImFuZ2xlLnVu
aXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHIik7CisKK2RlYnVnKCIiKTsKK2Rl
YnVnKCJDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAn
dmFsdWVJblNwZWNpZmllZFVuaXRzJyBhbmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6
ZWQiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSA9IDUwIiwgIjUwIik7CitzaG91bGRCZSgiYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjUwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiNTBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlw
ZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
VHJ5IG1vZGlmaXlpbmcgdGhlIHJlYWRvbmx5ICd1bml0VHlwZScsIG5lZWRzIHRvIGZhaWwiKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS51bml0VHlwZSA9IFNWR0FuZ2xlLlNWR19BTkdMRVRU
WUVfUkFEIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xF
VFlQRV9ERUciKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIHNldHRpbmcgdmFsaWQgJ3Zh
bHVlSW5TcGVjaWZpZWRVbml0cycgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWUnIGFuZCAn
dmFsdWVBc1N0cmluZycgYXJlIHN5bmNocm9uaXplZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
SW5TcGVjaWZpZWRVbml0cyA9IDEwMCIsICIxMDAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIs
ICIxMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIx
MDBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVU
WVBFX0RFRyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgc2V0dGluZyB2YWxpZCAndmFs
dWVBc1N0cmluZycgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWUnIGFuZCAndmFsdWVJblNw
ZWNpZmllZFVuaXRzJyBhcmUgc3luY2hyb25pemVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnMjAwZ3JhZCciLCAiMjAwZ3JhZCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIyMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiYW5nbGUudmFsdWUudG9GaXhlZCgxKSIsICIxODAuMCIpOworc2hvdWxkQmUoImFuZ2xl
LnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCIpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiTm93IGNvbnZlcnQgdGhlIEdSQUQgdmFsdWUgaW50byBhIFJBRCB2YWx1ZSwgYW5k
IGFzc3VyZSB0aGF0IGFsbCBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBzeW5jaHJvbml6ZWQiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5T
VkdfQU5HTEVUWVBFX1JBRCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWUu
dG9GaXhlZCgxKSIsICIxODAuMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhlZCg1KSIsIE1hdGguUEkudG9GaXhlZCg1KSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCBNYXRoLlBJLnRvRml4ZWQo
NSkgKyAicmFkIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9SQUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIk5vdyB0cnkgY29udmVydGluZyB0
aGUgUkFEIHZhbHVlIGludG8gYW4gdW5rbm93biB2YWx1ZSwgdGhhdCBzaG91bGQgZmFpbCBhbmQg
dGhyb3ciKTsKK3Nob3VsZFRocm93KCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdB
bmdsZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFu
Z2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAiMTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
YW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoNSkiLCBNYXRoLlBJLnRvRml4ZWQo
NSkpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgTWF0aC5Q
SS50b0ZpeGVkKDUpICsgInJhZCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfUkFEIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJOb3cgY29udmVy
dCB0aGUgUkFEIHZhbHVlIGludG8gYSBERUcgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJv
cGVydGllcyBoYXZlIGJlZW4gc3luY2hyb25pemVkIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYW5n
bGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcpIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAiMTgwLjAi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRv
Rml4ZWQoMSkiLCAiMTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVB
c1N0cmluZyIsICIxODBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71677</attachid>
            <date>2010-10-24 02:33:40 -0700</date>
            <delta_ts>2010-10-24 04:54:24 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>SVGAngle.patch</filename>
            <type>text/plain</type>
            <size>84617</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMTAtMjMgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdBbmdsZSB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0LCByZWltcGxlbWVudCBpdCBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzkKKworICAgICAgICBSZXdyaXRlIFNWR0FuZ2xlIHRv
IHVzZSB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25jZXB0LCBhbmQgY29uc3VtZSBtdWNo
IGxlc3MgbWVtb3J5LgorICAgICAgICBEb3duIGZyb20gdHdvIGZsb2F0cywgb25lIHN0cmluZyBh
bmQgYW4gdXNob3J0IHRvIG9uZSBmbG9hdCBhbmQgb25lIHVzaG9ydC4gU3luY2hyb25pemUgdmFs
dWUvdmFsdWVJblNwZWNpZmllZFVuaXRzL3ZhbHVlQXNTdHJpbmcgb24gZGVtYW5kLgorCisgICAg
ICAgIEFkZGluZyBhbiBleHRlbnNpdmUgU1ZHQW5nbGUgdGVzdCwgdGhhdCByZXF1aXJlZCB0byBp
bXBsZW1lbnQgJ1N0cmljdFR5cGVDaGVja2luZycgZm9yIGF0dHJpYnV0ZSBzZXR0ZXJzICh3YXMg
b25seSBpbXBsZW1lbnRlZCBpbiBWOC9KU0MgZm9yIGZ1bmN0aW9uIGNhbHMgc28gZmFyKS4KKwor
ICAgICAgICBUZXN0OiBzdmcvZG9tL1NWR0FuZ2xlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBBZGQgU1ZHQW5pbWF0ZWRBbmdsZS5oIHRvIGJ1aWxkLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTogU3BsaXQgSXNQcmltaXRpdmVUeXBlIGluIElzUHJpbWl0
aXZlVHlwZSBhbmQgSXNOdW1lcmljVHlwZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbTogSW1wbGVtZW50ICdTdHJpY3RUeXBlQ2hlY2tpbmcnIGZvciBzZXR0
ZXJzIGFuZCByZWNvZ25pemUgU1ZHQW5nbGUgYXMgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiB0eXBl
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06IERpdHRv
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBEaXR0by4K
KyAgICAgICAgKiBzdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaDogUmVt
b3ZlIFNWR0FuZ2xlIGhhbmRsaW5nLgorICAgICAgICAqIHN2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oOiBSZW1vdmUgU1ZHQW5pbWF0ZWRBbmdsZSBoYW5kbGluZy4KKyAgICAgICAg
KiBzdmcvU1ZHQW5nbGUuY3BwOiBSZXdyaXRlLCB0byBjb25zdW1lIGxlc3MgbWVtb3J5IGFuZCB0
byBvcGVyYXRlIG1vcmUgZWZmaWNpZW50LgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOiBEaXR0
by4KKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaWRsOiBBZGQgJ1N0cmljdFR5cGVDaGVja2luZycg
dG8gdGhlIHZhbHVlL3ZhbHVlSW5TcGVjaWZpZWRVbml0cyBtZXRob2RzLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZEFuZ2xlLmg6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFu
Z2xlLmlkbDogTWFyayBhcyBbU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0uCisgICAgICAgICogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZygpIG5vdyB0
YWtlcyBhbiBFeGNlcHRpb25Db2RlIHBhcmFtZXRlci4KKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOiBzL0FOSU1BVEVEX1BST1BFUlRZL0FOSU1BVEVEX1BST1BFUlRZX05FVy8gZm9y
IHRoZSBTVkdBbmdsZSB0eXBlLgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXIuaWRsOiBSZW1vdmUg
ZXhjZXB0aW9uIHNldHRlciBleGNlcHRpb25zLCB3aGljaCBhcmVuJ3QgbmVlZGVkLiBBcyB3ZSdy
ZSBub3cgZ2VuZXJhdGluZyBleGNlcHRpb24gaGFuZGxlcnMgaW4gdGhlIGJpbmRpbmdzLCBpdCB3
b3VsZCBsZWFkIHRvIGNvbXBpbGUgZXJyb3JzLgorICAgICAgICAqIHN2Zy9TVkdQb2ludC5pZGw6
IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdSZWN0LmlkbDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuaWRsOiBSZW1vdmUgb2Jzb2xldGUgW1NWR0xpdmVQcm9wZXJ0eV0gZmxh
Zy4KKwogMjAxMC0xMC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzAzODUpCisr
KyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDI3LDYgKzMwMjcs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggXAogCVdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmggXAorCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCBc
CiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOTU4LDYgKzM5NTgsNyBAQAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuaCcsCisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuaCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuY3Bw
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzU3LDYgKzIzNTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmdsZS5oIFwKICAgICBzdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oIFwKKyAgICBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKICAgICBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwK
ICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTE2Nyw2ICs2MTE2NywxMCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dmdcU1ZHQW5pbWF0ZWRBbmdsZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkTGVuZ3RoLmgiDQogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsNyBAQAogCQkwODczNUZCOTEw
RTkxMjMyMDA2RDZGQUQgLyogU1ZHTWFya2VyTGF5b3V0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8q
IFNWR01hcmtlckxheW91dEluZm8uaCAqLzsgfTsKIAkJMDg3NDRCQUEwRURCN0Q4NjAwNEM5RTYz
IC8qIFdNTE9uRXZlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4NzQ0QkE5MEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxl
bWVudC5jcHAgKi87IH07CiAJCTA4NzQ0QkFFMEVEQjdEOTIwMDRDOUU2MyAvKiBXTUxPbkV2ZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg3NDRCQUQwRURCN0Q5MjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi87IH07CisJ
CTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdCODQ5NTEyNzJDRUM3MDBB
MTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA4N0Q5N0JGMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BP
RExpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4N0Q5N0JFMTBGQjhENzcwMEMwMDg3NCAvKiBKU1NWR1BPRExpc3RDdXN0b20uaCAqLzsg
fTsKIAkJMDg3RkZBMEYwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODdG
RkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCAqLzsg
fTsKIAkJMDg3RkZBMTAwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3RkZB
MEUwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVudC5oICovOyB9OwpA
QCAtNjE1Myw2ICs2MTU0LDcgQEAKIAkJMDg3MzVGQjcxMEU5MTIzMjAwNkQ2RkFEIC8qIFNWR01h
cmtlckxheW91dEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFy
a2VyTGF5b3V0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODc0NEJBOTBF
REI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV01MT25FdmVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODc0NEJBRDBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MT25FdmVudEVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg3Qjg0OTUxMjcyQ0VDNzAwQTE0
NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRBbmdsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODdE
OTdCRTEwRkI4RDc3MDBDMDA4NzQgLyogSlNTVkdQT0RMaXN0Q3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHUE9ETGlzdEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODdGRkEwRDBFRkYzRUQzMDA5REJEODggLyogV01MSW5zZXJ0ZWRM
ZWdlbmRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdN
TEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4N0ZGQTBFMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkzNSw2ICsxNTkzNyw3IEBACiAJ
CQkJQjIyMjc3RTMwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3N0U0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc3RTUwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaWRsICovLAorCQkJCTA4N0I4NDk1MTI3MkNFQzcwMEExNDQxNyAvKiBTVkdBbmlt
YXRlZEFuZ2xlLmggKi8sCiAJCQkJQjIyMjc3RTYwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkQW5nbGUuaWRsICovLAogCQkJCUIyMjI3N0U3MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmlt
YXRlZEJvb2xlYW4uaWRsICovLAogCQkJCUIyMjI3N0U4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmlkbCAqLywKQEAgLTIxMTQ1LDYgKzIxMTQ4LDcgQEAKIAkJCQkw
ODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJl
dmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Iu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNiBT
YW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICMgQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQyLDIwICs0MywyMiBAQCBteSAkY29kZUdlbmVy
YXRvciA9IDA7CiAKIG15ICR2ZXJib3NlID0gMDsKIAotbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0g
KCJpbnQiID0+IDEsICJzaG9ydCIgPT4gMSwgImxvbmciID0+IDEsICJsb25nIGxvbmciID0+IDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgInVuc2lnbmVkIGludCIgPT4gMSwgInVuc2lnbmVk
IHNob3J0IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9
PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICJmbG9hdCIgPT4gMSwgImRvdWJsZSIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
Ym9vbGVhbiIgPT4gMSwgInZvaWQiID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkRh
dGUiID0+IDEpOworbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAxLCAic2hvcnQiID0+
IDEsICJsb25nIiA9PiAxLCAibG9uZyBsb25nIiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAidW5zaWduZWQgaW50IiA9PiAxLCAidW5zaWduZWQgc2hvcnQiID0+IDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNpZ25lZCBsb25nIiA9PiAxLCAidW5zaWduZWQgbG9uZyBsb25nIiA9
PiAxLAorICAgICAgICAgICAgICAgICAgICAgICAiZmxvYXQiID0+IDEsICJkb3VibGUiID0+IDEp
OworCitteSAlcHJpbWl0aXZlVHlwZUhhc2ggPSAoICJib29sZWFuIiA9PiAxLCAidm9pZCIgPT4g
MSwgIkRhdGUiID0+IDEpOwogCiBteSAlcG9kVHlwZUhhc2ggPSAoIlNWR051bWJlciIgPT4gMSwg
IlNWR1RyYW5zZm9ybSIgPT4gMSk7Ci1teSAlcG9kVHlwZXNXaXRoV3JpdGFibGVQcm9wZXJ0aWVz
SGFzaCA9ICgiU1ZHQW5nbGUiID0+IDEsICJTVkdNYXRyaXgiID0+IDEsICJTVkdQb2ludCIgPT4g
MSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9PiAxKTsKK215ICVw
b2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEsICJT
VkdQb2ludCIgPT4gMSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9
PiAxKTsKIG15ICVzdHJpbmdUeXBlSGFzaCA9ICgiRE9NU3RyaW5nIiA9PiAxLCAiQXRvbWljU3Ry
aW5nIiA9PiAxKTsKIAogbXkgJW5vblBvaW50ZXJUeXBlSGFzaCA9ICgiRE9NVGltZVN0YW1wIiA9
PiAxLCAiQ29tcGFyZUhvdyIgPT4gMSwgIlNWR1BhaW50VHlwZSIgPT4gMSk7CiAKLW15ICVzdmdO
ZXdTdHlsZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkTGVuZ3RoIiA9PiAxLCAiU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxKTsKK215ICVzdmdUeXBlTmVlZGluZ1RlYXJPZmZIYXNo
ID0gKCJTVkdMZW5ndGgiID0+IDEsICJTVkdBbmdsZSIgPT4gMSk7CisKK215ICVzdmdOZXdTdHls
ZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJTVkdBbmltYXRl
ZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdCIgPT4gMSk7CiAKIG15ICVzdmdB
bmltYXRlZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRC
b29sZWFuIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkRW51
bWVyYXRpb24iID0+IDEsICJTVkdBbmltYXRlZEludGVnZXIiID0+IDEsCkBAIC0yODMsNiArMjg2
LDggQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiB9CiAKICMgSGVscGVycyBmb3IgYWxsIENvZGVHZW5l
cmF0b3IqKioucG0gbW9kdWxlcworCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkg
b25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3
IHNjaGVtZS4KIHN1YiBJc1BvZFR5cGUKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0z
MDIsMTIgKzMwNywyMiBAQCBzdWIgSXNQb2RUeXBlV2l0aFdyaXRlYWJsZVByb3BlcnRpZXMKICAg
ICByZXR1cm4gMDsKIH0KIAorc3ViIElzTnVtZXJpY1R5cGUKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAxIGlmICRudW1lcmlj
VHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAwOworfQorCiBzdWIgSXNQcmltaXRpdmVUeXBl
CiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKICAg
ICByZXR1cm4gMSBpZiAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAxIGlm
ICRudW1lcmljVHlwZUhhc2h7JHR5cGV9OwogICAgIHJldHVybiAwOwogfQogCkBAIC0zMjUsNyAr
MzQwLDE3IEBAIHN1YiBJc05vblBvaW50ZXJUeXBlCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0Owog
ICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkbm9uUG9pbnRlclR5cGVI
YXNoeyR0eXBlfSBvciAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGV9OworICAgIHJldHVybiAxIGlm
ICRub25Qb2ludGVyVHlwZUhhc2h7JHR5cGV9IG9yICRwcmltaXRpdmVUeXBlSGFzaHskdHlwZX0g
b3IgJG51bWVyaWNUeXBlSGFzaHskdHlwZX07CisgICAgcmV0dXJuIDA7Cit9CisKKworc3ViIElz
U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gMSBpZiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2Zm
SGFzaHskdHlwZX07CiAgICAgcmV0dXJuIDA7CiB9CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjQsMTUgKzMyNCwxOCBAQCBzdWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKICAgICB9CiB9CiAK
KyMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQg
cHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlw
ZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyCiB7CisgICAgIyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3
aWxsIGJlIHJlbW92ZWQsIGFzIHNvb24gdGhlIFBPRFR5cGUgY29uY2VwdCBpcyBnb25lLCBhbmQg
YWxsIFNWRyBkYXRhdHlwZXMgdXNlIHRoZSBuZXcgc3R5bGUgSlMgYmluZGluZ3MuCisKICAgICBt
eSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogCiAgICAgcmV0dXJuIDAgdW5sZXNzICRpbXBsQ2xh
c3NOYW1lID1+IC9TVkcvOwogICAgIHJldHVybiAwIGlmICRpbXBsQ2xhc3NOYW1lID1+IC9FbGVt
ZW50LzsKICAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdOZXdTdHlsZUFuaW1h
dGVkVHlwZSgkaW1wbENsYXNzTmFtZSk7CiAKLSAgICBteSBAbm9Db250ZXh0TmVlZGVkID0gKCJT
VkdMZW5ndGgiLCAiU1ZHTGVuZ3RoTGlzdCIsICJTVkdQYWludCIsICJTVkdDb2xvciIsICJTVkdE
b2N1bWVudCIsICJTVkdab29tRXZlbnQiKTsKKyAgICBteSBAbm9Db250ZXh0TmVlZGVkID0gKCJT
VkdBbmdsZSIsICJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3RoTGlzdCIsICJTVkdQYWludCIsICJTVkdD
b2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZlbnQiKTsKICAgICBmb3JlYWNoIChAbm9D
b250ZXh0TmVlZGVkKSB7CiAgICAgICAgIHJldHVybiAwIGlmICRpbXBsQ2xhc3NOYW1lIGVxICRf
OwogICAgIH0KQEAgLTE4MDIsMjEgKzE4MDUsNTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9
IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsVHlwZSogaW1wID0g
c3RhdGljX2Nhc3Q8JGltcGxUeXBlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMgRm9yIHNldHRlcnMgd2l0aCAiU3RyaWN0VHlwZUNo
ZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUg
c2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBUeXBlRXJyb3IgaXMg
dGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJT
dHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
eSAkYXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5
cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmlzU3Ry
aW5nKCkgJiYgIXZhbHVlLmlzT2JqZWN0KCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJp
Y1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYg
IXZhbHVlLmlzTnVtYmVyKCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaW5oZXJpdHMoJkpTJHthcmdU
eXBlfTo6c19pbmZvKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfTtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXkgJG5hdGl2ZVZhbHVlID0gSlNWYWx1ZVRvTmF0aXZlKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRzdmdQcm9wZXJ0eU9yUG9kVHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlPclBvZFR5cGUgcG9kSW1w
KCppbXApO1xuIikgaWYgJHBvZFR5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICRzdmdQcm9wZXJ0eU9yUG9kVHlwZSYgcG9kSW1wID0g
aW1wLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIikgaWYgISRwb2RUeXBlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5T3JQb2RUeXBlIGVxICJmbG9hdCIp
IHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXAgPSAiIC4gSlNWYWx1
ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIikgLiAiO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBw
b2RJbXAgPSAkbmF0aXZlVmFsdWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHBvZEltcC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSgiIC4gSlNW
YWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIikgLiAiKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcG9kSW1wLnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKCRuYXRpdmVWYWx1ZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIGVj
IikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9u
c307CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5jb21taXRDaGFuZ2Uo
cG9kSW1wLCBjYXN0ZWRUaGlzKTtcbiIpIGlmICRwb2RUeXBlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPmNvbW1pdENoYW5nZSgp
O1xuIikgaWYgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKCFlYylcbiIpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaW1wLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXAtPmNv
bW1pdENoYW5nZSgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmF0
aXZlVmFsdWUgPSBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUi
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHNldHRlckV4cHJlc3Npb25Q
cmVmaXggPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvblByZWZpeChcJWltcGxJbmNs
dWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOwotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
O1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT4kc2V0dGVyRXhw
cmVzc2lvblByZWZpeCRuYXRpdmVWYWx1ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4
Y2VwdGlvbnN9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIik7XG4iKTsKQEAgLTIwMDgsOCArMjA0Myw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRuYW1lID0gJHBhcmFtZXRlci0+bmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRhcmdUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbWV0ZXItPnR5
cGUpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAi
WFBhdGhOU1Jlc29sdmVyIikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhcmdUeXBl
IGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gY3VzdG9tUmVzb2x2
ZXI7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0gdG9YUGF0aE5TUmVzb2x2ZXIoZXhlYy0+
YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFyZXNvbHZlcikge1xuIik7CkBAIC0yMDE5LDEw
ICsyMDU1LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJlc29sdmVyID0gY3VzdG9t
UmVzb2x2ZXIuZ2V0KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxiYWNrQ2xhc3NOYW1lID0gR2V0Q2FsbGJhY2tD
bGFzc05hbWUoJHBhcmFtZXRlci0+dHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJGNhbGxiYWNrQ2xhc3NOYW1lID0gR2V0Q2FsbGJhY2tDbGFzc05hbWUoJGFyZ1R5cGUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiRjYWxsYmFja0NsYXNz
TmFtZS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVy
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWZQdHI8IiAuICRwYXJhbWV0
ZXItPnR5cGUuICI+ICRuYW1lO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4gJG5hbWU7XG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgIWV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpLmlzTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KS5pc1VuZGVm
aW5lZCgpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIGlmICghZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkuaXNPYmpl
Y3QoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hf
RVJSKTtcbiIpOwpAQCAtMjAzNSwyMSArMjA3MSwyMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVm
UHRyPCIgLiAkcGFyYW1ldGVyLT50eXBlIC4gIj4gJG5hbWUgPSAke2NhbGxiYWNrQ2xhc3NOYW1l
fTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKSwgY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwkYXJnVHlwZT4gJG5hbWUgPSAke2NhbGxi
YWNrQ2xhc3NOYW1lfTo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgp
KSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjIEZvciBmdW5jdGlvbnMgd2l0aCAiU3RyaWN0VHlwZUNoZWNraW5n
IiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0
dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhyb3du
IGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5
cGVDaGVja2luZyJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdW
YWx1ZSA9ICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRw
YXJhbWV0ZXItPnR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUlz
TmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAk
YXJnc0luZGV4ICYmICEke2FyZ1ZhbHVlfS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1Zh
bHVlfS5pbmhlcml0cygmSlMke2FyZ1R5cGV9OjpzX2luZm8pKVxuIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0
cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gJGFy
Z3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHthcmdWYWx1
ZX0uaXNTdHJpbmcoKSAmJiAhJHthcmdWYWx1ZX0uaXNPYmplY3QoKSlcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmluZWRPck51
bGwoKSAmJiAhJHthcmdWYWx1ZX0uaXNOdW1iZXIoKSlcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmluZWRPck51bGwo
KSAmJiAhJHthcmdWYWx1ZX0uaW5oZXJpdHMoJkpTJHthcmdUeXBlfTo6c19pbmZvKSlcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdl
dE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFtZSA9ICIgLiBKU1Zh
bHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpIikgLiAi
O1xuIik7CkBAIC0yMDY3LDEyICsyMTA1LDIxIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGUgdHlwZSBjb252ZXJz
aW9uIHN1Y2NlZWRlZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkYXJnVHlwZSkg
YW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghJG5hbWUpIHtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblN0cmluZyAuPSAiLCAiIGlmICRwYXJhbUluZGV4
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAiTm9k
ZUZpbHRlciIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYXJnVHlwZSBlcSAiTm9k
ZUZpbHRlciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TdHJpbmcg
Lj0gIiRuYW1lLmdldCgpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1w
bENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uU3RyaW5nIC49ICIkbmFtZS0+cHJvcGVydHlSZWZlcmVuY2UoKSI7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvblN0cmluZyAuPSAkbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIzNzEs
NyArMjQxOCwxNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgpCiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIiRmdW5jdGlvblN0cmluZztcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpO1xuIikgaWYgQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9OwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJpbXAtPmNvbW1pdENoYW5nZShwb2RJbXAs
IGNhc3RlZFRoaXMpO1xuIikgaWYgJHBvZFR5cGU7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAkaW5kZW50IC4gImltcC0+Y29tbWl0Q2hhbmdlKCk7XG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBl
OworCisgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7CisgICAgICAgICAgICBpZiAoQHsk
ZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFlYylcbiIpOyAKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgaW1wLT5jb21taXRDaGFuZ2UoKTtcbiIpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
JGluZGVudCAuICJpbXAtPmNvbW1pdENoYW5nZSgpO1xuIik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJyZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5kZW50IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQg
PSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNz
TmFtZSwgIiIsICRmdW5jdGlvblN0cmluZywgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsKQEAgLTI0
MTMsNyArMjQ2OSw3IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJOb2RlRmlsdGVyIiA9PiAi
UmVmUHRyPE5vZGVGaWx0ZXI+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAogICAgICJJREJLZXkiID0+ICJSZWZQdHI8SURC
S2V5PiIsCi0gICAgIlNWR0FuZ2xlIiA9PiAiU1ZHQW5nbGUiLAorICAgICJTVkdBbmdsZSIgPT4g
IlNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZT4qIiwKICAgICAiU1ZHTGVuZ3RoIiA9PiAiU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aD4qIiwKICAgICAiU1ZHTWF0cml4IiA9PiAiQWZmaW5l
VHJhbnNmb3JtIiwKICAgICAiU1ZHTnVtYmVyIiA9PiAiZmxvYXQiLApAQCAtMjU2NywxMiArMjYy
Myw2IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgfQogICAgIH0gCiAKLSAgICBteSAk
c3ZnTGl2ZVByb3BlcnR5VHlwZSA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJT
VkdMaXZlUHJvcGVydHkifTsKLSAgICBpZiAoJHN2Z0xpdmVQcm9wZXJ0eVR5cGUpIHsKLSAgICAg
ICAgJGltcGxJbmNsdWRlc3siSlMkdHlwZS5oIn0gPSAxOwotICAgICAgICByZXR1cm4gInRvSlMo
ZXhlYywgJGdsb2JhbE9iamVjdCwgU1ZHUHJvcGVydHlUZWFyT2ZmPCR0eXBlPjo6Y3JlYXRlKCR2
YWx1ZSkuZ2V0KCkpIjsKLSAgICB9Ci0KICAgICBpZiAoJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFy
YXRpb24iKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmgifSA9IDE7CiAgICAgfQpAQCAtMjYxMiwxMyArMjY2MiwxNSBAQCBzdWIgTmF0aXZlVG9K
U1ZhbHVlCiAgICAgICAgIHJldHVybiAidG9KU05ld2x5Q3JlYXRlZChleGVjLCAkZ2xvYmFsT2Jq
ZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CiAgICAgfQogCi0gICAgIyBDb252ZXJ0IGZyb20g
YWJzdHJhY3QgU1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQgdG9KUygpIG1l
dGhvZCBjYW4gYmUgaW52b2tlZC4KICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5
bGVBbmltYXRlZFR5cGUoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgQ29udmVydCBmcm9t
IGFic3RyYWN0IFNWR1Byb3BlcnR5IHRvIHJlYWwgdHlwZSwgc28gdGhlIHJpZ2h0IHRvSlMoKSBt
ZXRob2QgY2FuIGJlIGludm9rZWQuCiAgICAgICAgIGlmICgkaW1wbENsYXNzTmFtZSA9fiAvTGlz
dCQvKSB7CiAgICAgICAgICAgICAkdmFsdWUgPSAic3RhdGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjwkdHlwZT4qPigkdmFsdWUpIjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDxTVkdQcm9wZXJ0eVRlYXJPZmY8JHR5cGU+Kj4oJHZhbHVl
KSI7CiAgICAgICAgIH0KKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVl
ZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewor
ICAgICAgICAkdmFsdWUgPSAiU1ZHUHJvcGVydHlUZWFyT2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1
ZSkiOwogICAgIH0KIAogICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6
OmdldFB0cigkdmFsdWUpKSI7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDcg
QEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWND
b3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4K
KyMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzY5LDggKzEzNzAsMTYgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5
VHlwZSkgewogICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiJGdldHRl
ckV4cHJlc3Npb25QcmVmaXgiOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkc3ZnUHJvcGVydHlUeXBlV2l0aE5hbWVzcGFjZSYgcG9kSW1wbCA9IElNUEwtPnBy
b3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcG9kSW1wbC4kY29yZVNldHRlck5hbWUoJGFyZyk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGVjID0gJGhhc1NldHRlckV4Y2VwdGlvbiA/
ICIsIGVjIiA6ICIiOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAkZXhjZXB0aW9uSW5pdFxuIikgaWYgJGhhc1NldHRlckV4Y2VwdGlvbjsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wbC4kY29yZVNldHRlck5hbWUo
JGFyZyRlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNTZXR0ZXJFeGNlcHRp
b24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghZWMpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICBJTVBMLT5jb21taXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIik7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgSU1QTC0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVy
dHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0
dGVyRXhwcmVzc2lvblByZWZpeCI7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIElNUEwtPiRjb3JlU2V0dGVyTmFtZSgkYXJnKTtcbiIpOwpAQCAtMTUwMyw2ICsx
NTEyLDM1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1c2go
QHBhcmFtZXRlck5hbWVzLCAiZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9ucyBhbmQgISgkc3ZnTWF0
cml4Um90YXRlRnJvbVZlY3RvciB8fCAkc3ZnTWF0cml4SW52ZXJzZSk7CiAgICAgICAgICAgICBw
dXNoKEBwYXJhbWV0ZXJOYW1lcywgIjAgLyogRklYTUUgKi8iKSBpZiAkc3ZnTGVuZ3RoQ29udmVy
dFRvU3BlY2lmaWVkVW5pdHM7IAorCisgICAgICAgICAgICAjIEhhbmRsZSBhcmd1bWVudHMgdGhh
dCBhcmUgJ1NWR1Byb3BlcnR5JyBiYXNlZCAoU1ZHQW5nbGUvU1ZHTGVuZ3RoKS4gV2UgbmVlZCB0
byBjb252ZXJ0IGZyb20gU1ZHUHJvcGVydHlUZWFyT2ZmPFR5cGU+KiB0byBUeXBlLAorICAgICAg
ICAgICAgIyB0byBiZSBhYmxlIHRvIGNhbGwgdGhlIGRlc2lyZWQgV2ViQ29yZSBmdW5jdGlvbi4g
SWYgdGhlIGNvbnZlcnNpb24gZmFpbHMsIHdlIGNhbid0IGV4dHJhY3QgVHlwZSBhbmQgbmVlZCB0
byByYWlzZSBhbiBleGNlcHRpb24uCisgICAgICAgICAgICBteSAkY3VycmVudFBhcmFtZXRlciA9
IC0xOworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSkgeworICAgICAgICAgICAgICAgICRjdXJyZW50UGFyYW1ldGVyKys7CisKKyAgICAgICAg
ICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOworICAgICAgICAgICAgICAgIG15
ICRpZGxUeXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRwYXJhbS0+dHlwZSk7Cisg
ICAgICAgICAgICAgICAgbmV4dCBpZiBub3QgJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCRpZGxUeXBlKSBvciAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvOworCisgICAg
ICAgICAgICAgICAgbXkgJGltcGxHZXR0ZXIgPSBHZXRPYmpDVHlwZUdldHRlcigkcGFyYW1OYW1l
LCAkaWRsVHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID0g
KCRpZGxUeXBlIGVxICJmbG9hdCIpID8gIiRpZGxUeXBlIiA6ICJXZWJDb3JlOjokaWRsVHlwZSI7
CisKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgV2ViQ29yZTo6
U1ZHUHJvcGVydHlUZWFyT2ZmPCRpZGxUeXBlV2l0aE5hbWVzcGFjZT4qICR7cGFyYW1OYW1lfUNv
cmUgPSAkaW1wbEdldHRlcjtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29u
dGVudCwgIiAgICBpZiAoISR7cGFyYW1OYW1lfUNvcmUpIHtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IFdlYkNvcmU6OlRZUEVfTUlTTUFUQ0hfRVJSO1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICAkZXhjZXB0aW9uUmFpc2VPbkVycm9yXG4iKTsK
KyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgZXEgInZvaWQiKSB7IAorICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0
aW9uQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5pbDtcbiIpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgfVxuIik7CisKKyAg
ICAgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIHBhcmFtdGVyIGNvcmUoKSBnZXR0ZXIsIGJ5IHRo
ZSBjYWNoZWQgdmFyaWFibGUuCisgICAgICAgICAgICAgICAgc3BsaWNlKEBwYXJhbWV0ZXJOYW1l
cywgJGN1cnJlbnRQYXJhbWV0ZXIsIDEsICIke3BhcmFtTmFtZX1Db3JlLT5wcm9wZXJ0eVJlZmVy
ZW5jZSgpIik7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIG15ICRjb250ZW50ID0gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiKCIgLiBqb2luKCIsICIs
IEBwYXJhbWV0ZXJOYW1lcykgLiAiKSI7IAogCiAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5
VHlwZSkgewpAQCAtMTU1NCw5ICsxNTkyLDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJmb28iOwogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBpZiAoQ29udmVyc2lvbk5lZWRlZCgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbXkgJHN2Z0xpdmVQcm9wZXJ0eSA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHTGl2ZVByb3BlcnR5
In07Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnTGl2ZVByb3BlcnR5KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJraXQoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmPFdlYkNvcmU6OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSAuICI+OjpjcmVhdGUo
JGNvbnRlbnQpLmdldCgpKSI7CisgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGFu
ZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgICAgICAgICAgICAgICAgICAg
ICAgJGNvbnRlbnQgPSAia2l0KFdURjo6Z2V0UHRyKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9m
ZjxXZWJDb3JlOjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgLiAiPjo6Y3JlYXRlKCRj
b250ZW50KSkpIjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3It
PklzUG9kVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICRjb250ZW50ID0gImtpdCgkY29udGVudCkiOwogICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw3IEBACiAjIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogIyBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDgsIDIwMDkgR29vZ2xlIEluYy4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENhbWVyb24gTWNDb3Jt
YWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg3
LDYgKzg4LDcgQEAgc3ViIGZpbmlzaAogfQogCiAjIFdvcmthcm91bmQgZm9yIFY4IGJpbmRpbmdz
IGRpZmZlcmVuY2Ugd2hlcmUgUkdCQ29sb3IgaXMgbm90IGEgUE9EIHR5cGUuCisjIEZJWE1FOiBU
aGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMg
YXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4KIHN1YiBJc1BvZFR5cGUKIHsKICAgICBt
eSAkdHlwZSA9IHNoaWZ0OwpAQCAtOTM2LDYgKzkzOCwyOCBAQCBzdWIgR2VuZXJhdGVOb3JtYWxB
dHRyU2V0dGVyCiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInN0YXRpYyB2b2lkICR7YXR0
ck5hbWV9QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pXG57XG4iKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNz
TmFtZS4kYXR0ck5hbWUuX3NldFwiKTtcbiIpOwogCisgICAgIyBGb3IgZnVuY3Rpb25zIHdpdGgg
IlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlucHV0IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBu
b3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKKyAgICAjIGEgVHlwZUVycm9yIGlzIHRocm93biBpbnN0
ZWFkIG9mIGNhc3RpbmcgdG8gbnVsbC4KKyAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgICAgbXkg
JGFyZ1R5cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWduYXR1cmUpOwor
ICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFpc1VuZGVmaW5lZE9y
TnVsbCh2YWx1ZSkgJiYgIXZhbHVlLT5Jc1N0cmluZygpICYmICF2YWx1ZS0+SXNPYmplY3QoKSkg
e1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBWOFBy
b3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgfVxuIik7CisgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c051bWVyaWNUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAmJiAhdmFsdWUtPklzTnVt
YmVyKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAg
ICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOworICAgICAgICB9IGVsc2lmIChJc1dyYXBwZXJU
eXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAmJiAhVjgke2FyZ1R5cGV9OjpIYXNJbnN0
YW5jZSh2YWx1ZSkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgbXkgJGlzUG9kVHlwZSA9IElzUG9kVHlwZSgkaW1wbENsYXNzTmFtZSk7CiAgICAgbXkgJHN2
Z1Byb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3Bl
cnR5In07CiAgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsKQEAgLTEwNTAsNyArMTA3NCwxMiBAQCBF
TkQKICAgICBpZiAoJGlzUG9kVHlwZSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgIHdyYXBwZXItPmNvbW1pdENoYW5nZSgqaW1wLCBWOFByb3h5OjpzdmdDb250ZXh0KHdy
YXBwZXIpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB3cmFwcGVyLT5jb21taXRDaGFuZ2UoKTtcbiIp
OworICAgICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgaWYgKCFlYylcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlci0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgd3Jh
cHBlci0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgfQogICAgIH0gZWxzaWYgKElzU1ZH
VHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICAk
aW1wbEluY2x1ZGVzeyJTVkdFbGVtZW50LmgifSA9IDE7CiAKQEAgLTEzNzcsMTMgKzE0MDYsMTgg
QEAgRU5ECiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgewogICAgICAgICAgICAgICAgIG15ICRh
cmdWYWx1ZSA9ICJhcmdzWyRwYXJhbUluZGV4XSI7CiAgICAgICAgICAgICAgICAgbXkgJGFyZ1R5
cGUgPSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICBp
ZiAoSXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYm
ICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3Rh
bmNlKCRhcmdWYWx1ZSkpIHtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYg
IWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygp
ICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgewot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdz
Lkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkg
JiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkg
e1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJp
Y1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAkcGFyYW1JbmRleCAmJiAhaXNVbmRlZmlu
ZWRPck51bGwoJGFyZ1ZhbHVlKSAmJiAhJHthcmdWYWx1ZX0tPklzTnVtYmVyKCkpIHtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBWOFBy
b3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAg
fVxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoSXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAo
YXJncy5MZW5ndGgoKSA+ICRwYXJhbUluZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFs
dWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNlKCRhcmdWYWx1ZSkpIHtcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBWOFByb3h5
Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxu
Iik7CkBAIC0yNzExLDYgKzI3NDUsMTIgQEAgc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5n
KCkKIAogICAgICAgICBpZiAoJHBhcmFtZXRlci0+dHlwZSBlcSAiTm9kZUZpbHRlciIgfHwgJHBh
cmFtZXRlci0+dHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAgJGZ1bmN0
aW9uU3RyaW5nIC49ICIkcGFyYW1OYW1lLmdldCgpIjsKKyAgICAgICAgfSBlbHNpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRwYXJhbWV0ZXItPnR5cGUpIGFuZCBu
b3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgICAgICAgICAgJGZ1bmN0aW9uU3Ry
aW5nIC49ICIkcGFyYW1OYW1lLT5wcm9wZXJ0eVJlZmVyZW5jZSgpIjsKKyAgICAgICAgICAgICRy
ZXN1bHQgLj0gJGluZGVudCAuICJpZiAoISRwYXJhbU5hbWUpIHtcbiI7CisgICAgICAgICAgICAk
cmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihXZWJDb3Jl
OjpUWVBFX01JU01BVENIX0VSUik7XG4iOworICAgICAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50
IC4gIiAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7XG4iOworICAgICAgICAgICAg
JHJlc3VsdCAuPSAkaW5kZW50IC4gIn1cbiI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAkZnVuY3Rpb25TdHJpbmcgLj0gJHBhcmFtTmFtZTsKICAgICAgICAgfQpAQCAtMjc3NSwxMiAr
MjgxNSwxMSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgICAgICAkcmVz
dWx0IC49IEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlwZVdyYXBwZXIoJHJldHVyblR5cGUsICRyZXR1
cm4pIC4gIjtcbiI7CiAgICAgICAgICRyZXR1cm4gPSAid3JhcHBlciI7CiAgICAgfQotICAgIAot
ICAgIG15ICRzdmdMaXZlUHJvcGVydHlUeXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJTVkdMaXZlUHJvcGVydHkifTsKLSAgICBpZiAoJHN2Z0xpdmVQcm9w
ZXJ0eVR5cGUpIHsKKworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1Rl
YXJPZmYoJHJldHVyblR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewog
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCRyZXR1cm5UeXBlLmgifSA9IDE7CiAgICAgICAgICRp
bXBsSW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxOwotICAgICAgICByZXR1cm4g
JGluZGVudCAuICJyZXR1cm4gdG9WOChTVkdQcm9wZXJ0eVRlYXJPZmY8JHJldHVyblR5cGU+Ojpj
cmVhdGUoJHJldHVybikuZ2V0KCkpO1xuIjsKKyAgICAgICAgcmV0dXJuICRpbmRlbnQgLiAicmV0
dXJuIHRvVjgoV1RGOjpnZXRQdHIoU1ZHUHJvcGVydHlUZWFyT2ZmPCRyZXR1cm5UeXBlPjo6Y3Jl
YXRlKCRyZXR1cm4pKSk7XG4iOwogICAgIH0KIAogICAgIG15ICRnZW5lcmF0ZWRTVkdDb250ZXh0
UmV0cmlldmFsID0gMDsKQEAgLTI5MDIsNyArMjk0MSw3IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAg
ICAgcmV0dXJuICJGbG9hdFBvaW50IiBpZiAkdHlwZSBlcSAiU1ZHUG9pbnQiOwogICAgIHJldHVy
biAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAiU1ZHTWF0cml4IjsKICAgICByZXR1cm4g
IlNWR1RyYW5zZm9ybSIgaWYgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybSI7Ci0gICAgcmV0dXJuICJT
VkdBbmdsZSIgaWYgJHR5cGUgZXEgIlNWR0FuZ2xlIjsKKyAgICByZXR1cm4gIlJlZlB0cjxTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGU+ID4iIGlmICR0eXBlIGVxICJTVkdBbmdsZSI7CiAgICAg
cmV0dXJuICJSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aD4gPiIgaWYgJHR5cGUg
ZXEgIlNWR0xlbmd0aCI7CiAgICAgcmV0dXJuICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR0xl
bmd0aExpc3Q+KiIgaWYgJHR5cGUgZXEgIlNWR0xlbmd0aExpc3QiOwogICAgIHJldHVybiAiZmxv
YXQiIGlmICR0eXBlIGVxICJTVkdOdW1iZXIiOwpAQCAtMjk1Niw3ICsyOTk1LDYgQEAgc3ViIEJh
c2ljVHlwZUNhbkZhaWxDb252ZXJzaW9uCiAgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OwogICAg
IG15ICR0eXBlID0gR2V0VHlwZUZyb21TaWduYXR1cmUoJHNpZ25hdHVyZSk7CiAKLSAgICByZXR1
cm4gMSBpZiAkdHlwZSBlcSAiU1ZHQW5nbGUiOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJT
VkdNYXRyaXgiOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdQb2ludCI7CiAgICAgcmV0
dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iOwpAQCAtMzI4MCw2ICsz
MzE4LDcgQEAgc3ViIFJldHVybk5hdGl2ZVRvSlNWYWx1ZQogICAgIHJldHVybiAicmV0dXJuIHRv
VjgoJHZhbHVlKSI7CiB9CiAKKyMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNl
IGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2No
ZW1lLgogc3ViIEdlbmVyYXRlU1ZHU3RhdGljUG9kVHlwZVdyYXBwZXIgewogICAgIG15ICR0eXBl
ID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlID0gc2hpZnQ7CkBAIC0zMzM0LDE4ICszMzczLDI1IEBA
IHN1YiBXcml0ZURhdGEKICAgICB9CiB9CiAKKyMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28g
YXdheSBvbmNlIGFsbCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRo
ZSBuZXcgc2NoZW1lLgogc3ViIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyCiB7CiAg
ICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKIAogICAgIHJldHVybiAwIGlmICRjb2RlR2Vu
ZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5pbWF0ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKTsKICAgICBp
ZiAoJGltcGxDbGFzc05hbWUgPX4gL1NWRy8gYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvRWxl
bWVudC8pIHsKLSAgICAgICAgcmV0dXJuIDEgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdQ
YWludC8gb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0NvbG9yLyBvciAkaW1wbENsYXNzTmFtZSA9
fiAvU1ZHRG9jdW1lbnQvIG9yICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdMZW5ndGgvIG9yICRpbXBs
Q2xhc3NOYW1lID1+L1NWR0xlbmd0aExpc3QvOworICAgICAgICByZXR1cm4gMSB1bmxlc3MgJGlt
cGxDbGFzc05hbWUgPX4gL1NWR0FuZ2xlLworICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxD
bGFzc05hbWUgPX4gL1NWR1BhaW50LworICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFz
c05hbWUgPX4gL1NWR0NvbG9yLworICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05h
bWUgPX4gL1NWR0RvY3VtZW50LworICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05h
bWUgPX4gL1NWR0xlbmd0aC8KKyAgICAgICAgICAgICAgICAgICAgIG9yICRpbXBsQ2xhc3NOYW1l
ID1+IC9TVkdMZW5ndGhMaXN0LzsKICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAorIyBGSVhN
RTogVGhpcyBtZXRob2Qgd2lsbCBnbyBhd2F5IG9uY2UgYWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0
aWVzIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hlbWUuCiBzdWIgR2VuZXJhdGVTVkdDb250
ZXh0QXNzaWdubWVudAogewogICAgIG15ICRzcmNUeXBlID0gc2hpZnQ7CkBAIC0zMzU4LDYgKzM0
MDQsNyBAQCBzdWIgR2VuZXJhdGVTVkdDb250ZXh0QXNzaWdubWVudAogICAgIHJldHVybiAkcmVz
dWx0OwogfQogCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwgU1ZH
IGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4KIHN1
YiBHZW5lcmF0ZVNWR0NvbnRleHRSZXRyaWV2YWwKIHsKICAgICBteSAkc3JjVHlwZSA9IHNoaWZ0
OwpJbmRleDogV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0
eVRyYWl0cy5oCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdB
bmltYXRlZFByb3BlcnR5VHJhaXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDYgQEAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJM
aXN0LmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNW
R1RyYW5zZm9ybUxpc3QuaCIKQEAgLTM0LDE4ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBzdHJ1Y3QgRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJv
cGVydHlUcmFpdHMgOiBwdWJsaWMgTm9uY29weWFibGUgeyB9OwogCi0vLyBTVkdBbmltYXRlZEFu
Z2xlCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFp
dHM8U1ZHQW5nbGU+IDogcHVibGljIE5vbmNvcHlhYmxlIHsKLSAgICB0eXBlZGVmIGNvbnN0IFNW
R0FuZ2xlJiBQYXNzVHlwZTsKLSAgICB0eXBlZGVmIFNWR0FuZ2xlIFJldHVyblR5cGU7Ci0gICAg
dHlwZWRlZiBTVkdBbmdsZSBTdG9yZWRUeXBlOwotCi0gICAgc3RhdGljIFJldHVyblR5cGUgbnVs
bCgpIHsgcmV0dXJuIFNWR0FuZ2xlKCk7IH0KLSAgICBzdGF0aWMgUmV0dXJuVHlwZSB0b1JldHVy
blR5cGUoY29uc3QgU3RvcmVkVHlwZSYgdHlwZSkgeyByZXR1cm4gdHlwZTsgfQotICAgIHN0YXRp
YyBTdHJpbmcgdG9TdHJpbmcoUGFzc1R5cGUgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3Ry
aW5nKCk7IH0KLX07Ci0KIC8vIFNWR0FuaW1hdGVkQm9vbGVhbgogdGVtcGxhdGU8Pgogc3RydWN0
IERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzPGJvb2w+IDogcHVibGljIE5vbmNv
cHlhYmxlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxh
dGUuaAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgIAotICAgIGNsYXNzIFNWR0FuZ2xlOwogICAgIGNsYXNzIFNWR0VsZW1l
bnQ7CiAgICAgY2xhc3MgU1ZHTnVtYmVyTGlzdDsKICAgICBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvOwpAQCAtMTU1LDcgKzE1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9CiAK
ICAgICAvLyBDb21tb24gdHlwZSBkZWZpbml0aW9ucywgdG8gZWFzZSBJREwgZ2VuZXJhdGlvbi4K
LSAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRlPFNWR0FuZ2xlPiBTVkdB
bmltYXRlZEFuZ2xlOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8
Ym9vbD4gU1ZHQW5pbWF0ZWRCb29sZWFuOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1h
dGVkVGVtcGxhdGU8aW50PiBTVkdBbmltYXRlZEVudW1lcmF0aW9uOwogICAgIHR5cGVkZWYgRGVw
cmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8bG9uZz4gU1ZHQW5pbWF0ZWRJbnRlZ2VyOwpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0FuZ2xlLmNwcAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDExMSArMjAsMjE3
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAKKyNpbmNsdWRlICJTVkdQ
YXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
U1ZHQW5nbGU6OlNWR0FuZ2xlKCkKLSAgICA6IG1fdW5pdFR5cGUoU1ZHX0FOR0xFVFlQRV9VTktO
T1dOKQotICAgICwgbV92YWx1ZSgwKQorICAgIDogbV91bml0VHlwZShTVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVEKQogICAgICwgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMoMCkKIHsKIH0KIAorZmxv
YXQgU1ZHQW5nbGU6OnZhbHVlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdW5pdFR5cGUpIHsK
KyAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAgICAgICAgcmV0dXJuIGdyYWQyZGVnKG1f
dmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOgorICAg
ICAgICByZXR1cm4gcmFkMmRlZyhtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgY2FzZSBT
VkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dO
OgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6CisgICAgICAgIHJldHVybiBtX3ZhbHVlSW5T
cGVjaWZpZWRVbml0czsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKwogdm9pZCBTVkdBbmdsZTo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpCiB7Ci0g
ICAgbV92YWx1ZSA9IHZhbHVlOworICAgIHN3aXRjaCAobV91bml0VHlwZSkgeworICAgIGNhc2Ug
U1ZHX0FOR0xFVFlQRV9HUkFEOgorICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGRl
ZzJncmFkKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JB
RDoKKyAgICAgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBkZWcycmFkKHZhbHVlKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEOgorICAgIGNh
c2UgU1ZHX0FOR0xFVFlQRV9VTktOT1dOOgorICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6Cisg
ICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gdmFsdWU7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KIH0KIAotLy8gY2FsYyBtX3ZhbHVlCi12b2lkIFNWR0FuZ2xlOjpjYWxjdWxhdGUoKQor
aW5saW5lIFNWR0FuZ2xlOjpTVkdBbmdsZVR5cGUgc3RyaW5nVG9BbmdsZVR5cGUoY29uc3QgVUNo
YXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQpCiB7Ci0gICAgaWYgKG1fdW5pdFR5cGUgPT0gU1ZH
X0FOR0xFVFlQRV9HUkFEKQotICAgICAgICBtX3ZhbHVlID0gZ3JhZDJkZWcobV92YWx1ZUluU3Bl
Y2lmaWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9S
QUQpCi0gICAgICAgIG1fdmFsdWUgPSByYWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsK
LSAgICBlbHNlIGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQgfHwg
bV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0RFRykKLSAgICAgICAgbV92YWx1ZSA9IG1fdmFs
dWVJblNwZWNpZmllZFVuaXRzOworICAgIC8vIElmIHRoZXJlJ3Mgbm8gdW5pdCBnaXZlbiwgdGhl
IGFuZ2xlIHR5cGUgaXMgdW5zcGVjaWZpZWQuCisgICAgaWYgKHB0ciA9PSBlbmQpCisgICAgICAg
IHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDsKKworICAgIGNvbnN0
IFVDaGFyIGZpcnN0Q2hhciA9ICpwdHI7CisgICAgCisgICAgLy8gSWYgdGhlIHVuaXQgY29udGFp
bnMgb25seSBvbmUgY2hhcmFjdGVyLCB0aGUgYW5nbGUgdHlwZSBpcyB1bmtub3duLgorICAgICsr
cHRyOworICAgIGlmIChwdHIgPT0gZW5kKQorICAgICAgICByZXR1cm4gU1ZHQW5nbGU6OlNWR19B
TkdMRVRZUEVfVU5LTk9XTjsKKworICAgIGNvbnN0IFVDaGFyIHNlY29uZENoYXIgPSAqcHRyOwor
IAorICAgIC8vIElmIHRoZSB1bml0IGNvbnRhaW5zIG9ubHkgdHdvIGNoYXJhY3RlcnMsIHRoZSBh
bmdsZSB0eXBlIGlzIHVua25vd24uCisgICAgKytwdHI7CisgICAgaWYgKHB0ciA9PSBlbmQpCisg
ICAgICAgIHJldHVybiBTVkdBbmdsZTo6U1ZHX0FOR0xFVFlQRV9VTktOT1dOOworCisgICAgY29u
c3QgVUNoYXIgdGhpcmRDaGFyID0gKnB0cjsKKyAgICBpZiAoZmlyc3RDaGFyID09ICdkJyAmJiBz
ZWNvbmRDaGFyID09ICdlJyAmJiB0aGlyZENoYXIgPT0gJ2cnKQorICAgICAgICByZXR1cm4gU1ZH
QW5nbGU6OlNWR19BTkdMRVRZUEVfREVHOworICAgIGlmIChmaXJzdENoYXIgPT0gJ3InICYmIHNl
Y29uZENoYXIgPT0gJ2EnICYmIHRoaXJkQ2hhciA9PSAnZCcpCisgICAgICAgIHJldHVybiBTVkdB
bmdsZTo6U1ZHX0FOR0xFVFlQRV9SQUQ7CisKKyAgICAvLyBJZiB0aGUgdW5pdCBjb250YWlucyB0
aHJlZSBjaGFyYWN0ZXJzLCBidXQgaXMgbm90IGRlZyBvciByYWQsIHRoZW4gaXQncyB1bmtub3du
LgorICAgICsrcHRyOworICAgIGlmIChwdHIgPT0gZW5kKQorICAgICAgICByZXR1cm4gU1ZHQW5n
bGU6OlNWR19BTkdMRVRZUEVfVU5LTk9XTjsKKworICAgIGNvbnN0IFVDaGFyIGZvdXJ0aENoYXIg
PSAqcHRyOworCisgICAgaWYgKGZpcnN0Q2hhciA9PSAnZycgJiYgc2Vjb25kQ2hhciA9PSAncicg
JiYgdGhpcmRDaGFyID09ICdhJyAmJiBmb3VydGhDaGFyID09ICdkJykKKyAgICAgICAgcmV0dXJu
IFNWR0FuZ2xlOjpTVkdfQU5HTEVUWVBFX0dSQUQ7CisKKyAgICByZXR1cm4gU1ZHQW5nbGU6OlNW
R19BTkdMRVRZUEVfVU5LTk9XTjsKIH0KIAotdm9pZCBTVkdBbmdsZTo6c2V0VmFsdWVJblNwZWNp
ZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKK1N0cmluZyBTVkdBbmdsZTo6
dmFsdWVBc1N0cmluZygpIGNvbnN0CiB7Ci0gICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSB2
YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAgY2FsY3VsYXRlKCk7CisgICAgc3dpdGNoIChtX3Vu
aXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKKyAgICAgICAgcmV0dXJuIG1h
a2VTdHJpbmcoU3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpLCAiZGVnIik7
CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmco
U3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpLCAicmFkIik7CisgICAgY2Fz
ZSBTVkdfQU5HTEVUWVBFX0dSQUQ6CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6
bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSwgImdyYWQiKTsKKyAgICBjYXNlIFNWR19B
TkdMRVRZUEVfVU5TUEVDSUZJRUQ6CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046Cisg
ICAgICAgIHJldHVybiBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmll
ZFVuaXRzKSk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCi12b2lkIFNWR0FuZ2xlOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFN0
cmluZyYgcykKK3ZvaWQgU1ZHQW5nbGU6OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgbV92YWx1ZUFzU3RyaW5nID0gczsKKyAg
ICBpZiAodmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdW5pdFR5cGUgPSBTVkdfQU5HTEVU
WVBFX1VOU1BFQ0lGSUVEOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgYm9vbCBiT0s7
Ci0gICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBtX3ZhbHVlQXNTdHJpbmcudG9GbG9hdCgm
Yk9LKTsKLSAgICBtX3VuaXRUeXBlID0gU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDsKKyAgICBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSAwOworICAgIGNvbnN0IFVDaGFyKiBwdHIgPSB2
YWx1ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IHB0ciArIHZhbHVlLmxl
bmd0aCgpOwogCi0gICAgaWYgKCFiT0spIHsKLSAgICAgICAgaWYgKG1fdmFsdWVBc1N0cmluZy5l
bmRzV2l0aCgiZGVnIikpCi0gICAgICAgICAgICBtX3VuaXRUeXBlID0gU1ZHX0FOR0xFVFlQRV9E
RUc7Ci0gICAgICAgIGVsc2UgaWYgKG1fdmFsdWVBc1N0cmluZy5lbmRzV2l0aCgiZ3JhZCIpKQot
ICAgICAgICAgICAgbV91bml0VHlwZSA9IFNWR19BTkdMRVRZUEVfR1JBRDsKLSAgICAgICAgZWxz
ZSBpZiAobV92YWx1ZUFzU3RyaW5nLmVuZHNXaXRoKCJyYWQiKSkKLSAgICAgICAgICAgIG1fdW5p
dFR5cGUgPSBTVkdfQU5HTEVUWVBFX1JBRDsKKyAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5k
LCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIGZhbHNlKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9F
UlI7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCi0gICAgY2FsY3VsYXRlKCk7CisKKyAg
ICBTVkdBbmdsZVR5cGUgdW5pdFR5cGUgPSBzdHJpbmdUb0FuZ2xlVHlwZShwdHIsIGVuZCk7Cisg
ICAgaWYgKHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfVU5LTk9XTikgeworICAgICAgICBlYyA9
IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3VuaXRUeXBlID0g
dW5pdFR5cGU7CisgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1ZUluU3BlY2lmaWVk
VW5pdHM7CiB9CiAKLVN0cmluZyBTVkdBbmdsZTo6dmFsdWVBc1N0cmluZygpIGNvbnN0Cit2b2lk
IFNWR0FuZ2xlOjpuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBl
LCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICh1bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX1VOS05PV04gfHwgdW5pdFR5cGUgPiBTVkdf
QU5HTEVUWVBFX0dSQUQpIHsKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh1bml0VHlwZSAhPSBtX3VuaXRUeXBlKQorICAg
ICAgICBtX3VuaXRUeXBlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVUeXBlPih1bml0VHlwZSk7CisK
KyAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKK30K
Kwordm9pZCBTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQg
dW5pdFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIG1fdmFsdWVBc1N0cmluZyA9IFN0
cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICBpZiAodW5pdFR5cGUg
PT0gU1ZHX0FOR0xFVFlQRV9VTktOT1dOIHx8IG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9V
TktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0FOR0xFVFlQRV9HUkFEKSB7CisgICAgICAgIGVjID0g
Tk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodW5p
dFR5cGUgPT0gbV91bml0VHlwZSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgc3dpdGNoIChtX3Vu
aXRUeXBlKSB7CisgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAgICAgICAgc3dpdGNoICh1
bml0VHlwZSkgeworICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAgICAgICAgICAg
IG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmdyYWQobV92YWx1ZUluU3BlY2lmaWVkVW5p
dHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQ
RUNJRklFRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKKyAgICAgICAgICAgIG1f
dmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmRlZyhtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1JBRDoKKyAg
ICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9HUkFEOgorICAgICAgICBzd2l0Y2ggKHVuaXRUeXBl
KSB7CisgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9SQUQ6CisgICAgICAgICAgICBtX3ZhbHVl
SW5TcGVjaWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6
CiAgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6Ci0gICAgICAgICAgICBtX3ZhbHVlQXNT
dHJpbmcgKz0gImRlZyI7CisgICAgICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGdy
YWQyZGVnKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKKyAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X1VOS05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1ZHX0FOR0xFVFlQ
RV9VTlNQRUNJRklFRDoKKyAgICAgICAgLy8gU3BlYzogRm9yIGFuZ2xlcywgYSB1bml0bGVzcyB2
YWx1ZSBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlmIGRlZ3JlZXMgd2VyZSBzcGVjaWZpZWQuCisg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKKyAgICAgICAgc3dpdGNoICh1bml0VHlwZSkgewog
ICAgICAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOgotICAgICAgICAgICAgbV92YWx1ZUFzU3Ry
aW5nICs9ICJyYWQiOworICAgICAgICAgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBkZWcy
cmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFNWR19BTkdMRVRZUEVfR1JBRDoKLSAgICAgICAgICAgIG1fdmFsdWVBc1N0cmluZyAr
PSAiZ3JhZCI7CisgICAgICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGRlZzJncmFk
KG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKICAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX1VO
S05PV046CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9V
TktOT1dOOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQotICAgIAotICAgIHJldHVybiBtX3ZhbHVlQXNTdHJpbmc7Ci19Ci0KLXZvaWQgU1ZHQW5n
bGU6Om5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGZsb2F0
IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKLXsKLSAgICBtX3VuaXRUeXBlID0gKFNWR0FuZ2xlVHlw
ZSl1bml0VHlwZTsKLSAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IHZhbHVlSW5TcGVjaWZp
ZWRVbml0czsKLSAgICBjYWxjdWxhdGUoKTsKLX0KLQotdm9pZCBTVkdBbmdsZTo6Y29udmVydFRv
U3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpCi17Ci0gICAgaWYgKG1fdW5p
dFR5cGUgPT0gdW5pdFR5cGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3VuaXRUeXBl
ID09IFNWR19BTkdMRVRZUEVfREVHICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfUkFEKQot
ICAgICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGRlZzJyYWQobV92YWx1ZUluU3BlY2lm
aWVkVW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9HUkFE
ICYmIHVuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfUkFEKQotICAgICAgICBtX3ZhbHVlSW5TcGVj
aWZpZWRVbml0cyA9IGdyYWQycmFkKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgICBlbHNl
IGlmIChtX3VuaXRUeXBlID09IFNWR19BTkdMRVRZUEVfREVHICYmIHVuaXRUeXBlID09IFNWR19B
TkdMRVRZUEVfR1JBRCkKLSAgICAgICAgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBkZWcyZ3Jh
ZChtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gICAgZWxzZSBpZiAobV91bml0VHlwZSA9PSBT
VkdfQU5HTEVUWVBFX1JBRCAmJiB1bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0dSQUQpCi0gICAg
ICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gcmFkMmdyYWQobV92YWx1ZUluU3BlY2lmaWVk
VW5pdHMpOwotICAgIGVsc2UgaWYgKG1fdW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9SQUQgJiYg
dW5pdFR5cGUgPT0gU1ZHX0FOR0xFVFlQRV9ERUcpCi0gICAgICAgIG1fdmFsdWVJblNwZWNpZmll
ZFVuaXRzID0gcmFkMmRlZyhtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gICAgZWxzZSBpZiAo
bV91bml0VHlwZSA9PSBTVkdfQU5HTEVUWVBFX0dSQUQgJiYgdW5pdFR5cGUgPT0gU1ZHX0FOR0xF
VFlQRV9ERUcpCi0gICAgICAgIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzID0gZ3JhZDJkZWcobV92
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogCi0gICAgbV91bml0VHlwZSA9IChTVkdBbmdsZVR5cGUp
dW5pdFR5cGU7CisgICAgbV91bml0VHlwZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVHlwZT4odW5p
dFR5cGUpOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHJldmlzaW9uIDcwMzg1KQorKysgV2ViQ29yZS9z
dmcvU1ZHQW5nbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1t
ZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjIsNDUgKzIzLDQyIEBACiAjZGVmaW5lIFNWR0FuZ2xlX2gKIAogI2lmIEVOQUJMRShTVkcpCi0j
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ICAgIGNsYXNzIFNWR0FuZ2xlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FuZ2xlKCk7Ci0K
LSAgICAgICAgZW51bSBTVkdBbmdsZVR5cGUgewotICAgICAgICAgICAgU1ZHX0FOR0xFVFlQRV9V
TktOT1dOICAgICAgICAgICA9IDAsCi0gICAgICAgICAgICBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lG
SUVEICAgICAgID0gMSwKLSAgICAgICAgICAgIFNWR19BTkdMRVRZUEVfREVHICAgICAgICAgICAg
ICAgPSAyLAotICAgICAgICAgICAgU1ZHX0FOR0xFVFlQRV9SQUQgICAgICAgICAgICAgICA9IDMs
Ci0gICAgICAgICAgICBTVkdfQU5HTEVUWVBFX0dSQUQgICAgICAgICAgICAgID0gNAotICAgICAg
ICB9OwotCi0gICAgICAgIFNWR0FuZ2xlVHlwZSB1bml0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dW5pdFR5cGU7IH0KLQotICAgICAgICB2b2lkIHNldFZhbHVlKGZsb2F0KTsKLSAgICAgICAgZmxv
YXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRW
YWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgICAg
ICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHM7IH0KLQotICAgICAgICB2b2lkIHNldFZhbHVlQXNTdHJpbmcoY29uc3Qg
U3RyaW5nJik7Ci0gICAgICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7Ci0KLSAgICAg
ICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKLQotICAgIHByaXZhdGU6Ci0gICAg
ICAgIFNWR0FuZ2xlVHlwZSBtX3VuaXRUeXBlOwotICAgICAgICBmbG9hdCBtX3ZhbHVlOwotICAg
ICAgICBmbG9hdCBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0czsKLSAgICAgICAgbXV0YWJsZSBTdHJp
bmcgbV92YWx1ZUFzU3RyaW5nOwotCi0gICAgICAgIHZvaWQgY2FsY3VsYXRlKCk7CitjbGFzcyBT
VkdBbmdsZSB7CitwdWJsaWM6CisgICAgU1ZHQW5nbGUoKTsKKworICAgIGVudW0gU1ZHQW5nbGVU
eXBlIHsKKyAgICAgICAgU1ZHX0FOR0xFVFlQRV9VTktOT1dOID0gMCwKKyAgICAgICAgU1ZHX0FO
R0xFVFlQRV9VTlNQRUNJRklFRCA9IDEsCisgICAgICAgIFNWR19BTkdMRVRZUEVfREVHID0gMiwK
KyAgICAgICAgU1ZHX0FOR0xFVFlQRV9SQUQgPSAzLAorICAgICAgICBTVkdfQU5HTEVUWVBFX0dS
QUQgPSA0CiAgICAgfTsKIAorICAgIFNWR0FuZ2xlVHlwZSB1bml0VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdW5pdFR5cGU7IH0KKworICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQpOworICAgIGZsb2F0
IHZhbHVlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9h
dCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpIHsgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSB2YWx1
ZUluU3BlY2lmaWVkVW5pdHM7IH0KKyAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0czsgfQorCisgICAgdm9pZCBzZXRW
YWx1ZUFzU3RyaW5nKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTdHJpbmcg
dmFsdWVBc1N0cmluZygpIGNvbnN0OworCisgICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRz
KHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgU1ZHQW5n
bGVUeXBlIG1fdW5pdFR5cGU7CisgICAgZmxvYXQgbV92YWx1ZUluU3BlY2lmaWVkVW5pdHM7Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0FuZ2xlLmlkbAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDIyICsyMiwyNiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAg
IGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBQT0RUeXBlPVNWR0FuZ2xlXSBTVkdBbmdsZSB7
IAorICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBTVkdQcm9wZXJ0eT1TVkdBbmdsZV0g
U1ZHQW5nbGUgeyAKICAgICAgICAgLy8gQW5nbGUgVW5pdCBUeXBlcwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05PV04gICAgID0gMDsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9VTktOT1dOID0gMDsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCA9IDE7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfREVHICAgICAgICAgPSAyOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1JBRCAgICAgICAgID0gMzsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9HUkFEICAgICAgICA9
IDQ7Ci0gICAgICAgIAorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBF
X0RFRyA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfUkFE
ID0gMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9HUkFEID0g
NDsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICB2YWx1ZTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0ICAgICAgICAgIHZhbHVlSW5TcGVjaWZpZWRVbml0
czsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgdmFsdWVBc1N0cmluZzsKLSAgICAgICAgCi0gICAgICAgIHZvaWQgbmV3
VmFsdWVTcGVjaWZpZWRVbml0cyhpbiB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5p
dHMpOwotICAgICAgICB2b2lkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKGluIHVuc2lnbmVkIHNo
b3J0IHVuaXRUeXBlKTsKKyAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZs
b2F0IHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQg
dmFsdWVJblNwZWNpZmllZFVuaXRzOworCisgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZUFzU3RyaW5nCisgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVu
aXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lk
IGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKQorICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkQW5nbGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5n
bGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBTVkdBbmltYXRlZEFuZ2xlX2gKKyNkZWZpbmUgU1ZHQW5pbWF0ZWRBbmdsZV9oCisKKyNp
ZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIFNW
R0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlPiBTVkdBbmltYXRlZEFuZ2xlOworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdB
bmltYXRlZEFuZ2xlIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eV0gU1ZHQW5pbWF0ZWRBbmdsZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmdsZSBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUg
YW5pbVZhbDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHJldmlzaW9u
IDcwMzg1KQorKysgV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDggQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYgogICAgICAgICBpZiAoYXR0ci0+dmFsdWUoKSA9PSAiYXV0byIpCiAgICAgICAgICAgICBz
ZXRPcmllbnRUeXBlQmFzZVZhbHVlKFNWR19NQVJLRVJfT1JJRU5UX0FVVE8pOwogICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcoYXR0ci0+dmFsdWUoKSk7
CisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgICAgIGFuZ2xlLnNl
dFZhbHVlQXNTdHJpbmcoYXR0ci0+dmFsdWUoKSwgZWMpOwogICAgICAgICAgICAgc2V0T3JpZW50
VHlwZUJhc2VWYWx1ZShTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSk7CiAgICAgICAgIH0KIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0
ZToKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZX05FVyhTVkdNYXJrZXJFbGVtZW50LCBT
VkdOYW1lczo6bWFya2VySGVpZ2h0QXR0ciwgU1ZHTGVuZ3RoLCBNYXJrZXJIZWlnaHQsIG1hcmtl
ckhlaWdodCkKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR01hcmtlckVsZW1lbnQs
IFNWR05hbWVzOjptYXJrZXJVbml0c0F0dHIsIGludCwgTWFya2VyVW5pdHMsIG1hcmtlclVuaXRz
KQogICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFy
a2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNWR09yaWVudFR5cGVBdHRySWRlbnRp
ZmllciwgaW50LCBPcmllbnRUeXBlLCBvcmllbnRUeXBlKQotICAgIERFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVFlfTVVMVElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9y
aWVudEF0dHIsIFNWR09yaWVudEFuZ2xlQXR0cklkZW50aWZpZXIsIFNWR0FuZ2xlLCBPcmllbnRB
bmdsZSwgb3JpZW50QW5nbGUpCisgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWV9ORVdfTVVM
VElQTEVfV1JBUFBFUlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om9yaWVudEF0dHIsIFNW
R09yaWVudEFuZ2xlQXR0cklkZW50aWZpZXIsIFNWR0FuZ2xlLCBPcmllbnRBbmdsZSwgb3JpZW50
QW5nbGUpCiAKICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUWShTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR051bWJlci5pZGwJKHJldmlzaW9uIDcwMzg1
KQorKysgV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCAr
MjMsNyBAQAogbW9kdWxlIHN2ZyB7CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRywg
UE9EVHlwZT1mbG9hdF0gU1ZHTnVtYmVyIHsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZs
b2F0IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZTsKICAgICB9OwogCiB9CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9p
bnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BvaW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDggQEAKIG1vZHVsZSBzdmcgewogCiAgICAgaW50ZXJm
YWNlIFtDb25kaXRpb25hbD1TVkcsIFBPRFR5cGU9RmxvYXRQb2ludF0gU1ZHUG9pbnQgewotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeAotICAgICAgICAgICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZmxv
YXQgeQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IHk7CiAK
ICAgICAgICAgU1ZHUG9pbnQgbWF0cml4VHJhbnNmb3JtKGluIFNWR01hdHJpeCBtYXRyaXgpOwog
ICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdSZWN0LmlkbAkocmV2aXNpb24gNzAzODUpCisrKyBXZWJDb3JlL3N2Zy9TVkdS
ZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTQgKzIzLDEwIEBACiBtb2R1bGUgc3ZnIHsK
IAogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBQT0RUeXBlPUZsb2F0UmVjdF0gU1ZH
UmVjdCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4Ci0gICAgICAgICAgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCB5Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB3aWR0aAotICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAg
ICBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgYXR0cmlidXRlIGZsb2F0IHdpZHRoOworICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaWRsCShyZXZpc2lvbiA3MDM4NSkKKysrIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIG1vZHVsZSBzdmcgewogICAgICAg
ICB2b2lkIGRlc2VsZWN0QWxsKCk7CiAKICAgICAgICAgU1ZHTnVtYmVyIGNyZWF0ZVNWR051bWJl
cigpOwotICAgICAgICBbU1ZHTGl2ZVByb3BlcnR5XSBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3Ro
KCk7CisgICAgICAgIFNWR0xlbmd0aCBjcmVhdGVTVkdMZW5ndGgoKTsKICAgICAgICAgU1ZHQW5n
bGUgY3JlYXRlU1ZHQW5nbGUoKTsKICAgICAgICAgU1ZHUG9pbnQgY3JlYXRlU1ZHUG9pbnQoKTsK
ICAgICAgICAgU1ZHTWF0cml4IGNyZWF0ZVNWR01hdHJpeCgpOwpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
NzA0MDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMC0xMC0yMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
b252ZXJ0IFNWR0FuZ2xlIHRvIHRoZSBuZXcgU1ZHUHJvcGVydHlUZWFyT2ZmIGNvbmNlcHQsIHJl
aW1wbGVtZW50IGl0IHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00ODE3OQorCisgICAgICAgIEFkZCBhbiBleHRlbnNpdmUgU1ZHQW5nbGUg
dGVzdCwgY2hlY2tpbmcgYWxsIGdldHRlci9zZXR0ZXJzICYgbWV0aG9kcywgd2l0aCB2YWxpZCBh
bmQgaW52YWxpZCBhcmd1bWVudHMuCisgICAgICAgIFRoZSB0ZXN0IGV4cG9zZXMgYnVncyBpbiBP
cGVyYSAmIEZpcmVGb3gsIHdlIG5vdyBwYXNzIHRoZW0gYWxsLgorCisgICAgICAgICogc3ZnL2Rv
bS9TVkdBbmdsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vU1ZHQW5n
bGUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9zY3JpcHQtdGVzdHMvU1ZHQW5nbGUu
anM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51
bGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRl
LWpzLW51bGwueGh0bWw6IFVwZGF0ZSBpbmNvcnJlY3QgdGVzdCwgc2V0dGluZyB2YWx1ZUFzU3Ry
aW5nIHRvIG51bGwsIHNob3VsZCBub3QgcmVzdWx0IGluICIwZGVnIiBidXQgIjAiLgorCiAyMDEw
LTEwLTIzICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGNzczIuMS8gbGF5b3V0IHRlc3RzIG5lZWQgbmV3IE1hYyBiYXNlbGluZXMgZm9yIFNub3cgTGVv
cGFyZApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdBbmdsZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdBbmdsZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0FuZ2xlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzMgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIFNWR0Fu
Z2xlIEFQSQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitDaGVjayBpbml0aWFs
IGFuZ2xlIHZhbHVlcworUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVU
WVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAiCitQQVNTIGFu
Z2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKKwor
Q2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0cycKK1BB
U1MgYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9V
TktOT1dOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhj
ZXB0aW9uIDkuCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKC0xKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNT
IGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKDUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
Tk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgYW5nbGUudW5pdFR5cGUg
aXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorCitDaGVjayB2YWxpZCBhcmd1
bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0cycsIHRoYXQgc2hvdWxkIG9ubHkgbW9k
aWZ5IHRoZSAndmFsdWVBc1N0cmluZycKK1BBU1MgYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5p
dHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUu
dmFsdWVBc1N0cmluZyBpcyAiMHJhZCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBhbmds
ZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdB
bmdsZS5TVkdfQU5HTEVUWVBFX1JBRAorUEFTUyBhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0
cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0dSQUQpIGlzIHVuZGVmaW5lZC4KK1BBU1MgYW5nbGUu
dmFsdWVBc1N0cmluZyBpcyAiMGdyYWQiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVu
aXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHKSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xl
LnZhbHVlQXNTdHJpbmcgaXMgIjBkZWciCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5n
bGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZH
QW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1MgYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5p
dHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCkgaXMgdW5kZWZpbmVkLgorUEFT
UyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNT
IGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlz
IFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQKKworQ2hlY2sgaW52YWxpZCBhcmd1
bWVudHMgZm9yICduZXdWYWx1ZVNwZWNpZmllZFVuaXRzJworUEFTUyBhbmdsZS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5LTk9XTiwgNTApIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1Mg
YW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cygtMSwgNTApIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgYW5nbGUubmV3VmFs
dWVTcGVjaWZpZWRVbml0cyg1LCA1MCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9S
VEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0NoZWNrIHZhbGlkIGFyZ3VtZW50cyBmb3Ig
J25ld1ZhbHVlU3BlY2lmaWVkVW5pdHMnLCB0aGF0IHNob3VsZCBvbmx5IG1vZGlmeSB0aGUgJ3Zh
bHVlQXNTdHJpbmcnCitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUu
U1ZHX0FOR0xFVFlQRV9SQUQsIHBhcnNlRmxvYXQoTWF0aC5QSS50b0ZpeGVkKDUpKSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIzLjE0MTU5cmFkIgorUEFTUyBh
bmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNp
ZmllZFVuaXRzLnRvRml4ZWQoNSkgaXMgTWF0aC5QSS50b0ZpeGVkKDUpCitQQVNTIGFuZ2xlLnVu
aXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfUkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVl
U3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFELCA0MDApIGlzIHVuZGVm
aW5lZC4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiNDAwZ3JhZCIKK1BBU1MgYW5nbGUu
dmFsdWUudG9GaXhlZCgxKSBpcyAiMzYwLjAiCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRV
bml0cyBpcyA0MDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQ
RV9HUkFECitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9ERUcsIDM2MCkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5n
IGlzICIzNjBkZWciCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDM2MAorUEFTUyBhbmdsZS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMgaXMgMzYwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNW
R19BTkdMRVRZUEVfREVHCitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5n
bGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMTgwKSBpcyB1bmRlZmluZWQuCitQQVNTIGFu
Z2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMTgwCitQQVNT
IGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAxODAKK1BBU1MgYW5nbGUudW5pdFR5cGUg
aXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorCitSZXNldCB0byBpbml0aWFs
IGFuZ2xlIHN0YXRlCitQQVNTIGFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUu
U1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS51
bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECisKK0NoZWNrIHNl
dHRpbmcgaW52YWxpZCAndmFsdWVBc1N0cmluZycgYXJndW1lbnRzCitQQVNTIGFuZ2xlLnZhbHVl
QXNTdHJpbmcgPSAnMTBweCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00g
RXhjZXB0aW9uIDEyLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFTUyBhbmds
ZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAwCitQQVNT
IGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQKK1BB
U1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcxMHgnIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lO
VEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAi
MCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5p
dHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VO
U1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnNWdyYUQnIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgYW5nbGUudmFs
dWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5nbGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5T
VkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnNVJh
ZCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgor
UEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQ
QVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBl
IGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQKK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyA9ICcsNSByYWQnIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMi4KK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMCIKK1BBU1MgYW5n
bGUudmFsdWUgaXMgMAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgMAorUEFT
UyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVECisK
K0NoZWNrIHNldHRpbmcgaW52YWxpZCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBhcmd1bWVudHMK
K1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzID0gJ3Rlc3QnIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAi
CitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
IGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQ
RUNJRklFRAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgPSBhbmdsZSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5n
IGlzICIwIgorUEFTUyBhbmdsZS52YWx1ZSBpcyAwCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZp
ZWRVbml0cyBpcyAwCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0FuZ2xlLlNWR19BTkdMRVRZ
UEVfVU5TUEVDSUZJRUQKKworQ2hlY2sgc2V0dGluZyBpbnZhbGlkICd2YWx1ZScgYXJndW1lbnRz
CitQQVNTIGFuZ2xlLnZhbHVlID0gJ3Rlc3QnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZh
bHVlIGlzIDAKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5n
bGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorUEFTUyBh
bmdsZS52YWx1ZSA9IGFuZ2xlIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjAiCitQQVNTIGFuZ2xlLnZhbHVlIGlzIDAK
K1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDAKK1BBU1MgYW5nbGUudW5pdFR5
cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRAorCitSZXNldCB0byBhbmds
ZSBpbiBkZWdyZWUgdW5pdHMKK1BBU1MgYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdB
bmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS51bml0
VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBzZXR0aW5nIHZhbGlk
ICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBh
bmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5nbGUudmFsdWUgPSA1
MCBpcyA1MAorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMgaXMgNTAKK1BBU1MgYW5n
bGUudmFsdWVBc1N0cmluZyBpcyAiNTBkZWciCitQQVNTIGFuZ2xlLnVuaXRUeXBlIGlzIFNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfREVHCisKK1RyeSBtb2RpZml5aW5nIHRoZSByZWFkb25seSAndW5p
dFR5cGUnLCBuZWVkcyB0byBmYWlsCitQQVNTIGFuZ2xlLnVuaXRUeXBlID0gU1ZHQW5nbGUuU1ZH
X0FOR0xFVFRZRV9SQUQgaXMgdW5kZWZpbmVkLgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdB
bmdsZS5TVkdfQU5HTEVUWVBFX0RFRworCitDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZUluU3Bl
Y2lmaWVkVW5pdHMnIGFyZ3VtZW50cywgYXNzdXJlIHRoYXQgJ3ZhbHVlJyBhbmQgJ3ZhbHVlQXNT
dHJpbmcnIGFyZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
ID0gMTAwIGlzIDEwMAorUEFTUyBhbmdsZS52YWx1ZSBpcyAxMDAKK1BBU1MgYW5nbGUudmFsdWVB
c1N0cmluZyBpcyAiMTAwZGVnIgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdf
QU5HTEVUWVBFX0RFRworCitDaGVjayBzZXR0aW5nIHZhbGlkICd2YWx1ZUFzU3RyaW5nJyBhcmd1
bWVudHMsIGFzc3VyZSB0aGF0ICd2YWx1ZScgYW5kICd2YWx1ZUluU3BlY2lmaWVkVW5pdHMnIGFy
ZSBzeW5jaHJvbml6ZWQKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyA9ICcyMDBncmFkJyBpcyAi
MjAwZ3JhZCIKK1BBU1MgYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIGlzIDIwMAorUEFTUyBh
bmdsZS52YWx1ZS50b0ZpeGVkKDEpIGlzICIxODAuMCIKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMg
U1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFECisKK05vdyBjb252ZXJ0IHRoZSBHUkFEIHZhbHVl
IGludG8gYSBSQUQgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJvcGVydGllcyBoYXZlIGJl
ZW4gc3luY2hyb25pemVkCitQQVNTIGFuZ2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0Fu
Z2xlLlNWR19BTkdMRVRZUEVfUkFEKSBpcyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRv
Rml4ZWQoMSkgaXMgIjE4MC4wIgorUEFTUyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9G
aXhlZCg1KSBpcyAiMy4xNDE1OSIKK1BBU1MgYW5nbGUudmFsdWVBc1N0cmluZyBpcyAiMy4xNDE1
OXJhZCIKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMgU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQK
KworTm93IHRyeSBjb252ZXJ0aW5nIHRoZSBSQUQgdmFsdWUgaW50byBhbiB1bmtub3duIHZhbHVl
LCB0aGF0IHNob3VsZCBmYWlsIGFuZCB0aHJvdworUEFTUyBhbmdsZS5jb252ZXJ0VG9TcGVjaWZp
ZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgYW5nbGUudmFs
dWUudG9GaXhlZCgxKSBpcyAiMTgwLjAiCitQQVNTIGFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0
cy50b0ZpeGVkKDUpIGlzICIzLjE0MTU5IgorUEFTUyBhbmdsZS52YWx1ZUFzU3RyaW5nIGlzICIz
LjE0MTU5cmFkIgorUEFTUyBhbmdsZS51bml0VHlwZSBpcyBTVkdBbmdsZS5TVkdfQU5HTEVUWVBF
X1JBRAorCitOb3cgY29udmVydCB0aGUgUkFEIHZhbHVlIGludG8gYSBERUcgdmFsdWUsIGFuZCBh
c3N1cmUgdGhhdCBhbGwgcHJvcGVydGllcyBoYXZlIGJlZW4gc3luY2hyb25pemVkCitQQVNTIGFu
Z2xlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVHKSBp
cyB1bmRlZmluZWQuCitQQVNTIGFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkgaXMgIjE4MC4wIgorUEFT
UyBhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhlZCgxKSBpcyAiMTgwLjAiCitQQVNT
IGFuZ2xlLnZhbHVlQXNTdHJpbmcgaXMgIjE4MGRlZyIKK1BBU1MgYW5nbGUudW5pdFR5cGUgaXMg
U1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0FuZ2xl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdBbmdsZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdBbmdsZS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9TVkdBbmdsZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vc3Zn
LWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA3MDM4NSkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQt
YXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMs
NyBAQCBUaGlzIHRlc3Qgc2V0dGluZyB2YXJpb3VzIGF0dHJpYnV0ZXMgb2YgCiBURVNUIFNVQ0NF
RURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVkIFNWR0VsZW1lbnQu
aWRdCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVz
dGVkIFNWR0VsZW1lbnQueG1sYmFzZV0KIAotVEVTVCBTVUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMg
dGhlIHN0cmluZyAnMGRlZycuIFt0ZXN0ZWQgU1ZHQW5nbGUudmFsdWVBc1N0cmluZ10KK1RFU1Qg
U1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJpbmcgJzAnLiBbdGVzdGVkIFNWR0FuZ2xl
LnZhbHVlQXNTdHJpbmddCiAKIFRFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIHRoZSBzdHJp
bmcgJzAnLiBbdGVzdGVkIFNWR0xlbmd0aC52YWx1ZUFzU3RyaW5nXQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvZG9tL3N2Zy1lbGVtZW50LWF0dHJpYnV0ZS1qcy1udWxsLnhodG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9kb20vc3ZnLWVsZW1lbnQtYXR0cmlidXRlLWpzLW51bGwu
eGh0bWwJKHJldmlzaW9uIDcwMzg1KQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9zdmctZWxlbWVu
dC1hdHRyaWJ1dGUtanMtbnVsbC54aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBA
QAogICAgICAgICAgICAgICAgICAgICB0eXBlOiAnU1ZHQW5nbGUnLAogICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50VG9Vc2U6IHN2Zy5jcmVhdGVTVkdBbmdsZSgpLAogICAgICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ3ZhbHVl
QXNTdHJpbmcnLCBleHBlY3RlZE51bGw6ICcwZGVnJ30KKyAgICAgICAgICAgICAgICAgICAgICAg
IHtuYW1lOiAndmFsdWVBc1N0cmluZycsIGV4cGVjdGVkTnVsbDogJzAnfQogICAgICAgICAgICAg
ICAgICAgICBdCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdBbmdsZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdBbmdsZS5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRlc3RzL1NWR0FuZ2xlLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIwMiBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3Mg
dGhlIFNWR0FuZ2xlIEFQSSIpOworCit2YXIgc3ZnRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAic3ZnIik7Cit2YXIgYW5nbGUg
PSBzdmdFbGVtZW50LmNyZWF0ZVNWR0FuZ2xlKCk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVj
ayBpbml0aWFsIGFuZ2xlIHZhbHVlcyIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNW
R0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAi
MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CisKKy8v
IFNwZWM6IFJhaXNlZCBpZiB1bml0VHlwZSBpcyBTVkdfQU5HTEVUWVBFX1VOS05PV04gb3Igbm90
IGEgdmFsaWQgdW5pdCB0eXBlIGNvbnN0YW50IChvbmUgb2YgdGhlIG90aGVyIFNWR19BTkdMRVRZ
UEVfKiBjb25zdGFudHMgZGVmaW5lZCBvbiB0aGlzIGludGVyZmFjZSkuCitkZWJ1ZygiIik7Citk
ZWJ1ZygiQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cyciKTsKK3Nob3VsZFRocm93KCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmds
ZS5TVkdfQU5HTEVUWVBFX1VOS05PV04pIik7CitzaG91bGRUaHJvdygiYW5nbGUuY29udmVydFRv
U3BlY2lmaWVkVW5pdHMoLTEpIik7CitzaG91bGRUaHJvdygiYW5nbGUuY29udmVydFRvU3BlY2lm
aWVkVW5pdHMoNSkiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdf
QU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayB2YWxp
ZCBhcmd1bWVudHMgZm9yICdjb252ZXJ0VG9TcGVjaWZpZWRVbml0cycsIHRoYXQgc2hvdWxkIG9u
bHkgbW9kaWZ5IHRoZSAndmFsdWVBc1N0cmluZyciKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmds
ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRCkiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwcmFkIik7Citz
aG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVj
aWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUu
U1ZHX0FOR0xFVFlQRV9SQUQiKTsKKworc2hvdWxkQmVVbmRlZmluZWQoImFuZ2xlLmNvbnZlcnRU
b1NwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JBRCkiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwZ3JhZCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5p
dHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdM
RVRZUEVfR1JBRCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUuY29udmVydFRvU3BlY2lm
aWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcpIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMGRlZyIpOworc2hvdWxkQmUoImFuZ2xlLnZh
bHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIp
Oworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfREVH
Iik7CisKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEKSIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIs
ICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjAiKTsKK3No
b3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lG
SUVEIik7CisKKy8vIFNwZWM6IFJhaXNlZCBpZiB1bml0VHlwZSBpcyBTVkdfQU5HTEVUWVBFX1VO
S05PV04gb3Igbm90IGEgdmFsaWQgdW5pdCB0eXBlIGNvbnN0YW50IChvbmUgb2YgdGhlIG90aGVy
IFNWR19BTkdMRVRZUEVfKiBjb25zdGFudHMgZGVmaW5lZCBvbiB0aGlzIGludGVyZmFjZSkuCitk
ZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW52YWxpZCBhcmd1bWVudHMgZm9yICduZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzJyIpOworc2hvdWxkVGhyb3coImFuZ2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5p
dHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTktOT1dOLCA1MCkiKTsKK3Nob3VsZFRocm93KCJh
bmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKC0xLCA1MCkiKTsKK3Nob3VsZFRocm93KCJhbmds
ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKDUsIDUwKSIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRU
eXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNoZWNrIHZhbGlkIGFyZ3VtZW50cyBmb3IgJ25ld1ZhbHVlU3BlY2lmaWVkVW5p
dHMnLCB0aGF0IHNob3VsZCBvbmx5IG1vZGlmeSB0aGUgJ3ZhbHVlQXNTdHJpbmcnIik7CitzaG91
bGRCZVVuZGVmaW5lZCgiYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdf
QU5HTEVUWVBFX1JBRCwgcGFyc2VGbG9hdChNYXRoLlBJLnRvRml4ZWQoNSkpKSIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgTWF0aC5QSS50b0ZpeGVkKDUp
ICsgInJhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZS50b0ZpeGVkKDEp
IiwgIjE4MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4
ZWQoNSkiLCAiTWF0aC5QSS50b0ZpeGVkKDUpIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUi
LCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsKKworc2hvdWxkQmVVbmRlZmluZWQoImFu
Z2xlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9HUkFELCA0
MDApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiNDAw
Z3JhZCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZS50b0ZpeGVkKDEpIiwg
IjM2MC4wIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjQwMCIp
Oworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfR1JB
RCIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRywgMzYwKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgIjM2MGRlZyIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
IiwgIjM2MCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIzNjAi
KTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RF
RyIpOworCitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhT
VkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVELCAxODApIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMTgwIik7CitzaG91bGRCZSgiYW5nbGUu
dmFsdWUiLCAiMTgwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwg
IjE4MCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZ
UEVfVU5TUEVDSUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIlJlc2V0IHRvIGluaXRpYWwg
YW5nbGUgc3RhdGUiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmll
ZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQsIDApIik7CitzaG91bGRC
ZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIp
OworCisvLyBTcGVjOiBSYWlzZWQgaWYgdGhlIGFzc2lnbmVkIHN0cmluZyBjYW5ub3QgYmUgcGFy
c2VkIGFzIGEgdmFsaWQgPGFuZ2xlPi4KK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBzZXR0aW5n
IGludmFsaWQgJ3ZhbHVlQXNTdHJpbmcnIGFyZ3VtZW50cyIpOworc2hvdWxkVGhyb3coImFuZ2xl
LnZhbHVlQXNTdHJpbmcgPSAnMTBweCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUu
dmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hv
dWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5n
bGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitz
aG91bGRUaHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9ICcxMHgnIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZh
bHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIp
Oworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5T
UEVDSUZJRUQiKTsKKworc2hvdWxkVGhyb3coImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAnNWdyYUQn
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMCIpOwor
c2hvdWxkQmUoImFuZ2xlLnZhbHVlIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUluU3Bl
Y2lmaWVkVW5pdHMiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xl
LlNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQiKTsKKworc2hvdWxkVGhyb3coImFuZ2xlLnZhbHVl
QXNTdHJpbmcgPSAnNVJhZCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVB
c1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUo
ImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5p
dFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRU
aHJvdygiYW5nbGUudmFsdWVBc1N0cmluZyA9ICcsNSByYWQnIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVl
IiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMiLCAiMCIpOwor
c2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfVU5TUEVD
SUZJRUQiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIHNldHRpbmcgaW52YWxpZCAndmFs
dWVJblNwZWNpZmllZFVuaXRzJyBhcmd1bWVudHMiKTsKK3Nob3VsZFRocm93KCJhbmdsZS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMgPSAndGVzdCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5n
bGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOwor
c2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgi
YW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOwor
CitzaG91bGRUaHJvdygiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzID0gYW5nbGUiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIwIik7CitzaG91bGRC
ZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRV
bml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FO
R0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgc2V0dGlu
ZyBpbnZhbGlkICd2YWx1ZScgYXJndW1lbnRzIik7CitzaG91bGRUaHJvdygiYW5nbGUudmFsdWUg
PSAndGVzdCciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIs
ICIwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWUiLCAiMCIpOworc2hvdWxkQmUoImFuZ2xlLnZh
bHVlSW5TcGVjaWZpZWRVbml0cyIsICIwIik7CitzaG91bGRCZSgiYW5nbGUudW5pdFR5cGUiLCAi
U1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRCIpOworCitzaG91bGRUaHJvdygiYW5n
bGUudmFsdWUgPSBhbmdsZSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUFz
U3RyaW5nIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIsICIwIik7CitzaG91bGRCZSgi
YW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzIiwgIjAiKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0
VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEIik7CisKK2RlYnVnKCIi
KTsKK2RlYnVnKCJSZXNldCB0byBhbmdsZSBpbiBkZWdyZWUgdW5pdHMiKTsKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJhbmdsZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0FuZ2xlLlNWR19BTkdMRVRZ
UEVfREVHLCAwKSIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19B
TkdMRVRZUEVfREVHIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBzZXR0aW5nIHZhbGlk
ICd2YWx1ZScgYXJndW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBh
bmQgJ3ZhbHVlQXNTdHJpbmcnIGFyZSBzeW5jaHJvbml6ZWQiKTsKK3Nob3VsZEJlKCJhbmdsZS52
YWx1ZSA9IDUwIiwgIjUwIik7CitzaG91bGRCZSgiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRz
IiwgIjUwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmciLCAi
NTBkZWciKTsKK3Nob3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVU
WVBFX0RFRyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVHJ5IG1vZGlmaXlpbmcgdGhlIHJlYWRv
bmx5ICd1bml0VHlwZScsIG5lZWRzIHRvIGZhaWwiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmds
ZS51bml0VHlwZSA9IFNWR0FuZ2xlLlNWR19BTkdMRVRUWUVfUkFEIik7CitzaG91bGRCZSgiYW5n
bGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUciKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNoZWNrIHNldHRpbmcgdmFsaWQgJ3ZhbHVlSW5TcGVjaWZpZWRVbml0cycgYXJn
dW1lbnRzLCBhc3N1cmUgdGhhdCAndmFsdWUnIGFuZCAndmFsdWVBc1N0cmluZycgYXJlIHN5bmNo
cm9uaXplZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IDEwMCIs
ICIxMDAiKTsKK3Nob3VsZEJlKCJhbmdsZS52YWx1ZSIsICIxMDAiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIxMDBkZWciKTsKK3Nob3VsZEJlKCJhbmds
ZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiQ2hlY2sgc2V0dGluZyB2YWxpZCAndmFsdWVBc1N0cmluZycgYXJndW1lbnRzLCBh
c3N1cmUgdGhhdCAndmFsdWUnIGFuZCAndmFsdWVJblNwZWNpZmllZFVuaXRzJyBhcmUgc3luY2hy
b25pemVkIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlQXNTdHJpbmcgPSAn
MjAwZ3JhZCciLCAiMjAwZ3JhZCIpOworc2hvdWxkQmUoImFuZ2xlLnZhbHVlSW5TcGVjaWZpZWRV
bml0cyIsICIyMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWUudG9GaXhl
ZCgxKSIsICIxODAuMCIpOworc2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNW
R19BTkdMRVRZUEVfR1JBRCIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiTm93IGNvbnZlcnQgdGhl
IEdSQUQgdmFsdWUgaW50byBhIFJBRCB2YWx1ZSwgYW5kIGFzc3VyZSB0aGF0IGFsbCBwcm9wZXJ0
aWVzIGhhdmUgYmVlbiBzeW5jaHJvbml6ZWQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJhbmdsZS5j
b252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1JBRCkiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWUudG9GaXhlZCgxKSIsICIxODAuMCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhbmdsZS52YWx1ZUluU3BlY2lmaWVkVW5pdHMudG9GaXhl
ZCg1KSIsIE1hdGguUEkudG9GaXhlZCg1KSk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xl
LnZhbHVlQXNTdHJpbmciLCBNYXRoLlBJLnRvRml4ZWQoNSkgKyAicmFkIik7CitzaG91bGRCZSgi
YW5nbGUudW5pdFR5cGUiLCAiU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9SQUQiKTsKKworZGVidWco
IiIpOworZGVidWcoIk5vdyB0cnkgY29udmVydGluZyB0aGUgUkFEIHZhbHVlIGludG8gYW4gdW5r
bm93biB2YWx1ZSwgdGhhdCBzaG91bGQgZmFpbCBhbmQgdGhyb3ciKTsKK3Nob3VsZFRocm93KCJh
bmdsZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX1VOS05P
V04pIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAi
MTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVJblNwZWNpZmllZFVu
aXRzLnRvRml4ZWQoNSkiLCBNYXRoLlBJLnRvRml4ZWQoNSkpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJhbmdsZS52YWx1ZUFzU3RyaW5nIiwgTWF0aC5QSS50b0ZpeGVkKDUpICsgInJhZCIpOwor
c2hvdWxkQmUoImFuZ2xlLnVuaXRUeXBlIiwgIlNWR0FuZ2xlLlNWR19BTkdMRVRZUEVfUkFEIik7
CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJOb3cgY29udmVydCB0aGUgUkFEIHZhbHVlIGludG8gYSBE
RUcgdmFsdWUsIGFuZCBhc3N1cmUgdGhhdCBhbGwgcHJvcGVydGllcyBoYXZlIGJlZW4gc3luY2hy
b25pemVkIik7CitzaG91bGRCZVVuZGVmaW5lZCgiYW5nbGUuY29udmVydFRvU3BlY2lmaWVkVW5p
dHMoU1ZHQW5nbGUuU1ZHX0FOR0xFVFlQRV9ERUcpIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImFuZ2xlLnZhbHVlLnRvRml4ZWQoMSkiLCAiMTgwLjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiYW5nbGUudmFsdWVJblNwZWNpZmllZFVuaXRzLnRvRml4ZWQoMSkiLCAiMTgwLjAiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiYW5nbGUudmFsdWVBc1N0cmluZyIsICIxODBkZWciKTsKK3No
b3VsZEJlKCJhbmdsZS51bml0VHlwZSIsICJTVkdBbmdsZS5TVkdfQU5HTEVUWVBFX0RFRyIpOwor
CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="61781"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71678</attachid>
            <date>2010-10-24 04:54:24 -0700</date>
            <delta_ts>2010-10-24 08:55:00 -0700</delta_ts>
            <desc>Fix WebGL follow-up patch</desc>
            <filename>TryFixWebGL.diff</filename>
            <type>text/plain</type>
            <size>9781</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdBbmdsZSB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0LCByZWltcGxlbWVudCBpdCBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzkKKworICAgICAgICBTcGVjdWxhdGl2ZSBmaXggZm9y
IHRoZSBXZWJHTCB0ZXN0cywgSSB3YXMgbm90IGF3YXJlIHRoZXkncmUgbm90IHJ1biBvbiBMZW9w
YXJkLCBzbyBJIG1pc3NlZCB0aGUgYnJlYWthZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbToKKwogMjAxMC0xMC0yMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1l
cm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9u
IDcwNDEwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQko
d29ya2luZyBjb3B5KQpAQCAtMTgxMSwxOCArMTgxMSwxOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhy
b3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJp
Y3RUeXBlQ2hlY2tpbmcifSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAk
YXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5n
KCkgJiYgIXZhbHVlLmlzT2JqZWN0KCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUuaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaW5oZXJpdHMoJkpTJHthcmdUeXBlfTo6c19pbmZv
KSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybjtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgfTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaXNOdW1iZXIoKSkge1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkgJiYgIXZhbHVlLmlzU3RyaW5nKCkgJiYgIXZhbHVlLmlzT2JqZWN0KCkpIHtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIH07XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoIUlz
TmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwo
KSAmJiAhdmFsdWUuaW5oZXJpdHMoJkpTJHthcmdUeXBlfTo6c19pbmZvKSkge1xuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051
bWVyaWNUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgp
ICYmICF2YWx1ZS5pc051bWJlcigpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9O1xuIik7CkBAIC0yMDc4LDE2ICsy
MDc4LDE2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIyBhIFR5cGVFcnJvciBpcyB0aHJvd24gaW5zdGVhZCBvZiBjYXN0aW5nIHRvIG51
bGwuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2Vu
ZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghSXNOYXRpdmVUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JO
dWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRzKCZKUyR7YXJnVHlwZX06OnNfaW5mbykpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdU
eXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5k
ZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9Lmlz
U3RyaW5nKCkgJiYgISR7YXJnVmFsdWV9LmlzT2JqZWN0KCkpXG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkYXJnVHlwZSkpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVl
fS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pc051bWJlcigpKVxuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVlfS5p
c1VuZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pbmhlcml0cygmSlMke2FyZ1R5cGV9
OjpzX2luZm8pKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICIgLiBHZXROYXRp
dmVUeXBlRnJvbVNpZ25hdHVyZSgkcGFyYW1ldGVyKSAuICIgJG5hbWUgPSAiIC4gSlNWYWx1ZVRv
TmF0aXZlKCRwYXJhbWV0ZXIsICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSIpIC4gIjtcbiIp
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCShy
ZXZpc2lvbiA3MDQxMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0JKHdvcmtpbmcgY29weSkKQEAgLTk0MiwxOCArOTQyLDE4IEBAIHN1YiBHZW5lcmF0ZU5v
cm1hbEF0dHJTZXR0ZXIKICAgICAjIGEgVHlwZUVycm9yIGlzIHRocm93biBpbnN0ZWFkIG9mIGNh
c3RpbmcgdG8gbnVsbC4KICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKICAgICAgICAgbXkgJGFyZ1R5cGUg
PSBHZXRUeXBlRnJvbVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWduYXR1cmUpOwotICAgICAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh2YWx1
ZSkgJiYgIXZhbHVlLT5Jc1N0cmluZygpICYmICF2YWx1ZS0+SXNPYmplY3QoKSkge1xuIik7Cisg
ICAgICAgIGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAmJiAh
Vjgke2FyZ1R5cGV9OjpIYXNJbnN0YW5jZSh2YWx1ZSkpIHtcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJu
O1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOwot
ICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkYXJnVHlwZSkp
IHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFpc1VuZGVm
aW5lZE9yTnVsbCh2YWx1ZSkgJiYgIXZhbHVlLT5Jc051bWJlcigpKSB7XG4iKTsKKyAgICAgICAg
fSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkYXJnVHlwZSkpIHsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVs
bCh2YWx1ZSkgJiYgIXZhbHVlLT5Jc1N0cmluZygpICYmICF2YWx1ZS0+SXNPYmplY3QoKSkge1xu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBWOFByb3h5
Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgICAgICByZXR1cm47XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgfVxuIik7Ci0gICAgICAgIH0gZWxzaWYgKElzV3JhcHBlclR5cGUoJGFyZ1R5
cGUpKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICghaXNV
bmRlZmluZWRPck51bGwodmFsdWUpICYmICFWOCR7YXJnVHlwZX06Okhhc0luc3RhbmNlKHZhbHVl
KSkge1xuIik7CisgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBl
KCRhcmdUeXBlKSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBp
ZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAmJiAhdmFsdWUtPklzTnVtYmVyKCkpIHtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgVjhQcm94eTo6
dGhyb3dUeXBlRXJyb3IoKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgIH1cbiIpOwpAQCAtMTQwNiwxOCArMTQwNiwxOCBAQCBFTkQKICAgICAgICAgICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5
cGVDaGVja2luZyJ9KSB7CiAgICAgICAgICAgICAgICAgbXkgJGFyZ1ZhbHVlID0gImFyZ3NbJHBh
cmFtSW5kZXhdIjsKICAgICAgICAgICAgICAgICBteSAkYXJnVHlwZSA9IEdldFR5cGVGcm9tU2ln
bmF0dXJlKCRwYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlz
VW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygpICYm
ICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CisgICAgICAgICAgICAgICAgaWYgKElz
V3JhcHBlclR5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAkcGFyYW1JbmRleCAmJiAhaXNV
bmRlZmluZWRPck51bGwoJGFyZ1ZhbHVlKSAmJiAhVjgke2FyZ1R5cGV9OjpIYXNJbnN0YW5jZSgk
YXJnVmFsdWUpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIH1cbiIpOwotICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFt
SW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5J
c051bWJlcigpKSB7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCRhcmdUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYg
IWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc1N0cmluZygp
ICYmICEke2FyZ1ZhbHVlfS0+SXNPYmplY3QoKSkge1xuIik7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2lmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBh
cmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JOdWxsKCRhcmdWYWx1ZSkgJiYgIVY4JHthcmdUeXBl
fTo6SGFzSW5zdGFuY2UoJGFyZ1ZhbHVlKSkge1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PiAkcGFyYW1JbmRleCAmJiAhaXNVbmRlZmluZWRPck51bGwoJGFyZ1ZhbHVlKSAmJiAhJHthcmdW
YWx1ZX0tPklzTnVtYmVyKCkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71688</attachid>
            <date>2010-10-24 08:55:00 -0700</date>
            <delta_ts>2010-10-24 09:06:42 -0700</delta_ts>
            <desc>Fix WebGL follow-up patch - v2</desc>
            <filename>WebGL.patch</filename>
            <type>text/plain</type>
            <size>7309</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdBbmdsZSB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25j
ZXB0LCByZWltcGxlbWVudCBpdCBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzkKKworICAgICAgICBGaXggV2ViR0wgdGVzdHMuIEFj
Y2VwdCAnYm9vbGVhbicgYXMgdmFsaWQgbnVtZXJpYyB0eXBlIGluIFN0cmljdFR5cGVDaGVja2lu
ZyBtb2RlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisKIDIwMTAt
MTAtMjQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA3MDQxMSkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE4MjIs
NyArMTgyMiw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB9O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCF2YWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICF2YWx1ZS5pc051bWJlcigpKSB7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaXNOdW1iZXIoKSAmJiAhdmFs
dWUuaXNCb29sZWFuKCkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICByZXR1cm47XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKQEAgLTIwODUsNyArMjA4NSw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ID4gJGFyZ3NJbmRleCAmJiAhJHthcmdWYWx1ZX0uaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHth
cmdWYWx1ZX0uaXNTdHJpbmcoKSAmJiAhJHthcmdWYWx1ZX0uaXNPYmplY3QoKSlcbiIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRh
cmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYg
ISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmlzTnVtYmVy
KCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEk
e2FyZ1ZhbHVlfS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pc051bWJlcigp
ICYmICEke2FyZ1ZhbHVlfS5pc0Jvb2xlYW4oKSlcbiIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDcwNDExKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtOTUz
LDcgKzk1Myw3IEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKICAgICAgICAgfSBlbHNpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGFyZ1R5cGUpKSB7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICghaXNVbmRlZmluZWRPck51bGwodmFsdWUpICYm
ICF2YWx1ZS0+SXNOdW1iZXIoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgIGlmICghaXNVbmRlZmluZWRPck51bGwodmFsdWUpICYmICF2YWx1ZS0+SXNO
dW1iZXIoKSAmJiAhdmFsdWUtPklzQm9vbGVhbigpKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybjtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKQEAg
LTE0MTcsNyArMTQxNyw3IEBAIEVORAogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTtcbiIp
OwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIp
OwogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBl
KCRhcmdUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFtSW5kZXggJiYgIWlzVW5kZWZpbmVkT3JO
dWxsKCRhcmdWYWx1ZSkgJiYgISR7YXJnVmFsdWV9LT5Jc051bWJlcigpKSB7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5n
dGgoKSA+ICRwYXJhbUluZGV4ICYmICFpc1VuZGVmaW5lZE9yTnVsbCgkYXJnVmFsdWUpICYmICEk
e2FyZ1ZhbHVlfS0+SXNOdW1iZXIoKSAmJiAhJHthcmdWYWx1ZX0tPklzQm9vbGVhbigpKSB7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAg
VjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgIH1cbiIpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA0MTMpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0xMC0yNCAgTmlrb2xh
cyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR0FuZ2xlIHRvIHRoZSBuZXcg
U1ZHUHJvcGVydHlUZWFyT2ZmIGNvbmNlcHQsIHJlaW1wbGVtZW50IGl0IHByb3Blcmx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE3OQorCisgICAg
ICAgIEl0IHR1cm5zIG91dCB0aGUgQ29kZUdlbmVyYXRvciBjaGFuZ2VzIGFyZSByaWdodCwgYW5k
IHRoZSB3ZWJnbCB0ZXN0cyBoYXZlIGEgcHJvYmxlbSwgc2luY2UgU3RyaWN0VHlwZUNoZWNraW5n
IHdhcyBlbmFibGVkIGZvciBudW1lcmljIHR5cGVzLgorICAgICAgICBXaGVuIGNhbGxpbmcgZ2wu
YmluZEF0dHJpYkxvY2F0aW9uKCkgYmUgc3VyZSB0byBwYXNzIHRoZSBzZWNvbmQgYXJndW1lbnQg
YXMgaW50ZWdlciwgbm90IGFzIHN0cmluZy4KKyAgICAgICAgRml4ZXMgYWxsIGZhaWxpbmcgd2Vi
Z2wgdGVzdHMgb24gdGhlIHNub3cgbGVvcGFyZCBib3QuCisKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qczoKKyAgICAgICAgKFdlYkdMVGVzdFV0aWxzKToKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qczoKKyAgICAgICAgKGNyZWF0ZVByb2dyYW0p
OgorCiAyMDEwLTEwLTIzICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2ls
LWFudGlhbGlhcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1s
CShyZXZpc2lvbiA3MDQxMSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRl
eHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIGZ1bmN0aW9uIGdldFdlYkdMKGNhbnZhc05hbWUsIGNv
bnRleHRBdHQKICAgICAvLyBCaW5kIGF0dHJpYnV0ZXMKICAgICB2YXIgYXR0cmlicyA9IFsgInBv
cyIsICJjb2xvckluIiBdOwogICAgIGZvciAodmFyIGkgaW4gYXR0cmlicykKLSAgICAgICAgZ2wu
YmluZEF0dHJpYkxvY2F0aW9uKGdsLnByb2dyYW0sIGksIGF0dHJpYnNbaV0pOworICAgICAgICBn
bC5iaW5kQXR0cmliTG9jYXRpb24oZ2wucHJvZ3JhbSwgcGFyc2VJbnQoaSksIGF0dHJpYnNbaV0p
OwogCiAgICAgLy8gTGluayB0aGUgcHJvZ3JhbQogICAgIGdsLmxpbmtQcm9ncmFtKGdsLnByb2dy
YW0pOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
LXRlc3QtdXRpbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMJKHJldmlzaW9uIDcwNDExKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTU2OCw3ICs1NjgsNyBAQCB2YXIgc2V0dXBXZWJHTFdpdGhTaGFk
ZXJzID0gZnVuY3Rpb24oCiAKICAgLy8gQmluZCBhdHRyaWJ1dGVzCiAgIGZvciAodmFyIGkgaW4g
YXR0cmlicykgewotICAgIGdsLmJpbmRBdHRyaWJMb2NhdGlvbiAocHJvZ3JhbSwgaSwgYXR0cmli
c1tpXSk7CisgICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uIChwcm9ncmFtLCBwYXJzZUludChpKSwg
YXR0cmlic1tpXSk7CiAgIH0KIAogICBsaW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC5qcwkocmV2aXNpb24gNzA0MTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTg3LDcgKzE4Nyw3
IEBAIGZ1bmN0aW9uIGNyZWF0ZVByb2dyYW0oZ2wsIHZzaGFkZXJzLCBmc2gKIAogICAgIGlmIChh
dHRyaWJzKSB7CiAgICAgICAgIGZvciAodmFyIGkgaW4gYXR0cmlicykgewotICAgICAgICAgICAg
Z2wuYmluZEF0dHJpYkxvY2F0aW9uIChwcm9nLCBpLCBhdHRyaWJzW2ldKTsKKyAgICAgICAgICAg
IGdsLmJpbmRBdHRyaWJMb2NhdGlvbiAocHJvZywgcGFyc2VJbnQoaSksIGF0dHJpYnNbaV0pOwog
ICB9CiAgICAgfQogCg==
</data>
<flag name="review"
          id="61794"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>