<?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>81737</bug_id>
          
          <creation_ts>2012-03-20 21:33:11 -0700</creation_ts>
          <short_desc>cssText should use shorthand notations</short_desc>
          <delta_ts>2018-09-13 10:13:19 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>82012</dependson>
    
    <dependson>82028</dependson>
    
    <dependson>82040</dependson>
    
    <dependson>185953</dependson>
          <blocked>12319</blocked>
    
    <blocked>73967</blocked>
    
    <blocked>82364</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>krit</cc>
    
    <cc>macpherson</cc>
    
    <cc>max.hong.shen</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>583786</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-20 21:33:11 -0700</bug_when>
    <thetext>Takes an example from 12319. Copying some text from TextEdit in the rich format mode results in verbose inline styles such as:
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: Helvetica; font-size: 12px; &quot;&gt;this is line one&lt;/p&gt;

It could be

&lt;p style=&quot;margin: 0px; font-family: Helvetica; font-size: 12px; &quot;&gt;this is line one&lt;/p&gt;

instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583883</commentid>
    <comment_count>1</comment_count>
      <attachid>132987</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 01:14:10 -0700</bug_when>
    <thetext>Created attachment 132987
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584893</commentid>
    <comment_count>2</comment_count>
      <attachid>133169</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-21 19:25:23 -0700</bug_when>
    <thetext>Created attachment 133169
work in progress 2

There appear to be some regressions in copy &amp; paste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585062</commentid>
    <comment_count>3</comment_count>
      <attachid>133205</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-22 01:32:04 -0700</bug_when>
    <thetext>Created attachment 133205
work in progress 3

I just need a test now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585063</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 01:34:47 -0700</bug_when>
    <thetext>Attachment 133205 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/editing/pasteboard/paste-and-s...&quot; exit_code: 1
Source/WebCore/css/StylePropertySet.h:103:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 1 in 8 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>585545</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-22 11:49:12 -0700</bug_when>
    <thetext>It appears that we can do this for all cases. e.g. Firefox uses shorthand notations for cssText as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585652</commentid>
    <comment_count>6</comment_count>
      <attachid>133337</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-22 13:41:23 -0700</bug_when>
    <thetext>Created attachment 133337
work in progress 4

Enable shorthands for all cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585770</commentid>
    <comment_count>7</comment_count>
      <attachid>133337</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 15:24:27 -0700</bug_when>
    <thetext>Comment on attachment 133337
work in progress 4

Attachment 133337 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12116275

New failing tests:
editing/pasteboard/paste-and-sanitize.html
inspector/styles/styles-update-from-js.html
fast/css/remove-shorthand.html
editing/style/non-inheritable-styles.html
fast/css/uri-token-parsing.html
printing/page-rule-css-text.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586205</commentid>
    <comment_count>8</comment_count>
      <attachid>133453</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 03:49:54 -0700</bug_when>
    <thetext>Created attachment 133453
work in progress 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586871</commentid>
    <comment_count>9</comment_count>
      <attachid>133590</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 17:17:20 -0700</bug_when>
    <thetext>Created attachment 133590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586878</commentid>
    <comment_count>10</comment_count>
      <attachid>133590</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-23 17:20:13 -0700</bug_when>
    <thetext>Comment on attachment 133590
Patch

Attachment 133590 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12117885</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586881</commentid>
    <comment_count>11</comment_count>
      <attachid>133590</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-23 17:21:22 -0700</bug_when>
    <thetext>Comment on attachment 133590
Patch

Attachment 133590 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12117887</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586886</commentid>
    <comment_count>12</comment_count>
      <attachid>133590</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-23 17:22:14 -0700</bug_when>
    <thetext>Comment on attachment 133590
Patch

Attachment 133590 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12122879</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586890</commentid>
    <comment_count>13</comment_count>
      <attachid>133590</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-23 17:24:08 -0700</bug_when>
    <thetext>Comment on attachment 133590
Patch

Attachment 133590 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12123847</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586898</commentid>
    <comment_count>14</comment_count>
      <attachid>133590</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-23 17:30:58 -0700</bug_when>
    <thetext>Comment on attachment 133590
Patch

Attachment 133590 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12116920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586904</commentid>
    <comment_count>15</comment_count>
      <attachid>133596</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 17:36:25 -0700</bug_when>
    <thetext>Created attachment 133596
Added the missing BitVector change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586908</commentid>
    <comment_count>16</comment_count>
      <attachid>133596</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 17:43:50 -0700</bug_when>
    <thetext>Comment on attachment 133596
Added the missing BitVector change

Attachment 133596 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12117902</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586912</commentid>
    <comment_count>17</comment_count>
      <attachid>133596</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-23 17:51:28 -0700</bug_when>
    <thetext>Comment on attachment 133596
Added the missing BitVector change

Attachment 133596 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12119007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586923</commentid>
    <comment_count>18</comment_count>
      <attachid>133596</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-23 17:56:15 -0700</bug_when>
    <thetext>Comment on attachment 133596
Added the missing BitVector change

Attachment 133596 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12097058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586927</commentid>
    <comment_count>19</comment_count>
      <attachid>133601</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-23 17:58:07 -0700</bug_when>
    <thetext>Created attachment 133601
Another build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586946</commentid>
    <comment_count>20</comment_count>
      <attachid>133601</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 18:13:26 -0700</bug_when>
    <thetext>Comment on attachment 133601
Another build fix

Attachment 133601 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12122905</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586953</commentid>
    <comment_count>21</comment_count>
      <attachid>133601</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-23 18:30:10 -0700</bug_when>
    <thetext>Comment on attachment 133601
Another build fix

Attachment 133601 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12122912</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588170</commentid>
    <comment_count>22</comment_count>
      <attachid>133601</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-26 15:00:57 -0700</bug_when>
    <thetext>Comment on attachment 133601
Another build fix

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

Do we know what the perf effect of this change is?

&gt; Source/WebCore/css/StylePropertySet.cpp:730
&gt; +            // Don&apos;t use CSSPropertyFont because old UAs can&apos;t recognize them but are important for editing.

Is this really still the case? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588173</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 15:03:44 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 133601 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133601&amp;action=review
&gt; 
&gt; Do we know what the perf effect of this change is?

I don&apos;t think there&apos;s any perf. implications because we didn&apos;t even use StringBuilder before my patch for https://bugs.webkit.org/show_bug.cgi?id=82028 was landed.

&gt; &gt; Source/WebCore/css/StylePropertySet.cpp:730
&gt; &gt; +            // Don&apos;t use CSSPropertyFont because old UAs can&apos;t recognize them but are important for editing.
&gt; 
&gt; Is this really still the case? :)

Yes. Unfortunately, some old versions of mail clients support as little CSS as MSIE4 did :(  We even used to generate font elements for a very old mail client that didn&apos;t support CSS at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588194</commentid>
    <comment_count>24</comment_count>
      <attachid>133601</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-03-26 15:29:53 -0700</bug_when>
    <thetext>Comment on attachment 133601
Another build fix

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

The patch looks good to me. Thanks for doing this :-)

&gt; Source/WTF/wtf/BitVector.h:170
&gt; +

Unnecessary empty line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588198</commentid>
    <comment_count>25</comment_count>
      <attachid>133601</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-03-26 15:33:28 -0700</bug_when>
    <thetext>Comment on attachment 133601
Another build fix

Please fix the build breaks. The rest of the patch looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588209</commentid>
    <comment_count>26</comment_count>
      <attachid>133909</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 15:41:35 -0700</bug_when>
    <thetext>Created attachment 133909
Fixed win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588232</commentid>
    <comment_count>27</comment_count>
      <attachid>133909</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-03-26 15:53:13 -0700</bug_when>
    <thetext>Comment on attachment 133909
Fixed win build

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

r+ with the Linux build fix and the ChangeLog entry.

&gt; Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:302
&gt;      ?retrieveCallerFromVMCode@Interpreter@JSC@@QBE?AVJSValue@2@PAVExecState@2@PAVJSFunction@2@@Z

You need a ChangeLog entry for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588299</commentid>
    <comment_count>28</comment_count>
      <attachid>133909</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 16:38:35 -0700</bug_when>
    <thetext>Comment on attachment 133909
Fixed win build

Attachment 133909 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12145156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588320</commentid>
    <comment_count>29</comment_count>
      <attachid>133909</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 16:50:42 -0700</bug_when>
    <thetext>Comment on attachment 133909
Fixed win build

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

&gt; Source/WebCore/css/StylePropertySet.cpp:777
&gt; +        case CSSPropertyWebkitMaskPositionX:
&gt; +        case CSSPropertyWebkitMaskPositionY:
&gt; +            shorthandPropertyID = CSSPropertyWebkitMaskPosition;
&gt; +            break;
&gt; +        case CSSPropertyWebkitMaskRepeatX:
&gt; +        case CSSPropertyWebkitMaskRepeatY:
&gt; +            shorthandPropertyID = CSSPropertyWebkitMaskRepeat;

Huh, these properties need to be merged with the following properties for CSSPropertyWebkitMask.
It&apos;s causing LayoutTests/fast/css/remove-shorthand.html to fail now.
It seems like something has changed since last week :\</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588327</commentid>
    <comment_count>30</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 16:59:37 -0700</bug_when>
    <thetext>Committed r112177: &lt;http://trac.webkit.org/changeset/112177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588420</commentid>
    <comment_count>31</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-26 18:22:48 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Committed r112177: &lt;http://trac.webkit.org/changeset/112177&gt;

Is this what caused fast/dom/css-dom-read-2.html to fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588432</commentid>
    <comment_count>32</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 18:27:41 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (In reply to comment #30)
&gt; &gt; Committed r112177: &lt;http://trac.webkit.org/changeset/112177&gt;
&gt; 
&gt; Is this what caused fast/dom/css-dom-read-2.html to fail?

So it seems. Will rebaseline. It&apos;s odd that I didn&apos;t see this failure locally last week :\</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588437</commentid>
    <comment_count>33</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-26 18:32:46 -0700</bug_when>
    <thetext>Chromium build fix landed in http://trac.webkit.org/changeset/112185, and rebaselined the test in http://trac.webkit.org/changeset/112188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132987</attachid>
            <date>2012-03-21 01:14:10 -0700</date>
            <delta_ts>2012-03-21 19:25:23 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>wip81737</filename>
            <type>text/plain</type>
            <size>11692</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCShyZXZpc2lvbiAxMTEyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA2LDcgKzUwNiw3
IEBACiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZW1vdmVOb2RlQXR0cmli
dXRlKGVsZW1lbnQsIHN0eWxlQXR0cik7CiAgICAgICAgIH0gZWxzZSBpZiAobmV3SW5saW5lU3R5
bGUtPnN0eWxlKCktPnByb3BlcnR5Q291bnQoKSAhPSBpbmxpbmVTdHlsZS0+cHJvcGVydHlDb3Vu
dCgpKQotICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIG5l
d0lubGluZVN0eWxlLT5zdHlsZSgpLT5hc1RleHQoKSk7CisgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4
dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKIAogICAgICAgICAvLyBGSVhNRTog
VG9sZXJhdGUgZGlmZmVyZW5jZXMgaW4gaWQsIGNsYXNzLCBhbmQgc3R5bGUgYXR0cmlidXRlcy4K
ICAgICAgICAgaWYgKGlzTm9uVGFibGVDZWxsSFRNTEJsb2NrRWxlbWVudChlbGVtZW50KSAmJiBh
cmVJZGVudGljYWxFbGVtZW50cyhlbGVtZW50LCBlbGVtZW50LT5wYXJlbnROb2RlKCkpCkBAIC02
NjYsNyArNjY2LDcgQEAKIAogICAgIE5vZGUqIHdyYXBwaW5nU3R5bGVTcGFuID0gdG9wTm9kZTsK
ICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZUF0SW5zZXJ0aW9uUG9zID0gRWRpdGluZ1N0
eWxlOjpjcmVhdGUoaW5zZXJ0aW9uUG9zLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpKTsKLSAg
ICBTdHJpbmcgc3R5bGVUZXh0ID0gc3R5bGVBdEluc2VydGlvblBvcy0+c3R5bGUoKS0+YXNUZXh0
KCk7CisgICAgU3RyaW5nIHN0eWxlVGV4dCA9IHN0eWxlQXRJbnNlcnRpb25Qb3MtPnN0eWxlKCkt
PmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc3RyaW5nIGNvbXBhcmlzb24gaXMgYSBuYWl2ZSB3YXkgb2YgY29tcGFyaW5nIHR3byBz
dHlsZXMuCiAgICAgLy8gV2Ugc2hvdWxkIGJlIHRha2luZyB0aGUgZGlmZiBhbmQgY2hlY2sgdGhh
dCB0aGUgZGlmZiBpcyBlbXB0eS4KQEAgLTcyNiw3ICs3MjYsNyBAQAogICAgICAgICBpbnNlcnRl
ZE5vZGVzLndpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHdyYXBwaW5nU3R5bGVTcGFu
KTsKICAgICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbih3cmFwcGluZ1N0eWxlU3Bh
bik7CiAgICAgfSBlbHNlCi0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUod3JhcHBpbmdTdHlsZVNw
YW4sIHN0eWxlQXR0ciwgc3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpKTsKKyAgICAgICAgc2V0Tm9k
ZUF0dHJpYnV0ZSh3cmFwcGluZ1N0eWxlU3Bhbiwgc3R5bGVBdHRyLCBzdHlsZS0+c3R5bGUoKS0+
YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogfQogCiB2b2lkIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjptZXJnZUVuZElmTmVlZGVkKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDExMTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDcgKzMyOSw3IEBACiAgICAgICAg
IGlmICghbmV3SW5saW5lU3R5bGUtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlUHJlZml4LCAoIiBzdHlsZT1cIiIpKTsKICAg
ICAgICAgICAgIG91dC5hcHBlbmQoc3R5bGVQcmVmaXgpOwotICAgICAgICAgICAgYXBwZW5kQXR0
cmlidXRlVmFsdWUob3V0LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCksIGRvY3Vt
ZW50SXNIVE1MKTsKKyAgICAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgbmV3SW5s
aW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQp
LCBkb2N1bWVudElzSFRNTCk7CiAgICAgICAgICAgICBvdXQuYXBwZW5kKCdcIicpOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAJKHJldmlzaW9uIDExMTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNyArMzkyLDcgQEAKICAg
ICAgICAgfQogICAgICAgICBpZiAoY3VycmVudEZvbnRTaXplICE9IGRlc2lyZWRGb250U2l6ZSkg
ewogICAgICAgICAgICAgaW5saW5lU3R5bGVEZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZv
bnRTaXplLCBTdHJpbmc6Om51bWJlcihkZXNpcmVkRm9udFNpemUpICsgInB4IiwgZmFsc2UpOwot
ICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlu
bGluZVN0eWxlRGVjbC0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlubGluZVN0eWxlRGVjbC0+YXNUZXh0KFN0eWxlUHJv
cGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVT
dHlsZURlY2wtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIpOwpAQCAtNTEyLDcgKzUxMiw3IEBACiAgICAgICAgICAg
ICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gaW5saW5lU3R5bGUgPSBlbGVtZW50LT5lbnN1cmVJ
bmxpbmVTdHlsZSgpLT5jb3B5KCk7CiAgICAgICAgICAgICBpbmxpbmVTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICAgICAg
aW5saW5lU3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKLSAgICAg
ICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyLCBpbmxpbmVTdHlsZS0+
YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0
dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNldDo6VXNlU2hvcnRoYW5kKSk7
CiAgICAgICAgICAgICBpZiAoaXNTcGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVkU3R5bGVT
cGFuKGVsZW1lbnQpKQogICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW4oZWxlbWVudCk7CiAgICAgICAgIH0KQEAgLTcyNSw3ICs3MjUsNyBAQAogICAgICAgICAgICAg
SFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAg
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGlubGluZVN0eWxlID0gZWxlbWVudC0+ZW5zdXJlSW5s
aW5lU3R5bGUoKS0+Y29weSgpOwogICAgICAgICAgICAgaW5saW5lU3R5bGUtPm1lcmdlKHN0eWxl
LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVB
dHRyLCBpbmxpbmVTdHlsZS0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0
ZShlbGVtZW50LCBzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNl
dDo6VXNlU2hvcnRoYW5kKSk7CiAgICAgICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0
U2libGluZygpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTkzOCw3ICs5
MzgsNyBAQAogICAgIC8vIFNpbmNlIGFkZElubGluZVN0eWxlSWZOZWVkZWQgY2FuJ3QgYWRkIHN0
eWxlcyB0byBibG9jay1mbG93IHJlbmRlciBvYmplY3RzLCBhZGQgc3R5bGUgYXR0cmlidXRlIGlu
c3RlYWQuCiAgICAgLy8gRklYTUU6IGFwcGx5SW5saW5lU3R5bGVUb1JhbmdlIHNob3VsZCBiZSB1
c2VkIGhlcmUgaW5zdGVhZC4KICAgICBpZiAoKG5vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93
KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7
Ci0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxlbWVudChub2RlKSwgc3R5bGVBdHRy
LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkpOworICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHRvSFRNTEVsZW1lbnQobm9kZSksIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0
eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTMwNyw3ICsxMzA3LDcgQEAKICAgICAgICAgCiAgICAgU3Ry
aW5nIGNzc1RleHQgPSBzdHlsZUNoYW5nZS5jc3NTdHlsZSgpOwogICAgIGlmIChjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBkZWNsID0gYmxvY2stPmlubGluZVN0eWxlKCkpCi0gICAgICAgIGNzc1Rl
eHQgKz0gZGVjbC0+YXNUZXh0KCk7CisgICAgICAgIGNzc1RleHQgKz0gZGVjbC0+YXNUZXh0KFN0
eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCk7CiAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9j
aywgc3R5bGVBdHRyLCBjc3NUZXh0KTsKIH0KIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAKICAgICBp
ZiAoc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKS5sZW5ndGgoKSkgewogICAgICAgICBpZiAoc3R5bGVD
b250YWluZXIpIHsKICAgICAgICAgICAgIGlmIChjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBleGlz
dGluZ1N0eWxlID0gc3R5bGVDb250YWluZXItPmlubGluZVN0eWxlKCkpCi0gICAgICAgICAgICAg
ICAgc2V0Tm9kZUF0dHJpYnV0ZShzdHlsZUNvbnRhaW5lciwgc3R5bGVBdHRyLCBleGlzdGluZ1N0
eWxlLT5hc1RleHQoKSArIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkpOworICAgICAgICAgICAgICAg
IHNldE5vZGVBdHRyaWJ1dGUoc3R5bGVDb250YWluZXIsIHN0eWxlQXR0ciwgZXhpc3RpbmdTdHls
ZS0+YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkgKyBzdHlsZUNoYW5nZS5j
c3NTdHlsZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHN0eWxlQ29udGFpbmVyLCBzdHlsZUF0dHIsIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcAkocmV2aXNpb24gMTExMjc0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydHlTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDUsMjggKzY0NSw2OSBAQAogICAgIH0K
IH0KIAotU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmFzVGV4dCgpIGNvbnN0CitTdHJpbmcgU3R5
bGVQcm9wZXJ0eVNldDo6YXNUZXh0KFNob3VsZFVzZVNob3J0aGFuZCBzaG91bGRVc2VTaG9ydGhh
bmQpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9ICIiOworICAgIFN0cmluZ0J1aWxkZXIg
cmVzdWx0OwogCiAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHBvc2l0aW9uWFByb3AgPSAwOwogICAg
IGNvbnN0IENTU1Byb3BlcnR5KiBwb3NpdGlvbllQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9w
ZXJ0eSogcmVwZWF0WFByb3AgPSAwOwogICAgIGNvbnN0IENTU1Byb3BlcnR5KiByZXBlYXRZUHJv
cCA9IDA7CiAKKyAgICBib29sIHNob3J0aGFuZFByb3BlcnR5VXNlZFtudW1DU1NQcm9wZXJ0aWVz
XSA9IHsgZmFsc2UgfTsKKwogICAgIHVuc2lnbmVkIHNpemUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgp
OwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBzaXplOyArK24pIHsKICAgICAgICAgY29u
c3QgQ1NTUHJvcGVydHkmIHByb3AgPSBtX3Byb3BlcnRpZXNbbl07Ci0gICAgICAgIGlmIChwcm9w
LmlkKCkgPT0gQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YKQorICAgICAgICBpbnQgcHJv
cGVydHlJRCA9IHByb3AuaWQoKTsKKyAgICAgICAgaW50IHNob3J0aGFuZFByb3BlcnR5SUQgPSAw
OworCisgICAgICAgIHN3aXRjaCAocHJvcGVydHlJRCkgeworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5QmFja2dyb3VuZFBvc2l0aW9uWDoKICAgICAgICAgICAgIHBvc2l0aW9uWFByb3AgPSAmcHJv
cDsKLSAgICAgICAgZWxzZSBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBv
c2l0aW9uWSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFBvc2l0aW9uWToKICAgICAgICAgICAgIHBvc2l0aW9uWVByb3AgPSAmcHJvcDsK
LSAgICAgICAgZWxzZSBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVh
dFgpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tn
cm91bmRSZXBlYXRYOgogICAgICAgICAgICAgcmVwZWF0WFByb3AgPSAmcHJvcDsKLSAgICAgICAg
ZWxzZSBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBl
YXRZOgogICAgICAgICAgICAgcmVwZWF0WVByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcmVzdWx0ICs9IHByb3AuY3NzVGV4dCgpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlNYXJnaW5SaWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbToK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQ6CisgICAgICAgICAgICBzaG9ydGhh
bmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlNYXJnaW47CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlQYWRkaW5nUmlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6CisgICAgICAgICAgICBzaG9ydGhh
bmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlQYWRkaW5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAgIGlmIChzaG91bGRVc2VT
aG9ydGhhbmQgPT0gVXNlU2hvcnRoYW5kKSB7CisgICAgICAgICAgICBpZiAoc2hvcnRoYW5kUHJv
cGVydHlVc2VkW3Nob3J0aGFuZFByb3BlcnR5SUQgLSBmaXJzdENTU1Byb3BlcnR5XSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHZhbHVlID0gZ2V0UHJvcGVydHlWYWx1
ZShwcm9wZXJ0eUlEKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSkgeworICAgICAg
ICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5VXNlZFtzaG9ydGhhbmRQcm9wZXJ0eUlEIC0gZmly
c3RDU1NQcm9wZXJ0eV0gPSB0cnVlOworICAgICAgICAgICAgICAgIHByb3BlcnR5SUQgPSBzaG9y
dGhhbmRQcm9wZXJ0eUlEOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9v
bCBzaG9ydGhhbmRJc1VzZWQgPSBwcm9wZXJ0eUlEID09IHNob3J0aGFuZFByb3BlcnR5SUQ7Cisg
ICAgICAgIGlmICghc2hvcnRoYW5kSXNVc2VkKQorICAgICAgICAgICAgdmFsdWUgPSBwcm9wLnZh
bHVlKCktPmNzc1RleHQoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRQcm9wZXJ0eU5hbWUo
c3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCkpKTsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgiOiAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIHJl
c3VsdC5hcHBlbmQocHJvcC5pc0ltcG9ydGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIiKTsKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiOyAiKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBhIG5vdC1zby1uaWNlIHdheSB0byB0dXJuIHgveSBwb3NpdGlvbnMgaW50byBzaW5nbGUgYmFj
a2dyb3VuZC1wb3NpdGlvbiBpbiBvdXRwdXQuCkBAIC02NzYsMTYgKzcxNywyNSBAQAogICAgIGlm
IChwb3NpdGlvblhQcm9wICYmIHBvc2l0aW9uWVByb3AgJiYgcG9zaXRpb25YUHJvcC0+aXNJbXBv
cnRhbnQoKSA9PSBwb3NpdGlvbllQcm9wLT5pc0ltcG9ydGFudCgpKSB7CiAgICAgICAgIFN0cmlu
ZyBwb3NpdGlvblZhbHVlOwogICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1syXSA9IHsgQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YLCBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlv
blkgfTsKKworICAgICAgICByZXN1bHQuYXBwZW5kKCJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAiKTsK
KwogICAgICAgICBpZiAocG9zaXRpb25YUHJvcC0+dmFsdWUoKS0+aXNWYWx1ZUxpc3QoKSB8fCBw
b3NpdGlvbllQcm9wLT52YWx1ZSgpLT5pc1ZhbHVlTGlzdCgpKQotICAgICAgICAgICAgcG9zaXRp
b25WYWx1ZSA9IGdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShwcm9wZXJ0aWVzKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcG9zaXRpb25WYWx1ZSA9IHBvc2l0aW9uWFByb3AtPnZhbHVlKCkt
PmNzc1RleHQoKSArICIgIiArIHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmNzc1RleHQoKTsKLSAg
ICAgICAgcmVzdWx0ICs9ICJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAiICsgcG9zaXRpb25WYWx1ZSAr
IChwb3NpdGlvblhQcm9wLT5pc0ltcG9ydGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIiKSArICI7
ICI7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShw
cm9wZXJ0aWVzKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChw
b3NpdGlvblhQcm9wLT52YWx1ZSgpLT5jc3NUZXh0KCkpOworICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgiICIpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwb3NpdGlvbllQcm9wLT52YWx1
ZSgpLT5jc3NUZXh0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LmFwcGVuZChwb3Np
dGlvblZhbHVlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChwb3NpdGlvblhQcm9wLT5pc0ltcG9y
dGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiOyAi
KTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAocG9zaXRpb25YUHJvcCkKLSAgICAgICAgICAg
IHJlc3VsdCArPSBwb3NpdGlvblhQcm9wLT5jc3NUZXh0KCk7CisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKHBvc2l0aW9uWFByb3AtPmNzc1RleHQoKSk7CiAgICAgICAgIGlmIChwb3NpdGlvbllQ
cm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHBvc2l0aW9uWVByb3AtPmNzc1RleHQoKTsKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25ZUHJvcC0+Y3NzVGV4dCgpKTsKICAgICB9
CiAKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBkbyB0aGUgc2FtZSBmb3IgYmFja2dyb3VuZC1y
ZXBlYXQuCkBAIC02OTYsMTUgKzc0NiwxOCBAQAogICAgICAgICAgICAgcmVwZWF0VmFsdWUgPSBn
ZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocmVwZWF0UHJvcGVydGllcyk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJlcGVhdFZhbHVlID0gcmVwZWF0WFByb3AtPnZhbHVlKCktPmNzc1RleHQo
KSArICIgIiArIHJlcGVhdFlQcm9wLT52YWx1ZSgpLT5jc3NUZXh0KCk7Ci0gICAgICAgIHJlc3Vs
dCArPSAiYmFja2dyb3VuZC1yZXBlYXQ6ICIgKyByZXBlYXRWYWx1ZSArIChyZXBlYXRYUHJvcC0+
aXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIikgKyAiOyAiOworICAgICAgICByZXN1
bHQuYXBwZW5kKCJiYWNrZ3JvdW5kLXJlcGVhdDogIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
cmVwZWF0VmFsdWUpOworICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGVhdFhQcm9wLT5pc0ltcG9y
dGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiOyAi
KTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAocmVwZWF0WFByb3ApCi0gICAgICAgICAgICBy
ZXN1bHQgKz0gcmVwZWF0WFByb3AtPmNzc1RleHQoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQocmVwZWF0WFByb3AtPmNzc1RleHQoKSk7CiAgICAgICAgIGlmIChyZXBlYXRZUHJvcCkKLSAg
ICAgICAgICAgIHJlc3VsdCArPSByZXBlYXRZUHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChyZXBlYXRZUHJvcC0+Y3NzVGV4dCgpKTsKICAgICB9CiAKLSAgICByZXR1
cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAogdm9pZCBTdHls
ZVByb3BlcnR5U2V0OjptZXJnZShjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBvdGhlciwgYm9vbCBh
cmdPdmVycmlkZXNPbkNvbmZsaWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydHlTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5oCShyZXZpc2lvbiAxMTEyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0eVNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw5ICs5OCwxMCBAQAogICAgIHZvaWQgcmVt
b3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoY29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogCiAg
ICAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0
IGludCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OworCisgICAgZW51bSBTaG91bGRVc2VT
aG9ydGhhbmQgeyBVc2VTaG9ydGhhbmQsIERvTm90VXNlU2hvcnRoYW5kIH07CisgICAgU3RyaW5n
IGFzVGV4dChTaG91bGRVc2VTaG9ydGhhbmQ9RG9Ob3RVc2VTaG9ydGhhbmQpIGNvbnN0OwogICAg
IAotICAgIFN0cmluZyBhc1RleHQoKSBjb25zdDsKLSAgICAKICAgICB2b2lkIGNsZWFyUGFyZW50
UnVsZShDU1NSdWxlKik7CiAgICAgdm9pZCBjbGVhclBhcmVudEVsZW1lbnQoU3R5bGVkRWxlbWVu
dCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133169</attachid>
            <date>2012-03-21 19:25:23 -0700</date>
            <delta_ts>2012-03-22 01:32:04 -0700</delta_ts>
            <desc>work in progress 2</desc>
            <filename>wip81737b</filename>
            <type>text/plain</type>
            <size>16500</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCShyZXZpc2lvbiAxMTE2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA2LDcgKzUwNiw3
IEBACiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZW1vdmVOb2RlQXR0cmli
dXRlKGVsZW1lbnQsIHN0eWxlQXR0cik7CiAgICAgICAgIH0gZWxzZSBpZiAobmV3SW5saW5lU3R5
bGUtPnN0eWxlKCktPnByb3BlcnR5Q291bnQoKSAhPSBpbmxpbmVTdHlsZS0+cHJvcGVydHlDb3Vu
dCgpKQotICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIG5l
d0lubGluZVN0eWxlLT5zdHlsZSgpLT5hc1RleHQoKSk7CisgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4
dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKIAogICAgICAgICAvLyBGSVhNRTog
VG9sZXJhdGUgZGlmZmVyZW5jZXMgaW4gaWQsIGNsYXNzLCBhbmQgc3R5bGUgYXR0cmlidXRlcy4K
ICAgICAgICAgaWYgKGlzTm9uVGFibGVDZWxsSFRNTEJsb2NrRWxlbWVudChlbGVtZW50KSAmJiBh
cmVJZGVudGljYWxFbGVtZW50cyhlbGVtZW50LCBlbGVtZW50LT5wYXJlbnROb2RlKCkpCkBAIC02
NjYsNyArNjY2LDcgQEAKIAogICAgIE5vZGUqIHdyYXBwaW5nU3R5bGVTcGFuID0gdG9wTm9kZTsK
ICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZUF0SW5zZXJ0aW9uUG9zID0gRWRpdGluZ1N0
eWxlOjpjcmVhdGUoaW5zZXJ0aW9uUG9zLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpKTsKLSAg
ICBTdHJpbmcgc3R5bGVUZXh0ID0gc3R5bGVBdEluc2VydGlvblBvcy0+c3R5bGUoKS0+YXNUZXh0
KCk7CisgICAgU3RyaW5nIHN0eWxlVGV4dCA9IHN0eWxlQXRJbnNlcnRpb25Qb3MtPnN0eWxlKCkt
PmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc3RyaW5nIGNvbXBhcmlzb24gaXMgYSBuYWl2ZSB3YXkgb2YgY29tcGFyaW5nIHR3byBz
dHlsZXMuCiAgICAgLy8gV2Ugc2hvdWxkIGJlIHRha2luZyB0aGUgZGlmZiBhbmQgY2hlY2sgdGhh
dCB0aGUgZGlmZiBpcyBlbXB0eS4KQEAgLTcyNiw3ICs3MjYsNyBAQAogICAgICAgICBpbnNlcnRl
ZE5vZGVzLndpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHdyYXBwaW5nU3R5bGVTcGFu
KTsKICAgICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbih3cmFwcGluZ1N0eWxlU3Bh
bik7CiAgICAgfSBlbHNlCi0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUod3JhcHBpbmdTdHlsZVNw
YW4sIHN0eWxlQXR0ciwgc3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpKTsKKyAgICAgICAgc2V0Tm9k
ZUF0dHJpYnV0ZSh3cmFwcGluZ1N0eWxlU3Bhbiwgc3R5bGVBdHRyLCBzdHlsZS0+c3R5bGUoKS0+
YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogfQogCiB2b2lkIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjptZXJnZUVuZElmTmVlZGVkKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDExMTYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDcgKzMyOSw3IEBACiAgICAgICAg
IGlmICghbmV3SW5saW5lU3R5bGUtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlUHJlZml4LCAoIiBzdHlsZT1cIiIpKTsKICAg
ICAgICAgICAgIG91dC5hcHBlbmQoc3R5bGVQcmVmaXgpOwotICAgICAgICAgICAgYXBwZW5kQXR0
cmlidXRlVmFsdWUob3V0LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCksIGRvY3Vt
ZW50SXNIVE1MKTsKKyAgICAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgbmV3SW5s
aW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQp
LCBkb2N1bWVudElzSFRNTCk7CiAgICAgICAgICAgICBvdXQuYXBwZW5kKCdcIicpOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAJKHJldmlzaW9uIDExMTYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNyArMzkyLDcgQEAKICAg
ICAgICAgfQogICAgICAgICBpZiAoY3VycmVudEZvbnRTaXplICE9IGRlc2lyZWRGb250U2l6ZSkg
ewogICAgICAgICAgICAgaW5saW5lU3R5bGVEZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZv
bnRTaXplLCBTdHJpbmc6Om51bWJlcihkZXNpcmVkRm9udFNpemUpICsgInB4IiwgZmFsc2UpOwot
ICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlu
bGluZVN0eWxlRGVjbC0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlubGluZVN0eWxlRGVjbC0+YXNUZXh0KFN0eWxlUHJv
cGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVT
dHlsZURlY2wtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIpOwpAQCAtNTEyLDcgKzUxMiw3IEBACiAgICAgICAgICAg
ICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gaW5saW5lU3R5bGUgPSBlbGVtZW50LT5lbnN1cmVJ
bmxpbmVTdHlsZSgpLT5jb3B5KCk7CiAgICAgICAgICAgICBpbmxpbmVTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICAgICAg
aW5saW5lU3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKLSAgICAg
ICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyLCBpbmxpbmVTdHlsZS0+
YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0
dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNldDo6VXNlU2hvcnRoYW5kKSk7
CiAgICAgICAgICAgICBpZiAoaXNTcGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVkU3R5bGVT
cGFuKGVsZW1lbnQpKQogICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW4oZWxlbWVudCk7CiAgICAgICAgIH0KQEAgLTcyNSw3ICs3MjUsNyBAQAogICAgICAgICAgICAg
SFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAg
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGlubGluZVN0eWxlID0gZWxlbWVudC0+ZW5zdXJlSW5s
aW5lU3R5bGUoKS0+Y29weSgpOwogICAgICAgICAgICAgaW5saW5lU3R5bGUtPm1lcmdlKHN0eWxl
LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVB
dHRyLCBpbmxpbmVTdHlsZS0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0
ZShlbGVtZW50LCBzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNl
dDo6VXNlU2hvcnRoYW5kKSk7CiAgICAgICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0
U2libGluZygpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTkzOCw3ICs5
MzgsNyBAQAogICAgIC8vIFNpbmNlIGFkZElubGluZVN0eWxlSWZOZWVkZWQgY2FuJ3QgYWRkIHN0
eWxlcyB0byBibG9jay1mbG93IHJlbmRlciBvYmplY3RzLCBhZGQgc3R5bGUgYXR0cmlidXRlIGlu
c3RlYWQuCiAgICAgLy8gRklYTUU6IGFwcGx5SW5saW5lU3R5bGVUb1JhbmdlIHNob3VsZCBiZSB1
c2VkIGhlcmUgaW5zdGVhZC4KICAgICBpZiAoKG5vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93
KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7
Ci0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxlbWVudChub2RlKSwgc3R5bGVBdHRy
LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkpOworICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHRvSFRNTEVsZW1lbnQobm9kZSksIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0
eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTMwNyw3ICsxMzA3LDcgQEAKICAgICAgICAgCiAgICAgU3Ry
aW5nIGNzc1RleHQgPSBzdHlsZUNoYW5nZS5jc3NTdHlsZSgpOwogICAgIGlmIChjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBkZWNsID0gYmxvY2stPmlubGluZVN0eWxlKCkpCi0gICAgICAgIGNzc1Rl
eHQgKz0gZGVjbC0+YXNUZXh0KCk7CisgICAgICAgIGNzc1RleHQgKz0gZGVjbC0+YXNUZXh0KFN0
eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCk7CiAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9j
aywgc3R5bGVBdHRyLCBjc3NUZXh0KTsKIH0KIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAKICAgICBp
ZiAoc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKS5sZW5ndGgoKSkgewogICAgICAgICBpZiAoc3R5bGVD
b250YWluZXIpIHsKICAgICAgICAgICAgIGlmIChjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBleGlz
dGluZ1N0eWxlID0gc3R5bGVDb250YWluZXItPmlubGluZVN0eWxlKCkpCi0gICAgICAgICAgICAg
ICAgc2V0Tm9kZUF0dHJpYnV0ZShzdHlsZUNvbnRhaW5lciwgc3R5bGVBdHRyLCBleGlzdGluZ1N0
eWxlLT5hc1RleHQoKSArIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkpOworICAgICAgICAgICAgICAg
IHNldE5vZGVBdHRyaWJ1dGUoc3R5bGVDb250YWluZXIsIHN0eWxlQXR0ciwgZXhpc3RpbmdTdHls
ZS0+YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkgKyBzdHlsZUNoYW5nZS5j
c3NTdHlsZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHN0eWxlQ29udGFpbmVyLCBzdHlsZUF0dHIsIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTExNjEwKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzY0Miw3ICsxMzY0Miw3IEBACiAJCQkJMUFFODJFQzkwQ0FBRTE3NzAwMjIzN0FFIC8qIHN0
b3JhZ2UgKi8sCiAJCQkJQjIyMjc3Q0EwRDAwQkYxRTAwNzFCNzgyIC8qIHN2ZyAqLywKIAkJCQk0
MTdEQTRDRDEzNzM0MjA0MDA3QzU3RkIgLyogdGVzdGluZyAqLywKLQkJCQlGRDMxNUZBMjEyQjAy
NUIxMDBDMUEzNTkgLyogd2ViYXVkaW8gKi8sCisJCQkJRkQzMTVGQTIxMkIwMjVCMTAwQzFBMzU5
IC8qIE1vZHVsZXMvd2ViYXVkaW8gKi8sCiAJCQkJMkU0MzQ2MzEwRjU0NkE2ODAwQjBGMUJBIC8q
IHdvcmtlcnMgKi8sCiAJCQkJRTFGMDQyNDMwOTgzOTM4OTAwNjY5NEVBIC8qIHhtbCAqLywKIAkJ
CQk2NTY1ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVyaXZlZCBTb3VyY2VzICovLApAQCAtMjEx
NjksNyArMjExNjksNyBAQAogCQkJcGF0aCA9IG9wZW5nbDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07Ci0JCUZEMzE1RkEyMTJCMDI1QjEwMEMxQTM1OSAvKiB3ZWJhdWRpbyAqLyA9
IHsKKwkJRkQzMTVGQTIxMkIwMjVCMTAwQzFBMzU5IC8qIE1vZHVsZXMvd2ViYXVkaW8gKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUZENTY4NkM3MTNBQzE4
MDIwMEI2OUM2OCAvKiBBc3luY0F1ZGlvRGVjb2Rlci5jcHAgKi8sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCShyZXZpc2lvbiAxMTE2MTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NSwy
OCArNjQ1LDE1NyBAQAogICAgIH0KIH0KIAotU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmFzVGV4
dCgpIGNvbnN0CitTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0KFNob3VsZFVzZVNob3J0
aGFuZCBzaG91bGRVc2VTaG9ydGhhbmQpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdCA9ICIi
OworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogCiAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHBv
c2l0aW9uWFByb3AgPSAwOwogICAgIGNvbnN0IENTU1Byb3BlcnR5KiBwb3NpdGlvbllQcm9wID0g
MDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WFByb3AgPSAwOwogICAgIGNvbnN0IENT
U1Byb3BlcnR5KiByZXBlYXRZUHJvcCA9IDA7CiAKKyAgICBib29sIHNob3J0aGFuZFByb3BlcnR5
VXNlZFtudW1DU1NQcm9wZXJ0aWVzXSA9IHsgZmFsc2UgfTsKKwogICAgIHVuc2lnbmVkIHNpemUg
PSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBzaXpl
OyArK24pIHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3AgPSBtX3Byb3BlcnRpZXNb
bl07Ci0gICAgICAgIGlmIChwcm9wLmlkKCkgPT0gQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRp
b25YKQorICAgICAgICBpbnQgcHJvcGVydHlJRCA9IHByb3AuaWQoKTsKKyAgICAgICAgaW50IHNo
b3J0aGFuZFByb3BlcnR5SUQgPSAwOworCisgICAgICAgIHN3aXRjaCAocHJvcGVydHlJRCkgewor
ICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHNob3J0aGFuZCBiYWNrZ3JvdW5kIHBy
b3BlcnRpZXMKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblg6CiAg
ICAgICAgICAgICBwb3NpdGlvblhQcm9wID0gJnByb3A7Ci0gICAgICAgIGVsc2UgaWYgKHByb3Au
aWQoKSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblk6CiAgICAg
ICAgICAgICBwb3NpdGlvbllQcm9wID0gJnByb3A7Ci0gICAgICAgIGVsc2UgaWYgKHByb3AuaWQo
KSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WDoKICAgICAgICAgICAg
IHJlcGVhdFhQcm9wID0gJnByb3A7Ci0gICAgICAgIGVsc2UgaWYgKHByb3AuaWQoKSA9PSBDU1NQ
cm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WToKICAgICAgICAgICAgIHJlcGVhdFlQ
cm9wID0gJnByb3A7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCArPSBwcm9wLmNz
c1RleHQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lk
dGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aDoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlclRvcFN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHls
ZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0eWxlOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyVG9wQ29sb3I6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9y
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6CisgICAgICAgICAgICAvLyBGSVhNRTogRGVh
bCB3aXRoIGNhc2VzIHdoZXJlIG9ubHkgc29tZSBvZiBib3JkZXItKHRvcHxyaWdodHxib3R0b218
bGVmdCkgYXJlIHNwZWNpZmllZC4KKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eUJvcmRlcjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZzoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2luZzoKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlclNwYWNpbmc7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlMaW5lSGVpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFNpemU6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlGb250VmFyaWFudDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CisgICAg
ICAgICAgICAvLyBEb24ndCB1c2UgQ1NTUHJvcGVydHlGb250IGJlY2F1c2Ugb2xkIFVBcyBjYW4n
dCByZWNvZ25pemUgdGhlbSBidXQgYXJlIGltcG9ydGFudCBmb3IgZWRpdGluZy4KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZToKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9uOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5TGlzdFN0eWxlSW1hZ2U6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0g
Q1NTUHJvcGVydHlMaXN0U3R5bGU7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5SaWdodDoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU1hcmdpbkJvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQ6
CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlNYXJnaW47Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aDoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU91dGxpbmVDb2xvcjoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eU91dGxpbmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU92ZXJmbG93WDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAg
ICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJmbG93OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ0JvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0Ogor
ICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5UGFkZGluZzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9u
TmFtZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkR1cmF0aW9uOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheToKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9w
ZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb247CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJlY3Rpb246CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcDoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3Bl
cnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25YOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKKyAgICAgICAgICAgIHNob3J0aGFuZFBy
b3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFg6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXNrQXR0YWNobWVudDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
c2tQb3NpdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDbGlwOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza09yaWdpbjoKKyAgICAgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2s7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblg6CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5ZOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWjoKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpbjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblByb3Bl
cnR5OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5OgorICAgICAgICAg
ICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3c6
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwTWFyZ2luOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0V3JhcFBhZGRpbmc6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9w
ZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRXcmFwOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAgIGlmIChzaG9ydGhhbmRQcm9w
ZXJ0eUlEICYmIHNob3VsZFVzZVNob3J0aGFuZCA9PSBVc2VTaG9ydGhhbmQpIHsKKyAgICAgICAg
ICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eVVzZWRbc2hvcnRoYW5kUHJvcGVydHlJRCAtIGZpcnN0
Q1NTUHJvcGVydHldKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgdmFs
dWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQpOworICAgICAgICAgICAgaWYgKHZhbHVl
Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlVc2VkW3Nob3J0
aGFuZFByb3BlcnR5SUQgLSBmaXJzdENTU1Byb3BlcnR5XSA9IHRydWU7CisgICAgICAgICAgICAg
ICAgcHJvcGVydHlJRCA9IHNob3J0aGFuZFByb3BlcnR5SUQ7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBib29sIHNob3J0aGFuZElzVXNlZCA9IHByb3BlcnR5SUQgPT0gc2hv
cnRoYW5kUHJvcGVydHlJRDsKKyAgICAgICAgaWYgKCFzaG9ydGhhbmRJc1VzZWQpCisgICAgICAg
ICAgICB2YWx1ZSA9IHByb3AudmFsdWUoKS0+Y3NzVGV4dCgpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlE
KSkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI6ICIpOworICAgICAgICByZXN1bHQuYXBwZW5k
KHZhbHVlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChwcm9wLmlzSW1wb3J0YW50KCkgPyAiICFp
bXBvcnRhbnQiIDogIiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm90LXNvLW5pY2Ugd2F5IHRvIHR1cm4geC95IHBvc2l0
aW9ucyBpbnRvIHNpbmdsZSBiYWNrZ3JvdW5kLXBvc2l0aW9uIGluIG91dHB1dC4KQEAgLTY3Niwx
NiArODA1LDI1IEBACiAgICAgaWYgKHBvc2l0aW9uWFByb3AgJiYgcG9zaXRpb25ZUHJvcCAmJiBw
b3NpdGlvblhQcm9wLT5pc0ltcG9ydGFudCgpID09IHBvc2l0aW9uWVByb3AtPmlzSW1wb3J0YW50
KCkpIHsKICAgICAgICAgU3RyaW5nIHBvc2l0aW9uVmFsdWU7CiAgICAgICAgIGNvbnN0IGludCBw
cm9wZXJ0aWVzWzJdID0geyBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblgsIENTU1Byb3Bl
cnR5QmFja2dyb3VuZFBvc2l0aW9uWSB9OworCisgICAgICAgIHJlc3VsdC5hcHBlbmQoImJhY2tn
cm91bmQtcG9zaXRpb246ICIpOworCiAgICAgICAgIGlmIChwb3NpdGlvblhQcm9wLT52YWx1ZSgp
LT5pc1ZhbHVlTGlzdCgpIHx8IHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmlzVmFsdWVMaXN0KCkp
Ci0gICAgICAgICAgICBwb3NpdGlvblZhbHVlID0gZ2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKHBy
b3BlcnRpZXMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwb3NpdGlvblZhbHVlID0gcG9z
aXRpb25YUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsgIiAiICsgcG9zaXRpb25ZUHJvcC0+dmFs
dWUoKS0+Y3NzVGV4dCgpOwotICAgICAgICByZXN1bHQgKz0gImJhY2tncm91bmQtcG9zaXRpb246
ICIgKyBwb3NpdGlvblZhbHVlICsgKHBvc2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFp
bXBvcnRhbnQiIDogIiIpICsgIjsgIjsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TGF5
ZXJlZFNob3J0aGFuZFZhbHVlKHByb3BlcnRpZXMpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uWFByb3AtPnZhbHVlKCktPmNzc1RleHQoKSk7Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgIik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmNzc1RleHQoKSk7CisgICAgICAgIH0KKworICAgICAg
ICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uVmFsdWUpOworICAgICAgICByZXN1bHQuYXBwZW5kKHBv
c2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAgICAg
ICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwb3NpdGlv
blhQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHBvc2l0aW9uWFByb3AtPmNzc1RleHQoKTsK
KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25YUHJvcC0+Y3NzVGV4dCgpKTsKICAg
ICAgICAgaWYgKHBvc2l0aW9uWVByb3ApCi0gICAgICAgICAgICByZXN1bHQgKz0gcG9zaXRpb25Z
UHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwb3NpdGlvbllQcm9w
LT5jc3NUZXh0KCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGRvIHRoZSBz
YW1lIGZvciBiYWNrZ3JvdW5kLXJlcGVhdC4KQEAgLTY5NiwxNSArODM0LDE4IEBACiAgICAgICAg
ICAgICByZXBlYXRWYWx1ZSA9IGdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShyZXBlYXRQcm9wZXJ0
aWVzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVwZWF0VmFsdWUgPSByZXBlYXRYUHJv
cC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsgIiAiICsgcmVwZWF0WVByb3AtPnZhbHVlKCktPmNzc1Rl
eHQoKTsKLSAgICAgICAgcmVzdWx0ICs9ICJiYWNrZ3JvdW5kLXJlcGVhdDogIiArIHJlcGVhdFZh
bHVlICsgKHJlcGVhdFhQcm9wLT5pc0ltcG9ydGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIiKSAr
ICI7ICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoImJhY2tncm91bmQtcmVwZWF0OiAiKTsKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRWYWx1ZSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
cmVwZWF0WFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAgICAg
ICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChyZXBlYXRY
UHJvcCkKLSAgICAgICAgICAgIHJlc3VsdCArPSByZXBlYXRYUHJvcC0+Y3NzVGV4dCgpOworICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRYUHJvcC0+Y3NzVGV4dCgpKTsKICAgICAgICAg
aWYgKHJlcGVhdFlQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHJlcGVhdFlQcm9wLT5jc3NU
ZXh0KCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGVhdFlQcm9wLT5jc3NUZXh0KCkp
OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdC50b1N0cmlu
ZygpOwogfQogCiB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6Om1lcmdlKGNvbnN0IFN0eWxlUHJvcGVy
dHlTZXQqIG90aGVyLCBib29sIGFyZ092ZXJyaWRlc09uQ29uZmxpY3QpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHJldmlzaW9uIDExMTYxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDkgKzk4
LDEwIEBACiAgICAgdm9pZCByZW1vdmVFcXVpdmFsZW50UHJvcGVydGllcyhjb25zdCBDU1NTdHls
ZURlY2xhcmF0aW9uKik7CiAKICAgICBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQ
cm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CisK
KyAgICBlbnVtIFNob3VsZFVzZVNob3J0aGFuZCB7IFVzZVNob3J0aGFuZCwgRG9Ob3RVc2VTaG9y
dGhhbmQgfTsKKyAgICBTdHJpbmcgYXNUZXh0KFNob3VsZFVzZVNob3J0aGFuZD1Eb05vdFVzZVNo
b3J0aGFuZCkgY29uc3Q7CiAgICAgCi0gICAgU3RyaW5nIGFzVGV4dCgpIGNvbnN0OwotICAgIAog
ICAgIHZvaWQgY2xlYXJQYXJlbnRSdWxlKENTU1J1bGUqKTsKICAgICB2b2lkIGNsZWFyUGFyZW50
RWxlbWVudChTdHlsZWRFbGVtZW50Kik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133205</attachid>
            <date>2012-03-22 01:32:04 -0700</date>
            <delta_ts>2012-03-22 13:41:23 -0700</delta_ts>
            <desc>work in progress 3</desc>
            <filename>wip81737c</filename>
            <type>text/plain</type>
            <size>19357</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCShyZXZpc2lvbiAxMTEyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA2LDcgKzUwNiw3
IEBACiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZW1vdmVOb2RlQXR0cmli
dXRlKGVsZW1lbnQsIHN0eWxlQXR0cik7CiAgICAgICAgIH0gZWxzZSBpZiAobmV3SW5saW5lU3R5
bGUtPnN0eWxlKCktPnByb3BlcnR5Q291bnQoKSAhPSBpbmxpbmVTdHlsZS0+cHJvcGVydHlDb3Vu
dCgpKQotICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIG5l
d0lubGluZVN0eWxlLT5zdHlsZSgpLT5hc1RleHQoKSk7CisgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4
dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKIAogICAgICAgICAvLyBGSVhNRTog
VG9sZXJhdGUgZGlmZmVyZW5jZXMgaW4gaWQsIGNsYXNzLCBhbmQgc3R5bGUgYXR0cmlidXRlcy4K
ICAgICAgICAgaWYgKGlzTm9uVGFibGVDZWxsSFRNTEJsb2NrRWxlbWVudChlbGVtZW50KSAmJiBh
cmVJZGVudGljYWxFbGVtZW50cyhlbGVtZW50LCBlbGVtZW50LT5wYXJlbnROb2RlKCkpCkBAIC02
NjYsNyArNjY2LDcgQEAKIAogICAgIE5vZGUqIHdyYXBwaW5nU3R5bGVTcGFuID0gdG9wTm9kZTsK
ICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZUF0SW5zZXJ0aW9uUG9zID0gRWRpdGluZ1N0
eWxlOjpjcmVhdGUoaW5zZXJ0aW9uUG9zLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpKTsKLSAg
ICBTdHJpbmcgc3R5bGVUZXh0ID0gc3R5bGVBdEluc2VydGlvblBvcy0+c3R5bGUoKS0+YXNUZXh0
KCk7CisgICAgU3RyaW5nIHN0eWxlVGV4dCA9IHN0eWxlQXRJbnNlcnRpb25Qb3MtPnN0eWxlKCkt
PmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc3RyaW5nIGNvbXBhcmlzb24gaXMgYSBuYWl2ZSB3YXkgb2YgY29tcGFyaW5nIHR3byBz
dHlsZXMuCiAgICAgLy8gV2Ugc2hvdWxkIGJlIHRha2luZyB0aGUgZGlmZiBhbmQgY2hlY2sgdGhh
dCB0aGUgZGlmZiBpcyBlbXB0eS4KQEAgLTcyNiw3ICs3MjYsNyBAQAogICAgICAgICBpbnNlcnRl
ZE5vZGVzLndpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKHdyYXBwaW5nU3R5bGVTcGFu
KTsKICAgICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbih3cmFwcGluZ1N0eWxlU3Bh
bik7CiAgICAgfSBlbHNlCi0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUod3JhcHBpbmdTdHlsZVNw
YW4sIHN0eWxlQXR0ciwgc3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpKTsKKyAgICAgICAgc2V0Tm9k
ZUF0dHJpYnV0ZSh3cmFwcGluZ1N0eWxlU3Bhbiwgc3R5bGVBdHRyLCBzdHlsZS0+c3R5bGUoKS0+
YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogfQogCiB2b2lkIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjptZXJnZUVuZElmTmVlZGVkKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDExMTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDcgKzMyOSw3IEBACiAgICAgICAg
IGlmICghbmV3SW5saW5lU3R5bGUtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlUHJlZml4LCAoIiBzdHlsZT1cIiIpKTsKICAg
ICAgICAgICAgIG91dC5hcHBlbmQoc3R5bGVQcmVmaXgpOwotICAgICAgICAgICAgYXBwZW5kQXR0
cmlidXRlVmFsdWUob3V0LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCksIGRvY3Vt
ZW50SXNIVE1MKTsKKyAgICAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgbmV3SW5s
aW5lU3R5bGUtPnN0eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQp
LCBkb2N1bWVudElzSFRNTCk7CiAgICAgICAgICAgICBvdXQuYXBwZW5kKCdcIicpOwogICAgICAg
ICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAJKHJldmlzaW9uIDExMTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNyArMzkyLDcgQEAKICAg
ICAgICAgfQogICAgICAgICBpZiAoY3VycmVudEZvbnRTaXplICE9IGRlc2lyZWRGb250U2l6ZSkg
ewogICAgICAgICAgICAgaW5saW5lU3R5bGVEZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZv
bnRTaXplLCBTdHJpbmc6Om51bWJlcihkZXNpcmVkRm9udFNpemUpICsgInB4IiwgZmFsc2UpOwot
ICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlu
bGluZVN0eWxlRGVjbC0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlubGluZVN0eWxlRGVjbC0+YXNUZXh0KFN0eWxlUHJv
cGVydHlTZXQ6OlVzZVNob3J0aGFuZCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVT
dHlsZURlY2wtPmlzRW1wdHkoKSkgewogICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShl
bGVtZW50LmdldCgpLCBzdHlsZUF0dHIpOwpAQCAtNTEyLDcgKzUxMiw3IEBACiAgICAgICAgICAg
ICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gaW5saW5lU3R5bGUgPSBlbGVtZW50LT5lbnN1cmVJ
bmxpbmVTdHlsZSgpLT5jb3B5KCk7CiAgICAgICAgICAgICBpbmxpbmVTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICAgICAg
aW5saW5lU3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKLSAgICAg
ICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyLCBpbmxpbmVTdHlsZS0+
YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0
dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNldDo6VXNlU2hvcnRoYW5kKSk7
CiAgICAgICAgICAgICBpZiAoaXNTcGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVkU3R5bGVT
cGFuKGVsZW1lbnQpKQogICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW4oZWxlbWVudCk7CiAgICAgICAgIH0KQEAgLTcyNSw3ICs3MjUsNyBAQAogICAgICAgICAgICAg
SFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAg
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGlubGluZVN0eWxlID0gZWxlbWVudC0+ZW5zdXJlSW5s
aW5lU3R5bGUoKS0+Y29weSgpOwogICAgICAgICAgICAgaW5saW5lU3R5bGUtPm1lcmdlKHN0eWxl
LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVB
dHRyLCBpbmxpbmVTdHlsZS0+YXNUZXh0KCkpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0
ZShlbGVtZW50LCBzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5hc1RleHQoU3R5bGVQcm9wZXJ0eVNl
dDo6VXNlU2hvcnRoYW5kKSk7CiAgICAgICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0
U2libGluZygpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTkzOCw3ICs5
MzgsNyBAQAogICAgIC8vIFNpbmNlIGFkZElubGluZVN0eWxlSWZOZWVkZWQgY2FuJ3QgYWRkIHN0
eWxlcyB0byBibG9jay1mbG93IHJlbmRlciBvYmplY3RzLCBhZGQgc3R5bGUgYXR0cmlidXRlIGlu
c3RlYWQuCiAgICAgLy8gRklYTUU6IGFwcGx5SW5saW5lU3R5bGVUb1JhbmdlIHNob3VsZCBiZSB1
c2VkIGhlcmUgaW5zdGVhZC4KICAgICBpZiAoKG5vZGUtPnJlbmRlcmVyKCktPmlzQmxvY2tGbG93
KCkgfHwgbm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7
Ci0gICAgICAgIHNldE5vZGVBdHRyaWJ1dGUodG9IVE1MRWxlbWVudChub2RlKSwgc3R5bGVBdHRy
LCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkpOworICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHRvSFRNTEVsZW1lbnQobm9kZSksIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0
eWxlKCktPmFzVGV4dChTdHlsZVByb3BlcnR5U2V0OjpVc2VTaG9ydGhhbmQpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTMwNyw3ICsxMzA3LDcgQEAKICAgICAgICAgCiAgICAgU3Ry
aW5nIGNzc1RleHQgPSBzdHlsZUNoYW5nZS5jc3NTdHlsZSgpOwogICAgIGlmIChjb25zdCBTdHls
ZVByb3BlcnR5U2V0KiBkZWNsID0gYmxvY2stPmlubGluZVN0eWxlKCkpCi0gICAgICAgIGNzc1Rl
eHQgKz0gZGVjbC0+YXNUZXh0KCk7CisgICAgICAgIGNzc1RleHQgKz0gZGVjbC0+YXNUZXh0KFN0
eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCk7CiAgICAgc2V0Tm9kZUF0dHJpYnV0ZShibG9j
aywgc3R5bGVBdHRyLCBjc3NUZXh0KTsKIH0KIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAKICAgICBp
ZiAoc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKS5sZW5ndGgoKSkgewogICAgICAgICBpZiAoc3R5bGVD
b250YWluZXIpIHsKICAgICAgICAgICAgIGlmIChjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBleGlz
dGluZ1N0eWxlID0gc3R5bGVDb250YWluZXItPmlubGluZVN0eWxlKCkpCi0gICAgICAgICAgICAg
ICAgc2V0Tm9kZUF0dHJpYnV0ZShzdHlsZUNvbnRhaW5lciwgc3R5bGVBdHRyLCBleGlzdGluZ1N0
eWxlLT5hc1RleHQoKSArIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkpOworICAgICAgICAgICAgICAg
IHNldE5vZGVBdHRyaWJ1dGUoc3R5bGVDb250YWluZXIsIHN0eWxlQXR0ciwgZXhpc3RpbmdTdHls
ZS0+YXNUZXh0KFN0eWxlUHJvcGVydHlTZXQ6OlVzZVNob3J0aGFuZCkgKyBzdHlsZUNoYW5nZS5j
c3NTdHlsZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKHN0eWxlQ29udGFpbmVyLCBzdHlsZUF0dHIsIHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkp
OwogICAgICAgICB9IGVsc2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcAkocmV2aXNpb24gMTExMjc0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydHlTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDUsMjggKzY0NSwxNjAgQEAKICAgICB9
CiB9CiAKLVN0cmluZyBTdHlsZVByb3BlcnR5U2V0Ojphc1RleHQoKSBjb25zdAorU3RyaW5nIFN0
eWxlUHJvcGVydHlTZXQ6OmFzVGV4dChTaG91bGRVc2VTaG9ydGhhbmQgc2hvdWxkVXNlU2hvcnRo
YW5kKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICBTdHJpbmdCdWlsZGVy
IHJlc3VsdDsKIAogICAgIGNvbnN0IENTU1Byb3BlcnR5KiBwb3NpdGlvblhQcm9wID0gMDsKICAg
ICBjb25zdCBDU1NQcm9wZXJ0eSogcG9zaXRpb25ZUHJvcCA9IDA7CiAgICAgY29uc3QgQ1NTUHJv
cGVydHkqIHJlcGVhdFhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WVBy
b3AgPSAwOwogCisgICAgYm9vbCBzaG9ydGhhbmRQcm9wZXJ0eVVzZWRbbnVtQ1NTUHJvcGVydGll
c10gPSB7IGZhbHNlIH07CisKICAgICB1bnNpZ25lZCBzaXplID0gbV9wcm9wZXJ0aWVzLnNpemUo
KTsKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgc2l6ZTsgKytuKSB7CiAgICAgICAgIGNv
bnN0IENTU1Byb3BlcnR5JiBwcm9wID0gbV9wcm9wZXJ0aWVzW25dOwotICAgICAgICBpZiAocHJv
cC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWCkKKyAgICAgICAgaW50IHBy
b3BlcnR5SUQgPSBwcm9wLmlkKCk7CisgICAgICAgIGludCBzaG9ydGhhbmRQcm9wZXJ0eUlEID0g
MDsKKworICAgICAgICBzd2l0Y2ggKHByb3BlcnR5SUQpIHsKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUJhY2tncm91bmRQb3NpdGlvblg6CiAgICAgICAgICAgICBwb3NpdGlvblhQcm9wID0gJnBy
b3A7Ci0gICAgICAgIGVsc2UgaWYgKHByb3AuaWQoKSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQ
b3NpdGlvblkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJhY2tncm91bmRQb3NpdGlvblk6CiAgICAgICAgICAgICBwb3NpdGlvbllQcm9wID0gJnByb3A7
Ci0gICAgICAgIGVsc2UgaWYgKHByb3AuaWQoKSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBl
YXRYKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUmVwZWF0WDoKICAgICAgICAgICAgIHJlcGVhdFhQcm9wID0gJnByb3A7Ci0gICAgICAg
IGVsc2UgaWYgKHByb3AuaWQoKSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVw
ZWF0WToKICAgICAgICAgICAgIHJlcGVhdFlQcm9wID0gJnByb3A7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc3VsdCArPSBwcm9wLmNzc1RleHQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGg6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJUb3BXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJp
Z2h0V2lkdGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlclN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5
bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJMZWZ0U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJDb2xvcjoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
ckJvdHRvbUNvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgor
ICAgICAgICAgICAgLy8gRklYTUU6IERlYWwgd2l0aCBjYXNlcyB3aGVyZSBvbmx5IHNvbWUgb2Yg
Ym9yZGVyLSh0b3B8cmlnaHR8Ym90dG9tfGxlZnQpIGFyZSBzcGVjaWZpZWQuCisgICAgICAgICAg
ICBpZiAoc2hvcnRoYW5kUHJvcGVydHlVc2VkW0NTU1Byb3BlcnR5Qm9yZGVyIC0gZmlyc3RDU1NQ
cm9wZXJ0eV0gfHwgKGdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCkubGVu
Z3RoKCkKKyAgICAgICAgICAgICAgICAmJiBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Qm9y
ZGVyU3R5bGUpLmxlbmd0aCgpICYmIGdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJD
b2xvcikubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9
IENTU1Byb3BlcnR5Qm9yZGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZzoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2luZzoKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlclNwYWNpbmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5Rm9udFNpemU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWFudDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZv
bnRXZWlnaHQ6CisgICAgICAgICAgICAvLyBEb24ndCB1c2UgQ1NTUHJvcGVydHlGb250IGJlY2F1
c2Ugb2xkIFVBcyBjYW4ndCByZWNvZ25pemUgdGhlbSBidXQgYXJlIGltcG9ydGFudCBmb3IgZWRp
dGluZy4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9uOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1hZ2U6CisgICAgICAgICAgICBzaG9ydGhh
bmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlMaXN0U3R5bGU7CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlNYXJnaW5Ub3A6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5SaWdodDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU1hcmdpbkxlZnQ6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJv
cGVydHlNYXJnaW47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU91dGxpbmVXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU91dGxpbmU7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eU92ZXJmbG93WToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0
eU92ZXJmbG93OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nVG9wOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZGRpbmdMZWZ0OgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3Bl
cnR5UGFkZGluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0QW5pbWF0aW9uTmFtZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1h
dGlvbkR1cmF0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGlt
aW5nRnVuY3Rpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxh
eToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRmlsbE1vZGU6CisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb247CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJlY3Rp
b246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcDoKKyAgICAgICAgICAg
IHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25Y
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKKyAgICAgICAg
ICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Jl
cGVhdFg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJ
bWFnZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQXR0YWNobWVudDoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tDbGlwOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza09yaWdpbjoKKyAg
ICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2s7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9y
bU9yaWdpblg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5Z
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWjoKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9y
aWdpbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
VHJhbnNpdGlvblByb3BlcnR5OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNp
dGlvbkR1cmF0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblRp
bWluZ0Z1bmN0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkRl
bGF5OgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0
VHJhbnNpdGlvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0V3JhcEZsb3c6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwTWFyZ2lu
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcFBhZGRpbmc6CisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRXcmFwOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAgIGlm
IChzaG9ydGhhbmRQcm9wZXJ0eUlEICYmIHNob3VsZFVzZVNob3J0aGFuZCA9PSBVc2VTaG9ydGhh
bmQpIHsKKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eVVzZWRbc2hvcnRoYW5kUHJv
cGVydHlJRCAtIGZpcnN0Q1NTUHJvcGVydHldKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgdmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHNob3J0aGFuZFByb3BlcnR5SUQp
OworICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgc2hv
cnRoYW5kUHJvcGVydHlVc2VkW3Nob3J0aGFuZFByb3BlcnR5SUQgLSBmaXJzdENTU1Byb3BlcnR5
XSA9IHRydWU7CisgICAgICAgICAgICAgICAgcHJvcGVydHlJRCA9IHNob3J0aGFuZFByb3BlcnR5
SUQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBib29sIHNob3J0aGFuZElz
VXNlZCA9IHByb3BlcnR5SUQgPT0gc2hvcnRoYW5kUHJvcGVydHlJRDsKKyAgICAgICAgaWYgKCFz
aG9ydGhhbmRJc1VzZWQpCisgICAgICAgICAgICB2YWx1ZSA9IHByb3AudmFsdWUoKS0+Y3NzVGV4
dCgpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2FzdDxD
U1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI6ICIp
OworICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChw
cm9wLmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAgICAgICByZXN1bHQu
YXBwZW5kKCI7ICIpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm90LXNvLW5p
Y2Ugd2F5IHRvIHR1cm4geC95IHBvc2l0aW9ucyBpbnRvIHNpbmdsZSBiYWNrZ3JvdW5kLXBvc2l0
aW9uIGluIG91dHB1dC4KQEAgLTY3NiwxNiArODA4LDI1IEBACiAgICAgaWYgKHBvc2l0aW9uWFBy
b3AgJiYgcG9zaXRpb25ZUHJvcCAmJiBwb3NpdGlvblhQcm9wLT5pc0ltcG9ydGFudCgpID09IHBv
c2l0aW9uWVByb3AtPmlzSW1wb3J0YW50KCkpIHsKICAgICAgICAgU3RyaW5nIHBvc2l0aW9uVmFs
dWU7CiAgICAgICAgIGNvbnN0IGludCBwcm9wZXJ0aWVzWzJdID0geyBDU1NQcm9wZXJ0eUJhY2tn
cm91bmRQb3NpdGlvblgsIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSB9OworCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoImJhY2tncm91bmQtcG9zaXRpb246ICIpOworCiAgICAgICAgIGlm
IChwb3NpdGlvblhQcm9wLT52YWx1ZSgpLT5pc1ZhbHVlTGlzdCgpIHx8IHBvc2l0aW9uWVByb3At
PnZhbHVlKCktPmlzVmFsdWVMaXN0KCkpCi0gICAgICAgICAgICBwb3NpdGlvblZhbHVlID0gZ2V0
TGF5ZXJlZFNob3J0aGFuZFZhbHVlKHByb3BlcnRpZXMpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBwb3NpdGlvblZhbHVlID0gcG9zaXRpb25YUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsg
IiAiICsgcG9zaXRpb25ZUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpOwotICAgICAgICByZXN1bHQg
Kz0gImJhY2tncm91bmQtcG9zaXRpb246ICIgKyBwb3NpdGlvblZhbHVlICsgKHBvc2l0aW9uWFBy
b3AtPmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpICsgIjsgIjsKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoZ2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKHByb3BlcnRpZXMpKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uWFByb3At
PnZhbHVlKCktPmNzc1RleHQoKSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgIik7Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmNzc1RleHQo
KSk7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uVmFsdWUpOwor
ICAgICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFp
bXBvcnRhbnQiIDogIiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmIChwb3NpdGlvblhQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHBv
c2l0aW9uWFByb3AtPmNzc1RleHQoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRp
b25YUHJvcC0+Y3NzVGV4dCgpKTsKICAgICAgICAgaWYgKHBvc2l0aW9uWVByb3ApCi0gICAgICAg
ICAgICByZXN1bHQgKz0gcG9zaXRpb25ZUHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChwb3NpdGlvbllQcm9wLT5jc3NUZXh0KCkpOwogICAgIH0KIAogICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIGRvIHRoZSBzYW1lIGZvciBiYWNrZ3JvdW5kLXJlcGVhdC4KQEAgLTY5
NiwxNSArODM3LDE4IEBACiAgICAgICAgICAgICByZXBlYXRWYWx1ZSA9IGdldExheWVyZWRTaG9y
dGhhbmRWYWx1ZShyZXBlYXRQcm9wZXJ0aWVzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cmVwZWF0VmFsdWUgPSByZXBlYXRYUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsgIiAiICsgcmVw
ZWF0WVByb3AtPnZhbHVlKCktPmNzc1RleHQoKTsKLSAgICAgICAgcmVzdWx0ICs9ICJiYWNrZ3Jv
dW5kLXJlcGVhdDogIiArIHJlcGVhdFZhbHVlICsgKHJlcGVhdFhQcm9wLT5pc0ltcG9ydGFudCgp
ID8gIiAhaW1wb3J0YW50IiA6ICIiKSArICI7ICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoImJh
Y2tncm91bmQtcmVwZWF0OiAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRWYWx1ZSk7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwZWF0WFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFp
bXBvcnRhbnQiIDogIiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmIChyZXBlYXRYUHJvcCkKLSAgICAgICAgICAgIHJlc3VsdCArPSByZXBl
YXRYUHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRYUHJv
cC0+Y3NzVGV4dCgpKTsKICAgICAgICAgaWYgKHJlcGVhdFlQcm9wKQotICAgICAgICAgICAgcmVz
dWx0ICs9IHJlcGVhdFlQcm9wLT5jc3NUZXh0KCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHJlcGVhdFlQcm9wLT5jc3NUZXh0KCkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCiB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6
Om1lcmdlKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIG90aGVyLCBib29sIGFyZ092ZXJyaWRlc09u
Q29uZmxpY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHJldmlz
aW9uIDExMTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTk4LDkgKzk4LDEwIEBACiAgICAgdm9pZCByZW1vdmVFcXVpdmFsZW50
UHJvcGVydGllcyhjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAKICAgICBQYXNzUmVmUHRy
PFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVu
c2lnbmVkIGxlbmd0aCkgY29uc3Q7CisKKyAgICBlbnVtIFNob3VsZFVzZVNob3J0aGFuZCB7IFVz
ZVNob3J0aGFuZCwgRG9Ob3RVc2VTaG9ydGhhbmQgfTsKKyAgICBTdHJpbmcgYXNUZXh0KFNob3Vs
ZFVzZVNob3J0aGFuZD1Eb05vdFVzZVNob3J0aGFuZCkgY29uc3Q7CiAgICAgCi0gICAgU3RyaW5n
IGFzVGV4dCgpIGNvbnN0OwotICAgIAogICAgIHZvaWQgY2xlYXJQYXJlbnRSdWxlKENTU1J1bGUq
KTsKICAgICB2b2lkIGNsZWFyUGFyZW50RWxlbWVudChTdHlsZWRFbGVtZW50Kik7CiAKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNh
bml0aXplLmh0bWwJKHJldmlzaW9uIDExMTI3NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyAr
NDQsNyBAQAogICAgICAgICAgICI8ZGl2PjxiPjxpPmhlbGxvPC9pPjwvYj48L2Rpdj48ZGl2Pjxi
PjxpPndvcmxkPC9pPjwvYj48L2Rpdj4iKTsKIHRlc3RQYXN0ZSgiZGl2IiwgIjxkaXY+PGI+PGk+
PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsOyBcIj48Yj48aT5oZWxsbzE8L2k+PC9i
PjxiPjxpPiBoZWxsbzI8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPjwvZGl2PiIsICI8Yj48aT48c3Bh
biBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWw7IFwiPjxiPjxpPmhlbGxvMTwvaT48L2I+PGI+
PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4iKTsKIHRlc3RQYXN0ZSgiZGl2
IiwgIjxpIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPjxiPjxpIHN0eWxlPVwibWFyZ2luOiAxMHB4
O1wiPmhlbGxvPC9pPjwvYj48L2k+IiwKLSAgICAgICAgICAiPGkgc3R5bGU9XCJtYXJnaW4tdG9w
OiAxMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IG1hcmdpbi1s
ZWZ0OiAxMHB4OyBcIj48Yj48aSBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdo
dDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7IFwiPmhlbGxv
PC9pPjwvYj48L2k+Iik7CisgICAgICAgICAgIjxpIHN0eWxlPVwibWFyZ2luOiAxMHB4OyBcIj48
Yj48aSBzdHlsZT1cIm1hcmdpbjogMTBweDsgXCI+aGVsbG88L2k+PC9iPjwvaT4iKTsKIHRlc3RQ
YXN0ZSgiZGl2IiwgIjxkaXY+PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFs
XCI+PGI+PGk+SGVsbG8gPCEtLSBjb21tZW50IC0tPndvcmxkPC9pPjwvYj48L3NwYW4+PC9pPjwv
Yj48L2Rpdj4iLCAiPGI+PGk+SGVsbG8mbmJzcDt3b3JsZDwvaT48L2I+Iik7CiB0ZXN0UGFzdGUo
ImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5vcm1hbFwiPnBs
YWluIHRleHQ8Yj48aT5ib2xkIGl0YWxpYyB0ZXh0PC9pPjwvYj48L3NwYW4+PC9pPjwvYj48L2Rp
dj4iLCAiPGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsOyBcIj5wbGFpbiB0
ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+Iik7CiAKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9w
YXN0ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTEyNzQpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAKIFBBU1MgY29uZmlybWVkTWFya3VwIGlz
ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj5IZWxsbzwvYj48L2Rpdj4nCiBQ
QVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGRpdj48Yj48aT5oZWxsbzwvaT48L2I+PC9kaXY+PGRp
dj48Yj48aT53b3JsZDwvaT48L2I+PC9kaXY+JwogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxi
PjxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyAiPjxiPjxpPmhlbGxvMTwvaT48
L2I+PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4nCi1QQVNTIGNvbmZp
cm1lZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDog
MTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+PGI+PGkgc3R5
bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTog
MTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+aGVsbG88L2k+PC9iPjwvaT4nCitQQVNTIGNvbmZp
cm1lZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbjogMTBweDsgIj48Yj48aSBzdHlsZT0ibWFy
Z2luOiAxMHB4OyAiPmhlbGxvPC9pPjwvYj48L2k+JwogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMg
JzxiPjxpPkhlbGxvJm5ic3A7d29ybGQ8L2k+PC9iPicKIFBBU1MgY29uZmlybWVkTWFya3VwIGlz
ICc8Yj48aT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgIj5wbGFpbiB0ZXh0PGI+
PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+JwogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9ub24t
aW5oZXJpdGFibGUtc3R5bGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMTEyNzQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJs
ZS1zdHlsZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNiBAQAogfCA8
ZGl2PgogfCAgIGNsYXNzPSJjbGFzcyIKIHwgICBpZD0iaWQiCi18ICAgc3R5bGU9ImJvcmRlci10
b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lk
dGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7
IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi
b3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IGJsdWU7IGJvcmRlci1y
aWdodC1jb2xvcjogYmx1ZTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogYmx1ZTsgYm9yZGVyLWxlZnQt
Y29sb3I6IGJsdWU7IGJvcmRlci1pbWFnZTogaW5pdGlhbDsgIgorfCAgIHN0eWxlPSJib3JkZXI6
IDFweCBzb2xpZCBibHVlOyBib3JkZXItaW1hZ2U6IGluaXRpYWw7ICIKIHwgICAiVGhpcyBzaG91
bGQgaGF2ZSBibHVlIGJvcmRlciB3aGVuIGl0cyBwYXN0ZWQuIgogfCAiVGhpcyBzaG91bGRuJ3Qg
aGF2ZSBhIGJvcmRlci48I3NlbGVjdGlvbi1jYXJldD4iCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133337</attachid>
            <date>2012-03-22 13:41:23 -0700</date>
            <delta_ts>2012-03-23 03:49:54 -0700</delta_ts>
            <desc>work in progress 4</desc>
            <filename>wip81737d</filename>
            <type>text/plain</type>
            <size>9906</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJKHJldmlzaW9uIDEx
MTcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQ3LDI2ICs2NDcsMTU3IEBACiAKIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0
Ojphc1RleHQoKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKIAogICAgIGNvbnN0IENTU1Byb3BlcnR5KiBwb3NpdGlvblhQcm9wID0g
MDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcG9zaXRpb25ZUHJvcCA9IDA7CiAgICAgY29uc3Qg
Q1NTUHJvcGVydHkqIHJlcGVhdFhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVw
ZWF0WVByb3AgPSAwOwogCisgICAgLy8gRklYTUU6IFVzZSBCaXRWZWN0b3IKKyAgICBib29sIHNo
b3J0aGFuZFByb3BlcnR5VXNlZFtudW1DU1NQcm9wZXJ0aWVzXSA9IHsgZmFsc2UgfTsKKwogICAg
IHVuc2lnbmVkIHNpemUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQg
biA9IDA7IG4gPCBzaXplOyArK24pIHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3Ag
PSBtX3Byb3BlcnRpZXNbbl07Ci0gICAgICAgIGlmIChwcm9wLmlkKCkgPT0gQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kUG9zaXRpb25YKQorICAgICAgICBpbnQgcHJvcGVydHlJRCA9IHByb3AuaWQoKTsK
KyAgICAgICAgaW50IHNob3J0aGFuZFByb3BlcnR5SUQgPSAwOworCisgICAgICAgIHN3aXRjaCAo
cHJvcGVydHlJRCkgeworICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9u
WDoKICAgICAgICAgICAgIHBvc2l0aW9uWFByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZSBpZiAo
cHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWToK
ICAgICAgICAgICAgIHBvc2l0aW9uWVByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZSBpZiAocHJv
cC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFgpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYOgogICAgICAg
ICAgICAgcmVwZWF0WFByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZSBpZiAocHJvcC5pZCgpID09
IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZOgogICAgICAgICAgICAgcmVw
ZWF0WVByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9IHBy
b3AuY3NzVGV4dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRo
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aDoKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyTGVmdFdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGU6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJC
b3R0b21TdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHlsZToKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckNvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyVG9wQ29sb3I6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENv
bG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6CisgICAgICAgICAgICAvLyBGSVhNRTog
RGVhbCB3aXRoIGNhc2VzIHdoZXJlIG9ubHkgc29tZSBvZiBib3JkZXItKHRvcHxyaWdodHxib3R0
b218bGVmdCkgYXJlIHNwZWNpZmllZC4KKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0
eVVzZWRbQ1NTUHJvcGVydHlCb3JkZXIgLSBmaXJzdENTU1Byb3BlcnR5XSB8fCAoZ2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlcldpZHRoKS5sZW5ndGgoKQorICAgICAgICAgICAgICAg
ICYmIGdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSkubGVuZ3RoKCkgJiYg
Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yKS5sZW5ndGgoKSkpIHsKKyAg
ICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlCb3JkZXI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Qm9yZGVyVmVydGljYWxTcGFjaW5nOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IENTU1Byb3BlcnR5Qm9yZGVyU3BhY2luZzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udEZhbWlseToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUxpbmVIZWlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRW
YXJpYW50OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDoKKyAgICAgICAgICAg
IC8vIERvbid0IHVzZSBDU1NQcm9wZXJ0eUZvbnQgYmVjYXVzZSBvbGQgVUFzIGNhbid0IHJlY29n
bml6ZSB0aGVtIGJ1dCBhcmUgaW1wb3J0YW50IGZvciBlZGl0aW5nLgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5TGlzdFN0eWxlUG9zaXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlM
aXN0U3R5bGVJbWFnZToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9w
ZXJ0eUxpc3RTdHlsZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
TWFyZ2luQm90dG9tOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luTGVmdDoKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU1hcmdpbjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVdpZHRoOgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T3V0bGluZUNvbG9yOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3Bl
cnR5T3V0bGluZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T3ZlcmZsb3dYOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgorICAgICAgICAg
ICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZsb3c7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRk
aW5nQm90dG9tOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6CisgICAgICAg
ICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlQYWRkaW5nOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25OYW1lOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRlbGF5OgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRBbmltYXRpb25EaXJlY3Rpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRBbmltYXRpb25GaWxsTW9kZToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleERpcmVjdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEZsZXhXcmFwOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9
IENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3c7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblg6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRNYXNrUG9zaXRpb25ZOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJ
RCA9IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WDoKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0ltYWdlOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tBdHRhY2htZW50OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0
aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0NsaXA6CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrT3JpZ2luOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJv
cGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0TWFzazsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWDoKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblk6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5aOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHk6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRpb246CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRGVsYXk6CisgICAgICAgICAgICBzaG9y
dGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwRmxvdzoKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBNYXJnaW46CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRXcmFwUGFkZGluZzoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgaWYgKHNob3J0aGFuZFByb3BlcnR5SUQp
IHsKKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eVVzZWRbc2hvcnRoYW5kUHJvcGVy
dHlJRCAtIGZpcnN0Q1NTUHJvcGVydHldKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgdmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHNob3J0aGFuZFByb3BlcnR5SUQpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBw
cm9wZXJ0eUlEID0gc2hvcnRoYW5kUHJvcGVydHlJRDsKKyAgICAgICAgICAgIHNob3J0aGFuZFBy
b3BlcnR5VXNlZFtzaG9ydGhhbmRQcm9wZXJ0eUlEIC0gZmlyc3RDU1NQcm9wZXJ0eV0gPSB0cnVl
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gcHJvcC52YWx1ZSgpLT5jc3NU
ZXh0KCk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0UHJvcGVydHlOYW1lKHN0YXRpY19jYXN0
PENTU1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIjog
Iik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQodmFsdWUpOworICAgICAgICByZXN1bHQuYXBwZW5k
KHByb3AuaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIjsgIik7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBub3Qtc28t
bmljZSB3YXkgdG8gdHVybiB4L3kgcG9zaXRpb25zIGludG8gc2luZ2xlIGJhY2tncm91bmQtcG9z
aXRpb24gaW4gb3V0cHV0LgpAQCAtNjc2LDE2ICs4MDcsMjUgQEAKICAgICBpZiAocG9zaXRpb25Y
UHJvcCAmJiBwb3NpdGlvbllQcm9wICYmIHBvc2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPT0g
cG9zaXRpb25ZUHJvcC0+aXNJbXBvcnRhbnQoKSkgewogICAgICAgICBTdHJpbmcgcG9zaXRpb25W
YWx1ZTsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbMl0gPSB7IENTU1Byb3BlcnR5QmFj
a2dyb3VuZFBvc2l0aW9uWCwgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25ZIH07CisKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiYmFja2dyb3VuZC1wb3NpdGlvbjogIik7CisKICAgICAgICAg
aWYgKHBvc2l0aW9uWFByb3AtPnZhbHVlKCktPmlzVmFsdWVMaXN0KCkgfHwgcG9zaXRpb25ZUHJv
cC0+dmFsdWUoKS0+aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgICAgIHBvc2l0aW9uVmFsdWUgPSBn
ZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocHJvcGVydGllcyk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHBvc2l0aW9uVmFsdWUgPSBwb3NpdGlvblhQcm9wLT52YWx1ZSgpLT5jc3NUZXh0KCkg
KyAiICIgKyBwb3NpdGlvbllQcm9wLT52YWx1ZSgpLT5jc3NUZXh0KCk7Ci0gICAgICAgIHJlc3Vs
dCArPSAiYmFja2dyb3VuZC1wb3NpdGlvbjogIiArIHBvc2l0aW9uVmFsdWUgKyAocG9zaXRpb25Y
UHJvcC0+aXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIikgKyAiOyAiOworICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocHJvcGVydGllcykp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25YUHJv
cC0+dmFsdWUoKS0+Y3NzVGV4dCgpKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAiKTsK
KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25ZUHJvcC0+dmFsdWUoKS0+Y3NzVGV4
dCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25WYWx1ZSk7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25YUHJvcC0+aXNJbXBvcnRhbnQoKSA/ICIg
IWltcG9ydGFudCIgOiAiIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIjsgIik7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKHBvc2l0aW9uWFByb3ApCi0gICAgICAgICAgICByZXN1bHQgKz0g
cG9zaXRpb25YUHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwb3Np
dGlvblhQcm9wLT5jc3NUZXh0KCkpOwogICAgICAgICBpZiAocG9zaXRpb25ZUHJvcCkKLSAgICAg
ICAgICAgIHJlc3VsdCArPSBwb3NpdGlvbllQcm9wLT5jc3NUZXh0KCk7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHBvc2l0aW9uWVByb3AtPmNzc1RleHQoKSk7CiAgICAgfQogCiAgICAgLy8g
RklYTUU6IFdlIG5lZWQgdG8gZG8gdGhlIHNhbWUgZm9yIGJhY2tncm91bmQtcmVwZWF0LgpAQCAt
Njk2LDE1ICs4MzYsMTggQEAKICAgICAgICAgICAgIHJlcGVhdFZhbHVlID0gZ2V0TGF5ZXJlZFNo
b3J0aGFuZFZhbHVlKHJlcGVhdFByb3BlcnRpZXMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICByZXBlYXRWYWx1ZSA9IHJlcGVhdFhQcm9wLT52YWx1ZSgpLT5jc3NUZXh0KCkgKyAiICIgKyBy
ZXBlYXRZUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpOwotICAgICAgICByZXN1bHQgKz0gImJhY2tn
cm91bmQtcmVwZWF0OiAiICsgcmVwZWF0VmFsdWUgKyAocmVwZWF0WFByb3AtPmlzSW1wb3J0YW50
KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpICsgIjsgIjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgi
YmFja2dyb3VuZC1yZXBlYXQ6ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGVhdFZhbHVl
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRYUHJvcC0+aXNJbXBvcnRhbnQoKSA/ICIg
IWltcG9ydGFudCIgOiAiIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIjsgIik7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKHJlcGVhdFhQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHJl
cGVhdFhQcm9wLT5jc3NUZXh0KCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGVhdFhQ
cm9wLT5jc3NUZXh0KCkpOwogICAgICAgICBpZiAocmVwZWF0WVByb3ApCi0gICAgICAgICAgICBy
ZXN1bHQgKz0gcmVwZWF0WVByb3AtPmNzc1RleHQoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQocmVwZWF0WVByb3AtPmNzc1RleHQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdDsK
KyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKIHZvaWQgU3R5bGVQcm9wZXJ0eVNl
dDo6bWVyZ2UoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogb3RoZXIsIGJvb2wgYXJnT3ZlcnJpZGVz
T25Db25mbGljdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaAkocmV2
aXNpb24gMTExNzE0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaAko
d29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQAogICAgIHZvaWQgcmVtb3ZlRXF1aXZhbGVu
dFByb3BlcnRpZXMoY29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogCiAgICAgUGFzc1JlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0IGludCogc2V0LCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwotICAgIAorCiAgICAgU3RyaW5nIGFzVGV4dCgpIGNvbnN0
OwogICAgIAogICAgIHZvaWQgY2xlYXJQYXJlbnRSdWxlKENTU1J1bGUqKTsK
</data>
<flag name="commit-queue"
          id="137327"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133453</attachid>
            <date>2012-03-23 03:49:54 -0700</date>
            <delta_ts>2012-03-23 17:17:16 -0700</delta_ts>
            <desc>work in progress 5</desc>
            <filename>81737e</filename>
            <type>text/plain</type>
            <size>45199</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0VmVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0JpdFZlY3Rvci5jcHAJKHJldmlzaW9uIDEx
MTcxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQml0VmVjdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODksMTMgKzg5LDE0IEBACiB7CiAgICAgQVNTRVJUKG51bUJpdHMgPiBtYXhJ
bmxpbmVCaXRzKCkpOwogICAgIE91dE9mTGluZUJpdHMqIG5ld091dE9mTGluZUJpdHMgPSBPdXRP
ZkxpbmVCaXRzOjpjcmVhdGUobnVtQml0cyk7CisgICAgc2l6ZV90IG5ld051bVdvcmRzID0gbmV3
T3V0T2ZMaW5lQml0cy0+bnVtV29yZHMoKTsKICAgICBpZiAoaXNJbmxpbmUoKSkgewogICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgb2YgdGhlIGJpdHMgYXJlIHplcm8gaW4gY2FzZSB3ZSBk
byBhIG5vLW9wIHJlc2l6ZS4KICAgICAgICAgKm5ld091dE9mTGluZUJpdHMtPmJpdHMoKSA9IG1f
Yml0c09yUG9pbnRlciAmIH4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSA8PCBtYXhJbmxpbmVC
aXRzKCkpOworICAgICAgICBtZW1zZXQobmV3T3V0T2ZMaW5lQml0cy0+Yml0cygpICsgMSwgMCwg
KG5ld051bVdvcmRzIC0gMSkgKiBzaXplb2Yodm9pZCopKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAobnVtQml0cyA+IHNpemUoKSkgewogICAgICAgICAgICAgc2l6ZV90IG9sZE51bVdvcmRz
ID0gb3V0T2ZMaW5lQml0cygpLT5udW1Xb3JkcygpOwotICAgICAgICAgICAgc2l6ZV90IG5ld051
bVdvcmRzID0gbmV3T3V0T2ZMaW5lQml0cy0+bnVtV29yZHMoKTsKICAgICAgICAgICAgIG1lbWNw
eShuZXdPdXRPZkxpbmVCaXRzLT5iaXRzKCksIG91dE9mTGluZUJpdHMoKS0+Yml0cygpLCBvbGRO
dW1Xb3JkcyAqIHNpemVvZih2b2lkKikpOwogICAgICAgICAgICAgbWVtc2V0KG5ld091dE9mTGlu
ZUJpdHMtPmJpdHMoKSArIG9sZE51bVdvcmRzLCAwLCAobmV3TnVtV29yZHMgLSBvbGROdW1Xb3Jk
cykgKiBzaXplb2Yodm9pZCopKTsKICAgICAgICAgfSBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0JpdFZlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQml0VmVjdG9yLmgJKHJldmlzaW9uIDExMTcxNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQml0VmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw5ICsxMDQsOSBA
QAogICAgIH0KICAgICAKICAgICAvLyBMaWtlIGVuc3VyZVNpemUoKSwgYnV0IHN1cHBvcnRzIHJl
ZHVjaW5nIHRoZSBzaXplIG9mIHRoZSBiaXR2ZWN0b3IuCi0gICAgdm9pZCByZXNpemUoc2l6ZV90
IG51bUJpdHMpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlc2l6ZShzaXplX3QgbnVt
Qml0cyk7CiAgICAgCi0gICAgdm9pZCBjbGVhckFsbCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGNsZWFyQWxsKCk7CiAKICAgICBib29sIHF1aWNrR2V0KHNpemVfdCBiaXQpIGNvbnN0
CiAgICAgewpAQCAtMTkzLDkgKzE5Myw5IEBACiAgICAgICAgIHVpbnRwdHJfdCogYml0cygpIHsg
cmV0dXJuIGJpdHdpc2VfY2FzdDx1aW50cHRyX3QqPih0aGlzICsgMSk7IH0KICAgICAgICAgY29u
c3QgdWludHB0cl90KiBiaXRzKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PGNvbnN0IHVp
bnRwdHJfdCo+KHRoaXMgKyAxKTsgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIE91dE9mTGlu
ZUJpdHMqIGNyZWF0ZShzaXplX3QgbnVtQml0cyk7CisgICAgICAgIHN0YXRpYyBXVEZfRVhQT1JU
X1BSSVZBVEUgT3V0T2ZMaW5lQml0cyogY3JlYXRlKHNpemVfdCBudW1CaXRzKTsKICAgICAgICAg
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koT3V0T2ZMaW5lQml0cyopOworICAgICAgICBz
dGF0aWMgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVzdHJveShPdXRPZkxpbmVCaXRzKik7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBPdXRPZkxpbmVCaXRzKHNpemVfdCBudW1CaXRzKQpAQCAt
MjExLDggKzIxMSw4IEBACiAgICAgY29uc3QgT3V0T2ZMaW5lQml0cyogb3V0T2ZMaW5lQml0cygp
IGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxjb25zdCBPdXRPZkxpbmVCaXRzKj4obV9iaXRz
T3JQb2ludGVyIDw8IDEpOyB9CiAgICAgT3V0T2ZMaW5lQml0cyogb3V0T2ZMaW5lQml0cygpIHsg
cmV0dXJuIGJpdHdpc2VfY2FzdDxPdXRPZkxpbmVCaXRzKj4obV9iaXRzT3JQb2ludGVyIDw8IDEp
OyB9CiAgICAgCi0gICAgdm9pZCByZXNpemVPdXRPZkxpbmUoc2l6ZV90IG51bUJpdHMpOwotICAg
IHZvaWQgc2V0U2xvdyhjb25zdCBCaXRWZWN0b3ImIG90aGVyKTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCByZXNpemVPdXRPZkxpbmUoc2l6ZV90IG51bUJpdHMpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHNldFNsb3coY29uc3QgQml0VmVjdG9yJiBvdGhlcik7CiAgICAgCiAg
ICAgdWludHB0cl90KiBiaXRzKCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDExMTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMy0yMiAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBCaXRWZWN0b3I6OnJlc2l6ZU91dE9mTGluZSBk
b2Vzbid0IG1lbXNldCB3aGVuIGNvbnZlcnRpbmcgYW4gaW5saW5lIGJ1ZmZlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIG91dC1vZi1s
aW5lIGJ1ZmZlcnMgd2hpbGUgZXh0ZW5kaW5nIGFuIGlubGluZSBidWZmZXIuIEFsc28gZXhwb3J0
IHN5bWJvbHMgdG8gYmUgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogd3RmL0JpdFZlY3Rv
ci5jcHA6CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6cmVzaXplT3V0T2ZMaW5lKToKKyAgICAg
ICAgKiB3dGYvQml0VmVjdG9yLmg6CisgICAgICAgIChCaXRWZWN0b3IpOgorICAgICAgICAoT3V0
T2ZMaW5lQml0cyk6CisKIDIwMTItMDMtMjIgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxl
LmNvbT4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhZnRlciByMTExNzc4LgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTExODA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDMtMjIgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY3NzVGV4dCBzaG91bGQgdXNlIHNob3J0aGFu
ZCBub3RhdGlvbnMgd2hlbiBnZW5lcmF0aW5nIGlubGluZSBzdHlsZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzM3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNob3J0aGFuZCBwcm9wZXJ0aWVz
IHRvIHNlcmlhbGl6ZSBzdHlsZSBwcm9wZXJ0aWVzIGZvciBjc3NUZXh0LgorCisgICAgICAgIFRo
ZSBvdmVyYWxsIGFsZ29yaXRobSBpcyB0byBsb29rIGZvciBhbnkgcHJvcGVydHkgdGhhdCBoYXMg
YSBzaG9ydGhhbmQsIGFuZCB0aGVuIGNoZWNrIGlmCisgICAgICAgIHRoZSBzaG9ydGhhbmQgdmFs
dWUgY291bGQgYmUgb2J0YWluZWQgKHRoZSBjb25kaXRpb24gaXMgcXVpdGUgY29tcGxpY2F0ZWQg
Zm9yIGJvcmRlciBwcm9wZXJ0aWVzKS4KKyAgICAgICAgSWYgaXQgY291bGQsIHRoZW4gYXBwZW5k
IHRoYXQgdmFsdWUgdG8gdGhlIHN0cmluZyBidWlsZGVyLCBhbmQgbWFyayB0aGUgY29ycmVzcG9u
ZGluZyBlbnRyaWVzIGluCisgICAgICAgIHNob3J0aGFuZFByb3BlcnR5QXBwZWFyZWQgYW5kIHNo
b3J0aGFuZFByb3BlcnR5VXNlZC4gSWYgbm90LCBvbmx5IHR1cm4gb24gdGhlIGJpdCBpbgorICAg
ICAgICBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkIG9uIHRvIGF2b2lkIGNhbGxpbmcgZ2V0UHJv
cGVydHlWYWx1ZSBhZ2FpbiBmb3IgdGhlIHNhbWUgcHJvcGVydHkuCisKKyAgICAgICAgQWxzbyBk
ZXBsb3llZCBTdHJpbmdCdWlsZGVyIGluIGFzVGV4dCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5j
ZS4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCisKKyAg
ICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmdldFByb3BlcnR5VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0KToKKyAgICAgICAgKiBjc3Mv
U3R5bGVQcm9wZXJ0eVNldC5oOgorICAgICAgICAoU3R5bGVQcm9wZXJ0eVNldCk6CisKIDIwMTIt
MDMtMjIgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gRm9yY2UgdXBkYXRlIG9mIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uIGlm
IHRhcmdldCBDQ0xheWVySW1wbCBoYXMgYmVlbiBmcmVzaGx5IGNyZWF0ZWQuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCShyZXZpc2lvbiAxMTE3MTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC05Myw2ICs5NCwyMCBAQAogICAgIG1fcHJv
cGVydGllcyA9IG90aGVyLm1fcHJvcGVydGllczsKIH0KIAorY29uc3QgaW50IGJvcmRlclByb3Bl
cnRpZXNbM11bNF0gPSB7CisgICAgeyBDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRoLAorICAgIENT
U1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aCwKKyAgICBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdp
ZHRoLAorICAgIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoIH0sCisgICAgeyBDU1NQcm9wZXJ0
eUJvcmRlclRvcFN0eWxlLAorICAgIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZSwKKyAgICBD
U1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0eWxlLAorICAgIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0
eWxlIH0sCisgICAgeyBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yLAorICAgIENTU1Byb3BlcnR5
Qm9yZGVyUmlnaHRDb2xvciwKKyAgICBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yLAorICAg
IENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yIH19OworCiBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNl
dDo6Z2V0UHJvcGVydHlWYWx1ZShpbnQgcHJvcGVydHlJRCkgY29uc3QKIHsKICAgICBSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKQEAgLTEy
NywyMSArMTQyLDkgQEAKICAgICAgICAgICAgIHJldHVybiBnZXRMYXllcmVkU2hvcnRoYW5kVmFs
dWUocHJvcGVydGllcyk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
cjogewotICAgICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM11bNF0gPSB7eyBDU1NQcm9w
ZXJ0eUJvcmRlclRvcFdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lkdGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tV2lkdGgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9y
ZGVyTGVmdFdpZHRoIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlCb3JkZXJCb3R0
b21TdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NT
UHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgQ1NTUHJvcGVydHlCb3JkZXJUb3BDb2xvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0
eUJvcmRlckJvdHRvbUNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvciB9fTsKICAgICAgICAgICAgIFN0cmlu
ZyByZXM7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5H
VEgocHJvcGVydGllcyk7ICsraSkgewotICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGdl
dENvbW1vblZhbHVlKHByb3BlcnRpZXNbaV0pOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGJvcmRlclByb3BlcnRpZXMpOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRDb21tb25WYWx1ZShib3JkZXJQcm9wZXJ0aWVz
W2ldKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghcmVzLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVz
ICs9ICIgIjsKQEAgLTIwMyw2ICsyMDYsNyBAQAogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlPdmVyZmxvdzogewogICAgICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbMl0g
PSB7IENTU1Byb3BlcnR5T3ZlcmZsb3dYLCBDU1NQcm9wZXJ0eU92ZXJmbG93WSB9OworICAgICAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCBhZGQgZ2V0MlZhbHVlcy4KICAgICAgICAgICAgIHJldHVy
biBnZXRDb21tb25WYWx1ZShwcm9wZXJ0aWVzKTsKICAgICAgICAgfQogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5UGFkZGluZzogewpAQCAtNjQ3LDI2ICs2NTEsMjAyIEBACiAKIFN0cmluZyBTdHls
ZVByb3BlcnR5U2V0Ojphc1RleHQoKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQgPSAiIjsK
KyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKIAogICAgIGNvbnN0IENTU1Byb3BlcnR5KiBwb3Np
dGlvblhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcG9zaXRpb25ZUHJvcCA9IDA7
CiAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHJlcGVhdFhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQ
cm9wZXJ0eSogcmVwZWF0WVByb3AgPSAwOwogCisgICAgQml0VmVjdG9yIHNob3J0aGFuZFByb3Bl
cnR5VXNlZDsKKyAgICBib29sIHNob3J0aGFuZFByb3BlcnR5VXNlZDJbbnVtQ1NTUHJvcGVydGll
c10gPSB7MH07CisgICAgQml0VmVjdG9yIHNob3J0aGFuZFByb3BlcnR5QXBwZWFyZWQ7CisgICAg
Ym9vbCBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkMltudW1DU1NQcm9wZXJ0aWVzXSA9IHswfTsK
KwogICAgIHVuc2lnbmVkIHNpemUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwogICAgIGZvciAodW5z
aWduZWQgbiA9IDA7IG4gPCBzaXplOyArK24pIHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkm
IHByb3AgPSBtX3Byb3BlcnRpZXNbbl07Ci0gICAgICAgIGlmIChwcm9wLmlkKCkgPT0gQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YKQorICAgICAgICBpbnQgcHJvcGVydHlJRCA9IHByb3Au
aWQoKTsKKyAgICAgICAgaW50IHNob3J0aGFuZFByb3BlcnR5SUQgPSAwOworCisgICAgICAgIHN3
aXRjaCAocHJvcGVydHlJRCkgeworICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBv
c2l0aW9uWDoKICAgICAgICAgICAgIHBvc2l0aW9uWFByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxz
ZSBpZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0
aW9uWToKICAgICAgICAgICAgIHBvc2l0aW9uWVByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZSBp
ZiAocHJvcC5pZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFgpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRYOgog
ICAgICAgICAgICAgcmVwZWF0WFByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZSBpZiAocHJvcC5p
ZCgpID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZOgogICAgICAgICAg
ICAgcmVwZWF0WVByb3AgPSAmcHJvcDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
ICs9IHByb3AuY3NzVGV4dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRv
cFdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aDoKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyU3R5
bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZToKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21TdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHls
ZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckNvbG9yOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3I6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJS
aWdodENvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6CisgICAgICAgICAgICAvLyBG
SVhNRTogRGVhbCB3aXRoIGNhc2VzIHdoZXJlIG9ubHkgc29tZSBvZiBib3JkZXItKHRvcHxyaWdo
dHxib3R0b218bGVmdCkgYXJlIHNwZWNpZmllZC4KKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQ
cm9wZXJ0eUFwcGVhcmVkLmdldChDU1NQcm9wZXJ0eUJvcmRlciAtIGZpcnN0Q1NTUHJvcGVydHkp
ICYmICFzaG9ydGhhbmRQcm9wZXJ0eVVzZWQuZ2V0KENTU1Byb3BlcnR5Qm9yZGVyIC0gZmlyc3RD
U1NQcm9wZXJ0eSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlcjsKKyAgICAgICAgICAgIGlmICghc2hv
cnRoYW5kUHJvcGVydHlBcHBlYXJlZC5nZXQoQ1NTUHJvcGVydHlCb3JkZXIgLSBmaXJzdENTU1By
b3BlcnR5KSkgeworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZf
QVJSQVlfTEVOR1RIKGJvcmRlclByb3BlcnRpZXMpICYmIHNob3J0aGFuZFByb3BlcnR5SUQ7IGkr
KykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY29tbW9uVmFsdWU7CisgICAgICAgICAg
ICAgICAgICAgIGJvb2wgY29tbW9uSW1wb3J0YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCBXVEZfQVJSQVlfTEVOR1RIKGJvcmRlclByb3BlcnRpZXNbMF0p
OyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUg
PSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGJvcmRlclByb3BlcnRpZXNbaV1bal0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlID8gdmFsdWUtPmNzc1Rl
eHQoKSA6IFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0ltcG9ydGFu
dCA9IHByb3BlcnR5SXNJbXBvcnRhbnQoYm9yZGVyUHJvcGVydGllc1tpXVtqXSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaiAmJiAoY3VycmVudFZhbHVlICE9IGNvbW1vblZhbHVlIHx8
IGNvbW1vbkltcG9ydGFuY2UgIT0gaXNJbXBvcnRhbnQpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25WYWx1
ZSA9IGN1cnJlbnRWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25JbXBv
cnRhbmNlID0gaXNJbXBvcnRhbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhvcml6b250
YWxTcGFjaW5nOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyVmVydGljYWxT
cGFjaW5nOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5Qm9y
ZGVyU3BhY2luZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udEZhbWlseToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQ6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRT
dHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50OgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5Rm9udFdlaWdodDoKKyAgICAgICAgICAgIC8vIERvbid0IHVzZSBDU1NQcm9w
ZXJ0eUZvbnQgYmVjYXVzZSBvbGQgVUFzIGNhbid0IHJlY29nbml6ZSB0aGVtIGJ1dCBhcmUgaW1w
b3J0YW50IGZvciBlZGl0aW5nLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlMaXN0U3R5bGVUeXBlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxl
UG9zaXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVJbWFnZToKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUxpc3RTdHlsZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXJnaW5Cb3R0b206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5MZWZ0OgorICAgICAg
ICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5TWFyZ2luOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lV2lkdGg6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dXRsaW5lQ29sb3I6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVy
dHlPdXRsaW5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyZmxvd1g6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1k6CisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdmVyZmxvdzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDoKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRp
bmdCb3R0b206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdDoKKyAgICAgICAg
ICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVBhZGRpbmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbk5hbWU6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGVsYXk6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbkZpbGxNb2RlOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9
IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9uOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0RmxleFdyYXA6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0g
Q1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblk6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlE
ID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb247CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRYOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0
eUlEID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2U6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
TWFza0F0dGFjaG1lbnQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRp
b246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQ2xpcDoKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tPcmlnaW46CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9w
ZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5YOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWToKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblo6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0
eUlEID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW47CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eToKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EdXJhdGlvbjoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EZWxheToKKyAgICAgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb247CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBGbG93OgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcE1hcmdpbjoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFdyYXBQYWRkaW5nOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9
IENTU1Byb3BlcnR5V2Via2l0V3JhcDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNTU1Byb3BlcnRpZXM7IGkr
KykgeworICAgICAgICAgICAgQVNTRVJUKHNob3J0aGFuZFByb3BlcnR5VXNlZC5nZXQoaSkgPT0g
c2hvcnRoYW5kUHJvcGVydHlVc2VkMltpXSk7CisgICAgICAgICAgICBBU1NFUlQoc2hvcnRoYW5k
UHJvcGVydHlBcHBlYXJlZC5nZXQoaSkgPT0gc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZDJbaV0p
OworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICB1bnNpZ25lZCBz
aG9ydFByb3BlcnR5SW5kZXggPSBzaG9ydGhhbmRQcm9wZXJ0eUlEIC0gZmlyc3RDU1NQcm9wZXJ0
eTsKKyAgICAgICAgaWYgKHNob3J0aGFuZFByb3BlcnR5SUQpIHsKKyAgICAgICAgICAgIEFTU0VS
VChzaG9ydGhhbmRQcm9wZXJ0eVVzZWQuZ2V0KHNob3J0UHJvcGVydHlJbmRleCkgPT0gc2hvcnRo
YW5kUHJvcGVydHlVc2VkMltzaG9ydFByb3BlcnR5SW5kZXhdKTsKKyAgICAgICAgICAgIEFTU0VS
VChzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmdldChzaG9ydFByb3BlcnR5SW5kZXgpID09IHNo
b3J0aGFuZFByb3BlcnR5QXBwZWFyZWQyW3Nob3J0UHJvcGVydHlJbmRleF0pOworICAgICAgICAg
ICAgaWYgKHNob3J0aGFuZFByb3BlcnR5VXNlZC5nZXQoc2hvcnRQcm9wZXJ0eUluZGV4KSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICghc2hvcnRoYW5kUHJvcGVy
dHlBcHBlYXJlZC5nZXQoc2hvcnRQcm9wZXJ0eUluZGV4KSkKKyAgICAgICAgICAgICAgICB2YWx1
ZSA9IGdldFByb3BlcnR5VmFsdWUoc2hvcnRoYW5kUHJvcGVydHlJRCk7CisgICAgICAgICAgICBz
aG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmVuc3VyZVNpemUobnVtQ1NTUHJvcGVydGllcyk7Cisg
ICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLnF1aWNrU2V0KHNob3J0UHJvcGVy
dHlJbmRleCwgdHJ1ZSk7CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkMltz
aG9ydFByb3BlcnR5SW5kZXhdID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbnVtQ1NTUHJvcGVydGllczsgaSsrKSB7CisgICAgICAgICAgICBBU1NFUlQo
c2hvcnRoYW5kUHJvcGVydHlVc2VkLmdldChpKSA9PSBzaG9ydGhhbmRQcm9wZXJ0eVVzZWQyW2ld
KTsKKyAgICAgICAgICAgIEFTU0VSVChzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmdldChpKSA9
PSBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkMltpXSk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBwcm9wZXJ0eUlEID0gc2hvcnRoYW5k
UHJvcGVydHlJRDsKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5VXNlZC5lbnN1cmVTaXpl
KG51bUNTU1Byb3BlcnRpZXMpOworICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlVc2VkLnF1
aWNrU2V0KHNob3J0UHJvcGVydHlJbmRleCwgdHJ1ZSk7CisgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eVVzZWQyW3Nob3J0UHJvcGVydHlJbmRleF0gPSB0cnVlOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHZhbHVlID0gcHJvcC52YWx1ZSgpLT5jc3NUZXh0KCk7CisKKyAgICAgICAg
aWYgKHZhbHVlID09ICJpbml0aWFsIiAmJiAhQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVy
dHkocHJvcGVydHlJRCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICByZXN1bHQu
YXBwZW5kKGdldFByb3BlcnR5TmFtZShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0
eUlEKSkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI6ICIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKHZhbHVlKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChwcm9wLmlzSW1wb3J0YW50KCkgPyAi
ICFpbXBvcnRhbnQiIDogIiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgbm90LXNvLW5pY2Ugd2F5IHRvIHR1cm4geC95IHBv
c2l0aW9ucyBpbnRvIHNpbmdsZSBiYWNrZ3JvdW5kLXBvc2l0aW9uIGluIG91dHB1dC4KQEAgLTY3
NiwxNiArODU2LDI1IEBACiAgICAgaWYgKHBvc2l0aW9uWFByb3AgJiYgcG9zaXRpb25ZUHJvcCAm
JiBwb3NpdGlvblhQcm9wLT5pc0ltcG9ydGFudCgpID09IHBvc2l0aW9uWVByb3AtPmlzSW1wb3J0
YW50KCkpIHsKICAgICAgICAgU3RyaW5nIHBvc2l0aW9uVmFsdWU7CiAgICAgICAgIGNvbnN0IGlu
dCBwcm9wZXJ0aWVzWzJdID0geyBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblgsIENTU1By
b3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSB9OworCisgICAgICAgIHJlc3VsdC5hcHBlbmQoImJh
Y2tncm91bmQtcG9zaXRpb246ICIpOworCiAgICAgICAgIGlmIChwb3NpdGlvblhQcm9wLT52YWx1
ZSgpLT5pc1ZhbHVlTGlzdCgpIHx8IHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmlzVmFsdWVMaXN0
KCkpCi0gICAgICAgICAgICBwb3NpdGlvblZhbHVlID0gZ2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVl
KHByb3BlcnRpZXMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwb3NpdGlvblZhbHVlID0g
cG9zaXRpb25YUHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsgIiAiICsgcG9zaXRpb25ZUHJvcC0+
dmFsdWUoKS0+Y3NzVGV4dCgpOwotICAgICAgICByZXN1bHQgKz0gImJhY2tncm91bmQtcG9zaXRp
b246ICIgKyBwb3NpdGlvblZhbHVlICsgKHBvc2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPyAi
ICFpbXBvcnRhbnQiIDogIiIpICsgIjsgIjsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0
TGF5ZXJlZFNob3J0aGFuZFZhbHVlKHByb3BlcnRpZXMpKTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uWFByb3AtPnZhbHVlKCktPmNzc1RleHQoKSk7
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgIik7CisgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKHBvc2l0aW9uWVByb3AtPnZhbHVlKCktPmNzc1RleHQoKSk7CisgICAgICAgIH0KKworICAg
ICAgICByZXN1bHQuYXBwZW5kKHBvc2l0aW9uVmFsdWUpOworICAgICAgICByZXN1bHQuYXBwZW5k
KHBvc2l0aW9uWFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwb3Np
dGlvblhQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHBvc2l0aW9uWFByb3AtPmNzc1RleHQo
KTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zaXRpb25YUHJvcC0+Y3NzVGV4dCgpKTsK
ICAgICAgICAgaWYgKHBvc2l0aW9uWVByb3ApCi0gICAgICAgICAgICByZXN1bHQgKz0gcG9zaXRp
b25ZUHJvcC0+Y3NzVGV4dCgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwb3NpdGlvbllQ
cm9wLT5jc3NUZXh0KCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGRvIHRo
ZSBzYW1lIGZvciBiYWNrZ3JvdW5kLXJlcGVhdC4KQEAgLTY5NiwxNSArODg1LDE4IEBACiAgICAg
ICAgICAgICByZXBlYXRWYWx1ZSA9IGdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShyZXBlYXRQcm9w
ZXJ0aWVzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVwZWF0VmFsdWUgPSByZXBlYXRY
UHJvcC0+dmFsdWUoKS0+Y3NzVGV4dCgpICsgIiAiICsgcmVwZWF0WVByb3AtPnZhbHVlKCktPmNz
c1RleHQoKTsKLSAgICAgICAgcmVzdWx0ICs9ICJiYWNrZ3JvdW5kLXJlcGVhdDogIiArIHJlcGVh
dFZhbHVlICsgKHJlcGVhdFhQcm9wLT5pc0ltcG9ydGFudCgpID8gIiAhaW1wb3J0YW50IiA6ICIi
KSArICI7ICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoImJhY2tncm91bmQtcmVwZWF0OiAiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRWYWx1ZSk7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQocmVwZWF0WFByb3AtPmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChyZXBl
YXRYUHJvcCkKLSAgICAgICAgICAgIHJlc3VsdCArPSByZXBlYXRYUHJvcC0+Y3NzVGV4dCgpOwor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBlYXRYUHJvcC0+Y3NzVGV4dCgpKTsKICAgICAg
ICAgaWYgKHJlcGVhdFlQcm9wKQotICAgICAgICAgICAgcmVzdWx0ICs9IHJlcGVhdFlQcm9wLT5j
c3NUZXh0KCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGVhdFlQcm9wLT5jc3NUZXh0
KCkpOwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdC50b1N0
cmluZygpOwogfQogCiB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6Om1lcmdlKGNvbnN0IFN0eWxlUHJv
cGVydHlTZXQqIG90aGVyLCBib29sIGFyZ092ZXJyaWRlc09uQ29uZmxpY3QpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gMTExNzE0KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyODUsNyArMjI4NSwxMiBAQAog
ICAgIHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbM10gPSB7IENTU1Byb3BlcnR5Qm9y
ZGVyV2lkdGgsIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDU1NQcm9wZXJ0eUJvcmRlckNvbG9yIH07Ci0gICAgICAgIGlmIChwYXJz
ZVNob3J0aGFuZChwcm9wSWQsIHByb3BlcnRpZXMsIDMsIGltcG9ydGFudCkpIHsKKyAgICAgICAg
Y29uc3QgaW50IGltcGxpY2l0Qm9yZGVyUHJvcGVydGllc1tdWzRdID0geworICAgICAgICAgICAg
e0NTU1Byb3BlcnR5Qm9yZGVyVG9wV2lkdGgsIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aCwg
Q1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0V2lkdGh9
LAorICAgICAgICAgICAge0NTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1Byb3BlcnR5Qm9y
ZGVyUmlnaHRTdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZSwgQ1NTUHJvcGVydHlC
b3JkZXJMZWZ0U3R5bGV9LAorICAgICAgICAgICAge0NTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3Is
IENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvciwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xv
ciwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3J9LAorICAgICAgICB9OworICAgICAgICBpZiAo
cGFyc2VTaG9ydGhhbmQocHJvcElkLCBwcm9wZXJ0aWVzLCAzLCBpbXBvcnRhbnQsIGltcGxpY2l0
Qm9yZGVyUHJvcGVydGllcykpIHsKICAgICAgICAgICAgIC8vIFRoZSBDU1MzIEJvcmRlcnMgYW5k
IEJhY2tncm91bmRzIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IGJvcmRlciBhbHNvIHJlc2V0cyBi
b3JkZXItaW1hZ2UuIEl0J3MgYXMKICAgICAgICAgICAgIC8vIHRob3VnaCBhIHZhbHVlIG9mIG5v
bmUgd2FzIHNwZWNpZmllZCBmb3IgdGhlIGltYWdlLgogICAgICAgICAgICAgYWRkUHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJJbWFnZSwgY3NzVmFsdWVQb29sKCktPmNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKCksIGltcG9ydGFudCk7CkBAIC0yODg2LDcgKzI4OTEsNyBAQAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VTaG9ydGhhbmQoaW50IHByb3BJZCwg
Y29uc3QgaW50ICpwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcywgYm9vbCBpbXBvcnRhbnQp
Citib29sIENTU1BhcnNlcjo6cGFyc2VTaG9ydGhhbmQoaW50IHByb3BJZCwgY29uc3QgaW50KiBw
cm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcywgYm9vbCBpbXBvcnRhbnQsIGNvbnN0IGludCgq
IGltcGxpY2l0UHJvcGVydGllcylbNF0pCiB7CiAgICAgLy8gV2UgdHJ5IHRvIG1hdGNoIGFzIG1h
bnkgcHJvcGVydGllcyBhcyBwb3NzaWJsZQogICAgIC8vIFdlIHNldCB1cCBhbiBhcnJheSBvZiBi
b29sZWFucyB0byBtYXJrIHdoaWNoIHByb3BlcnR5IGhhcyBiZWVuIGZvdW5kLApAQCAtMjkxOCw4
ICsyOTIzLDE2IEBACiAgICAgLy8gRmlsbCBpbiBhbnkgcmVtYWluaW5nIHByb3BlcnRpZXMgd2l0
aCB0aGUgaW5pdGlhbCB2YWx1ZS4KICAgICBJbXBsaWNpdFNjb3BlIGltcGxpY2l0U2NvcGUodGhp
cywgUHJvcGVydHlJbXBsaWNpdCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0
aWVzOyArK2kpIHsKLSAgICAgICAgaWYgKCFmbmRbaV0pCi0gICAgICAgICAgICBhZGRQcm9wZXJ0
eShwcm9wZXJ0aWVzW2ldLCBjc3NWYWx1ZVBvb2woKS0+Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFs
dWUoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgaWYgKCFmbmRbaV0pIHsKKyAgICAgICAgICAgIGlm
IChpbXBsaWNpdFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGog
PSAwOyBqIDwgV1RGX0FSUkFZX0xFTkdUSChpbXBsaWNpdFByb3BlcnRpZXNbMF0pOyArK2opIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFpbXBsaWNpdFByb3BlcnRpZXNbaV1bal0pCisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgYWRkUHJvcGVy
dHkoaW1wbGljaXRQcm9wZXJ0aWVzW2ldW2pdLCBjc3NWYWx1ZVBvb2woKS0+Y3JlYXRlSW1wbGlj
aXRJbml0aWFsVmFsdWUoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzW2ldLCBj
c3NWYWx1ZVBvb2woKS0+Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSwgaW1wb3J0YW50KTsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAkocmV2aXNpb24gMTExNzE0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgYm9vbCBoYXNQcm9wZXJ0
aWVzKCkgY29uc3QgeyByZXR1cm4gIW1fcGFyc2VkUHJvcGVydGllcy5pc0VtcHR5KCk7IH0KIAog
ICAgIGJvb2wgcGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7Ci0gICAgYm9v
bCBwYXJzZVNob3J0aGFuZChpbnQgcHJvcElkLCBjb25zdCBpbnQqIHByb3BlcnRpZXMsIGludCBu
dW1Qcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7CisgICAgYm9vbCBwYXJzZVNob3J0aGFuZChp
bnQgcHJvcElkLCBjb25zdCBpbnQqIHByb3BlcnRpZXMsIGludCBudW1Qcm9wZXJ0aWVzLCBib29s
IGltcG9ydGFudCwgY29uc3QgaW50KCogaW1wbGljaXRQcm9wZXJ0aWVzKVs0XSA9IDApOwogICAg
IGJvb2wgcGFyc2U0VmFsdWVzKGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVydGllcywgYm9v
bCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VDb250ZW50KGludCBwcm9wSWQsIGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIHBhcnNlUXVvdGVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KTsKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLWNzcy10
ZXh0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExNzE0KQorKysgTGF5b3V0VGVzdHMvcHJpbnRp
bmcvcGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3
ICs0LDcgQEAKIEBwYWdlIDpmaXJzdCB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJp
Z2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lk
dGg6IDFweDsgfQogQHBhZ2UgaGVsbG8geyBjb2xvcjogZ3JlZW47IH0KIEBwYWdlIHdvcmxkOnJp
Z2h0IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBwcmludCB7IEBwYWdlIHNv
bWVwYWdlOmZpcnN0IHsgbWFyZ2luLXRvcDogM2NtOyBtYXJnaW4tcmlnaHQ6IDNjbTsgbWFyZ2lu
LWJvdHRvbTogM2NtOyBtYXJnaW4tbGVmdDogM2NtOyB9IH0KK0BtZWRpYSBwcmludCB7IEBwYWdl
IHNvbWVwYWdlOmZpcnN0IHsgbWFyZ2luOiAzY207IH0gfQogQHBhZ2UgYXV0b19wYWdlIHsgc2l6
ZTogYXV0bzsgfQogQHBhZ2Ugc3F1YXJlX3BhZ2UgeyBzaXplOiA0aW47IH0KIEBwYWdlIGxldHRl
cl9wYWdlIHsgc2l6ZTogbGV0dGVyOyB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3NU
ZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI2IEBACitUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgdXNlcyBzaG9y
dGhhbmQgbm90YXRpb25zIGZvciBjc3NUZXh0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9y
ZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQu
c3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogMXB4IHNvbGlkIHJlZCIKK1BBU1Mgbm9ybWFsaXpl
Q3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBpbml0aWFsIHJl
ZCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3Jk
ZXI6IGluaXRpYWwgaW5pdGlhbCByZWQiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5z
dHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsIgorUEFTUyBub3Jt
YWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlci1ib3R0b20td2lk
dGg6IDNweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7
IGJvcmRlci10b3Atd2lkdGg6IDFweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0
eWxlLmNzc1RleHQpIGlzICJib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdp
ZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAycHgi
CitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVy
LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQt
d2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQiCitQQVNTIG5vcm1h
bGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyLWJvdHRvbS13aWR0
aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsg
Ym9yZGVyLXRvcC1jb2xvcjogcmVkOyBib3JkZXItdG9wLXdpZHRoOiAxcHgiCitQQVNTIG5vcm1h
bGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiBpbml0aWFsIGRv
dHRlZCBpbml0aWFsIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4
dCkgaXMgImJvcmRlci1zcGFjaW5nOiAxcHggMnB4IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVs
ZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBmb250LXNp
emU6IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsgbGluZS1oZWln
aHQ6IDJlbSIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlz
ICJsaXN0LXN0eWxlOiBjaXJjbGUgaW5zaWRlIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1l
bnQuc3R5bGUuY3NzVGV4dCkgaXMgIm1hcmdpbjogMXB4IDJweCAzcHggNHB4IgorUEFTUyBub3Jt
YWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgIm91dGxpbmU6IDJweCBkb3R0
ZWQgYmx1ZSIKK0ZBSUwgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIHNo
b3VsZCBiZSBvdmVyZmxvdzogc2Nyb2xsIGhpZGRlbi4gV2FzIG92ZXJmbG93LXg6IHNjcm9sbDsg
b3ZlcmZsb3cteTogaGlkZGVuLgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUu
Y3NzVGV4dCkgaXMgInBhZGRpbmc6IDFweCAycHggM3B4IDRweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgdXNlcyBzaG9ydGhhbmQgbm90YXRpb25z
IGZvciBjc3NUZXh0Iik7CisKK3ZhciB0ZXN0cyA9IFsKKyAgICAvLyBGSVhNRTogVGhpcyBleGhp
Yml0cyBhIGJ1Zy4gV2Ugc2hvdWxkbid0IGJlIG91dHB1dGluZyBib3JkZXItaW1hZ2UgaGVyZS4K
KyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAxcHg7JywgJ2JvcmRlcjogMXB4IGluaXRp
YWwgaW5pdGlhbDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4IHNvbGlkIHJlZDsnLCAnYm9yZGVyOiAx
cHggc29saWQgcmVkOyddLAorICAgIFsnYm9yZGVyOiAxcHggcmVkOycsICdib3JkZXI6IDFweCBp
bml0aWFsIHJlZDsnXSwKKyAgICBbJ2JvcmRlcjogcmVkOycsICdib3JkZXI6IGluaXRpYWwgaW5p
dGlhbCByZWQ7J10sCisgICAgWydib3JkZXItdG9wOiAxcHg7IGJvcmRlci1yaWdodDogMXB4OyBi
b3JkZXItYm90dG9tOiAxcHg7IGJvcmRlci1sZWZ0OiAxcHg7JywgJ2JvcmRlcjogMXB4IGluaXRp
YWwgaW5pdGlhbDsnXSwKKyAgICBbJ2JvcmRlci10b3A6IDFweDsgYm9yZGVyLXJpZ2h0OiAycHg7
IGJvcmRlci1ib3R0b206IDNweDsgYm9yZGVyLWxlZnQ6IDRweDsnLAorICAgICdib3JkZXItdG9w
LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMnB4OyBib3JkZXItYm90dG9tLXdpZHRo
OiAzcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7J10sCisgICAgWydib3JkZXI6IDFweDsgYm9y
ZGVyLXRvcDogMnB4OycsCisgICAgJ2JvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90
dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6
IDJweDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAxcHggIWltcG9ydGFudDsn
LAorICAgICdib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4
OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9ydGFu
dDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wLWNvbG9yOiByZWQ7JywKKyAgICAn
Ym9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVy
LWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLWNvbG9y
OiByZWQ7J10sCisgICAgWydib3JkZXI6IHNvbGlkOyBib3JkZXItc3R5bGU6IGRvdHRlZCcsICdi
b3JkZXI6IGluaXRpYWwgZG90dGVkIGluaXRpYWw7J10sCisKKyAgICBbJy13ZWJraXQtYm9yZGVy
LWhvcml6b250YWwtc3BhY2luZzogMXB4OyAtd2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5n
OiAycHg7JywgJ2JvcmRlci1zcGFjaW5nOiAxcHggMnB4OyddLAorCisgICAgLy8gV2UgZG9uJ3Qg
dXNlIHNob3J0aGFuZCBmb3IgZm9udC1mYW1pbHksIGV0Yy4uLiBmb3IgY29tcGF0aWJpbGl0eSBy
ZWFzb25zCisgICAgWydmb250LWZhbWlseTogc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6IDJlbTsg
Zm9udC1zaXplOiAzZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7JywK
KyAgICAgICAgJ2ZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDogMmVtOyBmb250
LXNpemU6IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsnXSwKKwor
ICAgIFsnbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lk
ZTsnLCAnbGlzdC1zdHlsZTogY2lyY2xlIGluc2lkZTsnXSwKKyAgICBbJ21hcmdpbi10b3A6IDFw
eDsgbWFyZ2luLXJpZ2h0OiAycHg7IG1hcmdpbi1ib3R0b206IDNweDsgbWFyZ2luLWxlZnQ6IDRw
eDsnLCAnbWFyZ2luOiAxcHggMnB4IDNweCA0cHg7J10sCisgICAgWydvdXRsaW5lLXdpZHRoOiAy
cHg7IG91dGxpbmUtc3R5bGU6IGRvdHRlZDsgb3V0bGluZS1jb2xvcjogYmx1ZTsnLCAnb3V0bGlu
ZTogMnB4IGRvdHRlZCBibHVlOyddLAorICAgIFsnb3ZlcmZsb3cteDogc2Nyb2xsOyBvdmVyZmxv
dy15OiBoaWRkZW47JywgJ292ZXJmbG93OiBzY3JvbGwgaGlkZGVuOyddLAorICAgIFsncGFkZGlu
Zy10b3A6IDFweDsgcGFkZGluZy1yaWdodDogMnB4OyBwYWRkaW5nLWJvdHRvbTogM3B4OyBwYWRk
aW5nLWxlZnQ6IDRweDsnLCAncGFkZGluZzogMXB4IDJweCAzcHggNHB4OyddLAorXTsKKworZnVu
Y3Rpb24gbm9ybWFsaXplQ3NzVGV4dCh0ZXh0KSB7IHJldHVybiB0ZXh0LnRyaW0oKS5zcGxpdCgv
O1xzKi8pLnNvcnQoKS5zbGljZSgxKS5qb2luKCI7ICIpOyB9CisKK3ZhciBlbGVtZW50OwordGVz
dHMuZm9yRWFjaChmdW5jdGlvbiAodGVzdCkgeworICAgIHZhciBzdHlsZUF0dHJpYnV0ZSA9IHRl
c3RbMF07CisgICAgdmFyIGV4cGVjdGVkQ3NzVGV4dCA9IHRlc3RbMV07CisKKyAgICBlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZWxlbWVudC5zZXRBdHRyaWJ1
dGUoJ3N0eWxlJywgc3R5bGVBdHRyaWJ1dGUpOworCisgICAgc2hvdWxkQmUoJ25vcm1hbGl6ZUNz
c1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KScsICciJyArIG5vcm1hbGl6ZUNzc1RleHQoZXhw
ZWN0ZWRDc3NUZXh0KSArICciJyk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTExNzE0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVt
b3ZlLXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMjcgKzIsNzUg
QEAKIAogU3RhcnRpbmcgd2l0aCBhIGRlY2xhcmF0aW9uIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRp
ZXMgdGhhdCBhcmUgY29uc3RpdHVlbnRzIG9mIHNob3J0Y3V0cywgc2VlIHdoYXQgaXMgcmVtb3Zl
ZCB3aGVuIGEgc2hvcnRjdXQgcHJvcGVydHkgaXMgcmVtb3ZlZC4gVGhlIHNob3J0Y3V04oCZcyBj
b25zdGl0dWVudHMgYW5kIG9ubHkgdGhlbSBzaG91bGQgYmUgcmVtb3ZlZC4KIAotUmVtb3Zpbmcg
YmFja2dyb3VuZCByZW1vdmVzIGJhY2tncm91bmQtaW1hZ2UsIGJhY2tncm91bmQtYXR0YWNobWVu
dCwgYmFja2dyb3VuZC1vcmlnaW4sIGJhY2tncm91bmQtY2xpcCwgYmFja2dyb3VuZC1jb2xvciwg
YmFja2dyb3VuZC1wb3NpdGlvbiwgYmFja2dyb3VuZC1yZXBlYXQuCi1SZW1vdmluZyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uIHJlbW92ZXMgYmFja2dyb3VuZC1wb3NpdGlvbi4KLVJlbW92aW5nIGJvcmRl
ciByZW1vdmVzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0aCwgYm9yZGVyLWJv
dHRvbS13aWR0aCwgYm9yZGVyLWxlZnQtd2lkdGgsIGJvcmRlci10b3Atc3R5bGUsIGJvcmRlci1y
aWdodC1zdHlsZSwgYm9yZGVyLWJvdHRvbS1zdHlsZSwgYm9yZGVyLWxlZnQtc3R5bGUsIGJvcmRl
ci10b3AtY29sb3IsIGJvcmRlci1yaWdodC1jb2xvciwgYm9yZGVyLWJvdHRvbS1jb2xvciwgYm9y
ZGVyLWxlZnQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItdG9wIHJlbW92ZXMgYm9yZGVyLXRvcC13
aWR0aCwgYm9yZGVyLXRvcC1zdHlsZSwgYm9yZGVyLXRvcC1jb2xvci4KLVJlbW92aW5nIGJvcmRl
ci1yaWdodCByZW1vdmVzIGJvcmRlci1yaWdodC13aWR0aCwgYm9yZGVyLXJpZ2h0LXN0eWxlLCBi
b3JkZXItcmlnaHQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItYm90dG9tIHJlbW92ZXMgYm9yZGVy
LWJvdHRvbS13aWR0aCwgYm9yZGVyLWJvdHRvbS1zdHlsZSwgYm9yZGVyLWJvdHRvbS1jb2xvci4K
LVJlbW92aW5nIGJvcmRlci1sZWZ0IHJlbW92ZXMgYm9yZGVyLWxlZnQtd2lkdGgsIGJvcmRlci1s
ZWZ0LXN0eWxlLCBib3JkZXItbGVmdC1jb2xvci4KLVJlbW92aW5nIGJvcmRlci1jb2xvciByZW1v
dmVzIGJvcmRlci10b3AtY29sb3IsIGJvcmRlci1yaWdodC1jb2xvciwgYm9yZGVyLWJvdHRvbS1j
b2xvciwgYm9yZGVyLWxlZnQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItc3R5bGUgcmVtb3ZlcyBi
b3JkZXItdG9wLXN0eWxlLCBib3JkZXItcmlnaHQtc3R5bGUsIGJvcmRlci1ib3R0b20tc3R5bGUs
IGJvcmRlci1sZWZ0LXN0eWxlLgotUmVtb3ZpbmcgYm9yZGVyLXdpZHRoIHJlbW92ZXMgYm9yZGVy
LXRvcC13aWR0aCwgYm9yZGVyLXJpZ2h0LXdpZHRoLCBib3JkZXItYm90dG9tLXdpZHRoLCBib3Jk
ZXItbGVmdC13aWR0aC4KLVJlbW92aW5nIGJvcmRlci1yYWRpdXMgcmVtb3ZlcyBib3JkZXItdG9w
LWxlZnQtcmFkaXVzLCBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXMsIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMuCi1SZW1vdmluZyAtd2Via2l0LWJv
cmRlci1yYWRpdXMgcmVtb3ZlcyBib3JkZXItdG9wLWxlZnQtcmFkaXVzLCBib3JkZXItdG9wLXJp
Z2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tbGVm
dC1yYWRpdXMuCi1SZW1vdmluZyBib3JkZXItc3BhY2luZyByZW1vdmVzIC13ZWJraXQtYm9yZGVy
LWhvcml6b250YWwtc3BhY2luZywgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZy4KLVJl
bW92aW5nIC13ZWJraXQtY29sdW1ucyByZW1vdmVzIC13ZWJraXQtY29sdW1uLXdpZHRoLCAtd2Vi
a2l0LWNvbHVtbi1jb3VudC4KLVJlbW92aW5nIC13ZWJraXQtY29sdW1uLXJ1bGUgcmVtb3ZlcyAt
d2Via2l0LWNvbHVtbi1ydWxlLXdpZHRoLCAtd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlLCAtd2Vi
a2l0LWNvbHVtbi1ydWxlLWNvbG9yLgotUmVtb3ZpbmcgbGlzdC1zdHlsZSByZW1vdmVzIGxpc3Qt
c3R5bGUtdHlwZSwgbGlzdC1zdHlsZS1wb3NpdGlvbiwgbGlzdC1zdHlsZS1pbWFnZS4KLVJlbW92
aW5nIG1hcmdpbiByZW1vdmVzIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFyZ2luLWJvdHRv
bSwgbWFyZ2luLWxlZnQuCi1SZW1vdmluZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSByZW1vdmVz
IC13ZWJraXQtbWFyZ2luLWJlZm9yZS1jb2xsYXBzZSwgLXdlYmtpdC1tYXJnaW4tYWZ0ZXItY29s
bGFwc2UuCi1SZW1vdmluZyAtd2Via2l0LW1hcnF1ZWUgcmVtb3ZlcyAtd2Via2l0LW1hcnF1ZWUt
ZGlyZWN0aW9uLCAtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LCAtd2Via2l0LW1hcnF1ZWUtcmVw
ZXRpdGlvbiwgLXdlYmtpdC1tYXJxdWVlLXN0eWxlLCAtd2Via2l0LW1hcnF1ZWUtc3BlZWQuCi1S
ZW1vdmluZyAtd2Via2l0LW1hc2sgcmVtb3ZlcyAtd2Via2l0LW1hc2staW1hZ2UsIC13ZWJraXQt
bWFzay1yZXBlYXQteCwgLXdlYmtpdC1tYXNrLXJlcGVhdC15LCAtd2Via2l0LW1hc2stYXR0YWNo
bWVudCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXgsIC13ZWJraXQtbWFzay1wb3NpdGlvbi15LCAt
d2Via2l0LW1hc2stb3JpZ2luLCAtd2Via2l0LW1hc2stY2xpcC4KLVJlbW92aW5nIC13ZWJraXQt
bWFzay1wb3NpdGlvbiByZW1vdmVzIC13ZWJraXQtbWFzay1wb3NpdGlvbi14LCAtd2Via2l0LW1h
c2stcG9zaXRpb24teS4KLVJlbW92aW5nIG92ZXJmbG93IHJlbW92ZXMgb3ZlcmZsb3cteCwgb3Zl
cmZsb3cteS4KLVJlbW92aW5nIHBhZGRpbmcgcmVtb3ZlcyBwYWRkaW5nLXRvcCwgcGFkZGluZy1y
aWdodCwgcGFkZGluZy1ib3R0b20sIHBhZGRpbmctbGVmdC4KLVJlbW92aW5nIC13ZWJraXQtdGV4
dC1zdHJva2UgcmVtb3ZlcyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yLCAtd2Via2l0LXRleHQt
c3Ryb2tlLXdpZHRoLgorUmVtb3ZpbmcgYmFja2dyb3VuZAorcmVtb3ZlcyAiYmFja2dyb3VuZC1p
bWFnZSwgYmFja2dyb3VuZC1hdHRhY2htZW50LCBiYWNrZ3JvdW5kLW9yaWdpbiwgYmFja2dyb3Vu
ZC1jbGlwLCBiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLXBvc2l0aW9uLCBiYWNrZ3JvdW5k
LXJlcGVhdCIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgYmFja2dyb3VuZC1wb3NpdGlvbgorcmVt
b3ZlcyAiYmFja2dyb3VuZC1wb3NpdGlvbiIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgYm9yZGVy
CityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIGJvcmRlci10b3AKK3Jl
bW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXItcmlnaHQtd2lkdGgsYm9yZGVyLWJvdHRv
bS13aWR0aCxib3JkZXItbGVmdC13aWR0aCxib3JkZXItcmlnaHQtc3R5bGUsYm9yZGVyLWJvdHRv
bS1zdHlsZSxib3JkZXItbGVmdC1zdHlsZSxib3JkZXItcmlnaHQtY29sb3IsYm9yZGVyLWJvdHRv
bS1jb2xvcixib3JkZXItbGVmdC1jb2xvciIuCitSZW1vdmluZyBib3JkZXItcmlnaHQKK3JlbW92
ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXItdG9wLXdpZHRoLGJvcmRlci1ib3R0b20td2lk
dGgsYm9yZGVyLWxlZnQtd2lkdGgsYm9yZGVyLXRvcC1zdHlsZSxib3JkZXItYm90dG9tLXN0eWxl
LGJvcmRlci1sZWZ0LXN0eWxlLGJvcmRlci10b3AtY29sb3IsYm9yZGVyLWJvdHRvbS1jb2xvcixi
b3JkZXItbGVmdC1jb2xvciIuCitSZW1vdmluZyBib3JkZXItYm90dG9tCityZW1vdmVzICJib3Jk
ZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13aWR0aCxib3JkZXItcmlnaHQtd2lkdGgsYm9yZGVy
LWxlZnQtd2lkdGgsYm9yZGVyLXRvcC1zdHlsZSxib3JkZXItcmlnaHQtc3R5bGUsYm9yZGVyLWxl
ZnQtc3R5bGUsYm9yZGVyLXRvcC1jb2xvcixib3JkZXItcmlnaHQtY29sb3IsYm9yZGVyLWxlZnQt
Y29sb3IiLgorUmVtb3ZpbmcgYm9yZGVyLWxlZnQKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRz
ICJib3JkZXItdG9wLXdpZHRoLGJvcmRlci1yaWdodC13aWR0aCxib3JkZXItYm90dG9tLXdpZHRo
LGJvcmRlci10b3Atc3R5bGUsYm9yZGVyLXJpZ2h0LXN0eWxlLGJvcmRlci1ib3R0b20tc3R5bGUs
Ym9yZGVyLXRvcC1jb2xvcixib3JkZXItcmlnaHQtY29sb3IsYm9yZGVyLWJvdHRvbS1jb2xvciIu
CitSZW1vdmluZyBib3JkZXItY29sb3IKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3Jk
ZXItdG9wLXdpZHRoLGJvcmRlci1yaWdodC13aWR0aCxib3JkZXItYm90dG9tLXdpZHRoLGJvcmRl
ci1sZWZ0LXdpZHRoLGJvcmRlci10b3Atc3R5bGUsYm9yZGVyLXJpZ2h0LXN0eWxlLGJvcmRlci1i
b3R0b20tc3R5bGUsYm9yZGVyLWxlZnQtc3R5bGUiLgorUmVtb3ZpbmcgYm9yZGVyLXN0eWxlCity
ZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13aWR0aCxib3JkZXItcmlnaHQt
d2lkdGgsYm9yZGVyLWJvdHRvbS13aWR0aCxib3JkZXItbGVmdC13aWR0aCxib3JkZXItdG9wLWNv
bG9yLGJvcmRlci1yaWdodC1jb2xvcixib3JkZXItYm90dG9tLWNvbG9yLGJvcmRlci1sZWZ0LWNv
bG9yIi4KK1JlbW92aW5nIGJvcmRlci13aWR0aAorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMg
ImJvcmRlci10b3Atc3R5bGUsYm9yZGVyLXJpZ2h0LXN0eWxlLGJvcmRlci1ib3R0b20tc3R5bGUs
Ym9yZGVyLWxlZnQtc3R5bGUsYm9yZGVyLXRvcC1jb2xvcixib3JkZXItcmlnaHQtY29sb3IsYm9y
ZGVyLWJvdHRvbS1jb2xvcixib3JkZXItbGVmdC1jb2xvciIuCitSZW1vdmluZyBib3JkZXItcmFk
aXVzCityZW1vdmVzICJib3JkZXItdG9wLWxlZnQtcmFkaXVzLCBib3JkZXItdG9wLXJpZ2h0LXJh
ZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tbGVmdC1yYWRp
dXMiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtYm9yZGVyLXJhZGl1cworcmVtb3Zl
cyAiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsIGJvcmRl
ci1ib3R0b20tcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIgorYW5kIGFk
ZHMgIiIuCitSZW1vdmluZyBib3JkZXItc3BhY2luZworcmVtb3ZlcyAiYm9yZGVyLXNwYWNpbmci
CithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtY29sdW1ucworcmVtb3ZlcyAiLXdlYmtp
dC1jb2x1bW4td2lkdGgsIC13ZWJraXQtY29sdW1uLWNvdW50IgorYW5kIGFkZHMgIiIuCitSZW1v
dmluZyAtd2Via2l0LWNvbHVtbi1ydWxlCityZW1vdmVzICItd2Via2l0LWNvbHVtbi1ydWxlLXdp
ZHRoLCAtd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlLCAtd2Via2l0LWNvbHVtbi1ydWxlLWNvbG9y
IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBsaXN0LXN0eWxlCityZW1vdmVzICIiCithbmQgYWRk
cyAiIi4KK1JlbW92aW5nIG1hcmdpbgorcmVtb3ZlcyAibWFyZ2luIgorYW5kIGFkZHMgImxpc3Qt
c3R5bGUtdHlwZSxsaXN0LXN0eWxlLXBvc2l0aW9uLGxpc3Qtc3R5bGUtaW1hZ2UiLgorUmVtb3Zp
bmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UKK3JlbW92ZXMgIi13ZWJraXQtbWFyZ2luLWJlZm9y
ZS1jb2xsYXBzZSwgLXdlYmtpdC1tYXJnaW4tYWZ0ZXItY29sbGFwc2UiCithbmQgYWRkcyAiIi4K
K1JlbW92aW5nIC13ZWJraXQtbWFycXVlZQorcmVtb3ZlcyAiLXdlYmtpdC1tYXJxdWVlLWRpcmVj
dGlvbiwgLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCwgLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRp
b24sIC13ZWJraXQtbWFycXVlZS1zdHlsZSwgLXdlYmtpdC1tYXJxdWVlLXNwZWVkIgorYW5kIGFk
ZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LW1hc2sKK3JlbW92ZXMgIi13ZWJraXQtbWFzaywgLXdl
YmtpdC1tYXNrLXJlcGVhdCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uIgorYW5kIGFkZHMgIiIuCitS
ZW1vdmluZyAtd2Via2l0LW1hc2stcG9zaXRpb24KK3JlbW92ZXMgIi13ZWJraXQtbWFzay1wb3Np
dGlvbiIKK2FuZCBhZGRzICIiLgorUmVtb3Zpbmcgb3ZlcmZsb3cKK3JlbW92ZXMgIm92ZXJmbG93
IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBwYWRkaW5nCityZW1vdmVzICJwYWRkaW5nIgorYW5k
IGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LXRleHQtc3Ryb2tlCityZW1vdmVzICItd2Via2l0
LXRleHQtc3Ryb2tlLWNvbG9yLCAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoIgorYW5kIGFkZHMg
IiIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLXNob3J0aGFuZC5odG1sCShy
ZXZpc2lvbiAxMTE3MTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5k
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwyMSBAQAogICAgICAgICAgICAgZWxl
bWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzaG9ydGhhbmQpOwogICAgICAgICAgICAgdmFyIHJl
bWFpbmluZ1Byb3BlcnRpZXMgPSBlbGVtZW50LnN0eWxlLmNzc1RleHQuc3BsaXQoIjsgIik7CiAg
ICAgICAgICAgICB2YXIgcmVtb3ZlZFByb3BlcnRpZXMgPSBbXTsKLSAgICAgICAgICAgIHZhciBw
OwotICAgICAgICAgICAgd2hpbGUgKHAgPSBhbGxQcm9wZXJ0aWVzLnNoaWZ0KCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAocmVtYWluaW5nUHJvcGVydGllc1swXSA9PSBwKQotICAgICAgICAgICAg
ICAgICAgICByZW1haW5pbmdQcm9wZXJ0aWVzLnNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICByZW1vdmVkUHJvcGVydGllcy5wdXNoKCI8dHQ+IiArIHAu
cmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+Iik7CisgICAgICAgICAgICB2YXIgYWRkZWRQcm9w
ZXJ0aWVzID0gW107CisKKyAgICAgICAgICAgIGxvZyhhbGxQcm9wZXJ0aWVzLmpvaW4oJzsgJykp
OworICAgICAgICAgICAgbG9nKHJlbWFpbmluZ1Byb3BlcnRpZXMuam9pbignOyAnKSk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7IGkrKykg
eworICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmdQcm9wZXJ0aWVzLmluZGV4T2YoYWxsUHJv
cGVydGllc1tpXSkgPCAwKQorICAgICAgICAgICAgICAgICAgICByZW1vdmVkUHJvcGVydGllcy5w
dXNoKCI8dHQ+IiArIGFsbFByb3BlcnRpZXNbaV0ucmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+
Iik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBsb2coIlJlbW92aW5nIDx0dD4iICsgc2hv
cnRoYW5kICsgIjwvdHQ+IHJlbW92ZXMgIiArIHJlbW92ZWRQcm9wZXJ0aWVzLmpvaW4oIiwgIikg
KyIuIik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbWFpbmluZ1Byb3BlcnRp
ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoYWxsUHJvcGVydGllcy5pbmRl
eE9mKHJlbWFpbmluZ1Byb3BlcnRpZXNbaV0pIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgYWRk
ZWRQcm9wZXJ0aWVzLnB1c2goIjx0dD4iICsgcmVtYWluaW5nUHJvcGVydGllc1tpXS5yZXBsYWNl
KC9cOi4qLywiIikgKyAiPC90dD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZygi
UmVtb3ZpbmcgPHR0PiIgKyBzaG9ydGhhbmQgKyAnPC90dD48YnI+cmVtb3ZlcyAiJyArIHJlbW92
ZWRQcm9wZXJ0aWVzLmpvaW4oIiwgIikKKyAgICAgICAgICAgICAgICArICciPGJyPmFuZCBhZGRz
ICInICsgYWRkZWRQcm9wZXJ0aWVzICsgJyIuJyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIGZ1bmN0aW9uIHRlc3QoKQpAQCAtNDYsMTAgKzUzLDEwIEBACiAgICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgICAgICB2YXIgc2hv
cnRoYW5kcyA9IFsKLSAgICAgICAgICAgICAgICAiYmFja2dyb3VuZCIsCisvKiAgICAgICAgICAg
ICAgICAiYmFja2dyb3VuZCIsCiAgICAgICAgICAgICAgICAgImJhY2tncm91bmQtcG9zaXRpb24i
LAotICAgICAgICAgICAgICAgICJib3JkZXIiLAotICAgICAgICAgICAgICAgICJib3JkZXItdG9w
IiwgImJvcmRlci1yaWdodCIsICJib3JkZXItYm90dG9tIiwgImJvcmRlci1sZWZ0IiwKKyAgICAg
ICAgICAgICAgICAiYm9yZGVyIiwqLworICAgICAgICAgICAgICAgICJib3JkZXItdG9wIiwgLyoi
Ym9yZGVyLXJpZ2h0IiwgImJvcmRlci1ib3R0b20iLCAiYm9yZGVyLWxlZnQiLAogICAgICAgICAg
ICAgICAgICJib3JkZXItY29sb3IiLCAiYm9yZGVyLXN0eWxlIiwgImJvcmRlci13aWR0aCIsCiAg
ICAgICAgICAgICAgICAgImJvcmRlci1yYWRpdXMiLAogICAgICAgICAgICAgICAgICItd2Via2l0
LWJvcmRlci1yYWRpdXMiLApAQCAtNjQsNyArNzEsNyBAQAogICAgICAgICAgICAgICAgICItd2Vi
a2l0LW1hc2stcG9zaXRpb24iLAogICAgICAgICAgICAgICAgICJvdmVyZmxvdyIsCiAgICAgICAg
ICAgICAgICAgInBhZGRpbmciLAotICAgICAgICAgICAgICAgICItd2Via2l0LXRleHQtc3Ryb2tl
IgorICAgICAgICAgICAgICAgICItd2Via2l0LXRleHQtc3Ryb2tlIiovCiAgICAgICAgICAgICBd
OwogCiAgICAgICAgICAgICBmb3IgKGkgaW4gc2hvcnRoYW5kcykKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlh
bGl6ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTcxNCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNTksNCArNTksNCBAQAogdC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91
bmQ6IHVybChhYm91dDpibGFuaykgODAlIDgwJTsnKTsKIHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0
aW9uWSA9ICc1MHB4Jwogc3R5bGUuY3NzVGV4dCA9Ci1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoYWJv
dXQ6YmxhbmspOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRpYWw7IGJhY2tncm91bmQtb3Jp
Z2luOiBpbml0aWFsOyBiYWNrZ3JvdW5kLWNsaXA6IGluaXRpYWw7IGJhY2tncm91bmQtY29sb3I6
IGluaXRpYWw7IGJhY2tncm91bmQtcG9zaXRpb246IDgwJSA1MHB4OyBiYWNrZ3JvdW5kLXJlcGVh
dDogaW5pdGlhbCBpbml0aWFsOworYmFja2dyb3VuZC1pbWFnZTogdXJsKGFib3V0OmJsYW5rKTsg
YmFja2dyb3VuZC1wb3NpdGlvbjogODAlIDUwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFs
IGluaXRpYWw7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2Vu
LXBhcnNpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE3MTQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiBUZXN0IHBhcnNpbmcgb2YgQ1NTIFVSSSB0b2tlbnMuIE9sZGVyIHZlcnNp
b25zIG9mIFdlYktpdCBkaWQgc29tZSBkb3VibGUgcHJvY2Vzc2luZyBvZiB0aGVzZSwgaGVuY2Ug
dGhpcyB0ZXN0IHdvdWxkIGhhdmUgZmFpbGVkLgogCi1TVUNDRVNTCitGQUlMVVJFCiAKIFJ1bGVz
IGZyb20gdGhlIHN0eWxlc2hlZXQ6CiAKQEAgLTE5LDkgKzE5LDkgQEAKICNvIHsgY29udGVudDog
dXJsKGYpOyB9CiAjcCB7IGNvbnRlbnQ6IHVybCgndXJsKGcpJyk7IH0KICNxIHsgY3Vyc29yOiB1
cmwoJ3VybChxKScpOyB9Ci0jciB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgndXJsKHIpJyk7IH0K
KyNyIHsgbGlzdC1zdHlsZTogdXJsKCd1cmwociknKTsgfQogI3MgeyBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoJ3VybChzKScpOyB9Ci0jdCB7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKCd1cmwodCkn
KTsgfQorI3QgeyAtd2Via2l0LW1hc2s6IHVybCgndXJsKHQpJyk7IH0KICN1IHsgLXdlYmtpdC1i
b3JkZXItaW1hZ2U6IHVybCgndXJsKHUpJykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0K
ICN2IHsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogdXJsKCd1cmwodiknKSAxIDIgMyA0IGZpbGwg
c3RyZXRjaCByb3VuZDsgfQogI3cgeyBjb250ZW50OiB1cmwod3cpOyB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRl
LWZyb20tanMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE3MTQpCisrKyBMYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogCiBSdW5uaW5nOiB0ZXN0U2V0VmlhUGFyc2Vk
QXR0cmlidXRlcwotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigxOTIsIDI1
NSwgMjM4KTsgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyBib3JkZXItcmlnaHQtc3R5bGU6IGRh
c2hlZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogZGFzaGVkOyBib3JkZXItbGVmdC1zdHlsZTogZGFz
aGVkOyBib3JkZXItdG9wLWNvbG9yOiBncmVlbjsgYm9yZGVyLXJpZ2h0LWNvbG9yOiBncmVlbjsg
Ym9yZGVyLWJvdHRvbS1jb2xvcjogZ3JlZW47IGJvcmRlci1sZWZ0LWNvbG9yOiBncmVlbjsgYm9y
ZGVyLWltYWdlOiBpbml0aWFsOyBib3JkZXItdG9wLXdpZHRoOiAzcHg7IGJvcmRlci1yaWdodC13
aWR0aDogM3B4OyBib3JkZXItYm90dG9tLXdpZHRoOiAzcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAz
cHg7ICI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5Miwg
MjU1LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47IGJvcmRlci1pbWFnZTogaW5pdGlh
bDsgIj48L2Rpdj4KIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiBjb2xvcjogI0Mw
RkZFRTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2Fu
aXRpemUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtYW5kLXNhbml0aXplLmh0bWwJKHJldmlzaW9uIDExMTcxNCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsNyBAQAogICAgICAgICAgICI8ZGl2PjxiPjxpPmhlbGxvPC9pPjwvYj48
L2Rpdj48ZGl2PjxiPjxpPndvcmxkPC9pPjwvYj48L2Rpdj4iKTsKIHRlc3RQYXN0ZSgiZGl2Iiwg
IjxkaXY+PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsOyBcIj48Yj48aT5o
ZWxsbzE8L2k+PC9iPjxiPjxpPiBoZWxsbzI8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPjwvZGl2PiIs
ICI8Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWw7IFwiPjxiPjxpPmhlbGxv
MTwvaT48L2I+PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4iKTsKIHRl
c3RQYXN0ZSgiZGl2IiwgIjxpIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPjxiPjxpIHN0eWxlPVwi
bWFyZ2luOiAxMHB4O1wiPmhlbGxvPC9pPjwvYj48L2k+IiwKLSAgICAgICAgICAiPGkgc3R5bGU9
XCJtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IG1hcmdpbi1ib3R0b206IDEw
cHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyBcIj48Yj48aSBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7
IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEw
cHg7IFwiPmhlbGxvPC9pPjwvYj48L2k+Iik7CisgICAgICAgICAgIjxpIHN0eWxlPVwibWFyZ2lu
OiAxMHB4OyBcIj48Yj48aSBzdHlsZT1cIm1hcmdpbjogMTBweDsgXCI+aGVsbG88L2k+PC9iPjwv
aT4iKTsKIHRlc3RQYXN0ZSgiZGl2IiwgIjxkaXY+PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdl
aWdodDogbm9ybWFsXCI+PGI+PGk+SGVsbG8gPCEtLSBjb21tZW50IC0tPndvcmxkPC9pPjwvYj48
L3NwYW4+PC9pPjwvYj48L2Rpdj4iLCAiPGI+PGk+SGVsbG8mbmJzcDt3b3JsZDwvaT48L2I+Iik7
CiB0ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6
IG5vcm1hbFwiPnBsYWluIHRleHQ8Yj48aT5ib2xkIGl0YWxpYyB0ZXh0PC9pPjwvYj48L3NwYW4+
PC9pPjwvYj48L2Rpdj4iLCAiPGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFs
OyBcIj5wbGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48
L2I+Iik7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQt
c2FuaXRpemUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE3
MTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXpl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAKIFBBU1MgY29uZmly
bWVkTWFya3VwIGlzICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj5IZWxsbzwv
Yj48L2Rpdj4nCiBQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGRpdj48Yj48aT5oZWxsbzwvaT48
L2I+PC9kaXY+PGRpdj48Yj48aT53b3JsZDwvaT48L2I+PC9kaXY+JwogUEFTUyBjb25maXJtZWRN
YXJrdXAgaXMgJzxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyAiPjxiPjxp
PmhlbGxvMTwvaT48L2I+PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4n
Ci1QQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1h
cmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7
ICI+PGI+PGkgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFy
Z2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+aGVsbG88L2k+PC9iPjwvaT4n
CitQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbjogMTBweDsgIj48Yj48
aSBzdHlsZT0ibWFyZ2luOiAxMHB4OyAiPmhlbGxvPC9pPjwvYj48L2k+JwogUEFTUyBjb25maXJt
ZWRNYXJrdXAgaXMgJzxiPjxpPkhlbGxvJm5ic3A7d29ybGQ8L2k+PC9iPicKIFBBU1MgY29uZmly
bWVkTWFya3VwIGlzICc8Yj48aT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgIj5w
bGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+Jwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zdHlsZS9ub24taW5oZXJpdGFibGUtc3R5bGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJsZS1zdHlsZXMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxMTE3MTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL25v
bi1pbmhlcml0YWJsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYg
KzMsNiBAQAogfCA8ZGl2PgogfCAgIGNsYXNzPSJjbGFzcyIKIHwgICBpZD0iaWQiCi18ICAgc3R5
bGU9ImJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRl
ci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1z
dHlsZTogc29saWQ7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tc3R5
bGU6IHNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IGJs
dWU7IGJvcmRlci1yaWdodC1jb2xvcjogYmx1ZTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogYmx1ZTsg
Ym9yZGVyLWxlZnQtY29sb3I6IGJsdWU7IGJvcmRlci1pbWFnZTogaW5pdGlhbDsgIgorfCAgIHN0
eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibHVlOyAiCiB8ICAgIlRoaXMgc2hvdWxkIGhhdmUgYmx1
ZSBib3JkZXIgd2hlbiBpdHMgcGFzdGVkLiIKIHwgIlRoaXMgc2hvdWxkbid0IGhhdmUgYSBib3Jk
ZXIuPCNzZWxlY3Rpb24tY2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTExODA0KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTIt
MDMtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY3NzVGV4
dCBzaG91bGQgdXNlIHNob3J0aGFuZCBub3RhdGlvbnMgd2hlbiBnZW5lcmF0aW5nIGlubGluZSBz
dHlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
NzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBSZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3RzIGFuZCBhZGQgYSByZWdyZXNzaW9uIHRlc3Qg
Zm9yIHVucHJlZml4ZWQgQ1NTIHByb3BlcnRpZXMgd2l0aCB0aGUgZXhjZXB0aW9uCisgICAgICAg
IG9mIC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwvdmVydGljYWwtc3BhY2luZyAodGhlIHNob3J0
aGFuZCB2ZXJzaW9uIG9mIHRoZXNlIHByb3BlcnRpZXMgKGJvcmRlci1zcGFjaW5nKQorICAgICAg
ICBpcyB1bnByZWZpeGVkLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFu
ZC1zYW5pdGl6ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLWFuZC1zYW5pdGl6ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvbm9uLWluaGVy
aXRhYmxlLXN0eWxlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY3NzVGV4dC1z
aG9ydGhhbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jc3NUZXh0
LXNob3J0aGFuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtc2hvcnRo
YW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0
bWw6CisgICAgICAgICogZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBwcmludGluZy9wYWdlLXJ1bGUtY3NzLXRleHQtZXhwZWN0ZWQudHh0
OgorCiAyMDEyLTAzLTIyICBEYXZlIFRoYXJwICA8ZHRoYXJwQGNvZGVhdXJvcmEub3JnPgogCiAg
ICAgICAgIFFUIDQuOCBzb2Z0IGh5cGhlbiBidWcgaGFzIG5vIGZhaWxpbmcgdGVzdCBjYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133590</attachid>
            <date>2012-03-23 17:17:20 -0700</date>
            <delta_ts>2012-03-23 17:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81737-20120323171719.patch</filename>
            <type>text/plain</type>
            <size>32787</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGNzc1RleHQgc2hvdWxkIHVzZSBz
aG9ydGhhbmQgbm90YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTczNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBzaG9ydGhhbmQgcHJvcGVydGllcyB0byBzZXJpYWxpemUgc3R5bGUgcHJv
cGVydGllcyBmb3IgY3NzVGV4dC4KKworICAgICAgICBUaGUgb3ZlcmFsbCBhbGdvcml0aG0gaXMg
dG8gbG9vayBmb3IgYW55IHByb3BlcnR5IHRoYXQgaGFzIGEgc2hvcnRoYW5kLCBhbmQgdGhlbiBj
aGVjayBpZgorICAgICAgICB0aGUgc2hvcnRoYW5kIHZhbHVlIGNvdWxkIGJlIG9idGFpbmVkICh0
aGUgY29uZGl0aW9uIGlzIHF1aXRlIGNvbXBsaWNhdGVkIGZvciBib3JkZXIgcHJvcGVydGllcyku
CisgICAgICAgIElmIGl0IGNvdWxkLCB0aGVuIGFwcGVuZCB0aGF0IHZhbHVlIHRvIHRoZSBzdHJp
bmcgYnVpbGRlciwgYW5kIHNldCB0aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGluCisgICAgICAg
IHNob3J0aGFuZFByb3BlcnR5QXBwZWFyZWQgYW5kIHNob3J0aGFuZFByb3BlcnR5VXNlZC4gSWYg
bm90LCBvbmx5IHR1cm4gb24gdGhlIGJpdCBpbgorICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUFw
cGVhcmVkIG9uIHRvIGF2b2lkIGNhbGxpbmcgZ2V0UHJvcGVydHlWYWx1ZSBhZ2FpbiBmb3IgbG9u
Z2hhbmQgcHJvcGVydGllcworICAgICAgICB0aGF0IHVzZSB0aGUgc2FtZSBzaG9ydGhhbmQgcHJv
cGVydHkgd2hlbiB3ZSBjYW5ub3QgdXNlIHRoZSBzaG9ydGhhbmQuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxlUHJv
cGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0
KToKKwogMjAxMi0wMy0yMyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBNYXRjaCBET000IHNwZWMgd2l0aCByZXNwZWN0IHRvIERvY3VtZW50RnJhZ21lbnQgaW5z
ZXJ0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCShyZXZp
c2lvbiAxMTE4OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC02NTQsMjUg
KzY1NSwxNzcgQEAgU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmFzVGV4dCgpIGNvbnN0CiAgICAg
Y29uc3QgQ1NTUHJvcGVydHkqIHJlcGVhdFhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9wZXJ0
eSogcmVwZWF0WVByb3AgPSAwOwogCisgICAgLy8gRklYTUU6IFN0YWNrLWFsbG9jYXRlIHRoZSBi
dWZmZXIgZm9yIHRoZXNlIEJpdFZlY3RvcnMuCisgICAgQml0VmVjdG9yIHNob3J0aGFuZFByb3Bl
cnR5VXNlZDsKKyAgICBCaXRWZWN0b3Igc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZDsKKwogICAg
IHVuc2lnbmVkIHNpemUgPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQg
biA9IDA7IG4gPCBzaXplOyArK24pIHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3Ag
PSBtX3Byb3BlcnRpZXNbbl07Ci0gICAgICAgIHN3aXRjaCAocHJvcC5pZCgpKSB7CisgICAgICAg
IGludCBwcm9wZXJ0eUlEID0gcHJvcC5pZCgpOworICAgICAgICBpbnQgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IDA7CisKKyAgICAgICAgc3dpdGNoIChwcm9wZXJ0eUlEKSB7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YOgogICAgICAgICAgICAgcG9zaXRpb25YUHJv
cCA9ICZwcm9wOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblk6CiAgICAgICAgICAgICBw
b3NpdGlvbllQcm9wID0gJnByb3A7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFg6CiAgICAg
ICAgICAgICByZXBlYXRYUHJvcCA9ICZwcm9wOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZ
OgogICAgICAgICAgICAgcmVwZWF0WVByb3AgPSAmcHJvcDsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyV2lkdGg6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJUb3BXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJp
Z2h0V2lkdGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlclN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5
bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJMZWZ0U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJDb2xvcjoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
ckJvdHRvbUNvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgor
ICAgICAgICAgICAgLy8gRklYTUU6IERlYWwgd2l0aCBjYXNlcyB3aGVyZSBvbmx5IHNvbWUgb2Yg
Ym9yZGVyLSh0b3B8cmlnaHR8Ym90dG9tfGxlZnQpIGFyZSBzcGVjaWZpZWQuCisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlCb3JkZXI7CisgICAgICAgICAgICBp
ZiAoc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZC5nZXQoQ1NTUHJvcGVydHlCb3JkZXIgLSBmaXJz
dENTU1Byb3BlcnR5KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBib3JkZXJBYnJpZGdlZExvbmdoYW5kKCkubGVuZ3RoKCkgJiYg
c2hvcnRoYW5kUHJvcGVydHlJRDsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgQ1NTUHJv
cGVydHlMb25naGFuZCYgbG9uZ2hhbmQgPSAqKGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQoKS5sb25n
aGFuZHNGb3JJbml0aWFsaXphdGlvbigpW2ldKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29t
bW9uVmFsdWU7CisgICAgICAgICAgICAgICAgYm9vbCBjb21tb25JbXBvcnRhbmNlOworICAgICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgbG9uZ2hhbmQubGVuZ3RoKCk7ICsraikg
eworICAgICAgICAgICAgICAgICAgICBpbnQgaWQgPSBsb25naGFuZC5wcm9wZXJ0aWVzKClbal07
CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBnZXRQcm9wZXJ0
eUNTU1ZhbHVlKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9
IHZhbHVlID8gdmFsdWUtPmNzc1RleHQoKSA6IFN0cmluZygpOworICAgICAgICAgICAgICAgICAg
ICBib29sIGlzSW1wb3J0YW50ID0gcHJvcGVydHlJc0ltcG9ydGFudChpZCk7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChqICYmIChjdXJyZW50VmFsdWUgIT0gY29tbW9uVmFsdWUgfHwgY29tbW9u
SW1wb3J0YW5jZSAhPSBpc0ltcG9ydGFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNo
b3J0aGFuZFByb3BlcnR5SUQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFqKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tb25WYWx1ZSA9IGN1cnJlbnRWYWx1ZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1vbkltcG9ydGFuY2UgPSBpc0ltcG9ydGFudDsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVySG9yaXpvbnRh
bFNwYWNpbmc6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJWZXJ0aWNhbFNw
YWNpbmc6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlCb3Jk
ZXJTcGFjaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlG
b250RmFtaWx5OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGluZUhlaWdodDoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTaXplOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0
eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQ6CisgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlGb250V2VpZ2h0OgorICAgICAgICAgICAgLy8gRG9uJ3QgdXNlIENTU1Byb3Bl
cnR5Rm9udCBiZWNhdXNlIG9sZCBVQXMgY2FuJ3QgcmVjb2duaXplIHRoZW0gYnV0IGFyZSBpbXBv
cnRhbnQgZm9yIGVkaXRpbmcuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUxpc3RTdHlsZVR5cGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVQ
b3NpdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZUltYWdlOgorICAgICAg
ICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5TGlzdFN0eWxlOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5SaWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1h
cmdpbkJvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQ6CisgICAgICAg
ICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlNYXJnaW47CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVXaWR0aDoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU91
dGxpbmVDb2xvcjoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0
eU91dGxpbmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92
ZXJmbG93WDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICAgICAgICAg
IHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU92ZXJmbG93OworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
Z0JvdHRvbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgorICAgICAgICAg
ICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5UGFkZGluZzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uTmFtZToKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkR1cmF0aW9uOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EZWxheToKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGU6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0g
Q1NTUHJvcGVydHlXZWJraXRBbmltYXRpb247CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJlY3Rpb246CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRGbGV4V3JhcDoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25YOgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFza1Bvc2l0aW9uWToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFg6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5
SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZToKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXNrQXR0YWNobWVudDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlv
bjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tDbGlwOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFza09yaWdpbjoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3Bl
cnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2s7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblg6CisgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5ZOgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWjoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5
SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpbjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblByb3BlcnR5OgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5OgorICAgICAgICAgICAgc2hvcnRo
YW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3c6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwTWFyZ2luOgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0V3JhcFBhZGRpbmc6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0g
Q1NTUHJvcGVydHlXZWJraXRXcmFwOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHByb3AuY3NzVGV4dCgpKTsKICAgICAgICAg
fQorCisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgdW5zaWduZWQgc2hvcnRQcm9wZXJ0
eUluZGV4ID0gc2hvcnRoYW5kUHJvcGVydHlJRCAtIGZpcnN0Q1NTUHJvcGVydHk7CisgICAgICAg
IGlmIChzaG9ydGhhbmRQcm9wZXJ0eUlEKSB7CisgICAgICAgICAgICBpZiAoc2hvcnRoYW5kUHJv
cGVydHlVc2VkLmdldChzaG9ydFByb3BlcnR5SW5kZXgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgaWYgKCFzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmdldChzaG9y
dFByb3BlcnR5SW5kZXgpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0UHJvcGVydHlWYWx1
ZShzaG9ydGhhbmRQcm9wZXJ0eUlEKTsKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5QXBw
ZWFyZWQuZW5zdXJlU2l6ZUFuZFNldChzaG9ydFByb3BlcnR5SW5kZXgsIG51bUNTU1Byb3BlcnRp
ZXMpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkgeworICAgICAg
ICAgICAgcHJvcGVydHlJRCA9IHNob3J0aGFuZFByb3BlcnR5SUQ7CisgICAgICAgICAgICBzaG9y
dGhhbmRQcm9wZXJ0eVVzZWQuZW5zdXJlU2l6ZUFuZFNldChzaG9ydFByb3BlcnR5SW5kZXgsIG51
bUNTU1Byb3BlcnRpZXMpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gcHJv
cC52YWx1ZSgpLT5jc3NUZXh0KCk7CisKKyAgICAgICAgaWYgKHZhbHVlID09ICJpbml0aWFsIiAm
JiAhQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICByZXN1bHQuYXBwZW5kKGdldFByb3BlcnR5TmFtZShz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSkpOworICAgICAgICByZXN1bHQu
YXBwZW5kKCI6ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChwcm9wLmlzSW1wb3J0YW50KCkgPyAiICFpbXBvcnRhbnQiIDogIiIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKCI7ICIpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGEgbm90LXNvLW5pY2Ugd2F5IHRvIHR1cm4geC95IHBvc2l0aW9ucyBpbnRvIHNpbmdsZSBiYWNr
Z3JvdW5kLXBvc2l0aW9uIGluIG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTkyOCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDEyLTAzLTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGNz
c1RleHQgc2hvdWxkIHVzZSBzaG9ydGhhbmQgbm90YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTczNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgZXhpc3RpbmcgdGVzdHMgYW5k
IGFkZCBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgdW5wcmVmaXhlZCBDU1MgcHJvcGVydGllcyB3aXRo
CisgICAgICAgIHRoZSBleGNlcHRpb24gb2YgLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRhbC92ZXJ0
aWNhbC1zcGFjaW5nICh0aGUgc2hvcnRoYW5kIHZlcnNpb24gb2YKKyAgICAgICAgdGhlc2UgcHJv
cGVydGllcyAoYm9yZGVyLXNwYWNpbmcpIGlzIHVucHJlZml4ZWQuCisKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLWV4cGVjdGVkLnR4dDogVXNlcyBib3Jk
ZXIgaW5zdGVhZCBvZiBsb25naGFuZAorICAgICAgICBwcm9wZXJ0aWVzIGFzIGRlc2lyZWQuCisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc3R5bGUvbm9uLWluaGVyaXRhYmxlLXN0eWxlcy1leHBlY3RlZC50eHQ6
IERpdHRvLgorICAgICAgICAqIGZhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXpl
LWV4cGVjdGVkLnR4dDogTm8gbG9uZ2VyIGVtaXRzICJiYWNrZ3JvdW5kLSo6CisgICAgICAgIGlu
aXRpYWwiIGFzIGRlc2lyZWQuCisgICAgICAgICogZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFu
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0bWw6IE1vZGlm
aWVkIHRvIGRvIGVsYWJvcmF0aXZlIGNvbXBhcmlzb24gb2YgdGhlIGxpc3RzIG9mCisgICAgICAg
IHByb3BlcnRpZXMgYmVmb3JlIGFuZCBhZnRlciByZW1vdmluZyBhIHNob3J0aGFuZCBzaW5jZSBu
b3cgcmVtb3ZpbmcgYSBzaG9ydGhhbmQgcHJvcGVydHkKKyAgICAgICAgbWF5IGVuZCB1cCBhZGRp
bmcgbmV3IGxvbmdoYW5kIHByb3BlcnR5LgorICAgICAgICAqIGZhc3QvY3NzL3VyaS10b2tlbi1w
YXJzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy91cmktdG9rZW4tcGFyc2lu
Zy5odG1sOiBVc2VzIHNob3J0aGFuZCBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgbG9uZ2hhbmQgZXF1
aXZhbGVudHMuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20t
anMtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBwcmludGluZy9wYWdlLXJ1bGUtY3Nz
LXRleHQtZXhwZWN0ZWQudHh0OiBEaXR0by4KKwogMjAxMi0wMy0yMyAgRW1pbCBBIEVrbHVuZCAg
PGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0X2V4cGVjdGF0aW9u
cyB1cGRhdGUgZm9yIGNocm9taXVtLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBA
QCBQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGI+PGk+SGVsbG88L2k+CiBQQVNTIGNvbmZpcm1l
ZE1hcmt1cCBpcyAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGI+SGVsbG88L2I+
PC9kaXY+JwogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxkaXY+PGI+PGk+aGVsbG88L2k+PC9i
PjwvZGl2PjxkaXY+PGI+PGk+d29ybGQ8L2k+PC9iPjwvZGl2PicKIFBBU1MgY29uZmlybWVkTWFy
a3VwIGlzICc8Yj48aT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgIj48Yj48aT5o
ZWxsbzE8L2k+PC9iPjxiPjxpPiZuYnNwO2hlbGxvMjwvaT48L2I+PC9zcGFuPjwvaT48L2I+Jwot
UEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxpIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyBtYXJn
aW4tcmlnaHQ6IDEwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyAi
PjxiPjxpIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IG1hcmdp
bi1ib3R0b206IDEwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyAiPmhlbGxvPC9pPjwvYj48L2k+Jwor
RkFJTCBjb25maXJtZWRNYXJrdXAgc2hvdWxkIGJlIDxpIHN0eWxlPSJtYXJnaW46IDEwcHg7ICI+
aGVsbG88L2k+PC9iPjwvaT4uIFdhcyA8aSBzdHlsZT0ibWFyZ2luOiAxMHB4OyAiPjxiPjxpIHN0
eWxlPSJtYXJnaW46IDEwcHg7ICI+aGVsbG88L2k+PC9iPjwvaT4uCiBQQVNTIGNvbmZpcm1lZE1h
cmt1cCBpcyAnPGI+PGk+SGVsbG8mbmJzcDt3b3JsZDwvaT48L2I+JwogUEFTUyBjb25maXJtZWRN
YXJrdXAgaXMgJzxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyAiPnBsYWlu
IHRleHQ8Yj48aT5ib2xkIGl0YWxpYyB0ZXh0PC9pPjwvYj48L3NwYW4+PC9pPjwvYj4nCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS5odG1sCShyZXZpc2lvbiAx
MTE4OTIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0
aXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgdGVzdFBhc3RlKCJkaXYi
LCAiPGRpdj48Yj48aT48c3BhbiBzdHlsZQogICAgICAgICAgICI8ZGl2PjxiPjxpPmhlbGxvPC9p
PjwvYj48L2Rpdj48ZGl2PjxiPjxpPndvcmxkPC9pPjwvYj48L2Rpdj4iKTsKIHRlc3RQYXN0ZSgi
ZGl2IiwgIjxkaXY+PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsOyBcIj48
Yj48aT5oZWxsbzE8L2k+PC9iPjxiPjxpPiBoZWxsbzI8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPjwv
ZGl2PiIsICI8Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWw7IFwiPjxiPjxp
PmhlbGxvMTwvaT48L2I+PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4i
KTsKIHRlc3RQYXN0ZSgiZGl2IiwgIjxpIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPjxiPjxpIHN0
eWxlPVwibWFyZ2luOiAxMHB4O1wiPmhlbGxvPC9pPjwvYj48L2k+IiwKLSAgICAgICAgICAiPGkg
c3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IG1hcmdpbi1ib3R0
b206IDEwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyBcIj48Yj48aSBzdHlsZT1cIm1hcmdpbi10b3A6
IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxl
ZnQ6IDEwcHg7IFwiPmhlbGxvPC9pPjwvYj48L2k+Iik7CisgICAgICAgICAgIjxpIHN0eWxlPVwi
bWFyZ2luOiAxMHB4OyBcIj5oZWxsbzwvaT48L2I+PC9pPiIpOwogdGVzdFBhc3RlKCJkaXYiLCAi
PGRpdj48Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWxcIj48Yj48aT5IZWxs
byA8IS0tIGNvbW1lbnQgLS0+d29ybGQ8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPjwvZGl2PiIsICI8
Yj48aT5IZWxsbyZuYnNwO3dvcmxkPC9pPjwvYj4iKTsKIHRlc3RQYXN0ZSgiZGl2IiwgIjxkaXY+
PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsXCI+cGxhaW4gdGV4dDxiPjxp
PmJvbGQgaXRhbGljIHRleHQ8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPjwvZGl2PiIsICI8Yj48aT48
c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWw7IFwiPnBsYWluIHRleHQ8Yj48aT5ib2xk
IGl0YWxpYyB0ZXh0PC9pPjwvYj48L3NwYW4+PC9pPjwvYj4iKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS9ub24taW5oZXJpdGFibGUtc3R5bGVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJsZS1zdHls
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3N0eWxlL25vbi1pbmhlcml0YWJsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0zLDYgKzMsNiBAQCBUaGlzIHRlc3RzIGNvcHkuICBOb24taW5oZXJpdGFibGUgc3R5bGVz
CiB8IDxkaXY+CiB8ICAgY2xhc3M9ImNsYXNzIgogfCAgIGlkPSJpZCIKLXwgICBzdHlsZT0iYm9y
ZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRv
bS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBz
b2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29s
aWQ7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogYmx1ZTsgYm9y
ZGVyLXJpZ2h0LWNvbG9yOiBibHVlOyBib3JkZXItYm90dG9tLWNvbG9yOiBibHVlOyBib3JkZXIt
bGVmdC1jb2xvcjogYmx1ZTsgYm9yZGVyLWltYWdlOiBpbml0aWFsOyAiCit8ICAgc3R5bGU9ImJv
cmRlcjogMXB4IHNvbGlkIGJsdWU7ICIKIHwgICAiVGhpcyBzaG91bGQgaGF2ZSBibHVlIGJvcmRl
ciB3aGVuIGl0cyBwYXN0ZWQuIgogfCAiVGhpcyBzaG91bGRuJ3QgaGF2ZSBhIGJvcmRlci48I3Nl
bGVjdGlvbi1jYXJldD4iCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBv
c2l0aW9uLXNlcmlhbGl6ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9u
LXNlcmlhbGl6ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU5LDQgKzU5LDQgQEAg
UEFTUzogdC5zdHlsZS5jc3NUZXh0IHNob3VsZCBiZSBiYWNrZ3JvdQogdC5zZXRBdHRyaWJ1dGUo
J3N0eWxlJywgJ2JhY2tncm91bmQ6IHVybChhYm91dDpibGFuaykgODAlIDgwJTsnKTsKIHQuc3R5
bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9ICc1MHB4Jwogc3R5bGUuY3NzVGV4dCA9Ci1iYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoYWJvdXQ6YmxhbmspOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGluaXRp
YWw7IGJhY2tncm91bmQtb3JpZ2luOiBpbml0aWFsOyBiYWNrZ3JvdW5kLWNsaXA6IGluaXRpYWw7
IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7IGJhY2tncm91bmQtcG9zaXRpb246IDgwJSA1MHB4
OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOworYmFja2dyb3VuZC1pbWFnZTog
dXJsKGFib3V0OmJsYW5rKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogODAlIDUwcHg7IGJhY2tncm91
bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
c3NUZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACitUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgdXNlcyBz
aG9ydGhhbmQgbm90YXRpb25zIGZvciBjc3NUZXh0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAi
Ym9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1l
bnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogMXB4IHNvbGlkIHJlZCIKK1BBU1Mgbm9ybWFs
aXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBpbml0aWFs
IHJlZCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJi
b3JkZXI6IGluaXRpYWwgaW5pdGlhbCByZWQiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVu
dC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsIgorUEFTUyBu
b3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlci1ib3R0b20t
d2lkdGg6IDNweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAy
cHg7IGJvcmRlci10b3Atd2lkdGg6IDFweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50
LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0
LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAy
cHgiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9y
ZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmln
aHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQiCitQQVNTIG5v
cm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyLWJvdHRvbS13
aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFw
eDsgYm9yZGVyLXRvcC1jb2xvcjogcmVkOyBib3JkZXItdG9wLXdpZHRoOiAxcHgiCitQQVNTIG5v
cm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiBpbml0aWFs
IGRvdHRlZCBpbml0aWFsIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3Nz
VGV4dCkgaXMgImJvcmRlci1zcGFjaW5nOiAxcHggMnB4IgorUEFTUyBub3JtYWxpemVDc3NUZXh0
KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBmb250
LXNpemU6IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsgbGluZS1o
ZWlnaHQ6IDJlbSIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQp
IGlzICJsaXN0LXN0eWxlOiBjaXJjbGUgaW5zaWRlIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVs
ZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgIm1hcmdpbjogMXB4IDJweCAzcHggNHB4IgorUEFTUyBu
b3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgIm91dGxpbmU6IDJweCBk
b3R0ZWQgYmx1ZSIKK0ZBSUwgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQp
IHNob3VsZCBiZSBvdmVyZmxvdzogc2Nyb2xsIGhpZGRlbi4gV2FzIG92ZXJmbG93LXg6IHNjcm9s
bDsgb3ZlcmZsb3cteTogaGlkZGVuLgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5
bGUuY3NzVGV4dCkgaXMgInBhZGRpbmc6IDFweCAycHggM3B4IDRweCIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgdXNlcyBzaG9ydGhhbmQgbm90YXRp
b25zIGZvciBjc3NUZXh0Iik7CisKK3ZhciB0ZXN0cyA9IFsKKyAgICAvLyBGSVhNRTogVGhpcyBl
eGhpYml0cyBhIGJ1Zy4gV2Ugc2hvdWxkbid0IGJlIG91dHB1dGluZyBib3JkZXItaW1hZ2UgaGVy
ZS4KKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAxcHg7JywgJ2JvcmRlcjogMXB4IGlu
aXRpYWwgaW5pdGlhbDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4IHNvbGlkIHJlZDsnLCAnYm9yZGVy
OiAxcHggc29saWQgcmVkOyddLAorICAgIFsnYm9yZGVyOiAxcHggcmVkOycsICdib3JkZXI6IDFw
eCBpbml0aWFsIHJlZDsnXSwKKyAgICBbJ2JvcmRlcjogcmVkOycsICdib3JkZXI6IGluaXRpYWwg
aW5pdGlhbCByZWQ7J10sCisgICAgWydib3JkZXItdG9wOiAxcHg7IGJvcmRlci1yaWdodDogMXB4
OyBib3JkZXItYm90dG9tOiAxcHg7IGJvcmRlci1sZWZ0OiAxcHg7JywgJ2JvcmRlcjogMXB4IGlu
aXRpYWwgaW5pdGlhbDsnXSwKKyAgICBbJ2JvcmRlci10b3A6IDFweDsgYm9yZGVyLXJpZ2h0OiAy
cHg7IGJvcmRlci1ib3R0b206IDNweDsgYm9yZGVyLWxlZnQ6IDRweDsnLAorICAgICdib3JkZXIt
dG9wLXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMnB4OyBib3JkZXItYm90dG9tLXdp
ZHRoOiAzcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7J10sCisgICAgWydib3JkZXI6IDFweDsg
Ym9yZGVyLXRvcDogMnB4OycsCisgICAgJ2JvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXIt
Ym90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lk
dGg6IDJweDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAxcHggIWltcG9ydGFu
dDsnLAorICAgICdib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDog
MXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9y
dGFudDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wLWNvbG9yOiByZWQ7JywKKyAg
ICAnYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9y
ZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLWNv
bG9yOiByZWQ7J10sCisgICAgWydib3JkZXI6IHNvbGlkOyBib3JkZXItc3R5bGU6IGRvdHRlZCcs
ICdib3JkZXI6IGluaXRpYWwgZG90dGVkIGluaXRpYWw7J10sCisKKyAgICBbJy13ZWJraXQtYm9y
ZGVyLWhvcml6b250YWwtc3BhY2luZzogMXB4OyAtd2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFj
aW5nOiAycHg7JywgJ2JvcmRlci1zcGFjaW5nOiAxcHggMnB4OyddLAorCisgICAgLy8gV2UgZG9u
J3QgdXNlIHNob3J0aGFuZCBmb3IgZm9udC1mYW1pbHksIGV0Yy4uLiBmb3IgY29tcGF0aWJpbGl0
eSByZWFzb25zCisgICAgWydmb250LWZhbWlseTogc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6IDJl
bTsgZm9udC1zaXplOiAzZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7
JywKKyAgICAgICAgJ2ZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDogMmVtOyBm
b250LXNpemU6IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsnXSwK
KworICAgIFsnbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IGxpc3Qtc3R5bGUtcG9zaXRpb246IGlu
c2lkZTsnLCAnbGlzdC1zdHlsZTogY2lyY2xlIGluc2lkZTsnXSwKKyAgICBbJ21hcmdpbi10b3A6
IDFweDsgbWFyZ2luLXJpZ2h0OiAycHg7IG1hcmdpbi1ib3R0b206IDNweDsgbWFyZ2luLWxlZnQ6
IDRweDsnLCAnbWFyZ2luOiAxcHggMnB4IDNweCA0cHg7J10sCisgICAgWydvdXRsaW5lLXdpZHRo
OiAycHg7IG91dGxpbmUtc3R5bGU6IGRvdHRlZDsgb3V0bGluZS1jb2xvcjogYmx1ZTsnLCAnb3V0
bGluZTogMnB4IGRvdHRlZCBibHVlOyddLAorICAgIFsnb3ZlcmZsb3cteDogc2Nyb2xsOyBvdmVy
Zmxvdy15OiBoaWRkZW47JywgJ292ZXJmbG93OiBzY3JvbGwgaGlkZGVuOyddLAorICAgIFsncGFk
ZGluZy10b3A6IDFweDsgcGFkZGluZy1yaWdodDogMnB4OyBwYWRkaW5nLWJvdHRvbTogM3B4OyBw
YWRkaW5nLWxlZnQ6IDRweDsnLCAncGFkZGluZzogMXB4IDJweCAzcHggNHB4OyddLAorXTsKKwor
ZnVuY3Rpb24gbm9ybWFsaXplQ3NzVGV4dCh0ZXh0KSB7IHJldHVybiB0ZXh0LnRyaW0oKS5zcGxp
dCgvO1xzKi8pLnNvcnQoKS5zbGljZSgxKS5qb2luKCI7ICIpOyB9CisKK3ZhciBlbGVtZW50Owor
dGVzdHMuZm9yRWFjaChmdW5jdGlvbiAodGVzdCkgeworICAgIHZhciBzdHlsZUF0dHJpYnV0ZSA9
IHRlc3RbMF07CisgICAgdmFyIGV4cGVjdGVkQ3NzVGV4dCA9IHRlc3RbMV07CisKKyAgICBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgZWxlbWVudC5zZXRBdHRy
aWJ1dGUoJ3N0eWxlJywgc3R5bGVBdHRyaWJ1dGUpOworCisgICAgc2hvdWxkQmUoJ25vcm1hbGl6
ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KScsICciJyArIG5vcm1hbGl6ZUNzc1RleHQo
ZXhwZWN0ZWRDc3NUZXh0KSArICciJyk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5k
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cmVtb3ZlLXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMjcgKzIs
NzUgQEAgVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1ZwogCiBTdGFydGlu
ZyB3aXRoIGEgZGVjbGFyYXRpb24gY29udGFpbmluZyBhbGwgcHJvcGVydGllcyB0aGF0IGFyZSBj
b25zdGl0dWVudHMgb2Ygc2hvcnRjdXRzLCBzZWUgd2hhdCBpcyByZW1vdmVkIHdoZW4gYSBzaG9y
dGN1dCBwcm9wZXJ0eSBpcyByZW1vdmVkLiBUaGUgc2hvcnRjdXTigJlzIGNvbnN0aXR1ZW50cyBh
bmQgb25seSB0aGVtIHNob3VsZCBiZSByZW1vdmVkLgogCi1SZW1vdmluZyBiYWNrZ3JvdW5kIHJl
bW92ZXMgYmFja2dyb3VuZC1pbWFnZSwgYmFja2dyb3VuZC1hdHRhY2htZW50LCBiYWNrZ3JvdW5k
LW9yaWdpbiwgYmFja2dyb3VuZC1jbGlwLCBiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLXBv
c2l0aW9uLCBiYWNrZ3JvdW5kLXJlcGVhdC4KLVJlbW92aW5nIGJhY2tncm91bmQtcG9zaXRpb24g
cmVtb3ZlcyBiYWNrZ3JvdW5kLXBvc2l0aW9uLgotUmVtb3ZpbmcgYm9yZGVyIHJlbW92ZXMgYm9y
ZGVyLXRvcC13aWR0aCwgYm9yZGVyLXJpZ2h0LXdpZHRoLCBib3JkZXItYm90dG9tLXdpZHRoLCBi
b3JkZXItbGVmdC13aWR0aCwgYm9yZGVyLXRvcC1zdHlsZSwgYm9yZGVyLXJpZ2h0LXN0eWxlLCBi
b3JkZXItYm90dG9tLXN0eWxlLCBib3JkZXItbGVmdC1zdHlsZSwgYm9yZGVyLXRvcC1jb2xvciwg
Ym9yZGVyLXJpZ2h0LWNvbG9yLCBib3JkZXItYm90dG9tLWNvbG9yLCBib3JkZXItbGVmdC1jb2xv
ci4KLVJlbW92aW5nIGJvcmRlci10b3AgcmVtb3ZlcyBib3JkZXItdG9wLXdpZHRoLCBib3JkZXIt
dG9wLXN0eWxlLCBib3JkZXItdG9wLWNvbG9yLgotUmVtb3ZpbmcgYm9yZGVyLXJpZ2h0IHJlbW92
ZXMgYm9yZGVyLXJpZ2h0LXdpZHRoLCBib3JkZXItcmlnaHQtc3R5bGUsIGJvcmRlci1yaWdodC1j
b2xvci4KLVJlbW92aW5nIGJvcmRlci1ib3R0b20gcmVtb3ZlcyBib3JkZXItYm90dG9tLXdpZHRo
LCBib3JkZXItYm90dG9tLXN0eWxlLCBib3JkZXItYm90dG9tLWNvbG9yLgotUmVtb3ZpbmcgYm9y
ZGVyLWxlZnQgcmVtb3ZlcyBib3JkZXItbGVmdC13aWR0aCwgYm9yZGVyLWxlZnQtc3R5bGUsIGJv
cmRlci1sZWZ0LWNvbG9yLgotUmVtb3ZpbmcgYm9yZGVyLWNvbG9yIHJlbW92ZXMgYm9yZGVyLXRv
cC1jb2xvciwgYm9yZGVyLXJpZ2h0LWNvbG9yLCBib3JkZXItYm90dG9tLWNvbG9yLCBib3JkZXIt
bGVmdC1jb2xvci4KLVJlbW92aW5nIGJvcmRlci1zdHlsZSByZW1vdmVzIGJvcmRlci10b3Atc3R5
bGUsIGJvcmRlci1yaWdodC1zdHlsZSwgYm9yZGVyLWJvdHRvbS1zdHlsZSwgYm9yZGVyLWxlZnQt
c3R5bGUuCi1SZW1vdmluZyBib3JkZXItd2lkdGggcmVtb3ZlcyBib3JkZXItdG9wLXdpZHRoLCBi
b3JkZXItcmlnaHQtd2lkdGgsIGJvcmRlci1ib3R0b20td2lkdGgsIGJvcmRlci1sZWZ0LXdpZHRo
LgotUmVtb3ZpbmcgYm9yZGVyLXJhZGl1cyByZW1vdmVzIGJvcmRlci10b3AtbGVmdC1yYWRpdXMs
IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgYm9y
ZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cy4KLVJlbW92aW5nIC13ZWJraXQtYm9yZGVyLXJhZGl1cyBy
ZW1vdmVzIGJvcmRlci10b3AtbGVmdC1yYWRpdXMsIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCBi
b3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cy4KLVJl
bW92aW5nIGJvcmRlci1zcGFjaW5nIHJlbW92ZXMgLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRhbC1z
cGFjaW5nLCAtd2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5nLgotUmVtb3ZpbmcgLXdlYmtp
dC1jb2x1bW5zIHJlbW92ZXMgLXdlYmtpdC1jb2x1bW4td2lkdGgsIC13ZWJraXQtY29sdW1uLWNv
dW50LgotUmVtb3ZpbmcgLXdlYmtpdC1jb2x1bW4tcnVsZSByZW1vdmVzIC13ZWJraXQtY29sdW1u
LXJ1bGUtd2lkdGgsIC13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGUsIC13ZWJraXQtY29sdW1uLXJ1
bGUtY29sb3IuCi1SZW1vdmluZyBsaXN0LXN0eWxlIHJlbW92ZXMgbGlzdC1zdHlsZS10eXBlLCBs
aXN0LXN0eWxlLXBvc2l0aW9uLCBsaXN0LXN0eWxlLWltYWdlLgotUmVtb3ZpbmcgbWFyZ2luIHJl
bW92ZXMgbWFyZ2luLXRvcCwgbWFyZ2luLXJpZ2h0LCBtYXJnaW4tYm90dG9tLCBtYXJnaW4tbGVm
dC4KLVJlbW92aW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHJlbW92ZXMgLXdlYmtpdC1tYXJn
aW4tYmVmb3JlLWNvbGxhcHNlLCAtd2Via2l0LW1hcmdpbi1hZnRlci1jb2xsYXBzZS4KLVJlbW92
aW5nIC13ZWJraXQtbWFycXVlZSByZW1vdmVzIC13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb24sIC13
ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQsIC13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9uLCAtd2Vi
a2l0LW1hcnF1ZWUtc3R5bGUsIC13ZWJraXQtbWFycXVlZS1zcGVlZC4KLVJlbW92aW5nIC13ZWJr
aXQtbWFzayByZW1vdmVzIC13ZWJraXQtbWFzay1pbWFnZSwgLXdlYmtpdC1tYXNrLXJlcGVhdC14
LCAtd2Via2l0LW1hc2stcmVwZWF0LXksIC13ZWJraXQtbWFzay1hdHRhY2htZW50LCAtd2Via2l0
LW1hc2stcG9zaXRpb24teCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXksIC13ZWJraXQtbWFzay1v
cmlnaW4sIC13ZWJraXQtbWFzay1jbGlwLgotUmVtb3ZpbmcgLXdlYmtpdC1tYXNrLXBvc2l0aW9u
IHJlbW92ZXMgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXgsIC13ZWJraXQtbWFzay1wb3NpdGlvbi15
LgotUmVtb3Zpbmcgb3ZlcmZsb3cgcmVtb3ZlcyBvdmVyZmxvdy14LCBvdmVyZmxvdy15LgotUmVt
b3ZpbmcgcGFkZGluZyByZW1vdmVzIHBhZGRpbmctdG9wLCBwYWRkaW5nLXJpZ2h0LCBwYWRkaW5n
LWJvdHRvbSwgcGFkZGluZy1sZWZ0LgotUmVtb3ZpbmcgLXdlYmtpdC10ZXh0LXN0cm9rZSByZW1v
dmVzIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IsIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGgu
CitSZW1vdmluZyBiYWNrZ3JvdW5kCityZW1vdmVzICJiYWNrZ3JvdW5kLWltYWdlLCBiYWNrZ3Jv
dW5kLWF0dGFjaG1lbnQsIGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtcG9zaXRpb24sIGJh
Y2tncm91bmQtcmVwZWF0IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBiYWNrZ3JvdW5kLXBvc2l0
aW9uCityZW1vdmVzICJiYWNrZ3JvdW5kLXBvc2l0aW9uIgorYW5kIGFkZHMgIiIuCitSZW1vdmlu
ZyBib3JkZXIKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgYm9yZGVy
LXRvcAorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRlci1yaWdodC13aWR0aCxib3Jk
ZXItYm90dG9tLXdpZHRoLGJvcmRlci1sZWZ0LXdpZHRoLGJvcmRlci1yaWdodC1zdHlsZSxib3Jk
ZXItYm90dG9tLXN0eWxlLGJvcmRlci1sZWZ0LXN0eWxlLGJvcmRlci1yaWdodC1jb2xvcixib3Jk
ZXItYm90dG9tLWNvbG9yLGJvcmRlci1sZWZ0LWNvbG9yIi4KK1JlbW92aW5nIGJvcmRlci1yaWdo
dAorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRlci10b3Atd2lkdGgsYm9yZGVyLWJv
dHRvbS13aWR0aCxib3JkZXItbGVmdC13aWR0aCxib3JkZXItdG9wLXN0eWxlLGJvcmRlci1ib3R0
b20tc3R5bGUsYm9yZGVyLWxlZnQtc3R5bGUsYm9yZGVyLXRvcC1jb2xvcixib3JkZXItYm90dG9t
LWNvbG9yLGJvcmRlci1sZWZ0LWNvbG9yIi4KK1JlbW92aW5nIGJvcmRlci1ib3R0b20KK3JlbW92
ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXItdG9wLXdpZHRoLGJvcmRlci1yaWdodC13aWR0
aCxib3JkZXItbGVmdC13aWR0aCxib3JkZXItdG9wLXN0eWxlLGJvcmRlci1yaWdodC1zdHlsZSxi
b3JkZXItbGVmdC1zdHlsZSxib3JkZXItdG9wLWNvbG9yLGJvcmRlci1yaWdodC1jb2xvcixib3Jk
ZXItbGVmdC1jb2xvciIuCitSZW1vdmluZyBib3JkZXItbGVmdAorcmVtb3ZlcyAiYm9yZGVyIgor
YW5kIGFkZHMgImJvcmRlci10b3Atd2lkdGgsYm9yZGVyLXJpZ2h0LXdpZHRoLGJvcmRlci1ib3R0
b20td2lkdGgsYm9yZGVyLXRvcC1zdHlsZSxib3JkZXItcmlnaHQtc3R5bGUsYm9yZGVyLWJvdHRv
bS1zdHlsZSxib3JkZXItdG9wLWNvbG9yLGJvcmRlci1yaWdodC1jb2xvcixib3JkZXItYm90dG9t
LWNvbG9yIi4KK1JlbW92aW5nIGJvcmRlci1jb2xvcgorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFk
ZHMgImJvcmRlciIuCitSZW1vdmluZyBib3JkZXItc3R5bGUKK3JlbW92ZXMgImJvcmRlciIKK2Fu
ZCBhZGRzICJib3JkZXIiLgorUmVtb3ZpbmcgYm9yZGVyLXdpZHRoCityZW1vdmVzICJib3JkZXIi
CithbmQgYWRkcyAiYm9yZGVyIi4KK1JlbW92aW5nIGJvcmRlci1yYWRpdXMKK3JlbW92ZXMgImJv
cmRlci10b3AtbGVmdC1yYWRpdXMsIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCBib3JkZXItYm90
dG9tLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIKK2FuZCBhZGRzICIi
LgorUmVtb3ZpbmcgLXdlYmtpdC1ib3JkZXItcmFkaXVzCityZW1vdmVzICJib3JkZXItdG9wLWxl
ZnQtcmFkaXVzLCBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdodC1y
YWRpdXMsIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiCithbmQgYWRkcyAiIi4KK1JlbW92aW5n
IGJvcmRlci1zcGFjaW5nCityZW1vdmVzICJib3JkZXItc3BhY2luZyIKK2FuZCBhZGRzICIiLgor
UmVtb3ZpbmcgLXdlYmtpdC1jb2x1bW5zCityZW1vdmVzICItd2Via2l0LWNvbHVtbi13aWR0aCwg
LXdlYmtpdC1jb2x1bW4tY291bnQiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtY29s
dW1uLXJ1bGUKK3JlbW92ZXMgIi13ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGgsIC13ZWJraXQtY29s
dW1uLXJ1bGUtc3R5bGUsIC13ZWJraXQtY29sdW1uLXJ1bGUtY29sb3IiCithbmQgYWRkcyAiIi4K
K1JlbW92aW5nIGxpc3Qtc3R5bGUKK3JlbW92ZXMgImxpc3Qtc3R5bGUtdHlwZSwgbGlzdC1zdHls
ZS1wb3NpdGlvbiwgbGlzdC1zdHlsZS1pbWFnZSIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgbWFy
Z2luCityZW1vdmVzICJtYXJnaW4iCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlCityZW1vdmVzICItd2Via2l0LW1hcmdpbi1iZWZvcmUtY29sbGFwc2UsIC13
ZWJraXQtbWFyZ2luLWFmdGVyLWNvbGxhcHNlIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Vi
a2l0LW1hcnF1ZWUKK3JlbW92ZXMgIi13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb24sIC13ZWJraXQt
bWFycXVlZS1pbmNyZW1lbnQsIC13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9uLCAtd2Via2l0LW1h
cnF1ZWUtc3R5bGUsIC13ZWJraXQtbWFycXVlZS1zcGVlZCIKK2FuZCBhZGRzICIiLgorUmVtb3Zp
bmcgLXdlYmtpdC1tYXNrCityZW1vdmVzICItd2Via2l0LW1hc2ssIC13ZWJraXQtbWFzay1yZXBl
YXQsIC13ZWJraXQtbWFzay1wb3NpdGlvbiIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgLXdlYmtp
dC1tYXNrLXBvc2l0aW9uCityZW1vdmVzICItd2Via2l0LW1hc2stcG9zaXRpb24iCithbmQgYWRk
cyAiIi4KK1JlbW92aW5nIG92ZXJmbG93CityZW1vdmVzICJvdmVyZmxvdyIKK2FuZCBhZGRzICIi
LgorUmVtb3ZpbmcgcGFkZGluZworcmVtb3ZlcyAicGFkZGluZyIKK2FuZCBhZGRzICIiLgorUmVt
b3ZpbmcgLXdlYmtpdC10ZXh0LXN0cm9rZQorcmVtb3ZlcyAiLXdlYmtpdC10ZXh0LXN0cm9rZS1j
b2xvciwgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aCIKK2FuZCBhZGRzICIiLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLXNob3J0aGFuZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQuaHRtbAkocmV2aXNpb24gMTExODky
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLXNob3J0aGFuZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCwxNCArMzAsMTggQEAKICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUucmVt
b3ZlUHJvcGVydHkoc2hvcnRoYW5kKTsKICAgICAgICAgICAgIHZhciByZW1haW5pbmdQcm9wZXJ0
aWVzID0gZWxlbWVudC5zdHlsZS5jc3NUZXh0LnNwbGl0KCI7ICIpOwogICAgICAgICAgICAgdmFy
IHJlbW92ZWRQcm9wZXJ0aWVzID0gW107Ci0gICAgICAgICAgICB2YXIgcDsKLSAgICAgICAgICAg
IHdoaWxlIChwID0gYWxsUHJvcGVydGllcy5zaGlmdCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHJlbWFpbmluZ1Byb3BlcnRpZXNbMF0gPT0gcCkKLSAgICAgICAgICAgICAgICAgICAgcmVtYWlu
aW5nUHJvcGVydGllcy5zaGlmdCgpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgcmVtb3ZlZFByb3BlcnRpZXMucHVzaCgiPHR0PiIgKyBwLnJlcGxhY2UoL1w6Liov
LCIiKSArICI8L3R0PiIpOworICAgICAgICAgICAgdmFyIGFkZGVkUHJvcGVydGllcyA9IFtdOwor
CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbFByb3BlcnRpZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpZiAocmVtYWluaW5nUHJvcGVydGllcy5pbmRleE9mKGFs
bFByb3BlcnRpZXNbaV0pIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZFByb3BlcnRp
ZXMucHVzaCgiPHR0PiIgKyBhbGxQcm9wZXJ0aWVzW2ldLnJlcGxhY2UoL1w6LiovLCIiKSArICI8
L3R0PiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZW1haW5pbmdQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFs
bFByb3BlcnRpZXMuaW5kZXhPZihyZW1haW5pbmdQcm9wZXJ0aWVzW2ldKSA8IDApCisgICAgICAg
ICAgICAgICAgICAgIGFkZGVkUHJvcGVydGllcy5wdXNoKCI8dHQ+IiArIHJlbWFpbmluZ1Byb3Bl
cnRpZXNbaV0ucmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+Iik7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBsb2coIlJlbW92aW5nIDx0dD4iICsgc2hvcnRoYW5kICsgIjwvdHQ+IHJlbW92
ZXMgIiArIHJlbW92ZWRQcm9wZXJ0aWVzLmpvaW4oIiwgIikgKyIuIik7CisgICAgICAgICAgICBs
b2coIlJlbW92aW5nIDx0dD4iICsgc2hvcnRoYW5kICsgJzwvdHQ+PGJyPnJlbW92ZXMgIicgKyBy
ZW1vdmVkUHJvcGVydGllcy5qb2luKCIsICIpCisgICAgICAgICAgICAgICAgKyAnIjxicj5hbmQg
YWRkcyAiJyArIGFkZGVkUHJvcGVydGllcyArICciLicpOwogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10
b2tlbi1wYXJzaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy91cmktdG9rZW4tcGFyc2luZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10b2tlbi1wYXJzaW5nLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTksOSArMTksOSBAQCBSdWxlcyBmcm9tIHRoZSBzdHlsZXNoZWV0Ogog
I28geyBjb250ZW50OiB1cmwoZik7IH0KICNwIHsgY29udGVudDogdXJsKCd1cmwoZyknKTsgfQog
I3EgeyBjdXJzb3I6IHVybCgndXJsKHEpJyk7IH0KLSNyIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJs
KCd1cmwociknKTsgfQorI3IgeyBsaXN0LXN0eWxlOiB1cmwoJ3VybChyKScpOyB9CiAjcyB7IGJh
Y2tncm91bmQtaW1hZ2U6IHVybCgndXJsKHMpJyk7IH0KLSN0IHsgLXdlYmtpdC1tYXNrLWltYWdl
OiB1cmwoJ3VybCh0KScpOyB9CisjdCB7IC13ZWJraXQtbWFzazogdXJsKCd1cmwodCknKTsgfQog
I3UgeyAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKCd1cmwodSknKSAxIDIgMyA0IGZpbGwgc3Ry
ZXRjaCByb3VuZDsgfQogI3YgeyAtd2Via2l0LW1hc2stYm94LWltYWdlOiB1cmwoJ3VybCh2KScp
IDEgMiAzIDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9CiAjdyB7IGNvbnRlbnQ6IHVybCh3dyk7IH0K
QEAgLTQ0LDkgKzQ0LDkgQEAgRXhwZWN0ZWQgcmVzdWx0OgogI28geyBjb250ZW50OiB1cmwoZik7
IH0KICNwIHsgY29udGVudDogdXJsKCd1cmwoZyknKTsgfQogI3EgeyBjdXJzb3I6IHVybCgndXJs
KHEpJyk7IH0KLSNyIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCd1cmwociknKTsgfQorI3IgeyBs
aXN0LXN0eWxlOiB1cmwoJ3VybChyKScpOyB9CiAjcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgn
dXJsKHMpJyk7IH0KLSN0IHsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJ3VybCh0KScpOyB9Cisj
dCB7IC13ZWJraXQtbWFzazogdXJsKCd1cmwodCknKTsgfQogI3UgeyAtd2Via2l0LWJvcmRlci1p
bWFnZTogdXJsKCd1cmwodSknKSAxIDIgMyA0IGZpbGwgc3RyZXRjaCByb3VuZDsgfQogI3YgeyAt
d2Via2l0LW1hc2stYm94LWltYWdlOiB1cmwoJ3VybCh2KScpIDEgMiAzIDQgZmlsbCBzdHJldGNo
IHJvdW5kOyB9CiAjdyB7IGNvbnRlbnQ6IHVybCh3dyk7IH0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzL3VyaS10b2tlbi1wYXJzaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMTExODkyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmcuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtOTMsOSArOTMsOSBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICNvIHsgY29udGVudDogdXJsKGYp
OyB9CiAjcCB7IGNvbnRlbnQ6IHVybCgndXJsKGcpJyk7IH0KICNxIHsgY3Vyc29yOiB1cmwoJ3Vy
bChxKScpOyB9Ci0jciB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgndXJsKHIpJyk7IH0KKyNyIHsg
bGlzdC1zdHlsZTogdXJsKCd1cmwociknKTsgfQogI3MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
J3VybChzKScpOyB9Ci0jdCB7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKCd1cmwodCknKTsgfQor
I3QgeyAtd2Via2l0LW1hc2s6IHVybCgndXJsKHQpJyk7IH0KICN1IHsgLXdlYmtpdC1ib3JkZXIt
aW1hZ2U6IHVybCgndXJsKHUpJykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN2IHsg
LXdlYmtpdC1tYXNrLWJveC1pbWFnZTogdXJsKCd1cmwodiknKSAxIDIgMyA0IGZpbGwgc3RyZXRj
aCByb3VuZDsgfQogI3cgeyBjb250ZW50OiB1cmwod3cpOyB9CkluZGV4OiBMYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20t
anMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDcgKzMzLDcgQEAgY29sb3I6ICNDMEZGRUU7CiAKIAogUnVubmluZzogdGVzdFNl
dFZpYVBhcnNlZEF0dHJpYnV0ZXMKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImNvbG9yOiBy
Z2IoMTkyLCAyNTUsIDIzOCk7IGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDsgYm9yZGVyLXJpZ2h0
LXN0eWxlOiBkYXNoZWQ7IGJvcmRlci1ib3R0b20tc3R5bGU6IGRhc2hlZDsgYm9yZGVyLWxlZnQt
c3R5bGU6IGRhc2hlZDsgYm9yZGVyLXRvcC1jb2xvcjogZ3JlZW47IGJvcmRlci1yaWdodC1jb2xv
cjogZ3JlZW47IGJvcmRlci1ib3R0b20tY29sb3I6IGdyZWVuOyBib3JkZXItbGVmdC1jb2xvcjog
Z3JlZW47IGJvcmRlci1pbWFnZTogaW5pdGlhbDsgYm9yZGVyLXRvcC13aWR0aDogM3B4OyBib3Jk
ZXItcmlnaHQtd2lkdGg6IDNweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogM3B4OyBib3JkZXItbGVm
dC13aWR0aDogM3B4OyAiPjwvZGl2PgorPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6
IHJnYigxOTIsIDI1NSwgMjM4KTsgYm9yZGVyOiAzcHggZGFzaGVkIGdyZWVuOyAiPjwvZGl2Pgog
W2V4cGFuZGVkXSAKIGVsZW1lbnQuc3R5bGUgIHsgKCkKIGNvbG9yOiAjQzBGRkVFOwpAQCAtNDYs
NyArNDYsNiBAQCBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47CiAgICAgYm9yZGVyLXJpZ2h0LWNv
bG9yOiBncmVlbjsKICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBncmVlbjsKICAgICBib3JkZXIt
bGVmdC1jb2xvcjogZ3JlZW47Ci1ib3JkZXItaW1hZ2U6IGluaXRpYWw7CiBib3JkZXItd2lkdGg6
IDNweDsKICAgICBib3JkZXItdG9wLXdpZHRoOiAzcHg7CiAgICAgYm9yZGVyLXJpZ2h0LXdpZHRo
OiAzcHg7CkluZGV4OiBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtY3NzLXRleHQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1j
c3MtdGV4dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL3By
aW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzEsMTAgQEAKIEBwYWdlIHsgbWFyZ2luLXRvcDogNWNtOyBtYXJnaW4tYm90dG9tOiAx
MGNtOyB9CiBAcGFnZSA6bGVmdCB7IG1hcmdpbi1yaWdodDogM2NtOyB9CiBAcGFnZSA6cmlnaHQg
eyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1AcGFnZSA6Zmlyc3QgeyBib3JkZXItdG9wLXdpZHRoOiAx
cHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJv
cmRlci1sZWZ0LXdpZHRoOiAxcHg7IH0KK0BwYWdlIDpmaXJzdCB7IGJvcmRlcjogMXB4OyB9CiBA
cGFnZSBoZWxsbyB7IGNvbG9yOiBncmVlbjsgfQogQHBhZ2Ugd29ybGQ6cmlnaHQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIHByaW50IHsgQHBhZ2Ugc29tZXBhZ2U6Zmlyc3Qg
eyBtYXJnaW4tdG9wOiAzY207IG1hcmdpbi1yaWdodDogM2NtOyBtYXJnaW4tYm90dG9tOiAzY207
IG1hcmdpbi1sZWZ0OiAzY207IH0gfQorQG1lZGlhIHByaW50IHsgQHBhZ2Ugc29tZXBhZ2U6Zmly
c3QgeyBtYXJnaW46IDNjbTsgfSB9CiBAcGFnZSBhdXRvX3BhZ2UgeyBzaXplOiBhdXRvOyB9CiBA
cGFnZSBzcXVhcmVfcGFnZSB7IHNpemU6IDRpbjsgfQogQHBhZ2UgbGV0dGVyX3BhZ2UgeyBzaXpl
OiBsZXR0ZXI7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133596</attachid>
            <date>2012-03-23 17:36:25 -0700</date>
            <delta_ts>2012-03-23 17:58:02 -0700</delta_ts>
            <desc>Added the missing BitVector change</desc>
            <filename>bug-81737-20120323173624.patch</filename>
            <type>text/plain</type>
            <size>33998</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTE5MzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTIzICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIGNzc1RleHQgc2hvdWxkIHVzZSBzaG9ydGhhbmQgbm90
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTczNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL0JpdFZlY3Rvci5oOgorICAgICAgICAoQml0VmVjdG9yKToKKyAgICAgICAgKFdURjo6Qml0
VmVjdG9yOjplbnN1cmVTaXplQW5kU2V0KTogQWRkZWQuCisKIDIwMTItMDMtMjMgIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQs
IG1vdmUgYSBjb21tZW50IGNsb3NlciB0byB3aGVyZSBpdCBtYXR0ZXJzIGFuZApJbmRleDogU291
cmNlL1dURi93dGYvQml0VmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQml0
VmVjdG9yLmgJKHJldmlzaW9uIDExMTg5MikKKysrIFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNyArMTQ2LDEzIEBAIHB1YmxpYzogCiAgICAgICAgIGVu
c3VyZVNpemUoYml0ICsgMSk7CiAgICAgICAgIHF1aWNrU2V0KGJpdCk7CiAgICAgfQotICAgIAor
CisgICAgdm9pZCBlbnN1cmVTaXplQW5kU2V0KHNpemVfdCBiaXQsIHNpemVfdCBzaXplKQorICAg
IHsKKyAgICAgICAgZW5zdXJlU2l6ZShzaXplKTsKKyAgICAgICAgcXVpY2tTZXQoYml0KTsKKyAg
ICB9CisKICAgICB2b2lkIGNsZWFyKHNpemVfdCBiaXQpCiAgICAgewogICAgICAgICBpZiAoYml0
ID49IHNpemUoKSkKQEAgLTE2MSw2ICsxNjcsNyBAQCBwdWJsaWM6IAogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBjbGVhcihiaXQpOwogICAgIH0KKwogICAgIAogICAgIHZvaWQgZHVtcChGSUxF
KiBvdXQpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTExOTI4KQorKysgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTIt
MDMtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY3NzVGV4
dCBzaG91bGQgdXNlIHNob3J0aGFuZCBub3RhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNob3J0aGFuZCBwcm9wZXJ0aWVzIHRvIHNlcmlh
bGl6ZSBzdHlsZSBwcm9wZXJ0aWVzIGZvciBjc3NUZXh0LgorCisgICAgICAgIFRoZSBvdmVyYWxs
IGFsZ29yaXRobSBpcyB0byBsb29rIGZvciBhbnkgcHJvcGVydHkgdGhhdCBoYXMgYSBzaG9ydGhh
bmQsIGFuZCB0aGVuIGNoZWNrIGlmCisgICAgICAgIHRoZSBzaG9ydGhhbmQgdmFsdWUgY291bGQg
YmUgb2J0YWluZWQgKHRoZSBjb25kaXRpb24gaXMgcXVpdGUgY29tcGxpY2F0ZWQgZm9yIGJvcmRl
ciBwcm9wZXJ0aWVzKS4KKyAgICAgICAgSWYgaXQgY291bGQsIHRoZW4gYXBwZW5kIHRoYXQgdmFs
dWUgdG8gdGhlIHN0cmluZyBidWlsZGVyLCBhbmQgc2V0IHRoZSBjb3JyZXNwb25kaW5nIGVudHJp
ZXMgaW4KKyAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZCBhbmQgc2hvcnRoYW5kUHJv
cGVydHlVc2VkLiBJZiBub3QsIG9ubHkgdHVybiBvbiB0aGUgYml0IGluCisgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5QXBwZWFyZWQgb24gdG8gYXZvaWQgY2FsbGluZyBnZXRQcm9wZXJ0eVZhbHVl
IGFnYWluIGZvciBsb25naGFuZCBwcm9wZXJ0aWVzCisgICAgICAgIHRoYXQgdXNlIHRoZSBzYW1l
IHNob3J0aGFuZCBwcm9wZXJ0eSB3aGVuIHdlIGNhbm5vdCB1c2UgdGhlIHNob3J0aGFuZC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCisKKyAgICAgICAg
KiBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3Bl
cnR5U2V0Ojphc1RleHQpOgorCiAyMDEyLTAzLTIzICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1hdGNoIERPTTQgc3BlYyB3aXRoIHJlc3BlY3QgdG8gRG9jdW1l
bnRGcmFnbWVudCBpbnNlcnRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAJKHJldmlzaW9uIDExMTg5MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKQEAgLTY1NCwyNSArNjU1LDE3NyBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0
KCkgY29uc3QKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WFByb3AgPSAwOwogICAgIGNv
bnN0IENTU1Byb3BlcnR5KiByZXBlYXRZUHJvcCA9IDA7CiAKKyAgICAvLyBGSVhNRTogU3RhY2st
YWxsb2NhdGUgdGhlIGJ1ZmZlciBmb3IgdGhlc2UgQml0VmVjdG9ycy4KKyAgICBCaXRWZWN0b3Ig
c2hvcnRoYW5kUHJvcGVydHlVc2VkOworICAgIEJpdFZlY3RvciBzaG9ydGhhbmRQcm9wZXJ0eUFw
cGVhcmVkOworCiAgICAgdW5zaWduZWQgc2l6ZSA9IG1fcHJvcGVydGllcy5zaXplKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IHNpemU7ICsrbikgewogICAgICAgICBjb25zdCBDU1NQ
cm9wZXJ0eSYgcHJvcCA9IG1fcHJvcGVydGllc1tuXTsKLSAgICAgICAgc3dpdGNoIChwcm9wLmlk
KCkpIHsKKyAgICAgICAgaW50IHByb3BlcnR5SUQgPSBwcm9wLmlkKCk7CisgICAgICAgIGludCBz
aG9ydGhhbmRQcm9wZXJ0eUlEID0gMDsKKworICAgICAgICBzd2l0Y2ggKHByb3BlcnR5SUQpIHsK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblg6CiAgICAgICAgICAg
ICBwb3NpdGlvblhQcm9wID0gJnByb3A7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWToK
ICAgICAgICAgICAgIHBvc2l0aW9uWVByb3AgPSAmcHJvcDsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
UmVwZWF0WDoKICAgICAgICAgICAgIHJlcGVhdFhQcm9wID0gJnByb3A7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFj
a2dyb3VuZFJlcGVhdFk6CiAgICAgICAgICAgICByZXBlYXRZUHJvcCA9ICZwcm9wOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRoOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyUmlnaHRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbVdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5
bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3I6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3Jk
ZXJMZWZ0Q29sb3I6CisgICAgICAgICAgICAvLyBGSVhNRTogRGVhbCB3aXRoIGNhc2VzIHdoZXJl
IG9ubHkgc29tZSBvZiBib3JkZXItKHRvcHxyaWdodHxib3R0b218bGVmdCkgYXJlIHNwZWNpZmll
ZC4KKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlcjsK
KyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmdldChDU1NQcm9wZXJ0
eUJvcmRlciAtIGZpcnN0Q1NTUHJvcGVydHkpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQo
KS5sZW5ndGgoKSAmJiBzaG9ydGhhbmRQcm9wZXJ0eUlEOyBpKyspIHsKKyAgICAgICAgICAgICAg
ICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBsb25naGFuZCA9ICooYm9yZGVyQWJyaWRnZWRM
b25naGFuZCgpLmxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKClbaV0pOworICAgICAgICAgICAg
ICAgIFN0cmluZyBjb21tb25WYWx1ZTsKKyAgICAgICAgICAgICAgICBib29sIGNvbW1vbkltcG9y
dGFuY2U7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBsb25naGFuZC5s
ZW5ndGgoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBpZCA9IGxvbmdoYW5kLnBy
b3BlcnRpZXMoKVtqXTsKKyAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1
ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWUoaWQpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcg
Y3VycmVudFZhbHVlID0gdmFsdWUgPyB2YWx1ZS0+Y3NzVGV4dCgpIDogU3RyaW5nKCk7CisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgaXNJbXBvcnRhbnQgPSBwcm9wZXJ0eUlzSW1wb3J0YW50KGlk
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGogJiYgKGN1cnJlbnRWYWx1ZSAhPSBjb21tb25W
YWx1ZSB8fCBjb21tb25JbXBvcnRhbmNlICE9IGlzSW1wb3J0YW50KSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IDA7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoIWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vblZhbHVlID0gY3VycmVudFZh
bHVlOworICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uSW1wb3J0YW5jZSA9IGlzSW1wb3J0
YW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRC
b3JkZXJIb3Jpem9udGFsU3BhY2luZzoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJv
cmRlclZlcnRpY2FsU3BhY2luZzoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBD
U1NQcm9wZXJ0eUJvcmRlclNwYWNpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVp
Z2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFNpemU6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlGb250U3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWFudDoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CisgICAgICAgICAgICAvLyBEb24n
dCB1c2UgQ1NTUHJvcGVydHlGb250IGJlY2F1c2Ugb2xkIFVBcyBjYW4ndCByZWNvZ25pemUgdGhl
bSBidXQgYXJlIGltcG9ydGFudCBmb3IgZWRpdGluZy4KKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZToKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUxpc3RTdHlsZVBvc2l0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxl
SW1hZ2U6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlMaXN0
U3R5bGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdp
blRvcDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5TWFyZ2luQm90dG9tOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2lu
TGVmdDoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU1hcmdp
bjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVdp
ZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVN0eWxlOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJ
RCA9IENTU1Byb3BlcnR5T3V0bGluZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcmZsb3dYOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZ
OgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZsb3c7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlQYWRkaW5nQm90dG9tOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xl
ZnQ6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlQYWRkaW5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmlt
YXRpb25OYW1lOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRp
b246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1pbmdGdW5jdGlv
bjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRlbGF5OgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EaXJlY3Rpb246CisgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25GaWxsTW9kZToKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleERpcmVjdGlvbjoKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhXcmFwOgorICAgICAgICAgICAgc2hvcnRoYW5k
UHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3c7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblg6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25ZOgorICAgICAgICAgICAgc2hvcnRo
YW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZOgorICAgICAgICAgICAgc2hv
cnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0ltYWdlOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdDoKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tBdHRhY2htZW50OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TWFza1Bvc2l0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0NsaXA6
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrT3JpZ2luOgorICAgICAgICAgICAg
c2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0TWFzazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWDoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblk6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5aOgorICAgICAgICAgICAgc2hv
cnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9u
UHJvcGVydHk6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRp
b246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rp
b246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRGVsYXk6CisgICAg
ICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9u
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFw
RmxvdzoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBNYXJnaW46CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwUGFkZGluZzoKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXA7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocHJvcC5jc3NUZXh0
KCkpOwogICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICB1bnNpZ25l
ZCBzaG9ydFByb3BlcnR5SW5kZXggPSBzaG9ydGhhbmRQcm9wZXJ0eUlEIC0gZmlyc3RDU1NQcm9w
ZXJ0eTsKKyAgICAgICAgaWYgKHNob3J0aGFuZFByb3BlcnR5SUQpIHsKKyAgICAgICAgICAgIGlm
IChzaG9ydGhhbmRQcm9wZXJ0eVVzZWQuZ2V0KHNob3J0UHJvcGVydHlJbmRleCkpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoIXNob3J0aGFuZFByb3BlcnR5QXBw
ZWFyZWQuZ2V0KHNob3J0UHJvcGVydHlJbmRleCkpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBn
ZXRQcm9wZXJ0eVZhbHVlKHNob3J0aGFuZFByb3BlcnR5SUQpOworICAgICAgICAgICAgc2hvcnRo
YW5kUHJvcGVydHlBcHBlYXJlZC5lbnN1cmVTaXplQW5kU2V0KHNob3J0UHJvcGVydHlJbmRleCwg
bnVtQ1NTUHJvcGVydGllcyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXZhbHVlLmlzTnVs
bCgpKSB7CisgICAgICAgICAgICBwcm9wZXJ0eUlEID0gc2hvcnRoYW5kUHJvcGVydHlJRDsKKyAg
ICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5VXNlZC5lbnN1cmVTaXplQW5kU2V0KHNob3J0UHJv
cGVydHlJbmRleCwgbnVtQ1NTUHJvcGVydGllcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdmFsdWUgPSBwcm9wLnZhbHVlKCktPmNzc1RleHQoKTsKKworICAgICAgICBpZiAodmFsdWUg
PT0gImluaXRpYWwiICYmICFDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0
eUlEKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0
UHJvcGVydHlOYW1lKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpKSk7Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoIjogIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQodmFsdWUp
OworICAgICAgICByZXN1bHQuYXBwZW5kKHByb3AuaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFu
dCIgOiAiIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIjsgIik7CiAgICAgfQogCiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgYSBub3Qtc28tbmljZSB3YXkgdG8gdHVybiB4L3kgcG9zaXRpb25zIGlu
dG8gc2luZ2xlIGJhY2tncm91bmQtcG9zaXRpb24gaW4gb3V0cHV0LgpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTExOTI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTItMDMtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgY3NzVGV4dCBzaG91bGQgdXNlIHNob3J0aGFuZCBub3RhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzM3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBleGlz
dGluZyB0ZXN0cyBhbmQgYWRkIGEgcmVncmVzc2lvbiB0ZXN0IGZvciB1bnByZWZpeGVkIENTUyBw
cm9wZXJ0aWVzIHdpdGgKKyAgICAgICAgdGhlIGV4Y2VwdGlvbiBvZiAtd2Via2l0LWJvcmRlci1o
b3Jpem9udGFsL3ZlcnRpY2FsLXNwYWNpbmcgKHRoZSBzaG9ydGhhbmQgdmVyc2lvbiBvZgorICAg
ICAgICB0aGVzZSBwcm9wZXJ0aWVzIChib3JkZXItc3BhY2luZykgaXMgdW5wcmVmaXhlZC4KKwor
ICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQu
dHh0OiBVc2VzIGJvcmRlciBpbnN0ZWFkIG9mIGxvbmdoYW5kCisgICAgICAgIHByb3BlcnRpZXMg
YXMgZGVzaXJlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0
aXplLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9ub24taW5oZXJpdGFibGUtc3R5bGVz
LWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZmFzdC9jc3MvYmFja2dyb3VuZC1wb3Np
dGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0OiBObyBsb25nZXIgZW1pdHMgImJhY2tncm91bmQt
KjoKKyAgICAgICAgaW5pdGlhbCIgYXMgZGVzaXJlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jc3NU
ZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nz
c1RleHQtc2hvcnRoYW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3JlbW92ZS1z
aG9ydGhhbmQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3JlbW92ZS1zaG9ydGhh
bmQuaHRtbDogTW9kaWZpZWQgdG8gZG8gZWxhYm9yYXRpdmUgY29tcGFyaXNvbiBvZiB0aGUgbGlz
dHMgb2YKKyAgICAgICAgcHJvcGVydGllcyBiZWZvcmUgYW5kIGFmdGVyIHJlbW92aW5nIGEgc2hv
cnRoYW5kIHNpbmNlIG5vdyByZW1vdmluZyBhIHNob3J0aGFuZCBwcm9wZXJ0eQorICAgICAgICBt
YXkgZW5kIHVwIGFkZGluZyBuZXcgbG9uZ2hhbmQgcHJvcGVydHkuCisgICAgICAgICogZmFzdC9j
c3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3Vy
aS10b2tlbi1wYXJzaW5nLmh0bWw6IFVzZXMgc2hvcnRoYW5kIHByb3BlcnRpZXMgaW5zdGVhZCBv
ZiBsb25naGFuZCBlcXVpdmFsZW50cy4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHByaW50aW5n
L3BhZ2UtcnVsZS1jc3MtdGV4dC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDEyLTAzLTIzICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRl
c3RfZXhwZWN0YXRpb25zIHVwZGF0ZSBmb3IgY2hyb21pdW0uCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXpl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgsNyArOCw3IEBAIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48aT5IZWxsbzwvaT4K
IFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48Yj5IZWxsbzwvYj48L2Rpdj4nCiBQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGRpdj48Yj48
aT5oZWxsbzwvaT48L2I+PC9kaXY+PGRpdj48Yj48aT53b3JsZDwvaT48L2I+PC9kaXY+JwogUEFT
UyBjb25maXJtZWRNYXJrdXAgaXMgJzxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9y
bWFsOyAiPjxiPjxpPmhlbGxvMTwvaT48L2I+PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3Nw
YW4+PC9pPjwvYj4nCi1QQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbi10
b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2lu
LWxlZnQ6IDEwcHg7ICI+PGI+PGkgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdo
dDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+aGVsbG88
L2k+PC9iPjwvaT4nCitGQUlMIGNvbmZpcm1lZE1hcmt1cCBzaG91bGQgYmUgPGkgc3R5bGU9Im1h
cmdpbjogMTBweDsgIj5oZWxsbzwvaT48L2I+PC9pPi4gV2FzIDxpIHN0eWxlPSJtYXJnaW46IDEw
cHg7ICI+PGI+PGkgc3R5bGU9Im1hcmdpbjogMTBweDsgIj5oZWxsbzwvaT48L2I+PC9pPi4KIFBB
U1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48aT5IZWxsbyZuYnNwO3dvcmxkPC9pPjwvYj4nCiBQ
QVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBu
b3JtYWw7ICI+cGxhaW4gdGV4dDxiPjxpPmJvbGQgaXRhbGljIHRleHQ8L2k+PC9iPjwvc3Bhbj48
L2k+PC9iPicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0
bWwJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9w
YXN0ZS1hbmQtc2FuaXRpemUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCB0
ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlCiAgICAgICAgICAgIjxkaXY+
PGI+PGk+aGVsbG88L2k+PC9iPjwvZGl2PjxkaXY+PGI+PGk+d29ybGQ8L2k+PC9iPjwvZGl2PiIp
OwogdGVzdFBhc3RlKCJkaXYiLCAiPGRpdj48Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0
OiBub3JtYWw7IFwiPjxiPjxpPmhlbGxvMTwvaT48L2I+PGI+PGk+IGhlbGxvMjwvaT48L2I+PC9z
cGFuPjwvaT48L2I+PC9kaXY+IiwgIjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5v
cm1hbDsgXCI+PGI+PGk+aGVsbG8xPC9pPjwvYj48Yj48aT4mbmJzcDtoZWxsbzI8L2k+PC9iPjwv
c3Bhbj48L2k+PC9iPiIpOwogdGVzdFBhc3RlKCJkaXYiLCAiPGkgc3R5bGU9XCJtYXJnaW46IDEw
cHg7XCI+PGI+PGkgc3R5bGU9XCJtYXJnaW46IDEwcHg7XCI+aGVsbG88L2k+PC9iPjwvaT4iLAot
ICAgICAgICAgICI8aSBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBw
eDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7IFwiPjxiPjxpIHN0eWxl
PVwibWFyZ2luLXRvcDogMTBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAx
MHB4OyBtYXJnaW4tbGVmdDogMTBweDsgXCI+aGVsbG88L2k+PC9iPjwvaT4iKTsKKyAgICAgICAg
ICAiPGkgc3R5bGU9XCJtYXJnaW46IDEwcHg7IFwiPmhlbGxvPC9pPjwvYj48L2k+Iik7CiB0ZXN0
UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5vcm1h
bFwiPjxiPjxpPkhlbGxvIDwhLS0gY29tbWVudCAtLT53b3JsZDwvaT48L2I+PC9zcGFuPjwvaT48
L2I+PC9kaXY+IiwgIjxiPjxpPkhlbGxvJm5ic3A7d29ybGQ8L2k+PC9iPiIpOwogdGVzdFBhc3Rl
KCJkaXYiLCAiPGRpdj48Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWxcIj5w
bGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+PC9k
aXY+IiwgIjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5vcm1hbDsgXCI+cGxhaW4g
dGV4dDxiPjxpPmJvbGQgaXRhbGljIHRleHQ8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPiIpOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJsZS1zdHlsZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbm9uLWlu
aGVyaXRhYmxlLXN0eWxlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvbm9uLWluaGVyaXRhYmxlLXN0eWxlcy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw2IEBAIFRoaXMgdGVzdHMgY29weS4gIE5vbi1pbmhl
cml0YWJsZSBzdHlsZXMKIHwgPGRpdj4KIHwgICBjbGFzcz0iY2xhc3MiCiB8ICAgaWQ9ImlkIgot
fCAgIHN0eWxlPSJib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4
OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRl
ci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOyBib3JkZXItYm90
dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNv
bG9yOiBibHVlOyBib3JkZXItcmlnaHQtY29sb3I6IGJsdWU7IGJvcmRlci1ib3R0b20tY29sb3I6
IGJsdWU7IGJvcmRlci1sZWZ0LWNvbG9yOiBibHVlOyBib3JkZXItaW1hZ2U6IGluaXRpYWw7ICIK
K3wgICBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmx1ZTsgIgogfCAgICJUaGlzIHNob3VsZCBo
YXZlIGJsdWUgYm9yZGVyIHdoZW4gaXRzIHBhc3RlZC4iCiB8ICJUaGlzIHNob3VsZG4ndCBoYXZl
IGEgYm9yZGVyLjwjc2VsZWN0aW9uLWNhcmV0PiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tn
cm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
NTksNCArNTksNCBAQCBQQVNTOiB0LnN0eWxlLmNzc1RleHQgc2hvdWxkIGJlIGJhY2tncm91CiB0
LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZDogdXJsKGFib3V0OmJsYW5rKSA4MCUg
ODAlOycpOwogdC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZID0gJzUwcHgnCiBzdHlsZS5jc3NU
ZXh0ID0KLWJhY2tncm91bmQtaW1hZ2U6IHVybChhYm91dDpibGFuayk7IGJhY2tncm91bmQtYXR0
YWNobWVudDogaW5pdGlhbDsgYmFja2dyb3VuZC1vcmlnaW46IGluaXRpYWw7IGJhY2tncm91bmQt
Y2xpcDogaW5pdGlhbDsgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsgYmFja2dyb3VuZC1wb3Np
dGlvbjogODAlIDUwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7CitiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoYWJvdXQ6YmxhbmspOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MCUg
NTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IFdlYktpdCB1c2VzIHNob3J0aGFuZCBub3RhdGlvbnMgZm9yIGNzc1RleHQKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxl
LmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBpbml0aWFsIGluaXRpYWwiCitQQVNTIG5vcm1hbGl6
ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiAxcHggc29saWQgcmVk
IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRl
cjogMXB4IGluaXRpYWwgcmVkIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUu
Y3NzVGV4dCkgaXMgImJvcmRlcjogaW5pdGlhbCBpbml0aWFsIHJlZCIKK1BBU1Mgbm9ybWFsaXpl
Q3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBpbml0aWFsIGlu
aXRpYWwiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAi
Ym9yZGVyLWJvdHRvbS13aWR0aDogM3B4OyBib3JkZXItbGVmdC13aWR0aDogNHB4OyBib3JkZXIt
cmlnaHQtd2lkdGg6IDJweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4IgorUEFTUyBub3JtYWxpemVD
c3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlci1ib3R0b20td2lkdGg6IDFw
eDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRl
ci10b3Atd2lkdGg6IDJweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNz
c1RleHQpIGlzICJib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAx
cHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9y
dGFudCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJi
b3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1y
aWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLWNvbG9yOiByZWQ7IGJvcmRlci10b3Atd2lkdGg6
IDFweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJi
b3JkZXI6IGluaXRpYWwgZG90dGVkIGluaXRpYWwiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxl
bWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyLXNwYWNpbmc6IDFweCAycHgiCitQQVNTIG5v
cm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiZm9udC1mYW1pbHk6IHNh
bnMtc2VyaWY7IGZvbnQtc2l6ZTogM2VtOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0
OiBib2xkOyBsaW5lLWhlaWdodDogMmVtIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQu
c3R5bGUuY3NzVGV4dCkgaXMgImxpc3Qtc3R5bGU6IGNpcmNsZSBpbnNpZGUiCitQQVNTIG5vcm1h
bGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAibWFyZ2luOiAxcHggMnB4IDNw
eCA0cHgiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAi
b3V0bGluZTogMnB4IGRvdHRlZCBibHVlIgorRkFJTCBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQu
c3R5bGUuY3NzVGV4dCkgc2hvdWxkIGJlIG92ZXJmbG93OiBzY3JvbGwgaGlkZGVuLiBXYXMgb3Zl
cmZsb3cteDogc2Nyb2xsOyBvdmVyZmxvdy15OiBoaWRkZW4uCitQQVNTIG5vcm1hbGl6ZUNzc1Rl
eHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAicGFkZGluZzogMXB4IDJweCAzcHggNHB4Igor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYktpdCB1c2VzIHNo
b3J0aGFuZCBub3RhdGlvbnMgZm9yIGNzc1RleHQiKTsKKwordmFyIHRlc3RzID0gWworICAgIC8v
IEZJWE1FOiBUaGlzIGV4aGliaXRzIGEgYnVnLiBXZSBzaG91bGRuJ3QgYmUgb3V0cHV0aW5nIGJv
cmRlci1pbWFnZSBoZXJlLgorICAgIFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3A6IDFweDsnLCAn
Ym9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsOyddLAorICAgIFsnYm9yZGVyOiAxcHggc29saWQg
cmVkOycsICdib3JkZXI6IDFweCBzb2xpZCByZWQ7J10sCisgICAgWydib3JkZXI6IDFweCByZWQ7
JywgJ2JvcmRlcjogMXB4IGluaXRpYWwgcmVkOyddLAorICAgIFsnYm9yZGVyOiByZWQ7JywgJ2Jv
cmRlcjogaW5pdGlhbCBpbml0aWFsIHJlZDsnXSwKKyAgICBbJ2JvcmRlci10b3A6IDFweDsgYm9y
ZGVyLXJpZ2h0OiAxcHg7IGJvcmRlci1ib3R0b206IDFweDsgYm9yZGVyLWxlZnQ6IDFweDsnLCAn
Ym9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFsOyddLAorICAgIFsnYm9yZGVyLXRvcDogMXB4OyBi
b3JkZXItcmlnaHQ6IDJweDsgYm9yZGVyLWJvdHRvbTogM3B4OyBib3JkZXItbGVmdDogNHB4Oycs
CisgICAgJ2JvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7IGJv
cmRlci1ib3R0b20td2lkdGg6IDNweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDsnXSwKKyAgICBb
J2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAycHg7JywKKyAgICAnYm9yZGVyLXJpZ2h0LXdpZHRo
OiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsg
Ym9yZGVyLXRvcC13aWR0aDogMnB4OyddLAorICAgIFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3A6
IDFweCAhaW1wb3J0YW50OycsCisgICAgJ2JvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXIt
Ym90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lk
dGg6IDFweCAhaW1wb3J0YW50OyddLAorICAgIFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3AtY29s
b3I6IHJlZDsnLAorICAgICdib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13
aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7
IGJvcmRlci10b3AtY29sb3I6IHJlZDsnXSwKKyAgICBbJ2JvcmRlcjogc29saWQ7IGJvcmRlci1z
dHlsZTogZG90dGVkJywgJ2JvcmRlcjogaW5pdGlhbCBkb3R0ZWQgaW5pdGlhbDsnXSwKKworICAg
IFsnLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRhbC1zcGFjaW5nOiAxcHg7IC13ZWJraXQtYm9yZGVy
LXZlcnRpY2FsLXNwYWNpbmc6IDJweDsnLCAnYm9yZGVyLXNwYWNpbmc6IDFweCAycHg7J10sCisK
KyAgICAvLyBXZSBkb24ndCB1c2Ugc2hvcnRoYW5kIGZvciBmb250LWZhbWlseSwgZXRjLi4uIGZv
ciBjb21wYXRpYmlsaXR5IHJlYXNvbnMKKyAgICBbJ2ZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBs
aW5lLWhlaWdodDogMmVtOyBmb250LXNpemU6IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250
LXdlaWdodDogYm9sZDsnLAorICAgICAgICAnZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGxpbmUt
aGVpZ2h0OiAyZW07IGZvbnQtc2l6ZTogM2VtOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2Vp
Z2h0OiBib2xkOyddLAorCisgICAgWydsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgbGlzdC1zdHls
ZS1wb3NpdGlvbjogaW5zaWRlOycsICdsaXN0LXN0eWxlOiBjaXJjbGUgaW5zaWRlOyddLAorICAg
IFsnbWFyZ2luLXRvcDogMXB4OyBtYXJnaW4tcmlnaHQ6IDJweDsgbWFyZ2luLWJvdHRvbTogM3B4
OyBtYXJnaW4tbGVmdDogNHB4OycsICdtYXJnaW46IDFweCAycHggM3B4IDRweDsnXSwKKyAgICBb
J291dGxpbmUtd2lkdGg6IDJweDsgb3V0bGluZS1zdHlsZTogZG90dGVkOyBvdXRsaW5lLWNvbG9y
OiBibHVlOycsICdvdXRsaW5lOiAycHggZG90dGVkIGJsdWU7J10sCisgICAgWydvdmVyZmxvdy14
OiBzY3JvbGw7IG92ZXJmbG93LXk6IGhpZGRlbjsnLCAnb3ZlcmZsb3c6IHNjcm9sbCBoaWRkZW47
J10sCisgICAgWydwYWRkaW5nLXRvcDogMXB4OyBwYWRkaW5nLXJpZ2h0OiAycHg7IHBhZGRpbmct
Ym90dG9tOiAzcHg7IHBhZGRpbmctbGVmdDogNHB4OycsICdwYWRkaW5nOiAxcHggMnB4IDNweCA0
cHg7J10sCitdOworCitmdW5jdGlvbiBub3JtYWxpemVDc3NUZXh0KHRleHQpIHsgcmV0dXJuIHRl
eHQudHJpbSgpLnNwbGl0KC87XHMqLykuc29ydCgpLnNsaWNlKDEpLmpvaW4oIjsgIik7IH0KKwor
dmFyIGVsZW1lbnQ7Cit0ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgdmFyIHN0
eWxlQXR0cmlidXRlID0gdGVzdFswXTsKKyAgICB2YXIgZXhwZWN0ZWRDc3NUZXh0ID0gdGVzdFsx
XTsKKworICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBl
bGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZUF0dHJpYnV0ZSk7CisKKyAgICBzaG91
bGRCZSgnbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpJywgJyInICsgbm9y
bWFsaXplQ3NzVGV4dChleHBlY3RlZENzc1RleHQpICsgJyInKTsKK30pOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9y
dGhhbmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3Jl
bW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMiwyNyArMiw3NSBAQCBUZXN0IGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnCiAKIFN0YXJ0aW5nIHdpdGggYSBkZWNsYXJhdGlvbiBjb250YWluaW5nIGFsbCBwcm9wZXJ0
aWVzIHRoYXQgYXJlIGNvbnN0aXR1ZW50cyBvZiBzaG9ydGN1dHMsIHNlZSB3aGF0IGlzIHJlbW92
ZWQgd2hlbiBhIHNob3J0Y3V0IHByb3BlcnR5IGlzIHJlbW92ZWQuIFRoZSBzaG9ydGN1dOKAmXMg
Y29uc3RpdHVlbnRzIGFuZCBvbmx5IHRoZW0gc2hvdWxkIGJlIHJlbW92ZWQuCiAKLVJlbW92aW5n
IGJhY2tncm91bmQgcmVtb3ZlcyBiYWNrZ3JvdW5kLWltYWdlLCBiYWNrZ3JvdW5kLWF0dGFjaG1l
bnQsIGJhY2tncm91bmQtb3JpZ2luLCBiYWNrZ3JvdW5kLWNsaXAsIGJhY2tncm91bmQtY29sb3Is
IGJhY2tncm91bmQtcG9zaXRpb24sIGJhY2tncm91bmQtcmVwZWF0LgotUmVtb3ZpbmcgYmFja2dy
b3VuZC1wb3NpdGlvbiByZW1vdmVzIGJhY2tncm91bmQtcG9zaXRpb24uCi1SZW1vdmluZyBib3Jk
ZXIgcmVtb3ZlcyBib3JkZXItdG9wLXdpZHRoLCBib3JkZXItcmlnaHQtd2lkdGgsIGJvcmRlci1i
b3R0b20td2lkdGgsIGJvcmRlci1sZWZ0LXdpZHRoLCBib3JkZXItdG9wLXN0eWxlLCBib3JkZXIt
cmlnaHQtc3R5bGUsIGJvcmRlci1ib3R0b20tc3R5bGUsIGJvcmRlci1sZWZ0LXN0eWxlLCBib3Jk
ZXItdG9wLWNvbG9yLCBib3JkZXItcmlnaHQtY29sb3IsIGJvcmRlci1ib3R0b20tY29sb3IsIGJv
cmRlci1sZWZ0LWNvbG9yLgotUmVtb3ZpbmcgYm9yZGVyLXRvcCByZW1vdmVzIGJvcmRlci10b3At
d2lkdGgsIGJvcmRlci10b3Atc3R5bGUsIGJvcmRlci10b3AtY29sb3IuCi1SZW1vdmluZyBib3Jk
ZXItcmlnaHQgcmVtb3ZlcyBib3JkZXItcmlnaHQtd2lkdGgsIGJvcmRlci1yaWdodC1zdHlsZSwg
Ym9yZGVyLXJpZ2h0LWNvbG9yLgotUmVtb3ZpbmcgYm9yZGVyLWJvdHRvbSByZW1vdmVzIGJvcmRl
ci1ib3R0b20td2lkdGgsIGJvcmRlci1ib3R0b20tc3R5bGUsIGJvcmRlci1ib3R0b20tY29sb3Iu
Ci1SZW1vdmluZyBib3JkZXItbGVmdCByZW1vdmVzIGJvcmRlci1sZWZ0LXdpZHRoLCBib3JkZXIt
bGVmdC1zdHlsZSwgYm9yZGVyLWxlZnQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItY29sb3IgcmVt
b3ZlcyBib3JkZXItdG9wLWNvbG9yLCBib3JkZXItcmlnaHQtY29sb3IsIGJvcmRlci1ib3R0b20t
Y29sb3IsIGJvcmRlci1sZWZ0LWNvbG9yLgotUmVtb3ZpbmcgYm9yZGVyLXN0eWxlIHJlbW92ZXMg
Ym9yZGVyLXRvcC1zdHlsZSwgYm9yZGVyLXJpZ2h0LXN0eWxlLCBib3JkZXItYm90dG9tLXN0eWxl
LCBib3JkZXItbGVmdC1zdHlsZS4KLVJlbW92aW5nIGJvcmRlci13aWR0aCByZW1vdmVzIGJvcmRl
ci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0aCwgYm9yZGVyLWJvdHRvbS13aWR0aCwgYm9y
ZGVyLWxlZnQtd2lkdGguCi1SZW1vdmluZyBib3JkZXItcmFkaXVzIHJlbW92ZXMgYm9yZGVyLXRv
cC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLgotUmVtb3ZpbmcgLXdlYmtpdC1i
b3JkZXItcmFkaXVzIHJlbW92ZXMgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1y
aWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxl
ZnQtcmFkaXVzLgotUmVtb3ZpbmcgYm9yZGVyLXNwYWNpbmcgcmVtb3ZlcyAtd2Via2l0LWJvcmRl
ci1ob3Jpem9udGFsLXNwYWNpbmcsIC13ZWJraXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNpbmcuCi1S
ZW1vdmluZyAtd2Via2l0LWNvbHVtbnMgcmVtb3ZlcyAtd2Via2l0LWNvbHVtbi13aWR0aCwgLXdl
YmtpdC1jb2x1bW4tY291bnQuCi1SZW1vdmluZyAtd2Via2l0LWNvbHVtbi1ydWxlIHJlbW92ZXMg
LXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aCwgLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHlsZSwgLXdl
YmtpdC1jb2x1bW4tcnVsZS1jb2xvci4KLVJlbW92aW5nIGxpc3Qtc3R5bGUgcmVtb3ZlcyBsaXN0
LXN0eWxlLXR5cGUsIGxpc3Qtc3R5bGUtcG9zaXRpb24sIGxpc3Qtc3R5bGUtaW1hZ2UuCi1SZW1v
dmluZyBtYXJnaW4gcmVtb3ZlcyBtYXJnaW4tdG9wLCBtYXJnaW4tcmlnaHQsIG1hcmdpbi1ib3R0
b20sIG1hcmdpbi1sZWZ0LgotUmVtb3ZpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcmVtb3Zl
cyAtd2Via2l0LW1hcmdpbi1iZWZvcmUtY29sbGFwc2UsIC13ZWJraXQtbWFyZ2luLWFmdGVyLWNv
bGxhcHNlLgotUmVtb3ZpbmcgLXdlYmtpdC1tYXJxdWVlIHJlbW92ZXMgLXdlYmtpdC1tYXJxdWVl
LWRpcmVjdGlvbiwgLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCwgLXdlYmtpdC1tYXJxdWVlLXJl
cGV0aXRpb24sIC13ZWJraXQtbWFycXVlZS1zdHlsZSwgLXdlYmtpdC1tYXJxdWVlLXNwZWVkLgot
UmVtb3ZpbmcgLXdlYmtpdC1tYXNrIHJlbW92ZXMgLXdlYmtpdC1tYXNrLWltYWdlLCAtd2Via2l0
LW1hc2stcmVwZWF0LXgsIC13ZWJraXQtbWFzay1yZXBlYXQteSwgLXdlYmtpdC1tYXNrLWF0dGFj
aG1lbnQsIC13ZWJraXQtbWFzay1wb3NpdGlvbi14LCAtd2Via2l0LW1hc2stcG9zaXRpb24teSwg
LXdlYmtpdC1tYXNrLW9yaWdpbiwgLXdlYmtpdC1tYXNrLWNsaXAuCi1SZW1vdmluZyAtd2Via2l0
LW1hc2stcG9zaXRpb24gcmVtb3ZlcyAtd2Via2l0LW1hc2stcG9zaXRpb24teCwgLXdlYmtpdC1t
YXNrLXBvc2l0aW9uLXkuCi1SZW1vdmluZyBvdmVyZmxvdyByZW1vdmVzIG92ZXJmbG93LXgsIG92
ZXJmbG93LXkuCi1SZW1vdmluZyBwYWRkaW5nIHJlbW92ZXMgcGFkZGluZy10b3AsIHBhZGRpbmct
cmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRkaW5nLWxlZnQuCi1SZW1vdmluZyAtd2Via2l0LXRl
eHQtc3Ryb2tlIHJlbW92ZXMgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvciwgLXdlYmtpdC10ZXh0
LXN0cm9rZS13aWR0aC4KK1JlbW92aW5nIGJhY2tncm91bmQKK3JlbW92ZXMgImJhY2tncm91bmQt
aW1hZ2UsIGJhY2tncm91bmQtYXR0YWNobWVudCwgYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3Vu
ZC1wb3NpdGlvbiwgYmFja2dyb3VuZC1yZXBlYXQiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIGJh
Y2tncm91bmQtcG9zaXRpb24KK3JlbW92ZXMgImJhY2tncm91bmQtcG9zaXRpb24iCithbmQgYWRk
cyAiIi4KK1JlbW92aW5nIGJvcmRlcgorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgIiIuCitS
ZW1vdmluZyBib3JkZXItdG9wCityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXJp
Z2h0LXdpZHRoLGJvcmRlci1ib3R0b20td2lkdGgsYm9yZGVyLWxlZnQtd2lkdGgsYm9yZGVyLXJp
Z2h0LXN0eWxlLGJvcmRlci1ib3R0b20tc3R5bGUsYm9yZGVyLWxlZnQtc3R5bGUsYm9yZGVyLXJp
Z2h0LWNvbG9yLGJvcmRlci1ib3R0b20tY29sb3IsYm9yZGVyLWxlZnQtY29sb3IiLgorUmVtb3Zp
bmcgYm9yZGVyLXJpZ2h0CityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13
aWR0aCxib3JkZXItYm90dG9tLXdpZHRoLGJvcmRlci1sZWZ0LXdpZHRoLGJvcmRlci10b3Atc3R5
bGUsYm9yZGVyLWJvdHRvbS1zdHlsZSxib3JkZXItbGVmdC1zdHlsZSxib3JkZXItdG9wLWNvbG9y
LGJvcmRlci1ib3R0b20tY29sb3IsYm9yZGVyLWxlZnQtY29sb3IiLgorUmVtb3ZpbmcgYm9yZGVy
LWJvdHRvbQorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRlci10b3Atd2lkdGgsYm9y
ZGVyLXJpZ2h0LXdpZHRoLGJvcmRlci1sZWZ0LXdpZHRoLGJvcmRlci10b3Atc3R5bGUsYm9yZGVy
LXJpZ2h0LXN0eWxlLGJvcmRlci1sZWZ0LXN0eWxlLGJvcmRlci10b3AtY29sb3IsYm9yZGVyLXJp
Z2h0LWNvbG9yLGJvcmRlci1sZWZ0LWNvbG9yIi4KK1JlbW92aW5nIGJvcmRlci1sZWZ0CityZW1v
dmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13aWR0aCxib3JkZXItcmlnaHQtd2lk
dGgsYm9yZGVyLWJvdHRvbS13aWR0aCxib3JkZXItdG9wLXN0eWxlLGJvcmRlci1yaWdodC1zdHls
ZSxib3JkZXItYm90dG9tLXN0eWxlLGJvcmRlci10b3AtY29sb3IsYm9yZGVyLXJpZ2h0LWNvbG9y
LGJvcmRlci1ib3R0b20tY29sb3IiLgorUmVtb3ZpbmcgYm9yZGVyLWNvbG9yCityZW1vdmVzICJi
b3JkZXIiCithbmQgYWRkcyAiYm9yZGVyIi4KK1JlbW92aW5nIGJvcmRlci1zdHlsZQorcmVtb3Zl
cyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRlciIuCitSZW1vdmluZyBib3JkZXItd2lkdGgKK3Jl
bW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXIiLgorUmVtb3ZpbmcgYm9yZGVyLXJhZGl1
cworcmVtb3ZlcyAiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRp
dXMsIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVz
IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LWJvcmRlci1yYWRpdXMKK3JlbW92ZXMg
ImJvcmRlci10b3AtbGVmdC1yYWRpdXMsIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCBib3JkZXIt
Ym90dG9tLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIKK2FuZCBhZGRz
ICIiLgorUmVtb3ZpbmcgYm9yZGVyLXNwYWNpbmcKK3JlbW92ZXMgImJvcmRlci1zcGFjaW5nIgor
YW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LWNvbHVtbnMKK3JlbW92ZXMgIi13ZWJraXQt
Y29sdW1uLXdpZHRoLCAtd2Via2l0LWNvbHVtbi1jb3VudCIKK2FuZCBhZGRzICIiLgorUmVtb3Zp
bmcgLXdlYmtpdC1jb2x1bW4tcnVsZQorcmVtb3ZlcyAiLXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0
aCwgLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHlsZSwgLXdlYmtpdC1jb2x1bW4tcnVsZS1jb2xvciIK
K2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgbGlzdC1zdHlsZQorcmVtb3ZlcyAibGlzdC1zdHlsZS10
eXBlLCBsaXN0LXN0eWxlLXBvc2l0aW9uLCBsaXN0LXN0eWxlLWltYWdlIgorYW5kIGFkZHMgIiIu
CitSZW1vdmluZyBtYXJnaW4KK3JlbW92ZXMgIm1hcmdpbiIKK2FuZCBhZGRzICIiLgorUmVtb3Zp
bmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UKK3JlbW92ZXMgIi13ZWJraXQtbWFyZ2luLWJlZm9y
ZS1jb2xsYXBzZSwgLXdlYmtpdC1tYXJnaW4tYWZ0ZXItY29sbGFwc2UiCithbmQgYWRkcyAiIi4K
K1JlbW92aW5nIC13ZWJraXQtbWFycXVlZQorcmVtb3ZlcyAiLXdlYmtpdC1tYXJxdWVlLWRpcmVj
dGlvbiwgLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCwgLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRp
b24sIC13ZWJraXQtbWFycXVlZS1zdHlsZSwgLXdlYmtpdC1tYXJxdWVlLXNwZWVkIgorYW5kIGFk
ZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LW1hc2sKK3JlbW92ZXMgIi13ZWJraXQtbWFzaywgLXdl
YmtpdC1tYXNrLXJlcGVhdCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uIgorYW5kIGFkZHMgIiIuCitS
ZW1vdmluZyAtd2Via2l0LW1hc2stcG9zaXRpb24KK3JlbW92ZXMgIi13ZWJraXQtbWFzay1wb3Np
dGlvbiIKK2FuZCBhZGRzICIiLgorUmVtb3Zpbmcgb3ZlcmZsb3cKK3JlbW92ZXMgIm92ZXJmbG93
IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBwYWRkaW5nCityZW1vdmVzICJwYWRkaW5nIgorYW5k
IGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LXRleHQtc3Ryb2tlCityZW1vdmVzICItd2Via2l0
LXRleHQtc3Ryb2tlLWNvbG9yLCAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoIgorYW5kIGFkZHMg
IiIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLXNob3J0aGFuZC5odG1sCShy
ZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5k
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwxOCBAQAogICAgICAgICAgICAgZWxl
bWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzaG9ydGhhbmQpOwogICAgICAgICAgICAgdmFyIHJl
bWFpbmluZ1Byb3BlcnRpZXMgPSBlbGVtZW50LnN0eWxlLmNzc1RleHQuc3BsaXQoIjsgIik7CiAg
ICAgICAgICAgICB2YXIgcmVtb3ZlZFByb3BlcnRpZXMgPSBbXTsKLSAgICAgICAgICAgIHZhciBw
OwotICAgICAgICAgICAgd2hpbGUgKHAgPSBhbGxQcm9wZXJ0aWVzLnNoaWZ0KCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAocmVtYWluaW5nUHJvcGVydGllc1swXSA9PSBwKQotICAgICAgICAgICAg
ICAgICAgICByZW1haW5pbmdQcm9wZXJ0aWVzLnNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICByZW1vdmVkUHJvcGVydGllcy5wdXNoKCI8dHQ+IiArIHAu
cmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+Iik7CisgICAgICAgICAgICB2YXIgYWRkZWRQcm9w
ZXJ0aWVzID0gW107CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVy
dGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmdQcm9wZXJ0
aWVzLmluZGV4T2YoYWxsUHJvcGVydGllc1tpXSkgPCAwKQorICAgICAgICAgICAgICAgICAgICBy
ZW1vdmVkUHJvcGVydGllcy5wdXNoKCI8dHQ+IiArIGFsbFByb3BlcnRpZXNbaV0ucmVwbGFjZSgv
XDouKi8sIiIpICsgIjwvdHQ+Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlbWFpbmluZ1Byb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYWxsUHJvcGVydGllcy5pbmRleE9mKHJlbWFpbmluZ1Byb3BlcnRpZXNbaV0p
IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgYWRkZWRQcm9wZXJ0aWVzLnB1c2goIjx0dD4iICsg
cmVtYWluaW5nUHJvcGVydGllc1tpXS5yZXBsYWNlKC9cOi4qLywiIikgKyAiPC90dD4iKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGxvZygiUmVtb3ZpbmcgPHR0PiIgKyBzaG9ydGhhbmQg
KyAiPC90dD4gcmVtb3ZlcyAiICsgcmVtb3ZlZFByb3BlcnRpZXMuam9pbigiLCAiKSArIi4iKTsK
KyAgICAgICAgICAgIGxvZygiUmVtb3ZpbmcgPHR0PiIgKyBzaG9ydGhhbmQgKyAnPC90dD48YnI+
cmVtb3ZlcyAiJyArIHJlbW92ZWRQcm9wZXJ0aWVzLmpvaW4oIiwgIikKKyAgICAgICAgICAgICAg
ICArICciPGJyPmFuZCBhZGRzICInICsgYWRkZWRQcm9wZXJ0aWVzICsgJyIuJyk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10b2tlbi1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw5ICsxOSw5IEBAIFJ1bGVzIGZyb20gdGhl
IHN0eWxlc2hlZXQ6CiAjbyB7IGNvbnRlbnQ6IHVybChmKTsgfQogI3AgeyBjb250ZW50OiB1cmwo
J3VybChnKScpOyB9CiAjcSB7IGN1cnNvcjogdXJsKCd1cmwocSknKTsgfQotI3IgeyBsaXN0LXN0
eWxlLWltYWdlOiB1cmwoJ3VybChyKScpOyB9CisjciB7IGxpc3Qtc3R5bGU6IHVybCgndXJsKHIp
Jyk7IH0KICNzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd1cmwocyknKTsgfQotI3QgeyAtd2Vi
a2l0LW1hc2staW1hZ2U6IHVybCgndXJsKHQpJyk7IH0KKyN0IHsgLXdlYmtpdC1tYXNrOiB1cmwo
J3VybCh0KScpOyB9CiAjdSB7IC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoJ3VybCh1KScpIDEg
MiAzIDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9CiAjdiB7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2U6
IHVybCgndXJsKHYpJykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN3IHsgY29udGVu
dDogdXJsKHd3KTsgfQpAQCAtNDQsOSArNDQsOSBAQCBFeHBlY3RlZCByZXN1bHQ6CiAjbyB7IGNv
bnRlbnQ6IHVybChmKTsgfQogI3AgeyBjb250ZW50OiB1cmwoJ3VybChnKScpOyB9CiAjcSB7IGN1
cnNvcjogdXJsKCd1cmwocSknKTsgfQotI3IgeyBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJ3VybChy
KScpOyB9CisjciB7IGxpc3Qtc3R5bGU6IHVybCgndXJsKHIpJyk7IH0KICNzIHsgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCd1cmwocyknKTsgfQotI3QgeyAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgn
dXJsKHQpJyk7IH0KKyN0IHsgLXdlYmtpdC1tYXNrOiB1cmwoJ3VybCh0KScpOyB9CiAjdSB7IC13
ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoJ3VybCh1KScpIDEgMiAzIDQgZmlsbCBzdHJldGNoIHJv
dW5kOyB9CiAjdiB7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2U6IHVybCgndXJsKHYpJykgMSAyIDMg
NCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN3IHsgY29udGVudDogdXJsKHd3KTsgfQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy5odG1sCShyZXZpc2lvbiAx
MTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05Myw5ICs5Myw5IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogI28geyBj
b250ZW50OiB1cmwoZik7IH0KICNwIHsgY29udGVudDogdXJsKCd1cmwoZyknKTsgfQogI3EgeyBj
dXJzb3I6IHVybCgndXJsKHEpJyk7IH0KLSNyIHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCd1cmwo
ciknKTsgfQorI3IgeyBsaXN0LXN0eWxlOiB1cmwoJ3VybChyKScpOyB9CiAjcyB7IGJhY2tncm91
bmQtaW1hZ2U6IHVybCgndXJsKHMpJyk7IH0KLSN0IHsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwo
J3VybCh0KScpOyB9CisjdCB7IC13ZWJraXQtbWFzazogdXJsKCd1cmwodCknKTsgfQogI3UgeyAt
d2Via2l0LWJvcmRlci1pbWFnZTogdXJsKCd1cmwodSknKSAxIDIgMyA0IGZpbGwgc3RyZXRjaCBy
b3VuZDsgfQogI3YgeyAtd2Via2l0LW1hc2stYm94LWltYWdlOiB1cmwoJ3VybCh2KScpIDEgMiAz
IDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9CiAjdyB7IGNvbnRlbnQ6IHVybCh3dyk7IH0KSW5kZXg6
IExheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBjb2xvcjogI0MwRkZFRTsKIAogCiBS
dW5uaW5nOiB0ZXN0U2V0VmlhUGFyc2VkQXR0cmlidXRlcwotPGRpdiBpZD0iY29udGFpbmVyIiBz
dHlsZT0iY29sb3I6IHJnYigxOTIsIDI1NSwgMjM4KTsgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVk
OyBib3JkZXItcmlnaHQtc3R5bGU6IGRhc2hlZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogZGFzaGVk
OyBib3JkZXItbGVmdC1zdHlsZTogZGFzaGVkOyBib3JkZXItdG9wLWNvbG9yOiBncmVlbjsgYm9y
ZGVyLXJpZ2h0LWNvbG9yOiBncmVlbjsgYm9yZGVyLWJvdHRvbS1jb2xvcjogZ3JlZW47IGJvcmRl
ci1sZWZ0LWNvbG9yOiBncmVlbjsgYm9yZGVyLWltYWdlOiBpbml0aWFsOyBib3JkZXItdG9wLXdp
ZHRoOiAzcHg7IGJvcmRlci1yaWdodC13aWR0aDogM3B4OyBib3JkZXItYm90dG9tLXdpZHRoOiAz
cHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAzcHg7ICI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIi
IHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3Jl
ZW47ICI+PC9kaXY+CiBbZXhwYW5kZWRdIAogZWxlbWVudC5zdHlsZSAgeyAoKQogY29sb3I6ICND
MEZGRUU7CkBAIC00Niw3ICs0Niw2IEBAIGJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsKICAgICBi
b3JkZXItcmlnaHQtY29sb3I6IGdyZWVuOwogICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGdyZWVu
OwogICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBncmVlbjsKLWJvcmRlci1pbWFnZTogaW5pdGlhbDsK
IGJvcmRlci13aWR0aDogM3B4OwogICAgIGJvcmRlci10b3Atd2lkdGg6IDNweDsKICAgICBib3Jk
ZXItcmlnaHQtd2lkdGg6IDNweDsKSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVs
ZS1jc3MtdGV4dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRp
bmcvcGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysg
TGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogQHBhZ2UgeyBtYXJnaW4tdG9wOiA1Y207IG1h
cmdpbi1ib3R0b206IDEwY207IH0KIEBwYWdlIDpsZWZ0IHsgbWFyZ2luLXJpZ2h0OiAzY207IH0K
IEBwYWdlIDpyaWdodCB7IG1hcmdpbi1sZWZ0OiAzY207IH0KLUBwYWdlIDpmaXJzdCB7IGJvcmRl
ci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t
d2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfQorQHBhZ2UgOmZpcnN0IHsgYm9y
ZGVyOiAxcHg7IH0KIEBwYWdlIGhlbGxvIHsgY29sb3I6IGdyZWVuOyB9CiBAcGFnZSB3b3JsZDpy
aWdodCB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVkaWEgcHJpbnQgeyBAcGFnZSBz
b21lcGFnZTpmaXJzdCB7IG1hcmdpbi10b3A6IDNjbTsgbWFyZ2luLXJpZ2h0OiAzY207IG1hcmdp
bi1ib3R0b206IDNjbTsgbWFyZ2luLWxlZnQ6IDNjbTsgfSB9CitAbWVkaWEgcHJpbnQgeyBAcGFn
ZSBzb21lcGFnZTpmaXJzdCB7IG1hcmdpbjogM2NtOyB9IH0KIEBwYWdlIGF1dG9fcGFnZSB7IHNp
emU6IGF1dG87IH0KIEBwYWdlIHNxdWFyZV9wYWdlIHsgc2l6ZTogNGluOyB9CiBAcGFnZSBsZXR0
ZXJfcGFnZSB7IHNpemU6IGxldHRlcjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133601</attachid>
            <date>2012-03-23 17:58:07 -0700</date>
            <delta_ts>2012-03-26 15:41:29 -0700</delta_ts>
            <desc>Another build fix</desc>
            <filename>bug-81737-20120323175805.patch</filename>
            <type>text/plain</type>
            <size>34006</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTE5MzcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTIzICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIGNzc1RleHQgc2hvdWxkIHVzZSBzaG9ydGhhbmQgbm90
YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTczNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL0JpdFZlY3Rvci5oOgorICAgICAgICAoQml0VmVjdG9yKToKKyAgICAgICAgKFdURjo6Qml0
VmVjdG9yOjplbnN1cmVTaXplQW5kU2V0KTogQWRkZWQuCisKIDIwMTItMDMtMjMgIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQs
IG1vdmUgYSBjb21tZW50IGNsb3NlciB0byB3aGVyZSBpdCBtYXR0ZXJzIGFuZApJbmRleDogU291
cmNlL1dURi93dGYvQml0VmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQml0
VmVjdG9yLmgJKHJldmlzaW9uIDExMTg5MikKKysrIFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNyArMTQ2LDEzIEBAIHB1YmxpYzogCiAgICAgICAgIGVu
c3VyZVNpemUoYml0ICsgMSk7CiAgICAgICAgIHF1aWNrU2V0KGJpdCk7CiAgICAgfQotICAgIAor
CisgICAgdm9pZCBlbnN1cmVTaXplQW5kU2V0KHNpemVfdCBiaXQsIHNpemVfdCBzaXplKQorICAg
IHsKKyAgICAgICAgZW5zdXJlU2l6ZShzaXplKTsKKyAgICAgICAgcXVpY2tTZXQoYml0KTsKKyAg
ICB9CisKICAgICB2b2lkIGNsZWFyKHNpemVfdCBiaXQpCiAgICAgewogICAgICAgICBpZiAoYml0
ID49IHNpemUoKSkKQEAgLTE2MSw2ICsxNjcsNyBAQCBwdWJsaWM6IAogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBjbGVhcihiaXQpOwogICAgIH0KKwogICAgIAogICAgIHZvaWQgZHVtcChGSUxF
KiBvdXQpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTExOTI4KQorKysgU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTIt
MDMtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY3NzVGV4
dCBzaG91bGQgdXNlIHNob3J0aGFuZCBub3RhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHNob3J0aGFuZCBwcm9wZXJ0aWVzIHRvIHNlcmlh
bGl6ZSBzdHlsZSBwcm9wZXJ0aWVzIGZvciBjc3NUZXh0LgorCisgICAgICAgIFRoZSBvdmVyYWxs
IGFsZ29yaXRobSBpcyB0byBsb29rIGZvciBhbnkgcHJvcGVydHkgdGhhdCBoYXMgYSBzaG9ydGhh
bmQsIGFuZCB0aGVuIGNoZWNrIGlmCisgICAgICAgIHRoZSBzaG9ydGhhbmQgdmFsdWUgY291bGQg
YmUgb2J0YWluZWQgKHRoZSBjb25kaXRpb24gaXMgcXVpdGUgY29tcGxpY2F0ZWQgZm9yIGJvcmRl
ciBwcm9wZXJ0aWVzKS4KKyAgICAgICAgSWYgaXQgY291bGQsIHRoZW4gYXBwZW5kIHRoYXQgdmFs
dWUgdG8gdGhlIHN0cmluZyBidWlsZGVyLCBhbmQgc2V0IHRoZSBjb3JyZXNwb25kaW5nIGVudHJp
ZXMgaW4KKyAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZCBhbmQgc2hvcnRoYW5kUHJv
cGVydHlVc2VkLiBJZiBub3QsIG9ubHkgdHVybiBvbiB0aGUgYml0IGluCisgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5QXBwZWFyZWQgb24gdG8gYXZvaWQgY2FsbGluZyBnZXRQcm9wZXJ0eVZhbHVl
IGFnYWluIGZvciBsb25naGFuZCBwcm9wZXJ0aWVzCisgICAgICAgIHRoYXQgdXNlIHRoZSBzYW1l
IHNob3J0aGFuZCBwcm9wZXJ0eSB3aGVuIHdlIGNhbm5vdCB1c2UgdGhlIHNob3J0aGFuZC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCisKKyAgICAgICAg
KiBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3Bl
cnR5U2V0Ojphc1RleHQpOgorCiAyMDEyLTAzLTIzICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1hdGNoIERPTTQgc3BlYyB3aXRoIHJlc3BlY3QgdG8gRG9jdW1l
bnRGcmFnbWVudCBpbnNlcnRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAJKHJldmlzaW9uIDExMTg5MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKQEAgLTY1NCwyNSArNjU1LDE3NyBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0
KCkgY29uc3QKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WFByb3AgPSAwOwogICAgIGNv
bnN0IENTU1Byb3BlcnR5KiByZXBlYXRZUHJvcCA9IDA7CiAKKyAgICAvLyBGSVhNRTogU3RhY2st
YWxsb2NhdGUgdGhlIGJ1ZmZlciBmb3IgdGhlc2UgQml0VmVjdG9ycy4KKyAgICBCaXRWZWN0b3Ig
c2hvcnRoYW5kUHJvcGVydHlVc2VkOworICAgIEJpdFZlY3RvciBzaG9ydGhhbmRQcm9wZXJ0eUFw
cGVhcmVkOworCiAgICAgdW5zaWduZWQgc2l6ZSA9IG1fcHJvcGVydGllcy5zaXplKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IHNpemU7ICsrbikgewogICAgICAgICBjb25zdCBDU1NQ
cm9wZXJ0eSYgcHJvcCA9IG1fcHJvcGVydGllc1tuXTsKLSAgICAgICAgc3dpdGNoIChwcm9wLmlk
KCkpIHsKKyAgICAgICAgaW50IHByb3BlcnR5SUQgPSBwcm9wLmlkKCk7CisgICAgICAgIGludCBz
aG9ydGhhbmRQcm9wZXJ0eUlEID0gMDsKKworICAgICAgICBzd2l0Y2ggKHByb3BlcnR5SUQpIHsK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvblg6CiAgICAgICAgICAg
ICBwb3NpdGlvblhQcm9wID0gJnByb3A7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWToK
ICAgICAgICAgICAgIHBvc2l0aW9uWVByb3AgPSAmcHJvcDsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
UmVwZWF0WDoKICAgICAgICAgICAgIHJlcGVhdFhQcm9wID0gJnByb3A7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFj
a2dyb3VuZFJlcGVhdFk6CiAgICAgICAgICAgICByZXBlYXRZUHJvcCA9ICZwcm9wOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJXaWR0aDoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRoOgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyUmlnaHRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbVdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5
bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29sb3I6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3Jk
ZXJMZWZ0Q29sb3I6CisgICAgICAgICAgICAvLyBGSVhNRTogRGVhbCB3aXRoIGNhc2VzIHdoZXJl
IG9ubHkgc29tZSBvZiBib3JkZXItKHRvcHxyaWdodHxib3R0b218bGVmdCkgYXJlIHNwZWNpZmll
ZC4KKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlcjsK
KyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmdldChDU1NQcm9wZXJ0
eUJvcmRlciAtIGZpcnN0Q1NTUHJvcGVydHkpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQo
KS5sZW5ndGgoKSAmJiBzaG9ydGhhbmRQcm9wZXJ0eUlEOyBpKyspIHsKKyAgICAgICAgICAgICAg
ICBjb25zdCBDU1NQcm9wZXJ0eUxvbmdoYW5kJiBsb25naGFuZCA9ICooYm9yZGVyQWJyaWRnZWRM
b25naGFuZCgpLmxvbmdoYW5kc0ZvckluaXRpYWxpemF0aW9uKClbaV0pOworICAgICAgICAgICAg
ICAgIFN0cmluZyBjb21tb25WYWx1ZTsKKyAgICAgICAgICAgICAgICBib29sIGNvbW1vbkltcG9y
dGFuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGxv
bmdoYW5kLmxlbmd0aCgpOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGlkID0gbG9u
Z2hhbmQucHJvcGVydGllcygpW2pdOworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShpZCk7CisgICAgICAgICAgICAgICAgICAg
IFN0cmluZyBjdXJyZW50VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLT5jc3NUZXh0KCkgOiBTdHJpbmco
KTsKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0ltcG9ydGFudCA9IHByb3BlcnR5SXNJbXBv
cnRhbnQoaWQpOworICAgICAgICAgICAgICAgICAgICBpZiAoaiAmJiAoY3VycmVudFZhbHVlICE9
IGNvbW1vblZhbHVlIHx8IGNvbW1vbkltcG9ydGFuY2UgIT0gaXNJbXBvcnRhbnQpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gMDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGlmICghaikgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uVmFsdWUgPSBj
dXJyZW50VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25JbXBvcnRhbmNlID0g
aXNJbXBvcnRhbnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Qm9yZGVyVmVydGljYWxTcGFjaW5nOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IENTU1Byb3BlcnR5Qm9yZGVyU3BhY2luZzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udEZhbWlseToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUxpbmVIZWlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U2l6ZToKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRW
YXJpYW50OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDoKKyAgICAgICAgICAg
IC8vIERvbid0IHVzZSBDU1NQcm9wZXJ0eUZvbnQgYmVjYXVzZSBvbGQgVUFzIGNhbid0IHJlY29n
bml6ZSB0aGVtIGJ1dCBhcmUgaW1wb3J0YW50IGZvciBlZGl0aW5nLgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlOgorICAgICAgICBjYXNl
IENTU1Byb3BlcnR5TGlzdFN0eWxlUG9zaXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlM
aXN0U3R5bGVJbWFnZToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9w
ZXJ0eUxpc3RTdHlsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5TWFyZ2luVG9wOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlNYXJnaW5MZWZ0OgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3Bl
cnR5TWFyZ2luOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dXRsaW5lV2lkdGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lU3R5bGU6CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6CisgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlPdXRsaW5lOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyZmxvd1k6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlP
dmVyZmxvdzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ1RvcDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDoKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nTGVmdDoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0
eVBhZGRpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbk5hbWU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25EdXJhdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWlu
Z0Z1bmN0aW9uOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGVsYXk6
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRpcmVjdGlvbjoKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkZpbGxNb2RlOgorICAgICAgICAgICAg
c2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9u
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleFdyYXA6CisgICAgICAgICAgICBz
aG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblk6CisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb247Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBl
YXRYOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CisgICAgICAg
ICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0Owor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1h
Z2U6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVwZWF0OgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0F0dGFjaG1lbnQ6CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRNYXNrUG9zaXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXNrQ2xpcDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tPcmlnaW46CisgICAg
ICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRNYXNrOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1P
cmlnaW5YOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWToK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblo6CisgICAgICAg
ICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1Pcmln
aW47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zaXRpb25Qcm9wZXJ0eToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRp
b25EdXJhdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1p
bmdGdW5jdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EZWxh
eToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zaXRpb247CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFdyYXBGbG93OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcE1hcmdpbjoK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBQYWRkaW5nOgorICAgICAgICAgICAg
c2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Via2l0V3JhcDsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwcm9w
LmNzc1RleHQoKSk7CiAgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdmFsdWU7CisgICAgICAg
IHVuc2lnbmVkIHNob3J0UHJvcGVydHlJbmRleCA9IHNob3J0aGFuZFByb3BlcnR5SUQgLSBmaXJz
dENTU1Byb3BlcnR5OworICAgICAgICBpZiAoc2hvcnRoYW5kUHJvcGVydHlJRCkgeworICAgICAg
ICAgICAgaWYgKHNob3J0aGFuZFByb3BlcnR5VXNlZC5nZXQoc2hvcnRQcm9wZXJ0eUluZGV4KSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICghc2hvcnRoYW5kUHJv
cGVydHlBcHBlYXJlZC5nZXQoc2hvcnRQcm9wZXJ0eUluZGV4KSkKKyAgICAgICAgICAgICAgICB2
YWx1ZSA9IGdldFByb3BlcnR5VmFsdWUoc2hvcnRoYW5kUHJvcGVydHlJRCk7CisgICAgICAgICAg
ICBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkLmVuc3VyZVNpemVBbmRTZXQoc2hvcnRQcm9wZXJ0
eUluZGV4LCBudW1DU1NQcm9wZXJ0aWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdmFs
dWUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHByb3BlcnR5SUQgPSBzaG9ydGhhbmRQcm9wZXJ0
eUlEOworICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlVc2VkLmVuc3VyZVNpemVBbmRTZXQo
c2hvcnRQcm9wZXJ0eUluZGV4LCBudW1DU1NQcm9wZXJ0aWVzKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB2YWx1ZSA9IHByb3AudmFsdWUoKS0+Y3NzVGV4dCgpOworCisgICAgICAgIGlm
ICh2YWx1ZSA9PSAiaW5pdGlhbCIgJiYgIUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5
KHByb3BlcnR5SUQpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChnZXRQcm9wZXJ0eU5hbWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJ
RCkpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiOiAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCh2YWx1ZSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocHJvcC5pc0ltcG9ydGFudCgpID8gIiAh
aW1wb3J0YW50IiA6ICIiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiOyAiKTsKICAgICB9CiAK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIG5vdC1zby1uaWNlIHdheSB0byB0dXJuIHgveSBwb3Np
dGlvbnMgaW50byBzaW5nbGUgYmFja2dyb3VuZC1wb3NpdGlvbiBpbiBvdXRwdXQuCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMTE5MjgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wMy0yMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBjc3NUZXh0IHNob3VsZCB1c2Ugc2hvcnRoYW5kIG5vdGF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE3MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2Vs
aW5lIGV4aXN0aW5nIHRlc3RzIGFuZCBhZGQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHVucHJlZml4
ZWQgQ1NTIHByb3BlcnRpZXMgd2l0aAorICAgICAgICB0aGUgZXhjZXB0aW9uIG9mIC13ZWJraXQt
Ym9yZGVyLWhvcml6b250YWwvdmVydGljYWwtc3BhY2luZyAodGhlIHNob3J0aGFuZCB2ZXJzaW9u
IG9mCisgICAgICAgIHRoZXNlIHByb3BlcnRpZXMgKGJvcmRlci1zcGFjaW5nKSBpcyB1bnByZWZp
eGVkLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS1l
eHBlY3RlZC50eHQ6IFVzZXMgYm9yZGVyIGluc3RlYWQgb2YgbG9uZ2hhbmQKKyAgICAgICAgcHJv
cGVydGllcyBhcyBkZXNpcmVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1h
bmQtc2FuaXRpemUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL25vbi1pbmhlcml0YWJs
ZS1zdHlsZXMtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2Nzcy9iYWNrZ3Jv
dW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS1leHBlY3RlZC50eHQ6IE5vIGxvbmdlciBlbWl0cyAiYmFj
a2dyb3VuZC0qOgorICAgICAgICBpbml0aWFsIiBhcyBkZXNpcmVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2Nzc1RleHQtc2hvcnRoYW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
cmVtb3ZlLXNob3J0aGFuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvcmVtb3Zl
LXNob3J0aGFuZC5odG1sOiBNb2RpZmllZCB0byBkbyBlbGFib3JhdGl2ZSBjb21wYXJpc29uIG9m
IHRoZSBsaXN0cyBvZgorICAgICAgICBwcm9wZXJ0aWVzIGJlZm9yZSBhbmQgYWZ0ZXIgcmVtb3Zp
bmcgYSBzaG9ydGhhbmQgc2luY2Ugbm93IHJlbW92aW5nIGEgc2hvcnRoYW5kIHByb3BlcnR5Cisg
ICAgICAgIG1heSBlbmQgdXAgYWRkaW5nIG5ldyBsb25naGFuZCBwcm9wZXJ0eS4KKyAgICAgICAg
KiBmYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9jc3MvdXJpLXRva2VuLXBhcnNpbmcuaHRtbDogVXNlcyBzaG9ydGhhbmQgcHJvcGVydGllcyBp
bnN0ZWFkIG9mIGxvbmdoYW5kIGVxdWl2YWxlbnRzLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICog
cHJpbnRpbmcvcGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dDogRGl0dG8uCisKIDIwMTIt
MDMtMjMgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgdGVzdF9leHBlY3RhdGlvbnMgdXBkYXRlIGZvciBjaHJvbWl1bS4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQt
c2FuaXRpemUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxiPjxpPkhl
bGxvPC9pPgogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxkaXYgc3R5bGU9InRleHQtYWxpZ246
IGNlbnRlcjsiPjxiPkhlbGxvPC9iPjwvZGl2PicKIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8
ZGl2PjxiPjxpPmhlbGxvPC9pPjwvYj48L2Rpdj48ZGl2PjxiPjxpPndvcmxkPC9pPjwvYj48L2Rp
dj4nCiBQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtd2Vp
Z2h0OiBub3JtYWw7ICI+PGI+PGk+aGVsbG8xPC9pPjwvYj48Yj48aT4mbmJzcDtoZWxsbzI8L2k+
PC9iPjwvc3Bhbj48L2k+PC9iPicKLVBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8aSBzdHlsZT0i
bWFyZ2luLXRvcDogMTBweDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4
OyBtYXJnaW4tbGVmdDogMTBweDsgIj48Yj48aSBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsgbWFy
Z2luLXJpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBtYXJnaW4tbGVmdDogMTBweDsg
Ij5oZWxsbzwvaT48L2I+PC9pPicKK0ZBSUwgY29uZmlybWVkTWFya3VwIHNob3VsZCBiZSA8aSBz
dHlsZT0ibWFyZ2luOiAxMHB4OyAiPmhlbGxvPC9pPjwvYj48L2k+LiBXYXMgPGkgc3R5bGU9Im1h
cmdpbjogMTBweDsgIj48Yj48aSBzdHlsZT0ibWFyZ2luOiAxMHB4OyAiPmhlbGxvPC9pPjwvYj48
L2k+LgogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxiPjxpPkhlbGxvJm5ic3A7d29ybGQ8L2k+
PC9iPicKIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48aT48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6IG5vcm1hbDsgIj5wbGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+
PC9zcGFuPjwvaT48L2I+JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2Fu
aXRpemUuaHRtbAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBAIHRlc3RQYXN0ZSgiZGl2IiwgIjxkaXY+PGI+PGk+PHNwYW4gc3R5bGUKICAgICAgICAg
ICAiPGRpdj48Yj48aT5oZWxsbzwvaT48L2I+PC9kaXY+PGRpdj48Yj48aT53b3JsZDwvaT48L2I+
PC9kaXY+Iik7CiB0ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9u
dC13ZWlnaHQ6IG5vcm1hbDsgXCI+PGI+PGk+aGVsbG8xPC9pPjwvYj48Yj48aT4gaGVsbG8yPC9p
PjwvYj48L3NwYW4+PC9pPjwvYj48L2Rpdj4iLCAiPGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdl
aWdodDogbm9ybWFsOyBcIj48Yj48aT5oZWxsbzE8L2k+PC9iPjxiPjxpPiZuYnNwO2hlbGxvMjwv
aT48L2I+PC9zcGFuPjwvaT48L2I+Iik7CiB0ZXN0UGFzdGUoImRpdiIsICI8aSBzdHlsZT1cIm1h
cmdpbjogMTBweDtcIj48Yj48aSBzdHlsZT1cIm1hcmdpbjogMTBweDtcIj5oZWxsbzwvaT48L2I+
PC9pPiIsCi0gICAgICAgICAgIjxpIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDsgbWFyZ2luLXJp
Z2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBtYXJnaW4tbGVmdDogMTBweDsgXCI+PGI+
PGkgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IG1hcmdpbi1i
b3R0b206IDEwcHg7IG1hcmdpbi1sZWZ0OiAxMHB4OyBcIj5oZWxsbzwvaT48L2I+PC9pPiIpOwor
ICAgICAgICAgICI8aSBzdHlsZT1cIm1hcmdpbjogMTBweDsgXCI+aGVsbG88L2k+PC9iPjwvaT4i
KTsKIHRlc3RQYXN0ZSgiZGl2IiwgIjxkaXY+PGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdo
dDogbm9ybWFsXCI+PGI+PGk+SGVsbG8gPCEtLSBjb21tZW50IC0tPndvcmxkPC9pPjwvYj48L3Nw
YW4+PC9pPjwvYj48L2Rpdj4iLCAiPGI+PGk+SGVsbG8mbmJzcDt3b3JsZDwvaT48L2I+Iik7CiB0
ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5v
cm1hbFwiPnBsYWluIHRleHQ8Yj48aT5ib2xkIGl0YWxpYyB0ZXh0PC9pPjwvYj48L3NwYW4+PC9p
PjwvYj48L2Rpdj4iLCAiPGI+PGk+PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogbm9ybWFsOyBc
Ij5wbGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMgdGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+
Iik7CiAKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbm9uLWluaGVyaXRhYmxlLXN0
eWxlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9ub24taW5oZXJpdGFibGUtc3R5bGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9ub24taW5oZXJpdGFibGUtc3R5bGVzLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDYgQEAgVGhpcyB0ZXN0cyBjb3B5LiAg
Tm9uLWluaGVyaXRhYmxlIHN0eWxlcwogfCA8ZGl2PgogfCAgIGNsYXNzPSJjbGFzcyIKIHwgICBp
ZD0iaWQiCi18ICAgc3R5bGU9ImJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdp
ZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFw
eDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJv
cmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJvcmRl
ci10b3AtY29sb3I6IGJsdWU7IGJvcmRlci1yaWdodC1jb2xvcjogYmx1ZTsgYm9yZGVyLWJvdHRv
bS1jb2xvcjogYmx1ZTsgYm9yZGVyLWxlZnQtY29sb3I6IGJsdWU7IGJvcmRlci1pbWFnZTogaW5p
dGlhbDsgIgorfCAgIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibHVlOyAiCiB8ICAgIlRoaXMg
c2hvdWxkIGhhdmUgYmx1ZSBib3JkZXIgd2hlbiBpdHMgcGFzdGVkLiIKIHwgIlRoaXMgc2hvdWxk
bid0IGhhdmUgYSBib3JkZXIuPCNzZWxlY3Rpb24tY2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFs
aXplLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
c3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC01OSw0ICs1OSw0IEBAIFBBU1M6IHQuc3R5bGUuY3NzVGV4dCBzaG91bGQgYmUgYmFj
a2dyb3UKIHQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kOiB1cmwoYWJvdXQ6Ymxh
bmspIDgwJSA4MCU7Jyk7CiB0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblkgPSAnNTBweCcKIHN0
eWxlLmNzc1RleHQgPQotYmFja2dyb3VuZC1pbWFnZTogdXJsKGFib3V0OmJsYW5rKTsgYmFja2dy
b3VuZC1hdHRhY2htZW50OiBpbml0aWFsOyBiYWNrZ3JvdW5kLW9yaWdpbjogaW5pdGlhbDsgYmFj
a2dyb3VuZC1jbGlwOiBpbml0aWFsOyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiA4MCUgNTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlh
bDsKK2JhY2tncm91bmQtaW1hZ2U6IHVybChhYm91dDpibGFuayk7IGJhY2tncm91bmQtcG9zaXRp
b246IDgwJSA1MHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRo
YW5kLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorVGhpcyB0ZXN0
IGVuc3VyZXMgV2ViS2l0IHVzZXMgc2hvcnRoYW5kIG5vdGF0aW9ucyBmb3IgY3NzVGV4dAorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1l
bnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogMXB4IGluaXRpYWwgaW5pdGlhbCIKK1BBU1Mg
bm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBz
b2xpZCByZWQiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBp
cyAiYm9yZGVyOiAxcHggaW5pdGlhbCByZWQiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVu
dC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyOiBpbml0aWFsIGluaXRpYWwgcmVkIgorUEFTUyBu
b3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogMXB4IGlu
aXRpYWwgaW5pdGlhbCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1Rl
eHQpIGlzICJib3JkZXItYm90dG9tLXdpZHRoOiAzcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7
IGJvcmRlci1yaWdodC13aWR0aDogMnB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHgiCitQQVNTIG5v
cm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyLWJvdHRvbS13
aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFw
eDsgYm9yZGVyLXRvcC13aWR0aDogMnB4IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQu
c3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQt
d2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFw
eCAhaW1wb3J0YW50IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4
dCkgaXMgImJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsg
Ym9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3AtY29sb3I6IHJlZDsgYm9yZGVyLXRv
cC13aWR0aDogMXB4IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4
dCkgaXMgImJvcmRlcjogaW5pdGlhbCBkb3R0ZWQgaW5pdGlhbCIKK1BBU1Mgbm9ybWFsaXplQ3Nz
VGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXItc3BhY2luZzogMXB4IDJweCIK
K1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJmb250LWZh
bWlseTogc2Fucy1zZXJpZjsgZm9udC1zaXplOiAzZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9u
dC13ZWlnaHQ6IGJvbGQ7IGxpbmUtaGVpZ2h0OiAyZW0iCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQo
ZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAibGlzdC1zdHlsZTogY2lyY2xlIGluc2lkZSIKK1BB
U1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJtYXJnaW46IDFw
eCAycHggM3B4IDRweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1Rl
eHQpIGlzICJvdXRsaW5lOiAycHggZG90dGVkIGJsdWUiCitGQUlMIG5vcm1hbGl6ZUNzc1RleHQo
ZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBzaG91bGQgYmUgb3ZlcmZsb3c6IHNjcm9sbCBoaWRkZW4u
IFdhcyBvdmVyZmxvdy14OiBzY3JvbGw7IG92ZXJmbG93LXk6IGhpZGRlbi4KK1BBU1Mgbm9ybWFs
aXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJwYWRkaW5nOiAxcHggMnB4IDNw
eCA0cHgiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzVGV4dC1zaG9ydGhhbmQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0
IHVzZXMgc2hvcnRoYW5kIG5vdGF0aW9ucyBmb3IgY3NzVGV4dCIpOworCit2YXIgdGVzdHMgPSBb
CisgICAgLy8gRklYTUU6IFRoaXMgZXhoaWJpdHMgYSBidWcuIFdlIHNob3VsZG4ndCBiZSBvdXRw
dXRpbmcgYm9yZGVyLWltYWdlIGhlcmUuCisgICAgWydib3JkZXI6IDFweDsgYm9yZGVyLXRvcDog
MXB4OycsICdib3JkZXI6IDFweCBpbml0aWFsIGluaXRpYWw7J10sCisgICAgWydib3JkZXI6IDFw
eCBzb2xpZCByZWQ7JywgJ2JvcmRlcjogMXB4IHNvbGlkIHJlZDsnXSwKKyAgICBbJ2JvcmRlcjog
MXB4IHJlZDsnLCAnYm9yZGVyOiAxcHggaW5pdGlhbCByZWQ7J10sCisgICAgWydib3JkZXI6IHJl
ZDsnLCAnYm9yZGVyOiBpbml0aWFsIGluaXRpYWwgcmVkOyddLAorICAgIFsnYm9yZGVyLXRvcDog
MXB4OyBib3JkZXItcmlnaHQ6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4OyBib3JkZXItbGVmdDog
MXB4OycsICdib3JkZXI6IDFweCBpbml0aWFsIGluaXRpYWw7J10sCisgICAgWydib3JkZXItdG9w
OiAxcHg7IGJvcmRlci1yaWdodDogMnB4OyBib3JkZXItYm90dG9tOiAzcHg7IGJvcmRlci1sZWZ0
OiA0cHg7JywKKyAgICAnYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6
IDJweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogM3B4OyBib3JkZXItbGVmdC13aWR0aDogNHB4Oydd
LAorICAgIFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3A6IDJweDsnLAorICAgICdib3JkZXItcmln
aHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0
aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAycHg7J10sCisgICAgWydib3JkZXI6IDFweDsgYm9y
ZGVyLXRvcDogMXB4ICFpbXBvcnRhbnQ7JywKKyAgICAnYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7
IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVy
LXRvcC13aWR0aDogMXB4ICFpbXBvcnRhbnQ7J10sCisgICAgWydib3JkZXI6IDFweDsgYm9yZGVy
LXRvcC1jb2xvcjogcmVkOycsCisgICAgJ2JvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXIt
Ym90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lk
dGg6IDFweDsgYm9yZGVyLXRvcC1jb2xvcjogcmVkOyddLAorICAgIFsnYm9yZGVyOiBzb2xpZDsg
Ym9yZGVyLXN0eWxlOiBkb3R0ZWQnLCAnYm9yZGVyOiBpbml0aWFsIGRvdHRlZCBpbml0aWFsOydd
LAorCisgICAgWyctd2Via2l0LWJvcmRlci1ob3Jpem9udGFsLXNwYWNpbmc6IDFweDsgLXdlYmtp
dC1ib3JkZXItdmVydGljYWwtc3BhY2luZzogMnB4OycsICdib3JkZXItc3BhY2luZzogMXB4IDJw
eDsnXSwKKworICAgIC8vIFdlIGRvbid0IHVzZSBzaG9ydGhhbmQgZm9yIGZvbnQtZmFtaWx5LCBl
dGMuLi4gZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucworICAgIFsnZm9udC1mYW1pbHk6IHNhbnMt
c2VyaWY7IGxpbmUtaGVpZ2h0OiAyZW07IGZvbnQtc2l6ZTogM2VtOyBmb250LXN0eWxlOiBpdGFs
aWM7IGZvbnQtd2VpZ2h0OiBib2xkOycsCisgICAgICAgICdmb250LWZhbWlseTogc2Fucy1zZXJp
ZjsgbGluZS1oZWlnaHQ6IDJlbTsgZm9udC1zaXplOiAzZW07IGZvbnQtc3R5bGU6IGl0YWxpYzsg
Zm9udC13ZWlnaHQ6IGJvbGQ7J10sCisKKyAgICBbJ2xpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBs
aXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7JywgJ2xpc3Qtc3R5bGU6IGNpcmNsZSBpbnNpZGU7
J10sCisgICAgWydtYXJnaW4tdG9wOiAxcHg7IG1hcmdpbi1yaWdodDogMnB4OyBtYXJnaW4tYm90
dG9tOiAzcHg7IG1hcmdpbi1sZWZ0OiA0cHg7JywgJ21hcmdpbjogMXB4IDJweCAzcHggNHB4Oydd
LAorICAgIFsnb3V0bGluZS13aWR0aDogMnB4OyBvdXRsaW5lLXN0eWxlOiBkb3R0ZWQ7IG91dGxp
bmUtY29sb3I6IGJsdWU7JywgJ291dGxpbmU6IDJweCBkb3R0ZWQgYmx1ZTsnXSwKKyAgICBbJ292
ZXJmbG93LXg6IHNjcm9sbDsgb3ZlcmZsb3cteTogaGlkZGVuOycsICdvdmVyZmxvdzogc2Nyb2xs
IGhpZGRlbjsnXSwKKyAgICBbJ3BhZGRpbmctdG9wOiAxcHg7IHBhZGRpbmctcmlnaHQ6IDJweDsg
cGFkZGluZy1ib3R0b206IDNweDsgcGFkZGluZy1sZWZ0OiA0cHg7JywgJ3BhZGRpbmc6IDFweCAy
cHggM3B4IDRweDsnXSwKK107CisKK2Z1bmN0aW9uIG5vcm1hbGl6ZUNzc1RleHQodGV4dCkgeyBy
ZXR1cm4gdGV4dC50cmltKCkuc3BsaXQoLztccyovKS5zb3J0KCkuc2xpY2UoMSkuam9pbigiOyAi
KTsgfQorCit2YXIgZWxlbWVudDsKK3Rlc3RzLmZvckVhY2goZnVuY3Rpb24gKHRlc3QpIHsKKyAg
ICB2YXIgc3R5bGVBdHRyaWJ1dGUgPSB0ZXN0WzBdOworICAgIHZhciBleHBlY3RlZENzc1RleHQg
PSB0ZXN0WzFdOworCisgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlQXR0cmlidXRlKTsKKwor
ICAgIHNob3VsZEJlKCdub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCknLCAn
IicgKyBub3JtYWxpemVDc3NUZXh0KGV4cGVjdGVkQ3NzVGV4dCkgKyAnIicpOworfSk7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVt
b3ZlLXNob3J0aGFuZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcmVtb3ZlLXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDI3ICsyLDc1IEBAIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcKIAogU3RhcnRpbmcgd2l0aCBhIGRlY2xhcmF0aW9uIGNvbnRhaW5pbmcgYWxs
IHByb3BlcnRpZXMgdGhhdCBhcmUgY29uc3RpdHVlbnRzIG9mIHNob3J0Y3V0cywgc2VlIHdoYXQg
aXMgcmVtb3ZlZCB3aGVuIGEgc2hvcnRjdXQgcHJvcGVydHkgaXMgcmVtb3ZlZC4gVGhlIHNob3J0
Y3V04oCZcyBjb25zdGl0dWVudHMgYW5kIG9ubHkgdGhlbSBzaG91bGQgYmUgcmVtb3ZlZC4KIAot
UmVtb3ZpbmcgYmFja2dyb3VuZCByZW1vdmVzIGJhY2tncm91bmQtaW1hZ2UsIGJhY2tncm91bmQt
YXR0YWNobWVudCwgYmFja2dyb3VuZC1vcmlnaW4sIGJhY2tncm91bmQtY2xpcCwgYmFja2dyb3Vu
ZC1jb2xvciwgYmFja2dyb3VuZC1wb3NpdGlvbiwgYmFja2dyb3VuZC1yZXBlYXQuCi1SZW1vdmlu
ZyBiYWNrZ3JvdW5kLXBvc2l0aW9uIHJlbW92ZXMgYmFja2dyb3VuZC1wb3NpdGlvbi4KLVJlbW92
aW5nIGJvcmRlciByZW1vdmVzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13aWR0aCwg
Ym9yZGVyLWJvdHRvbS13aWR0aCwgYm9yZGVyLWxlZnQtd2lkdGgsIGJvcmRlci10b3Atc3R5bGUs
IGJvcmRlci1yaWdodC1zdHlsZSwgYm9yZGVyLWJvdHRvbS1zdHlsZSwgYm9yZGVyLWxlZnQtc3R5
bGUsIGJvcmRlci10b3AtY29sb3IsIGJvcmRlci1yaWdodC1jb2xvciwgYm9yZGVyLWJvdHRvbS1j
b2xvciwgYm9yZGVyLWxlZnQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItdG9wIHJlbW92ZXMgYm9y
ZGVyLXRvcC13aWR0aCwgYm9yZGVyLXRvcC1zdHlsZSwgYm9yZGVyLXRvcC1jb2xvci4KLVJlbW92
aW5nIGJvcmRlci1yaWdodCByZW1vdmVzIGJvcmRlci1yaWdodC13aWR0aCwgYm9yZGVyLXJpZ2h0
LXN0eWxlLCBib3JkZXItcmlnaHQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItYm90dG9tIHJlbW92
ZXMgYm9yZGVyLWJvdHRvbS13aWR0aCwgYm9yZGVyLWJvdHRvbS1zdHlsZSwgYm9yZGVyLWJvdHRv
bS1jb2xvci4KLVJlbW92aW5nIGJvcmRlci1sZWZ0IHJlbW92ZXMgYm9yZGVyLWxlZnQtd2lkdGgs
IGJvcmRlci1sZWZ0LXN0eWxlLCBib3JkZXItbGVmdC1jb2xvci4KLVJlbW92aW5nIGJvcmRlci1j
b2xvciByZW1vdmVzIGJvcmRlci10b3AtY29sb3IsIGJvcmRlci1yaWdodC1jb2xvciwgYm9yZGVy
LWJvdHRvbS1jb2xvciwgYm9yZGVyLWxlZnQtY29sb3IuCi1SZW1vdmluZyBib3JkZXItc3R5bGUg
cmVtb3ZlcyBib3JkZXItdG9wLXN0eWxlLCBib3JkZXItcmlnaHQtc3R5bGUsIGJvcmRlci1ib3R0
b20tc3R5bGUsIGJvcmRlci1sZWZ0LXN0eWxlLgotUmVtb3ZpbmcgYm9yZGVyLXdpZHRoIHJlbW92
ZXMgYm9yZGVyLXRvcC13aWR0aCwgYm9yZGVyLXJpZ2h0LXdpZHRoLCBib3JkZXItYm90dG9tLXdp
ZHRoLCBib3JkZXItbGVmdC13aWR0aC4KLVJlbW92aW5nIGJvcmRlci1yYWRpdXMgcmVtb3ZlcyBi
b3JkZXItdG9wLWxlZnQtcmFkaXVzLCBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJv
dHRvbS1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMuCi1SZW1vdmluZyAt
d2Via2l0LWJvcmRlci1yYWRpdXMgcmVtb3ZlcyBib3JkZXItdG9wLWxlZnQtcmFkaXVzLCBib3Jk
ZXItdG9wLXJpZ2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsIGJvcmRlci1i
b3R0b20tbGVmdC1yYWRpdXMuCi1SZW1vdmluZyBib3JkZXItc3BhY2luZyByZW1vdmVzIC13ZWJr
aXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZywgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3Bh
Y2luZy4KLVJlbW92aW5nIC13ZWJraXQtY29sdW1ucyByZW1vdmVzIC13ZWJraXQtY29sdW1uLXdp
ZHRoLCAtd2Via2l0LWNvbHVtbi1jb3VudC4KLVJlbW92aW5nIC13ZWJraXQtY29sdW1uLXJ1bGUg
cmVtb3ZlcyAtd2Via2l0LWNvbHVtbi1ydWxlLXdpZHRoLCAtd2Via2l0LWNvbHVtbi1ydWxlLXN0
eWxlLCAtd2Via2l0LWNvbHVtbi1ydWxlLWNvbG9yLgotUmVtb3ZpbmcgbGlzdC1zdHlsZSByZW1v
dmVzIGxpc3Qtc3R5bGUtdHlwZSwgbGlzdC1zdHlsZS1wb3NpdGlvbiwgbGlzdC1zdHlsZS1pbWFn
ZS4KLVJlbW92aW5nIG1hcmdpbiByZW1vdmVzIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFy
Z2luLWJvdHRvbSwgbWFyZ2luLWxlZnQuCi1SZW1vdmluZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSByZW1vdmVzIC13ZWJraXQtbWFyZ2luLWJlZm9yZS1jb2xsYXBzZSwgLXdlYmtpdC1tYXJnaW4t
YWZ0ZXItY29sbGFwc2UuCi1SZW1vdmluZyAtd2Via2l0LW1hcnF1ZWUgcmVtb3ZlcyAtd2Via2l0
LW1hcnF1ZWUtZGlyZWN0aW9uLCAtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LCAtd2Via2l0LW1h
cnF1ZWUtcmVwZXRpdGlvbiwgLXdlYmtpdC1tYXJxdWVlLXN0eWxlLCAtd2Via2l0LW1hcnF1ZWUt
c3BlZWQuCi1SZW1vdmluZyAtd2Via2l0LW1hc2sgcmVtb3ZlcyAtd2Via2l0LW1hc2staW1hZ2Us
IC13ZWJraXQtbWFzay1yZXBlYXQteCwgLXdlYmtpdC1tYXNrLXJlcGVhdC15LCAtd2Via2l0LW1h
c2stYXR0YWNobWVudCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXgsIC13ZWJraXQtbWFzay1wb3Np
dGlvbi15LCAtd2Via2l0LW1hc2stb3JpZ2luLCAtd2Via2l0LW1hc2stY2xpcC4KLVJlbW92aW5n
IC13ZWJraXQtbWFzay1wb3NpdGlvbiByZW1vdmVzIC13ZWJraXQtbWFzay1wb3NpdGlvbi14LCAt
d2Via2l0LW1hc2stcG9zaXRpb24teS4KLVJlbW92aW5nIG92ZXJmbG93IHJlbW92ZXMgb3ZlcmZs
b3cteCwgb3ZlcmZsb3cteS4KLVJlbW92aW5nIHBhZGRpbmcgcmVtb3ZlcyBwYWRkaW5nLXRvcCwg
cGFkZGluZy1yaWdodCwgcGFkZGluZy1ib3R0b20sIHBhZGRpbmctbGVmdC4KLVJlbW92aW5nIC13
ZWJraXQtdGV4dC1zdHJva2UgcmVtb3ZlcyAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yLCAtd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoLgorUmVtb3ZpbmcgYmFja2dyb3VuZAorcmVtb3ZlcyAiYmFj
a2dyb3VuZC1pbWFnZSwgYmFja2dyb3VuZC1hdHRhY2htZW50LCBiYWNrZ3JvdW5kLWNvbG9yLCBi
YWNrZ3JvdW5kLXBvc2l0aW9uLCBiYWNrZ3JvdW5kLXJlcGVhdCIKK2FuZCBhZGRzICIiLgorUmVt
b3ZpbmcgYmFja2dyb3VuZC1wb3NpdGlvbgorcmVtb3ZlcyAiYmFja2dyb3VuZC1wb3NpdGlvbiIK
K2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgYm9yZGVyCityZW1vdmVzICJib3JkZXIiCithbmQgYWRk
cyAiIi4KK1JlbW92aW5nIGJvcmRlci10b3AKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJi
b3JkZXItcmlnaHQtd2lkdGgsYm9yZGVyLWJvdHRvbS13aWR0aCxib3JkZXItbGVmdC13aWR0aCxi
b3JkZXItcmlnaHQtc3R5bGUsYm9yZGVyLWJvdHRvbS1zdHlsZSxib3JkZXItbGVmdC1zdHlsZSxi
b3JkZXItcmlnaHQtY29sb3IsYm9yZGVyLWJvdHRvbS1jb2xvcixib3JkZXItbGVmdC1jb2xvciIu
CitSZW1vdmluZyBib3JkZXItcmlnaHQKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3Jk
ZXItdG9wLXdpZHRoLGJvcmRlci1ib3R0b20td2lkdGgsYm9yZGVyLWxlZnQtd2lkdGgsYm9yZGVy
LXRvcC1zdHlsZSxib3JkZXItYm90dG9tLXN0eWxlLGJvcmRlci1sZWZ0LXN0eWxlLGJvcmRlci10
b3AtY29sb3IsYm9yZGVyLWJvdHRvbS1jb2xvcixib3JkZXItbGVmdC1jb2xvciIuCitSZW1vdmlu
ZyBib3JkZXItYm90dG9tCityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13
aWR0aCxib3JkZXItcmlnaHQtd2lkdGgsYm9yZGVyLWxlZnQtd2lkdGgsYm9yZGVyLXRvcC1zdHls
ZSxib3JkZXItcmlnaHQtc3R5bGUsYm9yZGVyLWxlZnQtc3R5bGUsYm9yZGVyLXRvcC1jb2xvcixi
b3JkZXItcmlnaHQtY29sb3IsYm9yZGVyLWxlZnQtY29sb3IiLgorUmVtb3ZpbmcgYm9yZGVyLWxl
ZnQKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXItdG9wLXdpZHRoLGJvcmRlci1y
aWdodC13aWR0aCxib3JkZXItYm90dG9tLXdpZHRoLGJvcmRlci10b3Atc3R5bGUsYm9yZGVyLXJp
Z2h0LXN0eWxlLGJvcmRlci1ib3R0b20tc3R5bGUsYm9yZGVyLXRvcC1jb2xvcixib3JkZXItcmln
aHQtY29sb3IsYm9yZGVyLWJvdHRvbS1jb2xvciIuCitSZW1vdmluZyBib3JkZXItY29sb3IKK3Jl
bW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJib3JkZXIiLgorUmVtb3ZpbmcgYm9yZGVyLXN0eWxl
CityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyIi4KK1JlbW92aW5nIGJvcmRlci13
aWR0aAorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRlciIuCitSZW1vdmluZyBib3Jk
ZXItcmFkaXVzCityZW1vdmVzICJib3JkZXItdG9wLWxlZnQtcmFkaXVzLCBib3JkZXItdG9wLXJp
Z2h0LXJhZGl1cywgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tbGVm
dC1yYWRpdXMiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtYm9yZGVyLXJhZGl1cwor
cmVtb3ZlcyAiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMs
IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIgor
YW5kIGFkZHMgIiIuCitSZW1vdmluZyBib3JkZXItc3BhY2luZworcmVtb3ZlcyAiYm9yZGVyLXNw
YWNpbmciCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtY29sdW1ucworcmVtb3ZlcyAi
LXdlYmtpdC1jb2x1bW4td2lkdGgsIC13ZWJraXQtY29sdW1uLWNvdW50IgorYW5kIGFkZHMgIiIu
CitSZW1vdmluZyAtd2Via2l0LWNvbHVtbi1ydWxlCityZW1vdmVzICItd2Via2l0LWNvbHVtbi1y
dWxlLXdpZHRoLCAtd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlLCAtd2Via2l0LWNvbHVtbi1ydWxl
LWNvbG9yIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBsaXN0LXN0eWxlCityZW1vdmVzICJsaXN0
LXN0eWxlLXR5cGUsIGxpc3Qtc3R5bGUtcG9zaXRpb24sIGxpc3Qtc3R5bGUtaW1hZ2UiCithbmQg
YWRkcyAiIi4KK1JlbW92aW5nIG1hcmdpbgorcmVtb3ZlcyAibWFyZ2luIgorYW5kIGFkZHMgIiIu
CitSZW1vdmluZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZQorcmVtb3ZlcyAiLXdlYmtpdC1tYXJn
aW4tYmVmb3JlLWNvbGxhcHNlLCAtd2Via2l0LW1hcmdpbi1hZnRlci1jb2xsYXBzZSIKK2FuZCBh
ZGRzICIiLgorUmVtb3ZpbmcgLXdlYmtpdC1tYXJxdWVlCityZW1vdmVzICItd2Via2l0LW1hcnF1
ZWUtZGlyZWN0aW9uLCAtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LCAtd2Via2l0LW1hcnF1ZWUt
cmVwZXRpdGlvbiwgLXdlYmtpdC1tYXJxdWVlLXN0eWxlLCAtd2Via2l0LW1hcnF1ZWUtc3BlZWQi
CithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtbWFzaworcmVtb3ZlcyAiLXdlYmtpdC1t
YXNrLCAtd2Via2l0LW1hc2stcmVwZWF0LCAtd2Via2l0LW1hc2stcG9zaXRpb24iCithbmQgYWRk
cyAiIi4KK1JlbW92aW5nIC13ZWJraXQtbWFzay1wb3NpdGlvbgorcmVtb3ZlcyAiLXdlYmtpdC1t
YXNrLXBvc2l0aW9uIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBvdmVyZmxvdworcmVtb3ZlcyAi
b3ZlcmZsb3ciCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIHBhZGRpbmcKK3JlbW92ZXMgInBhZGRp
bmciCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtdGV4dC1zdHJva2UKK3JlbW92ZXMg
Ii13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IsIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGgiCith
bmQgYWRkcyAiIi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5k
Lmh0bWwJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1z
aG9ydGhhbmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTQgKzMwLDE4IEBACiAgICAgICAg
ICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHNob3J0aGFuZCk7CiAgICAgICAgICAg
ICB2YXIgcmVtYWluaW5nUHJvcGVydGllcyA9IGVsZW1lbnQuc3R5bGUuY3NzVGV4dC5zcGxpdCgi
OyAiKTsKICAgICAgICAgICAgIHZhciByZW1vdmVkUHJvcGVydGllcyA9IFtdOwotICAgICAgICAg
ICAgdmFyIHA7Ci0gICAgICAgICAgICB3aGlsZSAocCA9IGFsbFByb3BlcnRpZXMuc2hpZnQoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmdQcm9wZXJ0aWVzWzBdID09IHApCi0gICAg
ICAgICAgICAgICAgICAgIHJlbWFpbmluZ1Byb3BlcnRpZXMuc2hpZnQoKTsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJlbW92ZWRQcm9wZXJ0aWVzLnB1c2goIjx0
dD4iICsgcC5yZXBsYWNlKC9cOi4qLywiIikgKyAiPC90dD4iKTsKKyAgICAgICAgICAgIHZhciBh
ZGRlZFByb3BlcnRpZXMgPSBbXTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBh
bGxQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmlu
Z1Byb3BlcnRpZXMuaW5kZXhPZihhbGxQcm9wZXJ0aWVzW2ldKSA8IDApCisgICAgICAgICAgICAg
ICAgICAgIHJlbW92ZWRQcm9wZXJ0aWVzLnB1c2goIjx0dD4iICsgYWxsUHJvcGVydGllc1tpXS5y
ZXBsYWNlKC9cOi4qLywiIikgKyAiPC90dD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVtYWluaW5nUHJvcGVydGllcy5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgICAgIGlmIChhbGxQcm9wZXJ0aWVzLmluZGV4T2YocmVtYWluaW5nUHJvcGVy
dGllc1tpXSkgPCAwKQorICAgICAgICAgICAgICAgICAgICBhZGRlZFByb3BlcnRpZXMucHVzaCgi
PHR0PiIgKyByZW1haW5pbmdQcm9wZXJ0aWVzW2ldLnJlcGxhY2UoL1w6LiovLCIiKSArICI8L3R0
PiIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbG9nKCJSZW1vdmluZyA8dHQ+IiArIHNo
b3J0aGFuZCArICI8L3R0PiByZW1vdmVzICIgKyByZW1vdmVkUHJvcGVydGllcy5qb2luKCIsICIp
ICsiLiIpOworICAgICAgICAgICAgbG9nKCJSZW1vdmluZyA8dHQ+IiArIHNob3J0aGFuZCArICc8
L3R0Pjxicj5yZW1vdmVzICInICsgcmVtb3ZlZFByb3BlcnRpZXMuam9pbigiLCAiKQorICAgICAg
ICAgICAgICAgICsgJyI8YnI+YW5kIGFkZHMgIicgKyBhZGRlZFByb3BlcnRpZXMgKyAnIi4nKTsK
ICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFy
c2luZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE5LDkgKzE5LDkgQEAgUnVsZXMg
ZnJvbSB0aGUgc3R5bGVzaGVldDoKICNvIHsgY29udGVudDogdXJsKGYpOyB9CiAjcCB7IGNvbnRl
bnQ6IHVybCgndXJsKGcpJyk7IH0KICNxIHsgY3Vyc29yOiB1cmwoJ3VybChxKScpOyB9Ci0jciB7
IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgndXJsKHIpJyk7IH0KKyNyIHsgbGlzdC1zdHlsZTogdXJs
KCd1cmwociknKTsgfQogI3MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3VybChzKScpOyB9Ci0j
dCB7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKCd1cmwodCknKTsgfQorI3QgeyAtd2Via2l0LW1h
c2s6IHVybCgndXJsKHQpJyk7IH0KICN1IHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybCgndXJs
KHUpJykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN2IHsgLXdlYmtpdC1tYXNrLWJv
eC1pbWFnZTogdXJsKCd1cmwodiknKSAxIDIgMyA0IGZpbGwgc3RyZXRjaCByb3VuZDsgfQogI3cg
eyBjb250ZW50OiB1cmwod3cpOyB9CkBAIC00NCw5ICs0NCw5IEBAIEV4cGVjdGVkIHJlc3VsdDoK
ICNvIHsgY29udGVudDogdXJsKGYpOyB9CiAjcCB7IGNvbnRlbnQ6IHVybCgndXJsKGcpJyk7IH0K
ICNxIHsgY3Vyc29yOiB1cmwoJ3VybChxKScpOyB9Ci0jciB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVy
bCgndXJsKHIpJyk7IH0KKyNyIHsgbGlzdC1zdHlsZTogdXJsKCd1cmwociknKTsgfQogI3MgeyBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3VybChzKScpOyB9Ci0jdCB7IC13ZWJraXQtbWFzay1pbWFn
ZTogdXJsKCd1cmwodCknKTsgfQorI3QgeyAtd2Via2l0LW1hc2s6IHVybCgndXJsKHQpJyk7IH0K
ICN1IHsgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybCgndXJsKHUpJykgMSAyIDMgNCBmaWxsIHN0
cmV0Y2ggcm91bmQ7IH0KICN2IHsgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogdXJsKCd1cmwodikn
KSAxIDIgMyA0IGZpbGwgc3RyZXRjaCByb3VuZDsgfQogI3cgeyBjb250ZW50OiB1cmwod3cpOyB9
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmktdG9rZW4tcGFyc2luZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10b2tlbi1wYXJzaW5nLmh0bWwJKHJl
dmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10b2tlbi1wYXJzaW5n
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTkzLDkgKzkzLDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
CiAjbyB7IGNvbnRlbnQ6IHVybChmKTsgfQogI3AgeyBjb250ZW50OiB1cmwoJ3VybChnKScpOyB9
CiAjcSB7IGN1cnNvcjogdXJsKCd1cmwocSknKTsgfQotI3IgeyBsaXN0LXN0eWxlLWltYWdlOiB1
cmwoJ3VybChyKScpOyB9CisjciB7IGxpc3Qtc3R5bGU6IHVybCgndXJsKHIpJyk7IH0KICNzIHsg
YmFja2dyb3VuZC1pbWFnZTogdXJsKCd1cmwocyknKTsgfQotI3QgeyAtd2Via2l0LW1hc2staW1h
Z2U6IHVybCgndXJsKHQpJyk7IH0KKyN0IHsgLXdlYmtpdC1tYXNrOiB1cmwoJ3VybCh0KScpOyB9
CiAjdSB7IC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoJ3VybCh1KScpIDEgMiAzIDQgZmlsbCBz
dHJldGNoIHJvdW5kOyB9CiAjdiB7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2U6IHVybCgndXJsKHYp
JykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN3IHsgY29udGVudDogdXJsKHd3KTsg
fQpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20t
anMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQor
KysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIGNvbG9yOiAjQzBGRkVF
OwogCiAKIFJ1bm5pbmc6IHRlc3RTZXRWaWFQYXJzZWRBdHRyaWJ1dGVzCi08ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOyBib3JkZXItdG9wLXN0eWxl
OiBkYXNoZWQ7IGJvcmRlci1yaWdodC1zdHlsZTogZGFzaGVkOyBib3JkZXItYm90dG9tLXN0eWxl
OiBkYXNoZWQ7IGJvcmRlci1sZWZ0LXN0eWxlOiBkYXNoZWQ7IGJvcmRlci10b3AtY29sb3I6IGdy
ZWVuOyBib3JkZXItcmlnaHQtY29sb3I6IGdyZWVuOyBib3JkZXItYm90dG9tLWNvbG9yOiBncmVl
bjsgYm9yZGVyLWxlZnQtY29sb3I6IGdyZWVuOyBib3JkZXItaW1hZ2U6IGluaXRpYWw7IGJvcmRl
ci10b3Atd2lkdGg6IDNweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7IGJvcmRlci1ib3R0b20t
d2lkdGg6IDNweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDsgIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnRhaW5lciIgc3R5bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7IGJvcmRlcjogM3B4IGRh
c2hlZCBncmVlbjsgIj48L2Rpdj4KIFtleHBhbmRlZF0gCiBlbGVtZW50LnN0eWxlICB7ICgpCiBj
b2xvcjogI0MwRkZFRTsKQEAgLTQ2LDcgKzQ2LDYgQEAgYm9yZGVyOiAzcHggZGFzaGVkIGdyZWVu
OwogICAgIGJvcmRlci1yaWdodC1jb2xvcjogZ3JlZW47CiAgICAgYm9yZGVyLWJvdHRvbS1jb2xv
cjogZ3JlZW47CiAgICAgYm9yZGVyLWxlZnQtY29sb3I6IGdyZWVuOwotYm9yZGVyLWltYWdlOiBp
bml0aWFsOwogYm9yZGVyLXdpZHRoOiAzcHg7CiAgICAgYm9yZGVyLXRvcC13aWR0aDogM3B4Owog
ICAgIGJvcmRlci1yaWdodC13aWR0aDogM3B4OwpJbmRleDogTGF5b3V0VGVzdHMvcHJpbnRpbmcv
cGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wcmludGluZy9wYWdlLXJ1bGUtY3NzLXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTE4
OTIpCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLXJ1bGUtY3NzLXRleHQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDEwIEBACiBAcGFnZSB7IG1hcmdpbi10b3A6
IDVjbTsgbWFyZ2luLWJvdHRvbTogMTBjbTsgfQogQHBhZ2UgOmxlZnQgeyBtYXJnaW4tcmlnaHQ6
IDNjbTsgfQogQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQHBhZ2UgOmZpcnN0
IHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVy
LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyB9CitAcGFnZSA6Zmly
c3QgeyBib3JkZXI6IDFweDsgfQogQHBhZ2UgaGVsbG8geyBjb2xvcjogZ3JlZW47IH0KIEBwYWdl
IHdvcmxkOnJpZ2h0IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBwcmludCB7
IEBwYWdlIHNvbWVwYWdlOmZpcnN0IHsgbWFyZ2luLXRvcDogM2NtOyBtYXJnaW4tcmlnaHQ6IDNj
bTsgbWFyZ2luLWJvdHRvbTogM2NtOyBtYXJnaW4tbGVmdDogM2NtOyB9IH0KK0BtZWRpYSBwcmlu
dCB7IEBwYWdlIHNvbWVwYWdlOmZpcnN0IHsgbWFyZ2luOiAzY207IH0gfQogQHBhZ2UgYXV0b19w
YWdlIHsgc2l6ZTogYXV0bzsgfQogQHBhZ2Ugc3F1YXJlX3BhZ2UgeyBzaXplOiA0aW47IH0KIEBw
YWdlIGxldHRlcl9wYWdlIHsgc2l6ZTogbGV0dGVyOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133909</attachid>
            <date>2012-03-26 15:41:35 -0700</date>
            <delta_ts>2012-03-26 16:50:42 -0700</delta_ts>
            <desc>Fixed win build</desc>
            <filename>bug-81737-20120326154133.patch</filename>
            <type>text/plain</type>
            <size>35111</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCShyZXZpc2lvbiAxMTE4OTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2lu
ZyBjb3B5KQpAQCAtMTU3LDYgKzE1Nyw3IEBAIEVYUE9SVFMKICAgICA/ZGVzdHJveUBKU0J5dGVB
cnJheUBKU0NAQFNBWFBBVkpTQ2VsbEAyQEBaCiAgICAgP2Rlc3Ryb3lASlNDZWxsQEpTQ0BAS0FY
UEFWMTJAQFoKICAgICA/ZGVzdHJveUBKU0dsb2JhbE9iamVjdEBKU0NAQFNBWFBBVkpTQ2VsbEAy
QEBaCisgICAgP2Rlc3Ryb3lAT3V0T2ZMaW5lQml0c0BCaXRWZWN0b3JAV1RGQEBTQVhQQVYxMjNA
QFoKICAgICA/ZGV0YWNoQERlYnVnZ2VyQEpTQ0BAVUFFWFBBVkpTR2xvYmFsT2JqZWN0QDJAQFoK
ICAgICA/ZGV0YWNoVGhyZWFkQFdURkBAWUFYSUBaCiAgICAgP2RpZFRpbWVPdXRAVGltZW91dENo
ZWNrZXJASlNDQEBRQUVfTlBBVkV4ZWNTdGF0ZUAyQEBaCkBAIC0yOTUsNiArMjk2LDcgQEAgRVhQ
T1JUUwogICAgID9yZXNldEBUaW1lb3V0Q2hlY2tlckBKU0NAQFFBRVhYWgogICAgID9yZXNldERh
dGVDYWNoZUBKU0dsb2JhbERhdGFASlNDQEBRQUVYWFoKICAgICA/cmVzaXplQFN0cmluZ0J1aWxk
ZXJAV1RGQEBRQUVYSUBaCisgICAgP3Jlc2l6ZU91dE9mTGluZUBCaXRWZWN0b3JAV1RGQEBBQUVY
SUBaCiAgICAgP3Jlc29sdmVSb3BlQEpTU3RyaW5nQEpTQ0BAQUJFWFBBVkV4ZWNTdGF0ZUAyQEBa
CiAgICAgP3Jlc3RvcmVBbGxAUHJvZmlsZUBKU0NAQFFBRVhYWgogICAgID9yZXRyaWV2ZUNhbGxl
ckZyb21WTUNvZGVASW50ZXJwcmV0ZXJASlNDQEBRQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRl
QDJAUEFWSlNGdW5jdGlvbkAyQEBaCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTExOTM3KQorKysgU291cmNl
L1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMy0y
MyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBjc3NUZXh0IHNo
b3VsZCB1c2Ugc2hvcnRoYW5kIG5vdGF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE3MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9CaXRWZWN0b3IuaDoKKyAgICAgICAgKEJpdFZlY3Rv
cik6CisgICAgICAgIChXVEY6OkJpdFZlY3Rvcjo6ZW5zdXJlU2l6ZUFuZFNldCk6IEFkZGVkLgor
CiAyMDEyLTAzLTIzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBVbnJldmlld2VkLCBtb3ZlIGEgY29tbWVudCBjbG9zZXIgdG8gd2hlcmUgaXQg
bWF0dGVycyBhbmQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5oCShyZXZpc2lvbiAxMTE4OTIpCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9CaXRWZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0NiwxMyBA
QCBwdWJsaWM6IAogICAgICAgICBlbnN1cmVTaXplKGJpdCArIDEpOwogICAgICAgICBxdWlja1Nl
dChiaXQpOwogICAgIH0KLSAgICAKKworICAgIHZvaWQgZW5zdXJlU2l6ZUFuZFNldChzaXplX3Qg
Yml0LCBzaXplX3Qgc2l6ZSkKKyAgICB7CisgICAgICAgIGVuc3VyZVNpemUoc2l6ZSk7CisgICAg
ICAgIHF1aWNrU2V0KGJpdCk7CisgICAgfQorCiAgICAgdm9pZCBjbGVhcihzaXplX3QgYml0KQog
ICAgIHsKICAgICAgICAgaWYgKGJpdCA+PSBzaXplKCkpCkBAIC0xNjEsNiArMTY3LDcgQEAgcHVi
bGljOiAKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2xlYXIoYml0KTsKICAgICB9CisKICAg
ICAKICAgICB2b2lkIGR1bXAoRklMRSogb3V0KTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDExMTkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgorCisgICAgICAgIGNzc1RleHQgc2hvdWxkIHVzZSBzaG9ydGhhbmQgbm90YXRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTczNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzaG9ydGhh
bmQgcHJvcGVydGllcyB0byBzZXJpYWxpemUgc3R5bGUgcHJvcGVydGllcyBmb3IgY3NzVGV4dC4K
KworICAgICAgICBUaGUgb3ZlcmFsbCBhbGdvcml0aG0gaXMgdG8gbG9vayBmb3IgYW55IHByb3Bl
cnR5IHRoYXQgaGFzIGEgc2hvcnRoYW5kLCBhbmQgdGhlbiBjaGVjayBpZgorICAgICAgICB0aGUg
c2hvcnRoYW5kIHZhbHVlIGNvdWxkIGJlIG9idGFpbmVkICh0aGUgY29uZGl0aW9uIGlzIHF1aXRl
IGNvbXBsaWNhdGVkIGZvciBib3JkZXIgcHJvcGVydGllcykuCisgICAgICAgIElmIGl0IGNvdWxk
LCB0aGVuIGFwcGVuZCB0aGF0IHZhbHVlIHRvIHRoZSBzdHJpbmcgYnVpbGRlciwgYW5kIHNldCB0
aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGluCisgICAgICAgIHNob3J0aGFuZFByb3BlcnR5QXBw
ZWFyZWQgYW5kIHNob3J0aGFuZFByb3BlcnR5VXNlZC4gSWYgbm90LCBvbmx5IHR1cm4gb24gdGhl
IGJpdCBpbgorICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUFwcGVhcmVkIG9uIHRvIGF2b2lkIGNh
bGxpbmcgZ2V0UHJvcGVydHlWYWx1ZSBhZ2FpbiBmb3IgbG9uZ2hhbmQgcHJvcGVydGllcworICAg
ICAgICB0aGF0IHVzZSB0aGUgc2FtZSBzaG9ydGhhbmQgcHJvcGVydHkgd2hlbiB3ZSBjYW5ub3Qg
dXNlIHRoZSBzaG9ydGhhbmQuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY3NzVGV4dC1zaG9y
dGhhbmQuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6YXNUZXh0KToKKwogMjAxMi0wMy0yMyAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYXRjaCBET000IHNwZWMg
d2l0aCByZXNwZWN0IHRvIERvY3VtZW50RnJhZ21lbnQgaW5zZXJ0aW9uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCShyZXZpc2lvbiAxMTE4OTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1
ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC02NTQsMjUgKzY1NSwxNzcgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydHlTZXQ6OmFzVGV4dCgpIGNvbnN0CiAgICAgY29uc3QgQ1NTUHJvcGVydHkqIHJl
cGVhdFhQcm9wID0gMDsKICAgICBjb25zdCBDU1NQcm9wZXJ0eSogcmVwZWF0WVByb3AgPSAwOwog
CisgICAgLy8gRklYTUU6IFN0YWNrLWFsbG9jYXRlIHRoZSBidWZmZXIgZm9yIHRoZXNlIEJpdFZl
Y3RvcnMuCisgICAgQml0VmVjdG9yIHNob3J0aGFuZFByb3BlcnR5VXNlZDsKKyAgICBCaXRWZWN0
b3Igc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZDsKKwogICAgIHVuc2lnbmVkIHNpemUgPSBtX3By
b3BlcnRpZXMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBzaXplOyArK24p
IHsKICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHByb3AgPSBtX3Byb3BlcnRpZXNbbl07Ci0g
ICAgICAgIHN3aXRjaCAocHJvcC5pZCgpKSB7CisgICAgICAgIGludCBwcm9wZXJ0eUlEID0gcHJv
cC5pZCgpOworICAgICAgICBpbnQgc2hvcnRoYW5kUHJvcGVydHlJRCA9IDA7CisKKyAgICAgICAg
c3dpdGNoIChwcm9wZXJ0eUlEKSB7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
UG9zaXRpb25YOgogICAgICAgICAgICAgcG9zaXRpb25YUHJvcCA9ICZwcm9wOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJhY2tncm91bmRQb3NpdGlvblk6CiAgICAgICAgICAgICBwb3NpdGlvbllQcm9wID0gJnByb3A7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgICAgICByZXBlYXRYUHJvcCA9
ICZwcm9wOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRSZXBlYXRZOgogICAgICAgICAgICAgcmVwZWF0
WVByb3AgPSAmcHJvcDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyV2lkdGg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BXaWR0
aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lkdGg6CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckxlZnRXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclN0eWxlOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGU6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJSaWdodFN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tU3R5bGU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGU6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJDb2xvcjoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUJvcmRlclRvcENvbG9yOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRD
b2xvcjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgorICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgorICAgICAgICAgICAgLy8gRklYTUU6
IERlYWwgd2l0aCBjYXNlcyB3aGVyZSBvbmx5IHNvbWUgb2YgYm9yZGVyLSh0b3B8cmlnaHR8Ym90
dG9tfGxlZnQpIGFyZSBzcGVjaWZpZWQuCisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlE
ID0gQ1NTUHJvcGVydHlCb3JkZXI7CisgICAgICAgICAgICBpZiAoc2hvcnRoYW5kUHJvcGVydHlB
cHBlYXJlZC5nZXQoQ1NTUHJvcGVydHlCb3JkZXIgLSBmaXJzdENTU1Byb3BlcnR5KSkKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBi
b3JkZXJBYnJpZGdlZExvbmdoYW5kKCkubGVuZ3RoKCkgJiYgc2hvcnRoYW5kUHJvcGVydHlJRDsg
aSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgQ1NTUHJvcGVydHlMb25naGFuZCYgbG9uZ2hh
bmQgPSAqKGJvcmRlckFicmlkZ2VkTG9uZ2hhbmQoKS5sb25naGFuZHNGb3JJbml0aWFsaXphdGlv
bigpW2ldKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tbW9uVmFsdWU7CisgICAgICAgICAg
ICAgICAgYm9vbCBjb21tb25JbXBvcnRhbmNlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCBsb25naGFuZC5sZW5ndGgoKTsgKytqKSB7CisgICAgICAgICAg
ICAgICAgICAgIGludCBpZCA9IGxvbmdoYW5kLnByb3BlcnRpZXMoKVtqXTsKKyAgICAgICAgICAg
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWUoaWQp
OworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VycmVudFZhbHVlID0gdmFsdWUgPyB2YWx1
ZS0+Y3NzVGV4dCgpIDogU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNJbXBv
cnRhbnQgPSBwcm9wZXJ0eUlzSW1wb3J0YW50KGlkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGogJiYgKGN1cnJlbnRWYWx1ZSAhPSBjb21tb25WYWx1ZSB8fCBjb21tb25JbXBvcnRhbmNlICE9
IGlzSW1wb3J0YW50KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVy
dHlJRCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWopIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbW1vblZhbHVlID0gY3VycmVudFZhbHVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbW9uSW1wb3J0YW5jZSA9IGlzSW1wb3J0YW50OworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZzoKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2luZzoKKyAgICAg
ICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUJvcmRlclNwYWNpbmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5Rm9udFNpemU6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWFudDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZv
bnRXZWlnaHQ6CisgICAgICAgICAgICAvLyBEb24ndCB1c2UgQ1NTUHJvcGVydHlGb250IGJlY2F1
c2Ugb2xkIFVBcyBjYW4ndCByZWNvZ25pemUgdGhlbSBidXQgYXJlIGltcG9ydGFudCBmb3IgZWRp
dGluZy4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0
eWxlVHlwZToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9uOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1hZ2U6CisgICAgICAgICAgICBzaG9ydGhh
bmRQcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlMaXN0U3R5bGU7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU1hcmdpblJpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luQm90dG9tOgor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luTGVmdDoKKyAgICAgICAgICAgIHNob3J0aGFu
ZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eU1hcmdpbjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZVdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5T3V0bGluZVN0eWxlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgor
ICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5T3V0bGluZTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dYOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3dZOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJv
cGVydHlJRCA9IENTU1Byb3BlcnR5T3ZlcmZsb3c7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWRkaW5nUmlnaHQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nQm90dG9tOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6CisgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlQYWRkaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25OYW1lOgorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRHVyYXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbkRlbGF5OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5p
bWF0aW9uSXRlcmF0aW9uQ291bnQ6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmlt
YXRpb25EaXJlY3Rpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25G
aWxsTW9kZToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0RmxleERpcmVjdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZs
ZXhXcmFwOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5V2Vi
a2l0RmxleEZsb3c7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tQb3NpdGlvblg6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNr
UG9zaXRpb25ZOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3BlcnR5
V2Via2l0TWFza1Bvc2l0aW9uOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRNYXNrUmVwZWF0WDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tSZXBlYXRZOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3Bl
cnR5V2Via2l0TWFza1JlcGVhdDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFza0ltYWdlOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
TWFza1JlcGVhdDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tBdHRhY2htZW50
OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uOgorICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0NsaXA6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXNrT3JpZ2luOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1By
b3BlcnR5V2Via2l0TWFzazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luWDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFRyYW5zZm9ybU9yaWdpblk6CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFu
c2Zvcm1PcmlnaW5aOgorICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlJRCA9IENTU1Byb3Bl
cnR5V2Via2l0VHJhbnNmb3JtT3JpZ2luOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHk6CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246CisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2l0aW9uRGVsYXk6CisgICAgICAgICAgICBzaG9ydGhhbmRQcm9wZXJ0eUlE
ID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwRmxvdzoKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFdyYXBNYXJnaW46CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFw
UGFkZGluZzoKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVdl
YmtpdFdyYXA7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQocHJvcC5jc3NUZXh0KCkpOwogICAgICAgICB9CisKKyAgICAgICAg
U3RyaW5nIHZhbHVlOworICAgICAgICB1bnNpZ25lZCBzaG9ydFByb3BlcnR5SW5kZXggPSBzaG9y
dGhhbmRQcm9wZXJ0eUlEIC0gZmlyc3RDU1NQcm9wZXJ0eTsKKyAgICAgICAgaWYgKHNob3J0aGFu
ZFByb3BlcnR5SUQpIHsKKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eVVzZWQuZ2V0
KHNob3J0UHJvcGVydHlJbmRleCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICBpZiAoIXNob3J0aGFuZFByb3BlcnR5QXBwZWFyZWQuZ2V0KHNob3J0UHJvcGVydHlJbmRl
eCkpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHNob3J0aGFuZFBy
b3BlcnR5SUQpOworICAgICAgICAgICAgc2hvcnRoYW5kUHJvcGVydHlBcHBlYXJlZC5lbnN1cmVT
aXplQW5kU2V0KHNob3J0UHJvcGVydHlJbmRleCwgbnVtQ1NTUHJvcGVydGllcyk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBwcm9wZXJ0
eUlEID0gc2hvcnRoYW5kUHJvcGVydHlJRDsKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5
VXNlZC5lbnN1cmVTaXplQW5kU2V0KHNob3J0UHJvcGVydHlJbmRleCwgbnVtQ1NTUHJvcGVydGll
cyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdmFsdWUgPSBwcm9wLnZhbHVlKCktPmNz
c1RleHQoKTsKKworICAgICAgICBpZiAodmFsdWUgPT0gImluaXRpYWwiICYmICFDU1NQcm9wZXJ0
eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0UHJvcGVydHlOYW1lKHN0YXRpY19jYXN0PENT
U1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIjogIik7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQodmFsdWUpOworICAgICAgICByZXN1bHQuYXBwZW5kKHBy
b3AuaXNJbXBvcnRhbnQoKSA/ICIgIWltcG9ydGFudCIgOiAiIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoIjsgIik7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBub3Qtc28tbmlj
ZSB3YXkgdG8gdHVybiB4L3kgcG9zaXRpb25zIGludG8gc2luZ2xlIGJhY2tncm91bmQtcG9zaXRp
b24gaW4gb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTExOTI4KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDMtMjMgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY3NzVGV4dCBzaG91bGQg
dXNlIHNob3J0aGFuZCBub3RhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxNzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmViYXNlbGluZSBleGlzdGluZyB0ZXN0cyBhbmQgYWRkIGEgcmVncmVz
c2lvbiB0ZXN0IGZvciB1bnByZWZpeGVkIENTUyBwcm9wZXJ0aWVzIHdpdGgKKyAgICAgICAgdGhl
IGV4Y2VwdGlvbiBvZiAtd2Via2l0LWJvcmRlci1ob3Jpem9udGFsL3ZlcnRpY2FsLXNwYWNpbmcg
KHRoZSBzaG9ydGhhbmQgdmVyc2lvbiBvZgorICAgICAgICB0aGVzZSBwcm9wZXJ0aWVzIChib3Jk
ZXItc3BhY2luZykgaXMgdW5wcmVmaXhlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1hbmQtc2FuaXRpemUtZXhwZWN0ZWQudHh0OiBVc2VzIGJvcmRlciBpbnN0ZWFkIG9m
IGxvbmdoYW5kCisgICAgICAgIHByb3BlcnRpZXMgYXMgZGVzaXJlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWw6CisgICAgICAgICogZWRpdGlu
Zy9zdHlsZS9ub24taW5oZXJpdGFibGUtc3R5bGVzLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAg
ICAgICogZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0
OiBObyBsb25nZXIgZW1pdHMgImJhY2tncm91bmQtKjoKKyAgICAgICAgaW5pdGlhbCIgYXMgZGVz
aXJlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nzc1RleHQtc2hvcnRoYW5kLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQuaHRtbDogTW9kaWZpZWQgdG8gZG8gZWxh
Ym9yYXRpdmUgY29tcGFyaXNvbiBvZiB0aGUgbGlzdHMgb2YKKyAgICAgICAgcHJvcGVydGllcyBi
ZWZvcmUgYW5kIGFmdGVyIHJlbW92aW5nIGEgc2hvcnRoYW5kIHNpbmNlIG5vdyByZW1vdmluZyBh
IHNob3J0aGFuZCBwcm9wZXJ0eQorICAgICAgICBtYXkgZW5kIHVwIGFkZGluZyBuZXcgbG9uZ2hh
bmQgcHJvcGVydHkuCisgICAgICAgICogZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3VyaS10b2tlbi1wYXJzaW5nLmh0bWw6IFVzZXMg
c2hvcnRoYW5kIHByb3BlcnRpZXMgaW5zdGVhZCBvZiBsb25naGFuZCBlcXVpdmFsZW50cy4KKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50
eHQ6IERpdHRvLgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC1leHBlY3Rl
ZC50eHQ6IERpdHRvLgorCiAyMDEyLTAzLTIzICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3RfZXhwZWN0YXRpb25zIHVwZGF0ZSBmb3Ig
Y2hyb21pdW0uCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5k
LXNhbml0aXplLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTEx
ODkyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIFBBU1MgY29uZmly
bWVkTWFya3VwIGlzICc8Yj48aT5IZWxsbzwvaT4KIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8
ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj5IZWxsbzwvYj48L2Rpdj4nCiBQQVNT
IGNvbmZpcm1lZE1hcmt1cCBpcyAnPGRpdj48Yj48aT5oZWxsbzwvaT48L2I+PC9kaXY+PGRpdj48
Yj48aT53b3JsZDwvaT48L2I+PC9kaXY+JwogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxiPjxp
PjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyAiPjxiPjxpPmhlbGxvMTwvaT48L2I+
PGI+PGk+Jm5ic3A7aGVsbG8yPC9pPjwvYj48L3NwYW4+PC9pPjwvYj4nCi1QQVNTIGNvbmZpcm1l
ZE1hcmt1cCBpcyAnPGkgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBw
eDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+PGI+PGkgc3R5bGU9
Im1hcmdpbi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBw
eDsgbWFyZ2luLWxlZnQ6IDEwcHg7ICI+aGVsbG88L2k+PC9iPjwvaT4nCitGQUlMIGNvbmZpcm1l
ZE1hcmt1cCBzaG91bGQgYmUgPGkgc3R5bGU9Im1hcmdpbjogMTBweDsgIj5oZWxsbzwvaT48L2I+
PC9pPi4gV2FzIDxpIHN0eWxlPSJtYXJnaW46IDEwcHg7ICI+PGI+PGkgc3R5bGU9Im1hcmdpbjog
MTBweDsgIj5oZWxsbzwvaT48L2I+PC9pPi4KIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48
aT5IZWxsbyZuYnNwO3dvcmxkPC9pPjwvYj4nCiBQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGI+
PGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7ICI+cGxhaW4gdGV4dDxiPjxpPmJv
bGQgaXRhbGljIHRleHQ8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPicKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS1hbmQtc2FuaXRpemUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwJKHJldmlzaW9uIDExMTg5MikKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCB0ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxp
PjxzcGFuIHN0eWxlCiAgICAgICAgICAgIjxkaXY+PGI+PGk+aGVsbG88L2k+PC9iPjwvZGl2Pjxk
aXY+PGI+PGk+d29ybGQ8L2k+PC9iPjwvZGl2PiIpOwogdGVzdFBhc3RlKCJkaXYiLCAiPGRpdj48
Yj48aT48c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWw7IFwiPjxiPjxpPmhlbGxvMTwv
aT48L2I+PGI+PGk+IGhlbGxvMjwvaT48L2I+PC9zcGFuPjwvaT48L2I+PC9kaXY+IiwgIjxiPjxp
PjxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5vcm1hbDsgXCI+PGI+PGk+aGVsbG8xPC9pPjwv
Yj48Yj48aT4mbmJzcDtoZWxsbzI8L2k+PC9iPjwvc3Bhbj48L2k+PC9iPiIpOwogdGVzdFBhc3Rl
KCJkaXYiLCAiPGkgc3R5bGU9XCJtYXJnaW46IDEwcHg7XCI+PGI+PGkgc3R5bGU9XCJtYXJnaW46
IDEwcHg7XCI+aGVsbG88L2k+PC9iPjwvaT4iLAotICAgICAgICAgICI8aSBzdHlsZT1cIm1hcmdp
bi10b3A6IDEwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbWFy
Z2luLWxlZnQ6IDEwcHg7IFwiPjxiPjxpIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDsgbWFyZ2lu
LXJpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBtYXJnaW4tbGVmdDogMTBweDsgXCI+
aGVsbG88L2k+PC9iPjwvaT4iKTsKKyAgICAgICAgICAiPGkgc3R5bGU9XCJtYXJnaW46IDEwcHg7
IFwiPmhlbGxvPC9pPjwvYj48L2k+Iik7CiB0ZXN0UGFzdGUoImRpdiIsICI8ZGl2PjxiPjxpPjxz
cGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IG5vcm1hbFwiPjxiPjxpPkhlbGxvIDwhLS0gY29tbWVu
dCAtLT53b3JsZDwvaT48L2I+PC9zcGFuPjwvaT48L2I+PC9kaXY+IiwgIjxiPjxpPkhlbGxvJm5i
c3A7d29ybGQ8L2k+PC9iPiIpOwogdGVzdFBhc3RlKCJkaXYiLCAiPGRpdj48Yj48aT48c3BhbiBz
dHlsZT1cImZvbnQtd2VpZ2h0OiBub3JtYWxcIj5wbGFpbiB0ZXh0PGI+PGk+Ym9sZCBpdGFsaWMg
dGV4dDwvaT48L2I+PC9zcGFuPjwvaT48L2I+PC9kaXY+IiwgIjxiPjxpPjxzcGFuIHN0eWxlPVwi
Zm9udC13ZWlnaHQ6IG5vcm1hbDsgXCI+cGxhaW4gdGV4dDxiPjxpPmJvbGQgaXRhbGljIHRleHQ8
L2k+PC9iPjwvc3Bhbj48L2k+PC9iPiIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL25vbi1pbmhlcml0YWJsZS1zdHlsZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbm9uLWluaGVyaXRhYmxlLXN0eWxlcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvbm9uLWlu
aGVyaXRhYmxlLXN0eWxlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw2
IEBAIFRoaXMgdGVzdHMgY29weS4gIE5vbi1pbmhlcml0YWJsZSBzdHlsZXMKIHwgPGRpdj4KIHwg
ICBjbGFzcz0iY2xhc3MiCiB8ICAgaWQ9ImlkIgotfCAgIHN0eWxlPSJib3JkZXItdG9wLXdpZHRo
OiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7
IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXIt
cmlnaHQtc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxl
ZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBibHVlOyBib3JkZXItcmlnaHQtY29s
b3I6IGJsdWU7IGJvcmRlci1ib3R0b20tY29sb3I6IGJsdWU7IGJvcmRlci1sZWZ0LWNvbG9yOiBi
bHVlOyBib3JkZXItaW1hZ2U6IGluaXRpYWw7ICIKK3wgICBzdHlsZT0iYm9yZGVyOiAxcHggc29s
aWQgYmx1ZTsgIgogfCAgICJUaGlzIHNob3VsZCBoYXZlIGJsdWUgYm9yZGVyIHdoZW4gaXRzIHBh
c3RlZC4iCiB8ICJUaGlzIHNob3VsZG4ndCBoYXZlIGEgYm9yZGVyLjwjc2VsZWN0aW9uLWNhcmV0
PiIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFs
aXplLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNr
Z3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExMTg5MikK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTksNCArNTksNCBAQCBQQVNTOiB0LnN0eWxl
LmNzc1RleHQgc2hvdWxkIGJlIGJhY2tncm91CiB0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFj
a2dyb3VuZDogdXJsKGFib3V0OmJsYW5rKSA4MCUgODAlOycpOwogdC5zdHlsZS5iYWNrZ3JvdW5k
UG9zaXRpb25ZID0gJzUwcHgnCiBzdHlsZS5jc3NUZXh0ID0KLWJhY2tncm91bmQtaW1hZ2U6IHVy
bChhYm91dDpibGFuayk7IGJhY2tncm91bmQtYXR0YWNobWVudDogaW5pdGlhbDsgYmFja2dyb3Vu
ZC1vcmlnaW46IGluaXRpYWw7IGJhY2tncm91bmQtY2xpcDogaW5pdGlhbDsgYmFja2dyb3VuZC1j
b2xvcjogaW5pdGlhbDsgYmFja2dyb3VuZC1wb3NpdGlvbjogODAlIDUwcHg7IGJhY2tncm91bmQt
cmVwZWF0OiBpbml0aWFsIGluaXRpYWw7CitiYWNrZ3JvdW5kLWltYWdlOiB1cmwoYWJvdXQ6Ymxh
bmspOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MCUgNTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IGlu
aXRpYWwgaW5pdGlhbDsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1RleHQtc2hvcnRo
YW5kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3NU
ZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3NUZXh0LXNob3J0aGFuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjYgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIFdlYktpdCB1c2VzIHNob3J0aGFuZCBub3Rh
dGlvbnMgZm9yIGNzc1RleHQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IDFweCBp
bml0aWFsIGluaXRpYWwiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NU
ZXh0KSBpcyAiYm9yZGVyOiAxcHggc29saWQgcmVkIgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVs
ZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogMXB4IGluaXRpYWwgcmVkIgorUEFTUyBu
b3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImJvcmRlcjogaW5pdGlh
bCBpbml0aWFsIHJlZCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1Rl
eHQpIGlzICJib3JkZXI6IDFweCBpbml0aWFsIGluaXRpYWwiCitQQVNTIG5vcm1hbGl6ZUNzc1Rl
eHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9yZGVyLWJvdHRvbS13aWR0aDogM3B4OyBi
b3JkZXItbGVmdC13aWR0aDogNHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDJweDsgYm9yZGVyLXRv
cC13aWR0aDogMXB4IgorUEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4
dCkgaXMgImJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsg
Ym9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDJweCIKK1BBU1Mgbm9y
bWFsaXplQ3NzVGV4dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXItYm90dG9tLXdp
ZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4
OyBib3JkZXItdG9wLXdpZHRoOiAxcHggIWltcG9ydGFudCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4
dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJv
cmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9w
LWNvbG9yOiByZWQ7IGJvcmRlci10b3Atd2lkdGg6IDFweCIKK1BBU1Mgbm9ybWFsaXplQ3NzVGV4
dChlbGVtZW50LnN0eWxlLmNzc1RleHQpIGlzICJib3JkZXI6IGluaXRpYWwgZG90dGVkIGluaXRp
YWwiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAiYm9y
ZGVyLXNwYWNpbmc6IDFweCAycHgiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHls
ZS5jc3NUZXh0KSBpcyAiZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogM2VtOyBm
b250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiBib2xkOyBsaW5lLWhlaWdodDogMmVtIgor
UEFTUyBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgaXMgImxpc3Qtc3R5
bGU6IGNpcmNsZSBpbnNpZGUiCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5j
c3NUZXh0KSBpcyAibWFyZ2luOiAxcHggMnB4IDNweCA0cHgiCitQQVNTIG5vcm1hbGl6ZUNzc1Rl
eHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBpcyAib3V0bGluZTogMnB4IGRvdHRlZCBibHVlIgor
RkFJTCBub3JtYWxpemVDc3NUZXh0KGVsZW1lbnQuc3R5bGUuY3NzVGV4dCkgc2hvdWxkIGJlIG92
ZXJmbG93OiBzY3JvbGwgaGlkZGVuLiBXYXMgb3ZlcmZsb3cteDogc2Nyb2xsOyBvdmVyZmxvdy15
OiBoaWRkZW4uCitQQVNTIG5vcm1hbGl6ZUNzc1RleHQoZWxlbWVudC5zdHlsZS5jc3NUZXh0KSBp
cyAicGFkZGluZzogMXB4IDJweCAzcHggNHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzc1Rl
eHQtc2hvcnRoYW5kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3Nz
VGV4dC1zaG9ydGhhbmQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2Nzc1RleHQtc2hvcnRoYW5kLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBlbnN1cmVzIFdlYktpdCB1c2VzIHNob3J0aGFuZCBub3RhdGlvbnMgZm9yIGNzc1Rl
eHQiKTsKKwordmFyIHRlc3RzID0gWworICAgIC8vIEZJWE1FOiBUaGlzIGV4aGliaXRzIGEgYnVn
LiBXZSBzaG91bGRuJ3QgYmUgb3V0cHV0aW5nIGJvcmRlci1pbWFnZSBoZXJlLgorICAgIFsnYm9y
ZGVyOiAxcHg7IGJvcmRlci10b3A6IDFweDsnLCAnYm9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFs
OyddLAorICAgIFsnYm9yZGVyOiAxcHggc29saWQgcmVkOycsICdib3JkZXI6IDFweCBzb2xpZCBy
ZWQ7J10sCisgICAgWydib3JkZXI6IDFweCByZWQ7JywgJ2JvcmRlcjogMXB4IGluaXRpYWwgcmVk
OyddLAorICAgIFsnYm9yZGVyOiByZWQ7JywgJ2JvcmRlcjogaW5pdGlhbCBpbml0aWFsIHJlZDsn
XSwKKyAgICBbJ2JvcmRlci10b3A6IDFweDsgYm9yZGVyLXJpZ2h0OiAxcHg7IGJvcmRlci1ib3R0
b206IDFweDsgYm9yZGVyLWxlZnQ6IDFweDsnLCAnYm9yZGVyOiAxcHggaW5pdGlhbCBpbml0aWFs
OyddLAorICAgIFsnYm9yZGVyLXRvcDogMXB4OyBib3JkZXItcmlnaHQ6IDJweDsgYm9yZGVyLWJv
dHRvbTogM3B4OyBib3JkZXItbGVmdDogNHB4OycsCisgICAgJ2JvcmRlci10b3Atd2lkdGg6IDFw
eDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDNweDsgYm9y
ZGVyLWxlZnQtd2lkdGg6IDRweDsnXSwKKyAgICBbJ2JvcmRlcjogMXB4OyBib3JkZXItdG9wOiAy
cHg7JywKKyAgICAnYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6
IDFweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMnB4OyddLAor
ICAgIFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3A6IDFweCAhaW1wb3J0YW50OycsCisgICAgJ2Jv
cmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1s
ZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50OyddLAorICAg
IFsnYm9yZGVyOiAxcHg7IGJvcmRlci10b3AtY29sb3I6IHJlZDsnLAorICAgICdib3JkZXItcmln
aHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13aWR0
aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3AtY29sb3I6IHJlZDsnXSwK
KyAgICBbJ2JvcmRlcjogc29saWQ7IGJvcmRlci1zdHlsZTogZG90dGVkJywgJ2JvcmRlcjogaW5p
dGlhbCBkb3R0ZWQgaW5pdGlhbDsnXSwKKworICAgIFsnLXdlYmtpdC1ib3JkZXItaG9yaXpvbnRh
bC1zcGFjaW5nOiAxcHg7IC13ZWJraXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNpbmc6IDJweDsnLCAn
Ym9yZGVyLXNwYWNpbmc6IDFweCAycHg7J10sCisKKyAgICAvLyBXZSBkb24ndCB1c2Ugc2hvcnRo
YW5kIGZvciBmb250LWZhbWlseSwgZXRjLi4uIGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMKKyAg
ICBbJ2ZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDogMmVtOyBmb250LXNpemU6
IDNlbTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsnLAorICAgICAgICAn
Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAyZW07IGZvbnQtc2l6ZTogM2Vt
OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiBib2xkOyddLAorCisgICAgWydsaXN0
LXN0eWxlLXR5cGU6IGNpcmNsZTsgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlOycsICdsaXN0
LXN0eWxlOiBjaXJjbGUgaW5zaWRlOyddLAorICAgIFsnbWFyZ2luLXRvcDogMXB4OyBtYXJnaW4t
cmlnaHQ6IDJweDsgbWFyZ2luLWJvdHRvbTogM3B4OyBtYXJnaW4tbGVmdDogNHB4OycsICdtYXJn
aW46IDFweCAycHggM3B4IDRweDsnXSwKKyAgICBbJ291dGxpbmUtd2lkdGg6IDJweDsgb3V0bGlu
ZS1zdHlsZTogZG90dGVkOyBvdXRsaW5lLWNvbG9yOiBibHVlOycsICdvdXRsaW5lOiAycHggZG90
dGVkIGJsdWU7J10sCisgICAgWydvdmVyZmxvdy14OiBzY3JvbGw7IG92ZXJmbG93LXk6IGhpZGRl
bjsnLCAnb3ZlcmZsb3c6IHNjcm9sbCBoaWRkZW47J10sCisgICAgWydwYWRkaW5nLXRvcDogMXB4
OyBwYWRkaW5nLXJpZ2h0OiAycHg7IHBhZGRpbmctYm90dG9tOiAzcHg7IHBhZGRpbmctbGVmdDog
NHB4OycsICdwYWRkaW5nOiAxcHggMnB4IDNweCA0cHg7J10sCitdOworCitmdW5jdGlvbiBub3Jt
YWxpemVDc3NUZXh0KHRleHQpIHsgcmV0dXJuIHRleHQudHJpbSgpLnNwbGl0KC87XHMqLykuc29y
dCgpLnNsaWNlKDEpLmpvaW4oIjsgIik7IH0KKwordmFyIGVsZW1lbnQ7Cit0ZXN0cy5mb3JFYWNo
KGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgdmFyIHN0eWxlQXR0cmlidXRlID0gdGVzdFswXTsKKyAg
ICB2YXIgZXhwZWN0ZWRDc3NUZXh0ID0gdGVzdFsxXTsKKworICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUn
LCBzdHlsZUF0dHJpYnV0ZSk7CisKKyAgICBzaG91bGRCZSgnbm9ybWFsaXplQ3NzVGV4dChlbGVt
ZW50LnN0eWxlLmNzc1RleHQpJywgJyInICsgbm9ybWFsaXplQ3NzVGV4dChleHBlY3RlZENzc1Rl
eHQpICsgJyInKTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRo
YW5kLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwyNyArMiw3NSBAQCBUZXN0IGZv
ciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnCiAKIFN0YXJ0aW5nIHdpdGggYSBkZWNs
YXJhdGlvbiBjb250YWluaW5nIGFsbCBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNvbnN0aXR1ZW50cyBv
ZiBzaG9ydGN1dHMsIHNlZSB3aGF0IGlzIHJlbW92ZWQgd2hlbiBhIHNob3J0Y3V0IHByb3BlcnR5
IGlzIHJlbW92ZWQuIFRoZSBzaG9ydGN1dOKAmXMgY29uc3RpdHVlbnRzIGFuZCBvbmx5IHRoZW0g
c2hvdWxkIGJlIHJlbW92ZWQuCiAKLVJlbW92aW5nIGJhY2tncm91bmQgcmVtb3ZlcyBiYWNrZ3Jv
dW5kLWltYWdlLCBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQsIGJhY2tncm91bmQtb3JpZ2luLCBiYWNr
Z3JvdW5kLWNsaXAsIGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtcG9zaXRpb24sIGJhY2tn
cm91bmQtcmVwZWF0LgotUmVtb3ZpbmcgYmFja2dyb3VuZC1wb3NpdGlvbiByZW1vdmVzIGJhY2tn
cm91bmQtcG9zaXRpb24uCi1SZW1vdmluZyBib3JkZXIgcmVtb3ZlcyBib3JkZXItdG9wLXdpZHRo
LCBib3JkZXItcmlnaHQtd2lkdGgsIGJvcmRlci1ib3R0b20td2lkdGgsIGJvcmRlci1sZWZ0LXdp
ZHRoLCBib3JkZXItdG9wLXN0eWxlLCBib3JkZXItcmlnaHQtc3R5bGUsIGJvcmRlci1ib3R0b20t
c3R5bGUsIGJvcmRlci1sZWZ0LXN0eWxlLCBib3JkZXItdG9wLWNvbG9yLCBib3JkZXItcmlnaHQt
Y29sb3IsIGJvcmRlci1ib3R0b20tY29sb3IsIGJvcmRlci1sZWZ0LWNvbG9yLgotUmVtb3Zpbmcg
Ym9yZGVyLXRvcCByZW1vdmVzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci10b3Atc3R5bGUsIGJv
cmRlci10b3AtY29sb3IuCi1SZW1vdmluZyBib3JkZXItcmlnaHQgcmVtb3ZlcyBib3JkZXItcmln
aHQtd2lkdGgsIGJvcmRlci1yaWdodC1zdHlsZSwgYm9yZGVyLXJpZ2h0LWNvbG9yLgotUmVtb3Zp
bmcgYm9yZGVyLWJvdHRvbSByZW1vdmVzIGJvcmRlci1ib3R0b20td2lkdGgsIGJvcmRlci1ib3R0
b20tc3R5bGUsIGJvcmRlci1ib3R0b20tY29sb3IuCi1SZW1vdmluZyBib3JkZXItbGVmdCByZW1v
dmVzIGJvcmRlci1sZWZ0LXdpZHRoLCBib3JkZXItbGVmdC1zdHlsZSwgYm9yZGVyLWxlZnQtY29s
b3IuCi1SZW1vdmluZyBib3JkZXItY29sb3IgcmVtb3ZlcyBib3JkZXItdG9wLWNvbG9yLCBib3Jk
ZXItcmlnaHQtY29sb3IsIGJvcmRlci1ib3R0b20tY29sb3IsIGJvcmRlci1sZWZ0LWNvbG9yLgot
UmVtb3ZpbmcgYm9yZGVyLXN0eWxlIHJlbW92ZXMgYm9yZGVyLXRvcC1zdHlsZSwgYm9yZGVyLXJp
Z2h0LXN0eWxlLCBib3JkZXItYm90dG9tLXN0eWxlLCBib3JkZXItbGVmdC1zdHlsZS4KLVJlbW92
aW5nIGJvcmRlci13aWR0aCByZW1vdmVzIGJvcmRlci10b3Atd2lkdGgsIGJvcmRlci1yaWdodC13
aWR0aCwgYm9yZGVyLWJvdHRvbS13aWR0aCwgYm9yZGVyLWxlZnQtd2lkdGguCi1SZW1vdmluZyBi
b3JkZXItcmFkaXVzIHJlbW92ZXMgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1y
aWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxl
ZnQtcmFkaXVzLgotUmVtb3ZpbmcgLXdlYmtpdC1ib3JkZXItcmFkaXVzIHJlbW92ZXMgYm9yZGVy
LXRvcC1sZWZ0LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLgotUmVtb3ZpbmcgYm9yZGVy
LXNwYWNpbmcgcmVtb3ZlcyAtd2Via2l0LWJvcmRlci1ob3Jpem9udGFsLXNwYWNpbmcsIC13ZWJr
aXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNpbmcuCi1SZW1vdmluZyAtd2Via2l0LWNvbHVtbnMgcmVt
b3ZlcyAtd2Via2l0LWNvbHVtbi13aWR0aCwgLXdlYmtpdC1jb2x1bW4tY291bnQuCi1SZW1vdmlu
ZyAtd2Via2l0LWNvbHVtbi1ydWxlIHJlbW92ZXMgLXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aCwg
LXdlYmtpdC1jb2x1bW4tcnVsZS1zdHlsZSwgLXdlYmtpdC1jb2x1bW4tcnVsZS1jb2xvci4KLVJl
bW92aW5nIGxpc3Qtc3R5bGUgcmVtb3ZlcyBsaXN0LXN0eWxlLXR5cGUsIGxpc3Qtc3R5bGUtcG9z
aXRpb24sIGxpc3Qtc3R5bGUtaW1hZ2UuCi1SZW1vdmluZyBtYXJnaW4gcmVtb3ZlcyBtYXJnaW4t
dG9wLCBtYXJnaW4tcmlnaHQsIG1hcmdpbi1ib3R0b20sIG1hcmdpbi1sZWZ0LgotUmVtb3Zpbmcg
LXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcmVtb3ZlcyAtd2Via2l0LW1hcmdpbi1iZWZvcmUtY29s
bGFwc2UsIC13ZWJraXQtbWFyZ2luLWFmdGVyLWNvbGxhcHNlLgotUmVtb3ZpbmcgLXdlYmtpdC1t
YXJxdWVlIHJlbW92ZXMgLXdlYmtpdC1tYXJxdWVlLWRpcmVjdGlvbiwgLXdlYmtpdC1tYXJxdWVl
LWluY3JlbWVudCwgLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRpb24sIC13ZWJraXQtbWFycXVlZS1z
dHlsZSwgLXdlYmtpdC1tYXJxdWVlLXNwZWVkLgotUmVtb3ZpbmcgLXdlYmtpdC1tYXNrIHJlbW92
ZXMgLXdlYmtpdC1tYXNrLWltYWdlLCAtd2Via2l0LW1hc2stcmVwZWF0LXgsIC13ZWJraXQtbWFz
ay1yZXBlYXQteSwgLXdlYmtpdC1tYXNrLWF0dGFjaG1lbnQsIC13ZWJraXQtbWFzay1wb3NpdGlv
bi14LCAtd2Via2l0LW1hc2stcG9zaXRpb24teSwgLXdlYmtpdC1tYXNrLW9yaWdpbiwgLXdlYmtp
dC1tYXNrLWNsaXAuCi1SZW1vdmluZyAtd2Via2l0LW1hc2stcG9zaXRpb24gcmVtb3ZlcyAtd2Vi
a2l0LW1hc2stcG9zaXRpb24teCwgLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXkuCi1SZW1vdmluZyBv
dmVyZmxvdyByZW1vdmVzIG92ZXJmbG93LXgsIG92ZXJmbG93LXkuCi1SZW1vdmluZyBwYWRkaW5n
IHJlbW92ZXMgcGFkZGluZy10b3AsIHBhZGRpbmctcmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRk
aW5nLWxlZnQuCi1SZW1vdmluZyAtd2Via2l0LXRleHQtc3Ryb2tlIHJlbW92ZXMgLXdlYmtpdC10
ZXh0LXN0cm9rZS1jb2xvciwgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aC4KK1JlbW92aW5nIGJh
Y2tncm91bmQKK3JlbW92ZXMgImJhY2tncm91bmQtaW1hZ2UsIGJhY2tncm91bmQtYXR0YWNobWVu
dCwgYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1wb3NpdGlvbiwgYmFja2dyb3VuZC1yZXBl
YXQiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIGJhY2tncm91bmQtcG9zaXRpb24KK3JlbW92ZXMg
ImJhY2tncm91bmQtcG9zaXRpb24iCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIGJvcmRlcgorcmVt
b3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBib3JkZXItdG9wCityZW1vdmVz
ICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXJpZ2h0LXdpZHRoLGJvcmRlci1ib3R0b20td2lk
dGgsYm9yZGVyLWxlZnQtd2lkdGgsYm9yZGVyLXJpZ2h0LXN0eWxlLGJvcmRlci1ib3R0b20tc3R5
bGUsYm9yZGVyLWxlZnQtc3R5bGUsYm9yZGVyLXJpZ2h0LWNvbG9yLGJvcmRlci1ib3R0b20tY29s
b3IsYm9yZGVyLWxlZnQtY29sb3IiLgorUmVtb3ZpbmcgYm9yZGVyLXJpZ2h0CityZW1vdmVzICJi
b3JkZXIiCithbmQgYWRkcyAiYm9yZGVyLXRvcC13aWR0aCxib3JkZXItYm90dG9tLXdpZHRoLGJv
cmRlci1sZWZ0LXdpZHRoLGJvcmRlci10b3Atc3R5bGUsYm9yZGVyLWJvdHRvbS1zdHlsZSxib3Jk
ZXItbGVmdC1zdHlsZSxib3JkZXItdG9wLWNvbG9yLGJvcmRlci1ib3R0b20tY29sb3IsYm9yZGVy
LWxlZnQtY29sb3IiLgorUmVtb3ZpbmcgYm9yZGVyLWJvdHRvbQorcmVtb3ZlcyAiYm9yZGVyIgor
YW5kIGFkZHMgImJvcmRlci10b3Atd2lkdGgsYm9yZGVyLXJpZ2h0LXdpZHRoLGJvcmRlci1sZWZ0
LXdpZHRoLGJvcmRlci10b3Atc3R5bGUsYm9yZGVyLXJpZ2h0LXN0eWxlLGJvcmRlci1sZWZ0LXN0
eWxlLGJvcmRlci10b3AtY29sb3IsYm9yZGVyLXJpZ2h0LWNvbG9yLGJvcmRlci1sZWZ0LWNvbG9y
Ii4KK1JlbW92aW5nIGJvcmRlci1sZWZ0CityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9y
ZGVyLXRvcC13aWR0aCxib3JkZXItcmlnaHQtd2lkdGgsYm9yZGVyLWJvdHRvbS13aWR0aCxib3Jk
ZXItdG9wLXN0eWxlLGJvcmRlci1yaWdodC1zdHlsZSxib3JkZXItYm90dG9tLXN0eWxlLGJvcmRl
ci10b3AtY29sb3IsYm9yZGVyLXJpZ2h0LWNvbG9yLGJvcmRlci1ib3R0b20tY29sb3IiLgorUmVt
b3ZpbmcgYm9yZGVyLWNvbG9yCityZW1vdmVzICJib3JkZXIiCithbmQgYWRkcyAiYm9yZGVyIi4K
K1JlbW92aW5nIGJvcmRlci1zdHlsZQorcmVtb3ZlcyAiYm9yZGVyIgorYW5kIGFkZHMgImJvcmRl
ciIuCitSZW1vdmluZyBib3JkZXItd2lkdGgKK3JlbW92ZXMgImJvcmRlciIKK2FuZCBhZGRzICJi
b3JkZXIiLgorUmVtb3ZpbmcgYm9yZGVyLXJhZGl1cworcmVtb3ZlcyAiYm9yZGVyLXRvcC1sZWZ0
LXJhZGl1cywgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsIGJvcmRlci1ib3R0b20tcmlnaHQtcmFk
aXVzLCBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAt
d2Via2l0LWJvcmRlci1yYWRpdXMKK3JlbW92ZXMgImJvcmRlci10b3AtbGVmdC1yYWRpdXMsIGJv
cmRlci10b3AtcmlnaHQtcmFkaXVzLCBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgYm9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1cyIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgYm9yZGVyLXNwYWNp
bmcKK3JlbW92ZXMgImJvcmRlci1zcGFjaW5nIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Vi
a2l0LWNvbHVtbnMKK3JlbW92ZXMgIi13ZWJraXQtY29sdW1uLXdpZHRoLCAtd2Via2l0LWNvbHVt
bi1jb3VudCIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgLXdlYmtpdC1jb2x1bW4tcnVsZQorcmVt
b3ZlcyAiLXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aCwgLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHls
ZSwgLXdlYmtpdC1jb2x1bW4tcnVsZS1jb2xvciIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgbGlz
dC1zdHlsZQorcmVtb3ZlcyAibGlzdC1zdHlsZS10eXBlLCBsaXN0LXN0eWxlLXBvc2l0aW9uLCBs
aXN0LXN0eWxlLWltYWdlIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBtYXJnaW4KK3JlbW92ZXMg
Im1hcmdpbiIKK2FuZCBhZGRzICIiLgorUmVtb3ZpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UK
K3JlbW92ZXMgIi13ZWJraXQtbWFyZ2luLWJlZm9yZS1jb2xsYXBzZSwgLXdlYmtpdC1tYXJnaW4t
YWZ0ZXItY29sbGFwc2UiCithbmQgYWRkcyAiIi4KK1JlbW92aW5nIC13ZWJraXQtbWFycXVlZQor
cmVtb3ZlcyAiLXdlYmtpdC1tYXJxdWVlLWRpcmVjdGlvbiwgLXdlYmtpdC1tYXJxdWVlLWluY3Jl
bWVudCwgLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRpb24sIC13ZWJraXQtbWFycXVlZS1zdHlsZSwg
LXdlYmtpdC1tYXJxdWVlLXNwZWVkIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LW1h
c2sKK3JlbW92ZXMgIi13ZWJraXQtbWFzaywgLXdlYmtpdC1tYXNrLXJlcGVhdCwgLXdlYmtpdC1t
YXNrLXBvc2l0aW9uIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0LW1hc2stcG9zaXRp
b24KK3JlbW92ZXMgIi13ZWJraXQtbWFzay1wb3NpdGlvbiIKK2FuZCBhZGRzICIiLgorUmVtb3Zp
bmcgb3ZlcmZsb3cKK3JlbW92ZXMgIm92ZXJmbG93IgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyBw
YWRkaW5nCityZW1vdmVzICJwYWRkaW5nIgorYW5kIGFkZHMgIiIuCitSZW1vdmluZyAtd2Via2l0
LXRleHQtc3Ryb2tlCityZW1vdmVzICItd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yLCAtd2Via2l0
LXRleHQtc3Ryb2tlLXdpZHRoIgorYW5kIGFkZHMgIiIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcmVtb3ZlLXNob3J0aGFuZC5odG1sCShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZW1vdmUtc2hvcnRoYW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDE0ICszMCwxOCBAQAogICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShz
aG9ydGhhbmQpOwogICAgICAgICAgICAgdmFyIHJlbWFpbmluZ1Byb3BlcnRpZXMgPSBlbGVtZW50
LnN0eWxlLmNzc1RleHQuc3BsaXQoIjsgIik7CiAgICAgICAgICAgICB2YXIgcmVtb3ZlZFByb3Bl
cnRpZXMgPSBbXTsKLSAgICAgICAgICAgIHZhciBwOwotICAgICAgICAgICAgd2hpbGUgKHAgPSBh
bGxQcm9wZXJ0aWVzLnNoaWZ0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocmVtYWluaW5nUHJv
cGVydGllc1swXSA9PSBwKQotICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdQcm9wZXJ0aWVz
LnNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICByZW1v
dmVkUHJvcGVydGllcy5wdXNoKCI8dHQ+IiArIHAucmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+
Iik7CisgICAgICAgICAgICB2YXIgYWRkZWRQcm9wZXJ0aWVzID0gW107CisKKyAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgICAgIGlmIChyZW1haW5pbmdQcm9wZXJ0aWVzLmluZGV4T2YoYWxsUHJvcGVydGllc1tp
XSkgPCAwKQorICAgICAgICAgICAgICAgICAgICByZW1vdmVkUHJvcGVydGllcy5wdXNoKCI8dHQ+
IiArIGFsbFByb3BlcnRpZXNbaV0ucmVwbGFjZSgvXDouKi8sIiIpICsgIjwvdHQ+Iik7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbWFpbmluZ1Byb3Bl
cnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoYWxsUHJvcGVydGllcy5p
bmRleE9mKHJlbWFpbmluZ1Byb3BlcnRpZXNbaV0pIDwgMCkKKyAgICAgICAgICAgICAgICAgICAg
YWRkZWRQcm9wZXJ0aWVzLnB1c2goIjx0dD4iICsgcmVtYWluaW5nUHJvcGVydGllc1tpXS5yZXBs
YWNlKC9cOi4qLywiIikgKyAiPC90dD4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxv
ZygiUmVtb3ZpbmcgPHR0PiIgKyBzaG9ydGhhbmQgKyAiPC90dD4gcmVtb3ZlcyAiICsgcmVtb3Zl
ZFByb3BlcnRpZXMuam9pbigiLCAiKSArIi4iKTsKKyAgICAgICAgICAgIGxvZygiUmVtb3Zpbmcg
PHR0PiIgKyBzaG9ydGhhbmQgKyAnPC90dD48YnI+cmVtb3ZlcyAiJyArIHJlbW92ZWRQcm9wZXJ0
aWVzLmpvaW4oIiwgIikKKyAgICAgICAgICAgICAgICArICciPGJyPmFuZCBhZGRzICInICsgYWRk
ZWRQcm9wZXJ0aWVzICsgJyIuJyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3VyaS10b2tl
bi1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdXJpLXRva2VuLXBhcnNpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xOSw5ICsxOSw5IEBAIFJ1bGVzIGZyb20gdGhlIHN0eWxlc2hlZXQ6CiAjbyB7IGNvbnRlbnQ6
IHVybChmKTsgfQogI3AgeyBjb250ZW50OiB1cmwoJ3VybChnKScpOyB9CiAjcSB7IGN1cnNvcjog
dXJsKCd1cmwocSknKTsgfQotI3IgeyBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJ3VybChyKScpOyB9
CisjciB7IGxpc3Qtc3R5bGU6IHVybCgndXJsKHIpJyk7IH0KICNzIHsgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKCd1cmwocyknKTsgfQotI3QgeyAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgndXJsKHQp
Jyk7IH0KKyN0IHsgLXdlYmtpdC1tYXNrOiB1cmwoJ3VybCh0KScpOyB9CiAjdSB7IC13ZWJraXQt
Ym9yZGVyLWltYWdlOiB1cmwoJ3VybCh1KScpIDEgMiAzIDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9
CiAjdiB7IC13ZWJraXQtbWFzay1ib3gtaW1hZ2U6IHVybCgndXJsKHYpJykgMSAyIDMgNCBmaWxs
IHN0cmV0Y2ggcm91bmQ7IH0KICN3IHsgY29udGVudDogdXJsKHd3KTsgfQpAQCAtNDQsOSArNDQs
OSBAQCBFeHBlY3RlZCByZXN1bHQ6CiAjbyB7IGNvbnRlbnQ6IHVybChmKTsgfQogI3AgeyBjb250
ZW50OiB1cmwoJ3VybChnKScpOyB9CiAjcSB7IGN1cnNvcjogdXJsKCd1cmwocSknKTsgfQotI3Ig
eyBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJ3VybChyKScpOyB9CisjciB7IGxpc3Qtc3R5bGU6IHVy
bCgndXJsKHIpJyk7IH0KICNzIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd1cmwocyknKTsgfQot
I3QgeyAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgndXJsKHQpJyk7IH0KKyN0IHsgLXdlYmtpdC1t
YXNrOiB1cmwoJ3VybCh0KScpOyB9CiAjdSB7IC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoJ3Vy
bCh1KScpIDEgMiAzIDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9CiAjdiB7IC13ZWJraXQtbWFzay1i
b3gtaW1hZ2U6IHVybCgndXJsKHYpJykgMSAyIDMgNCBmaWxsIHN0cmV0Y2ggcm91bmQ7IH0KICN3
IHsgY29udGVudDogdXJsKHd3KTsgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvdXJpLXRv
a2VuLXBhcnNpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy91cmkt
dG9rZW4tcGFyc2luZy5odG1sCShyZXZpc2lvbiAxMTE4OTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy91cmktdG9rZW4tcGFyc2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05Myw5ICs5Myw5
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogI28geyBjb250ZW50OiB1cmwoZik7IH0KICNwIHsgY29u
dGVudDogdXJsKCd1cmwoZyknKTsgfQogI3EgeyBjdXJzb3I6IHVybCgndXJsKHEpJyk7IH0KLSNy
IHsgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCd1cmwociknKTsgfQorI3IgeyBsaXN0LXN0eWxlOiB1
cmwoJ3VybChyKScpOyB9CiAjcyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgndXJsKHMpJyk7IH0K
LSN0IHsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJ3VybCh0KScpOyB9CisjdCB7IC13ZWJraXQt
bWFzazogdXJsKCd1cmwodCknKTsgfQogI3UgeyAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKCd1
cmwodSknKSAxIDIgMyA0IGZpbGwgc3RyZXRjaCByb3VuZDsgfQogI3YgeyAtd2Via2l0LW1hc2st
Ym94LWltYWdlOiB1cmwoJ3VybCh2KScpIDEgMiAzIDQgZmlsbCBzdHJldGNoIHJvdW5kOyB9CiAj
dyB7IGNvbnRlbnQ6IHVybCh3dyk7IH0KSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDExMTg5MikKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyAr
MzMsNyBAQCBjb2xvcjogI0MwRkZFRTsKIAogCiBSdW5uaW5nOiB0ZXN0U2V0VmlhUGFyc2VkQXR0
cmlidXRlcwotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJnYigxOTIsIDI1NSwg
MjM4KTsgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkOyBib3JkZXItcmlnaHQtc3R5bGU6IGRhc2hl
ZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogZGFzaGVkOyBib3JkZXItbGVmdC1zdHlsZTogZGFzaGVk
OyBib3JkZXItdG9wLWNvbG9yOiBncmVlbjsgYm9yZGVyLXJpZ2h0LWNvbG9yOiBncmVlbjsgYm9y
ZGVyLWJvdHRvbS1jb2xvcjogZ3JlZW47IGJvcmRlci1sZWZ0LWNvbG9yOiBncmVlbjsgYm9yZGVy
LWltYWdlOiBpbml0aWFsOyBib3JkZXItdG9wLXdpZHRoOiAzcHg7IGJvcmRlci1yaWdodC13aWR0
aDogM3B4OyBib3JkZXItYm90dG9tLXdpZHRoOiAzcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAzcHg7
ICI+PC9kaXY+Cis8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJjb2xvcjogcmdiKDE5MiwgMjU1
LCAyMzgpOyBib3JkZXI6IDNweCBkYXNoZWQgZ3JlZW47ICI+PC9kaXY+CiBbZXhwYW5kZWRdIAog
ZWxlbWVudC5zdHlsZSAgeyAoKQogY29sb3I6ICNDMEZGRUU7CkBAIC00Niw3ICs0Niw2IEBAIGJv
cmRlcjogM3B4IGRhc2hlZCBncmVlbjsKICAgICBib3JkZXItcmlnaHQtY29sb3I6IGdyZWVuOwog
ICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGdyZWVuOwogICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBn
cmVlbjsKLWJvcmRlci1pbWFnZTogaW5pdGlhbDsKIGJvcmRlci13aWR0aDogM3B4OwogICAgIGJv
cmRlci10b3Atd2lkdGg6IDNweDsKICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDNweDsKSW5kZXg6
IExheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtcnVsZS1jc3MtdGV4dC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1ydWxlLWNzcy10ZXh0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTExODkyKQorKysgTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1y
dWxlLWNzcy10ZXh0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBA
QAogQHBhZ2UgeyBtYXJnaW4tdG9wOiA1Y207IG1hcmdpbi1ib3R0b206IDEwY207IH0KIEBwYWdl
IDpsZWZ0IHsgbWFyZ2luLXJpZ2h0OiAzY207IH0KIEBwYWdlIDpyaWdodCB7IG1hcmdpbi1sZWZ0
OiAzY207IH0KLUBwYWdlIDpmaXJzdCB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJp
Z2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtd2lk
dGg6IDFweDsgfQorQHBhZ2UgOmZpcnN0IHsgYm9yZGVyOiAxcHg7IH0KIEBwYWdlIGhlbGxvIHsg
Y29sb3I6IGdyZWVuOyB9CiBAcGFnZSB3b3JsZDpyaWdodCB7IGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOyB9Ci1AbWVkaWEgcHJpbnQgeyBAcGFnZSBzb21lcGFnZTpmaXJzdCB7IG1hcmdpbi10b3A6
IDNjbTsgbWFyZ2luLXJpZ2h0OiAzY207IG1hcmdpbi1ib3R0b206IDNjbTsgbWFyZ2luLWxlZnQ6
IDNjbTsgfSB9CitAbWVkaWEgcHJpbnQgeyBAcGFnZSBzb21lcGFnZTpmaXJzdCB7IG1hcmdpbjog
M2NtOyB9IH0KIEBwYWdlIGF1dG9fcGFnZSB7IHNpemU6IGF1dG87IH0KIEBwYWdlIHNxdWFyZV9w
YWdlIHsgc2l6ZTogNGluOyB9CiBAcGFnZSBsZXR0ZXJfcGFnZSB7IHNpemU6IGxldHRlcjsgfQo=
</data>
<flag name="review"
          id="138028"
          type_id="1"
          status="+"
          setter="enrica"
    />
    <flag name="commit-queue"
          id="138052"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>