<?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>34879</bug_id>
          
          <creation_ts>2010-02-12 00:06:54 -0800</creation_ts>
          <short_desc>pywebsocket should support html and cgi in the same directory.</short_desc>
          <delta_ts>2010-03-09 02:41:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34871</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fumitoshi Ukai">ukai</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189963</commentid>
    <comment_count>0</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-12 00:06:54 -0800</bug_when>
    <thetext>Currently, we set  &quot;-x&quot;, &quot;/websocket/tests/cookies&quot; for pywebsocket invocation to specify /websocket/tests/cookies is cgi directory, so contents will be served as CGI instead of static file.

Ideally, we should be able to set his to &quot;/websocket/tests&quot;. That way, no one will get surprised by trying to add a .pl test to another subdirectory. Of course, pywebsocket would need to learn how to distinguish .html and .pl files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189965</commentid>
    <comment_count>1</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-12 00:10:32 -0800</bug_when>
    <thetext>http://code.google.com/p/pywebsocket/issues/detail?id=43 in upstream issue tracker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190950</commentid>
    <comment_count>2</comment_count>
      <attachid>48879</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 02:30:34 -0800</bug_when>
    <thetext>Created attachment 48879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191067</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-17 10:01:46 -0800</bug_when>
    <thetext>+        specify --server_host 127.0.0.1 -x /websocket/tests

What is --server-host, and why is it good to specify it? I think I know the answer, but please explain it in ChangeLog.

Seems untidy to have a mix of short and long option names.

&gt;             if &apos;..&apos; in self.path:
&gt;                 return False

Do functions that we use for path manipulation perform tilde expansion (for home directory)? Writing a truly secure server is out of scope for the test tool, it&apos;s just too similar to existing check for &quot;..&quot;, so I wanted to ask.

+            scriptfile = self.translate_path(self.path.split(&apos;?&apos;, 2)[0])

I don&apos;t understand what this line does. Someone who is better familiar with Python might understand it, and give their r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191361</commentid>
    <comment_count>4</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 19:21:06 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; +        specify --server_host 127.0.0.1 -x /websocket/tests
&gt; 
&gt; What is --server-host, and why is it good to specify it? I think I know the
&gt; answer, but please explain it in ChangeLog.

Ok.

&gt; Seems untidy to have a mix of short and long option names.

Changed to use long option names.

&gt; &gt;             if &apos;..&apos; in self.path:
&gt; &gt;                 return False
&gt; 
&gt; Do functions that we use for path manipulation perform tilde expansion (for
&gt; home directory)? Writing a truly secure server is out of scope for the test
&gt; tool, it&apos;s just too similar to existing check for &quot;..&quot;, so I wanted to ask.

I believe it doesn&apos;t perform tilde expansion.

&gt; +            scriptfile = self.translate_path(self.path.split(&apos;?&apos;, 2)[0])
&gt; 
&gt; I don&apos;t understand what this line does. Someone who is better familiar with
&gt; Python might understand it, and give their r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191371</commentid>
    <comment_count>5</comment_count>
      <attachid>48963</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 20:07:17 -0800</bug_when>
    <thetext>Created attachment 48963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191395</commentid>
    <comment_count>6</comment_count>
      <attachid>48963</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-17 21:37:58 -0800</bug_when>
    <thetext>Comment on attachment 48963
Patch

&gt; +        &quot;--server_host&quot;, &quot;127.0.0.1&quot;,
&gt; +        &quot;--port&quot;, &quot;$webSocketPort&quot;,
&gt; +        &quot;--document_root&quot;, &quot;$webSocketHandlerDir&quot;,
&gt; +        &quot;--scan_dir&quot;, &quot;$webSocketHandlerScanDir&quot;,
&gt; +        &quot;--websock_handlers_map_file&quot;, &quot;$webSocketHandlerMapFile&quot;,
&gt; +        &quot;--cgi_paths&quot;, &quot;/websocket/tests&quot;,
&gt; +        &quot;--log_file&quot;, &quot;$logFile&quot;,

I think that the usual Unix style for long options is to use dashes, not underscores.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191404</commentid>
    <comment_count>7</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 21:57:22 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 48963 [details])
&gt; &gt; +        &quot;--server_host&quot;, &quot;127.0.0.1&quot;,
&gt; &gt; +        &quot;--port&quot;, &quot;$webSocketPort&quot;,
&gt; &gt; +        &quot;--document_root&quot;, &quot;$webSocketHandlerDir&quot;,
&gt; &gt; +        &quot;--scan_dir&quot;, &quot;$webSocketHandlerScanDir&quot;,
&gt; &gt; +        &quot;--websock_handlers_map_file&quot;, &quot;$webSocketHandlerMapFile&quot;,
&gt; &gt; +        &quot;--cgi_paths&quot;, &quot;/websocket/tests&quot;,
&gt; &gt; +        &quot;--log_file&quot;, &quot;$logFile&quot;,
&gt; 
&gt; I think that the usual Unix style for long options is to use dashes, not
&gt; underscores.

We&apos;ve used userscores...
Since this options is in pywebsocket, and no WebKitTools/Scripts uses underscores, 
should I fix it to use dashes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191450</commentid>
    <comment_count>8</comment_count>
      <attachid>48963</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-18 00:16:51 -0800</bug_when>
    <thetext>Comment on attachment 48963
Patch

Underscores are a strange Google convention.  WebKit-land uses dashes.  Also, you patch does not appear to apply cleanly to top of tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191509</commentid>
    <comment_count>9</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-18 03:02:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 48963 [details])
&gt; Underscores are a strange Google convention.  WebKit-land uses dashes. 

I think pywebsocket is third party code, so don&apos;t need to flow WebKit-style.

&gt; Also,
&gt; you patch does not appear to apply cleanly to top of tree.

Hmm, this is webkit-patch (with git) bug, when moving files and directory becomes empty?

webkit-patch apply-attachment says
$ ./WebKitTools/Scripts/webkit-patch apply-attachment 48963
Cleaning working directory
Updating working directory
Reading Keychain for bugs.webkit.org account and password.  Click &quot;Allow&quot; to continue...
Logging in as ukai@chromium.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=48963&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=34879&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 48963 from bug 34879.
Failed to run &quot;[&apos;/Users/ukai/src/chromium-webkit2/src/third_party/WebKit/WebKitTools/Scripts/svn-apply&apos;]&quot; exit_code: 2
Last 500 characters of output:
h fuzz 3.
patching file WebKitTools/Scripts/run-webkit-tests
patching file WebKitTools/Scripts/run-webkit-websocketserver
patching file WebKitTools/Scripts/webkitpy/layout_tests/port/websocket_server.py
patching file WebKitTools/pywebsocket/mod_pywebsocket/standalone.py
patching file WebKitTools/pywebsocket/setup.py
Could not open &apos;LayoutTests/websocket/tests/cookies&apos; to list files: 0 at /Users/ukai/src/chromium-webkit2/src/third_party/WebKit/WebKitTools/Scripts/svn-apply line 314, &lt;&gt; line 417.

Failed to run &quot;[&apos;/Users/ukai/src/chromium-webkit2/src/third_party/WebKit/WebKitTools/Scripts/svn-apply&apos;]&quot; exit_code: 2
ukai-macpro:WebKit ukai$ git reset --hard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191510</commentid>
    <comment_count>10</comment_count>
      <attachid>48992</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-18 03:03:19 -0800</bug_when>
    <thetext>Created attachment 48992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192365</commentid>
    <comment_count>11</comment_count>
      <attachid>49188</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-21 23:54:46 -0800</bug_when>
    <thetext>Created attachment 49188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194564</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-02-28 00:39:48 -0800</bug_when>
    <thetext>FYI, we now have a README.webkit file in pywebsocket&apos;s directory that can be updated whenever local changes are made to pywebsocket:

https://bugs.webkit.org/show_bug.cgi?id=35198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194659</commentid>
    <comment_count>13</comment_count>
      <attachid>49714</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-01 02:13:40 -0800</bug_when>
    <thetext>Created attachment 49714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195413</commentid>
    <comment_count>14</comment_count>
      <attachid>49885</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-03 00:52:50 -0800</bug_when>
    <thetext>Created attachment 49885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195776</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-03 15:02:03 -0800</bug_when>
    <thetext>I think I could review this patch if you explained what this line did:

+            scriptfile = self.translate_path(self.path.split(&apos;?&apos;, 2)[0])

It seems worth both a short comment, and a longer explanation in the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195835</commentid>
    <comment_count>16</comment_count>
      <attachid>49969</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-03 18:08:40 -0800</bug_when>
    <thetext>Created attachment 49969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195836</commentid>
    <comment_count>17</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-03 18:10:40 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; I think I could review this patch if you explained what this line did:
&gt; 
&gt; +            scriptfile = self.translate_path(self.path.split(&apos;?&apos;, 2)[0])

it gets real pathname from request path.
 self.path contains request path in HTTP request header
 self.path.split(&apos;?&apos;, 2)[0] strips query parameter if any
 self.translate_path() converts resource name into pathname on filesystem.
 
&gt; It seems worth both a short comment, and a longer explanation in the bug.

added comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196669</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 14:28:05 -0800</bug_when>
    <thetext>I&apos;m not sure what the svn-apply bug which this is tripping over is:
Could not open &apos;LayoutTests/websocket/tests/cookies&apos; to list files: 0 at /mnt/git/webkit-chromium-ews/WebKitTools/Scripts/svn-apply line 314, &lt;&gt; line 715.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197414</commentid>
    <comment_count>19</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-08 17:36:23 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m not sure what the svn-apply bug which this is tripping over is:
&gt; Could not open &apos;LayoutTests/websocket/tests/cookies&apos; to list files: 0 at
&gt; /mnt/git/webkit-chromium-ews/WebKitTools/Scripts/svn-apply line 314, &lt;&gt; line
&gt; 715.

Hmm, this is because the patch is trying to remove the directory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197458</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-08 22:22:08 -0800</bug_when>
    <thetext>Sounds like bug 34871.  Bug 14590 could also possibly be related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197476</commentid>
    <comment_count>21</comment_count>
      <attachid>49969</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-08 23:35:11 -0800</bug_when>
    <thetext>Comment on attachment 49969
Patch

r=me. Please land this with svn - as far as I know, git wrappers won&apos;t preserve history of file copies correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197508</commentid>
    <comment_count>22</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-03-09 02:41:18 -0800</bug_when>
    <thetext>Committed r55719: &lt;http://trac.webkit.org/changeset/55719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48879</attachid>
            <date>2010-02-17 02:30:34 -0800</date>
            <delta_ts>2010-02-17 20:07:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100217193032.patch</filename>
            <type>text/plain</type>
            <size>14495</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZjM2NTM3Li41MjlhNTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBv
cnQgaHRtbCBhbmQgY2dpIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgKiB3ZWJzb2Nr
ZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGw6IFJlbW92ZWQuCisgICAgICAgICog
d2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llX3dzaC5weTogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llX3dzaC5weS4KKyAgICAgICAg
KiB3ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1l
eHBlY3RlZC50eHQuCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5w
bDogQWRkZWQuCisKIDIwMTAtMDEtMDcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2ll
X3dzaC5weSBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2ll
X3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E0YWMyZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAotCi1kZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi1kZWYgd2ViX3NvY2tldF90cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICBy
ZXF1ZXN0LmhlYWRlcnNfaW5bJ0Nvb2tpZSddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3OTA3YWEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRlc3QgV2ViU29ja2V0IHNl
bmRzIEh0dHBPbmx5IGNvb2tpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotV2Vi
U29ja2V0IG9wZW4KLVdlYlNvY2tldCBjbG9zZWQKLVBBU1MgY29va2llIGlzICJXSy13ZWJzb2Nr
ZXQtdGVzdD0xOyBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xIgotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbCBiL0xheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggZWQwN2YxYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGwKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0jIS91c3IvYmluL3BlcmwgLXdUCi11c2Ugc3RyaWN0OwotCi1wcmlu
dCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuIjsKLXByaW50ICJTZXQtQ29va2llOiBXSy13
ZWJzb2NrZXQtdGVzdD0xXHJcbiI7Ci1wcmludCAiU2V0LUNvb2tpZTogV0std2Vic29ja2V0LXRl
c3QtaHR0cG9ubHk9MTsgSHR0cE9ubHlcclxuIjsKLXByaW50ICJcclxuIjsKLXByaW50IDw8SFRN
TAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHA+VGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy48L3A+Ci08
cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuPC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciBjb29raWU7Ci0KLWZ1bmN0aW9uIGVuZFRlc3QoKQot
ewotICAgIHNob3VsZEJlKCJjb29raWUiLCAnIldLLXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNv
Y2tldC10ZXN0LWh0dHBvbmx5PTEiJyk7Ci0gICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLQotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8x
MjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZSIpOwotd3Mu
b25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIldlYlNvY2tldCBvcGVuIik7Ci19Owot
d3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgY29va2llID0gZXZ0LmRhdGE7Ci0g
ICAgd3MuY2xvc2UoKTsKLX07Ci13cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgZGVidWco
IldlYlNvY2tldCBjbG9zZWQiKTsKLSAgICBlbmRUZXN0KCk7Ci19OwotCi12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotSFRNTApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llX3dzaC5weSBi
L0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9lY2hvLWNvb2tpZV93c2gucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E0YWMyZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9lY2hvLWNvb2tpZV93c2gucHkKQEAgLTAsMCArMSwz
NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1z
Z3V0aWwKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAg
IHBhc3MKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAgcmVxdWVzdC5oZWFkZXJzX2luWydDb29raWUnXSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tp
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5MDdh
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25s
eS1jb29raWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgV2ViU29ja2V0IHNl
bmRzIEh0dHBPbmx5IGNvb2tpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworV2Vi
U29ja2V0IG9wZW4KK1dlYlNvY2tldCBjbG9zZWQKK1BBU1MgY29va2llIGlzICJXSy13ZWJzb2Nr
ZXQtdGVzdD0xOyBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwgYi9MYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAuLjA2NmQwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCkBAIC0wLDAgKzEsNTEgQEAKKyMhL3Vzci9iaW4v
cGVybCAtd1QKK3VzZSBzdHJpY3Q7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxy
XG4iOworcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxuIjsKK3ByaW50
ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRwT25seVxyXG4i
OworcHJpbnQgIlxyXG4iOworcHJpbnQgPDxIVE1MCis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24u
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBI
dHRwT25seSBjb29raWVzLjwvcD4KKzxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNvb2tpZTsK
KworZnVuY3Rpb24gZW5kVGVzdCgpCit7CisgICAgc2hvdWxkQmUoImNvb2tpZSIsICciV0std2Vi
c29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKKyAgICBpc1N1
Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgd3Mg
PSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hv
LWNvb2tpZSIpOword3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIldlYlNvY2tl
dCBvcGVuIik7Cit9Oword3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgY29va2ll
ID0gZXZ0LmRhdGE7CisgICAgd3MuY2xvc2UoKTsKK307Cit3cy5vbmNsb3NlID0gZnVuY3Rpb24o
KSB7CisgICAgZGVidWcoIldlYlNvY2tldCBjbG9zZWQiKTsKKyAgICBlbmRUZXN0KCk7Cit9Owor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgorSFRNTApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDRiNjU2NTkuLmQ1NDZiYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMC0wMi0xNyAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBweXdlYnNvY2tldCBz
aG91bGQgc3VwcG9ydCBodG1sIGFuZCBjZ2kgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NzkKKworICAgICAg
ICBpbXBvcnQgcHl3ZWJzb2NrZXQgMC40LjkKKyAgICAgICAgc3BlY2lmeSAtLXNlcnZlcl9ob3N0
IDEyNy4wLjAuMSAteCAvd2Vic29ja2V0L3Rlc3RzCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13
ZWJraXQtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZl
cjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tl
dF9zZXJ2ZXIucHk6CisgICAgICAgICogcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5k
YWxvbmUucHk6CisgICAgICAgICogcHl3ZWJzb2NrZXQvc2V0dXAucHk6CisKIDIwMTAtMDItMTUg
IENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2hpbmljaGlybyBIYW1hamkuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3J1bi13ZWJraXQtdGVzdHMgYi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMK
aW5kZXggODA5ZTA3OC4uZTgyNmU5YyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9y
dW4td2Via2l0LXRlc3RzCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0
cwpAQCAtMTM5NCwxMSArMTM5NCwxMiBAQCBzdWIgb3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVk
KCkKIAogICAgIG15IEBhcmdzID0gKAogICAgICAgICAiV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAorICAgICAgICAiLS1zZXJ2ZXJfaG9zdCIs
ICIxMjcuMC4wLjEiLAogICAgICAgICAiLXAiLCAiJHdlYlNvY2tldFBvcnQiLAogICAgICAgICAi
LWQiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAogICAgICAgICAiLXMiLCAiJHdlYlNvY2tldEhh
bmRsZXJTY2FuRGlyIiwKICAgICAgICAgIi1tIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIs
Ci0gICAgICAgICIteCIsICIvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMiLAorICAgICAgICAiLXgi
LCAiL3dlYnNvY2tldC90ZXN0cyIsCiAgICAgICAgICItbCIsICIkbG9nRmlsZSIsCiAgICAgICAg
ICItLXN0cmljdCIsCiAgICAgKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVu
LXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIgYi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
d2Vic29ja2V0c2VydmVyCmluZGV4IDY0YTcyNGQuLjc2MzExMmIgMTAwNzU1Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgpAQCAtNzEsMTEgKzcxLDEyIEBA
IHN1YiBvcGVuV2ViU29ja2V0U2VydmVyKCkKIAogICAgIG15IEBhcmdzID0gKAogICAgICAgICAi
JHNyY0Rpci9XZWJLaXRUb29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weSIsCisgICAgICAgICItLXNlcnZlcl9ob3N0IiwgIjEyNy4wLjAuMSIsCiAgICAgICAgICIt
cCIsICIkd2ViU29ja2V0UG9ydCIsCiAgICAgICAgICItZCIsICIkd2ViU29ja2V0SGFuZGxlckRp
ciIsCiAgICAgICAgICItcyIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAogICAgICAgICAi
LW0iLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKLSAgICAgICAgIi14IiwgIi93ZWJzb2Nr
ZXQvdGVzdHMvY29va2llcyIsCisgICAgICAgICIteCIsICIvd2Vic29ja2V0L3Rlc3RzIiwKICAg
ICApOwogCiAgICAgJEVOVnsiUFlUSE9OUEFUSCJ9ID0gJHdlYlNvY2tldFB5dGhvblBhdGg7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dlYnNvY2tldF9zZXJ2ZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKaW5kZXggYmE4YTVlOS4uY2ViZTRkZSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJzb2NrZXRfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtMTU2LDkgKzE1NiwxMSBA
QCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAgICAgICAgICAn
c3RhbmRhbG9uZS5weScpCiAgICAgICAgIHN0YXJ0X2NtZCA9IFsKICAgICAgICAgICAgIHB5dGhv
bl9pbnRlcnAsIHB5d2Vic29ja2V0X3NjcmlwdCwKKyAgICAgICAgICAgICctLXNlcnZlcl9ob3N0
JywgJzEyNy4wLjAuMScsCiAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fcG9ydCksCiAgICAg
ICAgICAgICAnLWQnLCBzZWxmLl9sYXlvdXRfdGVzdHMsCiAgICAgICAgICAgICAnLXMnLCBzZWxm
Ll93ZWJfc29ja2V0X3Rlc3RzLAorICAgICAgICAgICAgJy14JywgJy93ZWJzb2NrZXQvdGVzdHMn
LAogICAgICAgICAgICAgJy1sJywgZXJyb3JfbG9nLAogICAgICAgICBdCiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIv
V2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKaW5k
ZXggODYyOGZmOS4uMGFlODFjYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKKysrIGIvV2ViS2l0VG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKQEAgLTI3MiwxMCArMjcyLDE5IEBAIGNs
YXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RI
YW5kbGVyKToKICAgICBkZWYgaXNfY2dpKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHdoZXRoZXIg
c2VsZi5wYXRoIGNvcnJlc3BvbmRzIHRvIGEgQ0dJIHNjcmlwdC4KIAotICAgICAgICBBZGQgZXh0
cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLiIiIgorICAgICAgICBB
ZGQgZXh0cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLgorICAgICAg
ICBBbHNvIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBmaWxlIG9yIG5vdC4KKyAg
ICAgICAgSWYgdGhlIGZpbGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlzIGhhbmRsZWQgYXMgc3Rh
dGljIGZpbGUgb3IgZGlyCisgICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJIHNjcmlwdC4KKyAgICAg
ICAgIiIiCiAgICAgICAgIGlmIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlz
X2NnaShzZWxmKToKICAgICAgICAgICAgIGlmICcuLicgaW4gc2VsZi5wYXRoOgogICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgc2NyaXB0ZmlsZSA9IHNlbGYudHJhbnNs
YXRlX3BhdGgoc2VsZi5wYXRoLnNwbGl0KCc/JywgMilbMF0pCisgICAgICAgICAgICBpZiBub3Qg
b3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19leGVjdXRhYmxlKHNjcmlwdGZpbGUpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAg
ICAgcmV0dXJuIEZhbHNlCiAKQEAgLTMyMSw2ICszMzAsOSBAQCBkZWYgX2FsaWFzX2hhbmRsZXJz
KGRpc3BhdGNoZXIsIHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpOgogCiBkZWYgX21haW4oKToK
ICAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctLXNlcnZlcl9ob3N0JywgZGVzdD0nc2VydmVyX2hvc3QnLAorICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9JycsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhv
c3RuYW1lIHRvIGxpc3RlbiB0bycpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9y
dCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9aGFuZHNoYWtlLl9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwKICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdwb3J0IHRvIGxpc3RlbiB0bycpCkBAIC00MDcsNyArNDE5LDggQEAgZGVmIF9t
YWluKCk6CiAgICAgICAgIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyLm9wdGlvbnMgPSBvcHRpb25z
CiAgICAgICAgIFdlYlNvY2tldFNlcnZlci5vcHRpb25zID0gb3B0aW9ucwogCi0gICAgICAgIHNl
cnZlciA9IFdlYlNvY2tldFNlcnZlcigoJycsIG9wdGlvbnMucG9ydCksIFdlYlNvY2tldFJlcXVl
c3RIYW5kbGVyKQorICAgICAgICBzZXJ2ZXIgPSBXZWJTb2NrZXRTZXJ2ZXIoKG9wdGlvbnMuc2Vy
dmVyX2hvc3QsIG9wdGlvbnMucG9ydCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKICAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIo
KQogICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoc3Ry
KGUpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkgYi9XZWJL
aXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5weQppbmRleCA5NzI5MzIyLi5iY2RlYzA0IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5weQorKysgYi9XZWJLaXRUb29s
cy9weXdlYnNvY2tldC9zZXR1cC5weQpAQCAtNTYsNyArNTYsNyBAQCBzZXR1cChhdXRob3I9J1l1
em8gRnVqaXNoaW1hJywKICAgICAgIG5hbWU9X1BBQ0tBR0VfTkFNRSwKICAgICAgIHBhY2thZ2Vz
PVtfUEFDS0FHRV9OQU1FXSwKICAgICAgIHVybD0naHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5
d2Vic29ja2V0LycsCi0gICAgICB2ZXJzaW9uPScwLjQuOCcsCisgICAgICB2ZXJzaW9uPScwLjQu
OScsCiAgICAgICApCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48963</attachid>
            <date>2010-02-17 20:07:17 -0800</date>
            <delta_ts>2010-02-18 03:03:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100218130715.patch</filename>
            <type>text/plain</type>
            <size>16118</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3Y2JkZWM1Li44OTc1OWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBv
cnQgaHRtbCBhbmQgY2dpIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5
d2Vic29ja2V0IDAuNC45CisgICAgICAgIFNwZWNpZnkgLS1zZXJ2ZXJfaG9zdCAxMjcuMC4wLjEs
IHNvIHRoYXQgaXQgb25seSBiaW5kcyBsaXN0ZW5pbmcgc29ja2V0CisgICAgICAgIHRvIDEyNy4w
LjAuMSB0byBwcmV2ZW50IGFjY2VzcyBmcm9tIG5vbi1sb2NhbGhvc3QuCisgICAgICAgIENoYW5n
ZSAtLWNnaV9wYXRocyBmcm9tIC93ZWJzb2NrZXQvdGVzdHMvY29va2llcyB0byAvd2Vic29ja2V0
L3Rlc3RzLAorICAgICAgICBiZWNhdXNlIHB5d2Vic29ja2V0IDAuNC45IHN1cHBvcnRzIGh0bWwg
YW5kIGNnaSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKKyAgICAgICAgYW5kIG9ubHkgZXhlY3V0YWJs
ZSAoaHR0cG9ubHktY29va2llcy5wbCkgd2lsbCBiZSBoYW5kbGVkIGFzIGNnaQorICAgICAgICBz
Y3JpcHQuCisgICAgICAgIAorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBv
bmx5LWNvb2tpZS5wbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvZWNoby1j
b29raWVfd3NoLnB5OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nv
b2tpZXMvZWNoby1jb29raWVfd3NoLnB5LgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9odHRw
b25seS1jb29raWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiB3ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsOiBBZGRlZC4KKwogMjAxMC0wMi0x
NyAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YTRhYzJkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0
cy9jb29raWVzL2VjaG8tY29va2llX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1
dGlsCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBw
YXNzCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgIHJlcXVlc3QuaGVhZGVyc19pblsnQ29va2llJ10pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1j
b29raWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMv
aHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzc5MDdhYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29v
a2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEg
KzAsMCBAQAotVGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi1XZWJTb2NrZXQgb3BlbgotV2ViU29ja2V0IGNsb3NlZAot
UEFTUyBjb29raWUgaXMgIldLLXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNvY2tldC10ZXN0LWh0
dHBvbmx5PTEiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0
cG9ubHktY29va2llLnBsIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0
cG9ubHktY29va2llLnBsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlZDA3ZjFhLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5
LWNvb2tpZS5wbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLSMhL3Vzci9iaW4vcGVy
bCAtd1QKLXVzZSBzdHJpY3Q7Ci0KLXByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG4i
OwotcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxuIjsKLXByaW50ICJT
ZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRwT25seVxyXG4iOwot
cHJpbnQgIlxyXG4iOwotcHJpbnQgPDxIVE1MCi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rp
b24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0IFdlYlNvY2tldCBzZW5k
cyBIdHRwT25seSBjb29raWVzLjwvcD4KLTxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvb2tp
ZTsKLQotZnVuY3Rpb24gZW5kVGVzdCgpCi17Ci0gICAgc2hvdWxkQmUoImNvb2tpZSIsICciV0st
d2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKLSAgICBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotCi12YXIg
d3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9j
b29raWVzL2VjaG8tY29va2llIik7Ci13cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1
ZygiV2ViU29ja2V0IG9wZW4iKTsKLX07Ci13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsK
LSAgICBjb29raWUgPSBldnQuZGF0YTsKLSAgICB3cy5jbG9zZSgpOwotfTsKLXdzLm9uY2xvc2Ug
PSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3NlZCIpOwotICAgIGVuZFRl
c3QoKTsKLX07Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+Ci1IVE1MCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJzb2NrZXQv
dGVzdHMvZWNoby1jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Vj
aG8tY29va2llX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTRh
YzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2VjaG8t
Y29va2llX3dzaC5weQpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitmcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAorCitkZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpOgorICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICByZXF1
ZXN0LmhlYWRlcnNfaW5bJ0Nvb2tpZSddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zNzkwN2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorVGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCitXZWJTb2NrZXQgb3BlbgorV2ViU29ja2V0IGNsb3NlZAor
UEFTUyBjb29raWUgaXMgIldLLXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNvY2tldC10ZXN0LWh0
dHBvbmx5PTEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNv
b2tpZS5wbCBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDY2ZDBjOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwKQEAg
LTAsMCArMSw1MSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0cmljdDsKKworcHJpbnQg
IkNvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcbiI7CitwcmludCAiU2V0LUNvb2tpZTogV0std2Vi
c29ja2V0LXRlc3Q9MVxyXG4iOworcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0
LWh0dHBvbmx5PTE7IEh0dHBPbmx5XHJcbiI7CitwcmludCAiXHJcbiI7CitwcmludCA8PEhUTUwK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRlc3QgV2ViU29ja2V0IHNlbmRzIEh0dHBPbmx5IGNvb2tpZXMuPC9wPgorPHA+T24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworfQorCit2YXIgY29va2llOworCitmdW5jdGlvbiBlbmRUZXN0KCkKK3sKKyAgICBz
aG91bGRCZSgiY29va2llIiwgJyJXSy13ZWJzb2NrZXQtdGVzdD0xOyBXSy13ZWJzb2NrZXQtdGVz
dC1odHRwb25seT0xIicpOworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK3ZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4x
Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llIik7Cit3cy5vbm9wZW4gPSBmdW5jdGlv
bigpIHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IG9wZW4iKTsKK307Cit3cy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldnQpIHsKKyAgICBjb29raWUgPSBldnQuZGF0YTsKKyAgICB3cy5jbG9zZSgpOwor
fTsKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3Nl
ZCIpOworICAgIGVuZFRlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CitIVE1MCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMzJkOTM1My4uOWQ0
NWMzNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTAyLTE3ICBGdW1pdG9zaGkgVWthaSAg
PHVrYWlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIHB5d2Vic29ja2V0IHNob3VsZCBzdXBwb3J0IGh0bWwgYW5kIGNnaSBpbiB0
aGUgc2FtZSBkaXJlY3RvcnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDg3OQorCisgICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgor
ICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXI6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5Ogor
ICAgICAgICAqIHB5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5OgorICAg
ICAgICAqIHB5d2Vic29ja2V0L3NldHVwLnB5OgorCiAyMDEwLTAyLTE3ICBTaGluaWNoaXJvIEhh
bWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKaW5kZXggODA5ZTA3OC4uNjFj
Y2Q0MCAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTM5NCwxMiArMTM5
NCwxMyBAQCBzdWIgb3BlbldlYlNvY2tldFNlcnZlcklmTmVlZGVkKCkKIAogICAgIG15IEBhcmdz
ID0gKAogICAgICAgICAiV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkiLAotICAgICAgICAiLXAiLCAiJHdlYlNvY2tldFBvcnQiLAotICAgICAgICAi
LWQiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAotICAgICAgICAiLXMiLCAiJHdlYlNvY2tldEhh
bmRsZXJTY2FuRGlyIiwKLSAgICAgICAgIi1tIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIs
Ci0gICAgICAgICIteCIsICIvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMiLAotICAgICAgICAiLWwi
LCAiJGxvZ0ZpbGUiLAorICAgICAgICAiLS1zZXJ2ZXJfaG9zdCIsICIxMjcuMC4wLjEiLAorICAg
ICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQb3J0IiwKKyAgICAgICAgIi0tZG9jdW1lbnRfcm9v
dCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCisgICAgICAgICItLXNjYW5fZGlyIiwgIiR3ZWJT
b2NrZXRIYW5kbGVyU2NhbkRpciIsCisgICAgICAgICItLXdlYnNvY2tfaGFuZGxlcnNfbWFwX2Zp
bGUiLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKKyAgICAgICAgIi0tY2dpX3BhdGhzIiwg
Ii93ZWJzb2NrZXQvdGVzdHMiLAorICAgICAgICAiLS1sb2dfZmlsZSIsICIkbG9nRmlsZSIsCiAg
ICAgICAgICItLXN0cmljdCIsCiAgICAgKTsKICAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBh
bGwgcGxhdGZvcm1zIHN1cHBvcnQgcHlPcGVuU1NMLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlciBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
cnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKaW5kZXggNjRhNzI0ZC4uYzA4YjdiNSAxMDA3NTUK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCkBAIC03MSwx
MSArNzEsMTIgQEAgc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXIoKQogCiAgICAgbXkgQGFyZ3MgPSAo
CiAgICAgICAgICIkc3JjRGlyL1dlYktpdFRvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9zdGFuZGFsb25lLnB5IiwKLSAgICAgICAgIi1wIiwgIiR3ZWJTb2NrZXRQb3J0IiwKLSAgICAg
ICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKLSAgICAgICAgIi1zIiwgIiR3ZWJTb2Nr
ZXRIYW5kbGVyU2NhbkRpciIsCi0gICAgICAgICItbSIsICIkd2ViU29ja2V0SGFuZGxlck1hcEZp
bGUiLAotICAgICAgICAiLXgiLCAiL3dlYnNvY2tldC90ZXN0cy9jb29raWVzIiwKKyAgICAgICAg
Ii0tc2VydmVyX2hvc3QiLCAiMTI3LjAuMC4xIiwKKyAgICAgICAgIi0tcG9ydCIsICIkd2ViU29j
a2V0UG9ydCIsCisgICAgICAgICItLWRvY3VtZW50X3Jvb3QiLCAiJHdlYlNvY2tldEhhbmRsZXJE
aXIiLAorICAgICAgICAiLS1zY2FuX2RpciIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAor
ICAgICAgICAiLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlIiwgIiR3ZWJTb2NrZXRIYW5kbGVy
TWFwRmlsZSIsCisgICAgICAgICItLWNnaV9wYXRocyIsICIvd2Vic29ja2V0L3Rlc3RzIiwKICAg
ICApOwogCiAgICAgJEVOVnsiUFlUSE9OUEFUSCJ9ID0gJHdlYlNvY2tldFB5dGhvblBhdGg7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dlYnNvY2tldF9zZXJ2ZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKaW5kZXggNTRjMmY2Zi4uNTIxM2JmOSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJzb2NrZXRfc2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtMTU2LDE4ICsxNTYsMTkg
QEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICAgICAg
J3N0YW5kYWxvbmUucHknKQogICAgICAgICBzdGFydF9jbWQgPSBbCiAgICAgICAgICAgICBweXRo
b25faW50ZXJwLCBweXdlYnNvY2tldF9zY3JpcHQsCi0gICAgICAgICAgICAnLXAnLCBzdHIoc2Vs
Zi5fcG9ydCksCi0gICAgICAgICAgICAnLWQnLCBzZWxmLl9sYXlvdXRfdGVzdHMsCi0gICAgICAg
ICAgICAnLXMnLCBzZWxmLl93ZWJfc29ja2V0X3Rlc3RzLAotICAgICAgICAgICAgJy14JywgJy93
ZWJzb2NrZXQvdGVzdHMvY29va2llcycsCi0gICAgICAgICAgICAnLWwnLCBlcnJvcl9sb2csCisg
ICAgICAgICAgICAnLS1zZXJ2ZXJfaG9zdCcsICcxMjcuMC4wLjEnLAorICAgICAgICAgICAgJy0t
cG9ydCcsIHN0cihzZWxmLl9wb3J0KSwKKyAgICAgICAgICAgICctLWRvY3VtZW50X3Jvb3QnLCBz
ZWxmLl9sYXlvdXRfdGVzdHMsCisgICAgICAgICAgICAnLS1zY2FuX2RpcicsIHNlbGYuX3dlYl9z
b2NrZXRfdGVzdHMsCisgICAgICAgICAgICAnLS1jZ2lfcGF0aHMnLCAnL3dlYnNvY2tldC90ZXN0
cycsCisgICAgICAgICAgICAnLS1sb2dfZmlsZScsIGVycm9yX2xvZywKICAgICAgICAgXQogCiAg
ICAgICAgIGhhbmRsZXJfbWFwX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3NvY2tldF90
ZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGxlcl9t
YXAudHh0JykKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoaGFuZGxlcl9tYXBfZmlsZSk6CiAg
ICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBoYW5kbGVyX21hcF9maWxlOiAlcycgJSBo
YW5kbGVyX21hcF9maWxlKQotICAgICAgICAgICAgc3RhcnRfY21kLmFwcGVuZCgnLW0nKQorICAg
ICAgICAgICAgc3RhcnRfY21kLmFwcGVuZCgnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJykK
ICAgICAgICAgICAgIHN0YXJ0X2NtZC5hcHBlbmQoaGFuZGxlcl9tYXBfZmlsZSkKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnTm8gaGFuZGxlcl9tYXBfZmlsZSBm
b3VuZCcpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvc3RhbmRhbG9uZS5weSBiL1dlYktpdFRvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9zdGFuZGFsb25lLnB5CmluZGV4IDg2MjhmZjkuLjUwOTJiNDAgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CisrKyBiL1dl
YktpdFRvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CkBAIC0y
NzIsMTAgKzI3MiwyMSBAQCBjbGFzcyBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcihDR0lIVFRQU2Vy
dmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICAgZGVmIGlzX2NnaShzZWxmKToKICAgICAg
ICAgIiIiVGVzdCB3aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0byBhIENHSSBzY3JpcHQu
CiAKLSAgICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29udGFp
bnMgLi4iIiIKKyAgICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3Qg
Y29udGFpbnMgLi4KKyAgICAgICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBhIGV4ZWN1dGFi
bGUgZmlsZSBvciBub3QuCisgICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVjdXRhYmxlLCBp
dCBpcyBoYW5kbGVkIGFzIHN0YXRpYyBmaWxlIG9yIGRpcgorICAgICAgICByYXRoZXIgdGhhbiBh
IENHSSBzY3JpcHQuCisgICAgICAgICIiIgogICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNHSUhU
VFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2VsZik6CiAgICAgICAgICAgICBpZiAnLi4nIGluIHNl
bGYucGF0aDoKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlmICcv
ficgaW4gc2VsZi5wYXRoOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgc2NyaXB0ZmlsZSA9IHNlbGYudHJhbnNsYXRlX3BhdGgoc2VsZi5wYXRoLnNwbGl0KCc/Jywg
MilbMF0pCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19l
eGVjdXRhYmxlKHNjcmlwdGZpbGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAg
ICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKQEAgLTMyMSw2ICsz
MzIsOSBAQCBkZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfaGFuZGxlcnNf
bWFwX2ZpbGUpOgogCiBkZWYgX21haW4oKToKICAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25Q
YXJzZXIoKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXNlcnZlcl9ob3N0JywgZGVzdD0nc2Vy
dmVyX2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsCisgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIGxpc3RlbiB0bycpCiAgICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAog
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9aGFuZHNoYWtlLl9ERUZBVUxUX1dFQl9TT0NL
RVRfUE9SVCwKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwb3J0IHRvIGxpc3RlbiB0bycp
CkBAIC00MDcsNyArNDIxLDggQEAgZGVmIF9tYWluKCk6CiAgICAgICAgIFdlYlNvY2tldFJlcXVl
c3RIYW5kbGVyLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIFdlYlNvY2tldFNlcnZlci5vcHRp
b25zID0gb3B0aW9ucwogCi0gICAgICAgIHNlcnZlciA9IFdlYlNvY2tldFNlcnZlcigoJycsIG9w
dGlvbnMucG9ydCksIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKQorICAgICAgICBzZXJ2ZXIgPSBX
ZWJTb2NrZXRTZXJ2ZXIoKG9wdGlvbnMuc2VydmVyX2hvc3QsIG9wdGlvbnMucG9ydCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKICAg
ICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQogICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAg
ICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoc3RyKGUpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
cHl3ZWJzb2NrZXQvc2V0dXAucHkgYi9XZWJLaXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5weQpp
bmRleCA5NzI5MzIyLi5iY2RlYzA0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9weXdlYnNvY2tl
dC9zZXR1cC5weQorKysgYi9XZWJLaXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5weQpAQCAtNTYs
NyArNTYsNyBAQCBzZXR1cChhdXRob3I9J1l1em8gRnVqaXNoaW1hJywKICAgICAgIG5hbWU9X1BB
Q0tBR0VfTkFNRSwKICAgICAgIHBhY2thZ2VzPVtfUEFDS0FHRV9OQU1FXSwKICAgICAgIHVybD0n
aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vic29ja2V0LycsCi0gICAgICB2ZXJzaW9uPScw
LjQuOCcsCisgICAgICB2ZXJzaW9uPScwLjQuOScsCiAgICAgICApCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48992</attachid>
            <date>2010-02-18 03:03:19 -0800</date>
            <delta_ts>2010-02-21 23:54:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100218200317.patch</filename>
            <type>text/plain</type>
            <size>17597</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU0OTUxKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDItMTcgIEZ1bWl0b3NoaSBVa2FpICA8
dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6Cisg
ICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcjoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHk6Cisg
ICAgICAgICogcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHk6CisgICAg
ICAgICogcHl3ZWJzb2NrZXQvc2V0dXAucHk6CisKIDIwMTAtMDItMTggIFNoaW5pY2hpcm8gSGFt
YWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJh
cnRoLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwkocmV2aXNpb24gNTQ5
NTEpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMJKHdvcmtpbmcgY29w
eSkKQEAgLTEzOTQsMTIgKzEzOTQsMTMgQEAgc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRl
ZCgpCiAKICAgICBteSBAYXJncyA9ICgKICAgICAgICAgIldlYktpdFRvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwKLSAgICAgICAgIi1wIiwgIiR3ZWJTb2Nr
ZXRQb3J0IiwKLSAgICAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKLSAgICAgICAg
Ii1zIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCi0gICAgICAgICItbSIsICIkd2ViU29j
a2V0SGFuZGxlck1hcEZpbGUiLAotICAgICAgICAiLXgiLCAiL3dlYnNvY2tldC90ZXN0cy9jb29r
aWVzIiwKLSAgICAgICAgIi1sIiwgIiRsb2dGaWxlIiwKKyAgICAgICAgIi0tc2VydmVyX2hvc3Qi
LCAiMTI3LjAuMC4xIiwKKyAgICAgICAgIi0tcG9ydCIsICIkd2ViU29ja2V0UG9ydCIsCisgICAg
ICAgICItLWRvY3VtZW50X3Jvb3QiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAorICAgICAgICAi
LS1zY2FuX2RpciIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAorICAgICAgICAiLS13ZWJz
b2NrX2hhbmRsZXJzX21hcF9maWxlIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCisgICAg
ICAgICItLWNnaV9wYXRocyIsICIvd2Vic29ja2V0L3Rlc3RzIiwKKyAgICAgICAgIi0tbG9nX2Zp
bGUiLCAiJGxvZ0ZpbGUiLAogICAgICAgICAiLS1zdHJpY3QiLAogICAgICk7CiAgICAgIyB3c3Mg
aXMgZGlzYWJsZWQgdW50aWwgYWxsIHBsYXRmb3JtcyBzdXBwb3J0IHB5T3BlblNTTC4KSW5kZXg6
IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgkocmV2
aXNpb24gNTQ5NTEpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtd2Vic29ja2V0
c2VydmVyCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMSArNzEsMTIgQEAgc3ViIG9wZW5XZWJTb2Nr
ZXRTZXJ2ZXIoKQogCiAgICAgbXkgQGFyZ3MgPSAoCiAgICAgICAgICIkc3JjRGlyL1dlYktpdFRv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwKLSAgICAgICAg
Ii1wIiwgIiR3ZWJTb2NrZXRQb3J0IiwKLSAgICAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVy
RGlyIiwKLSAgICAgICAgIi1zIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCi0gICAgICAg
ICItbSIsICIkd2ViU29ja2V0SGFuZGxlck1hcEZpbGUiLAotICAgICAgICAiLXgiLCAiL3dlYnNv
Y2tldC90ZXN0cy9jb29raWVzIiwKKyAgICAgICAgIi0tc2VydmVyX2hvc3QiLCAiMTI3LjAuMC4x
IiwKKyAgICAgICAgIi0tcG9ydCIsICIkd2ViU29ja2V0UG9ydCIsCisgICAgICAgICItLWRvY3Vt
ZW50X3Jvb3QiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAorICAgICAgICAiLS1zY2FuX2RpciIs
ICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAorICAgICAgICAiLS13ZWJzb2NrX2hhbmRsZXJz
X21hcF9maWxlIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCisgICAgICAgICItLWNnaV9w
YXRocyIsICIvd2Vic29ja2V0L3Rlc3RzIiwKICAgICApOwogCiAgICAgJEVOVnsiUFlUSE9OUEFU
SCJ9ID0gJHdlYlNvY2tldFB5dGhvblBhdGg7CkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2Nr
ZXRfc2VydmVyLnB5CShyZXZpc2lvbiA1NDk1MSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDE4ICsxNTYsMTkgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGln
aHR0cGQpOgogICAgICAgICAgICAgJ3N0YW5kYWxvbmUucHknKQogICAgICAgICBzdGFydF9jbWQg
PSBbCiAgICAgICAgICAgICBweXRob25faW50ZXJwLCBweXdlYnNvY2tldF9zY3JpcHQsCi0gICAg
ICAgICAgICAnLXAnLCBzdHIoc2VsZi5fcG9ydCksCi0gICAgICAgICAgICAnLWQnLCBzZWxmLl9s
YXlvdXRfdGVzdHMsCi0gICAgICAgICAgICAnLXMnLCBzZWxmLl93ZWJfc29ja2V0X3Rlc3RzLAot
ICAgICAgICAgICAgJy14JywgJy93ZWJzb2NrZXQvdGVzdHMvY29va2llcycsCi0gICAgICAgICAg
ICAnLWwnLCBlcnJvcl9sb2csCisgICAgICAgICAgICAnLS1zZXJ2ZXJfaG9zdCcsICcxMjcuMC4w
LjEnLAorICAgICAgICAgICAgJy0tcG9ydCcsIHN0cihzZWxmLl9wb3J0KSwKKyAgICAgICAgICAg
ICctLWRvY3VtZW50X3Jvb3QnLCBzZWxmLl9sYXlvdXRfdGVzdHMsCisgICAgICAgICAgICAnLS1z
Y2FuX2RpcicsIHNlbGYuX3dlYl9zb2NrZXRfdGVzdHMsCisgICAgICAgICAgICAnLS1jZ2lfcGF0
aHMnLCAnL3dlYnNvY2tldC90ZXN0cycsCisgICAgICAgICAgICAnLS1sb2dfZmlsZScsIGVycm9y
X2xvZywKICAgICAgICAgXQogCiAgICAgICAgIGhhbmRsZXJfbWFwX2ZpbGUgPSBvcy5wYXRoLmpv
aW4oc2VsZi5fd2ViX3NvY2tldF90ZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnaGFuZGxlcl9tYXAudHh0JykKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMo
aGFuZGxlcl9tYXBfZmlsZSk6CiAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBoYW5k
bGVyX21hcF9maWxlOiAlcycgJSBoYW5kbGVyX21hcF9maWxlKQotICAgICAgICAgICAgc3RhcnRf
Y21kLmFwcGVuZCgnLW0nKQorICAgICAgICAgICAgc3RhcnRfY21kLmFwcGVuZCgnLS13ZWJzb2Nr
X2hhbmRsZXJzX21hcF9maWxlJykKICAgICAgICAgICAgIHN0YXJ0X2NtZC5hcHBlbmQoaGFuZGxl
cl9tYXBfZmlsZSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygn
Tm8gaGFuZGxlcl9tYXBfZmlsZSBmb3VuZCcpCkluZGV4OiBXZWJLaXRUb29scy9weXdlYnNvY2tl
dC9zZXR1cC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5w
eQkocmV2aXNpb24gNTQ5NTEpCisrKyBXZWJLaXRUb29scy9weXdlYnNvY2tldC9zZXR1cC5weQko
d29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBzZXR1cChhdXRob3I9J1l1em8gRnVqaXNo
aW1hJywKICAgICAgIG5hbWU9X1BBQ0tBR0VfTkFNRSwKICAgICAgIHBhY2thZ2VzPVtfUEFDS0FH
RV9OQU1FXSwKICAgICAgIHVybD0naHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vic29ja2V0
LycsCi0gICAgICB2ZXJzaW9uPScwLjQuOCcsCisgICAgICB2ZXJzaW9uPScwLjQuOScsCiAgICAg
ICApCiAKIApJbmRleDogV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkJKHJldmlzaW9uIDU0OTUxKQorKysgV2ViS2l0VG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkJKHdvcmtpbmcgY29weSkK
QEAgLTI3MiwxMCArMjcyLDIxIEBAIGNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhU
VFBTZXIKICAgICBkZWYgaXNfY2dpKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHdoZXRoZXIgc2Vs
Zi5wYXRoIGNvcnJlc3BvbmRzIHRvIGEgQ0dJIHNjcmlwdC4KIAotICAgICAgICBBZGQgZXh0cmEg
Y2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLiIiIgorICAgICAgICBBZGQg
ZXh0cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLgorICAgICAgICBB
bHNvIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBmaWxlIG9yIG5vdC4KKyAgICAg
ICAgSWYgdGhlIGZpbGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlzIGhhbmRsZWQgYXMgc3RhdGlj
IGZpbGUgb3IgZGlyCisgICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJIHNjcmlwdC4KKyAgICAgICAg
IiIiCiAgICAgICAgIGlmIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2Nn
aShzZWxmKToKICAgICAgICAgICAgIGlmICcuLicgaW4gc2VsZi5wYXRoOgogICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYgJy9+JyBpbiBzZWxmLnBhdGg6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBzY3JpcHRmaWxlID0gc2VsZi50
cmFuc2xhdGVfcGF0aChzZWxmLnBhdGguc3BsaXQoJz8nLCAyKVswXSkKKyAgICAgICAgICAgIGlm
IG5vdCBvcy5wYXRoLmlzZmlsZShzY3JpcHRmaWxlKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmlzX2V4ZWN1dGFibGUoc2NyaXB0ZmlsZSk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQog
ICAgICAgICByZXR1cm4gRmFsc2UKIApAQCAtMzIxLDYgKzMzMiw5IEBAIGRlZiBfYWxpYXNfaGFu
ZGxlcnMoZGlzcGF0Y2hlciwgd2Vic29ja18KIAogZGVmIF9tYWluKCk6CiAgICAgcGFyc2VyID0g
b3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS1zZXJ2ZXJf
aG9zdCcsIGRlc3Q9J3NlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PScnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBob3N0bmFtZSB0byBsaXN0
ZW4gdG8nKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0
JywgdHlwZT0naW50JywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PWhhbmRzaGFrZS5f
REVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncG9y
dCB0byBsaXN0ZW4gdG8nKQpAQCAtNDA3LDcgKzQyMSw4IEBAIGRlZiBfbWFpbigpOgogICAgICAg
ICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci5vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBXZWJT
b2NrZXRTZXJ2ZXIub3B0aW9ucyA9IG9wdGlvbnMKIAotICAgICAgICBzZXJ2ZXIgPSBXZWJTb2Nr
ZXRTZXJ2ZXIoKCcnLCBvcHRpb25zLnBvcnQpLCBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKKyAg
ICAgICAgc2VydmVyID0gV2ViU29ja2V0U2VydmVyKChvcHRpb25zLnNlcnZlcl9ob3N0LCBvcHRp
b25zLnBvcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU29ja2V0UmVx
dWVzdEhhbmRsZXIpCiAgICAgICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKICAgICBleGNlcHQg
RXhjZXB0aW9uLCBlOgogICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKHN0cihlKSkKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDU0OTUxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRoZSBzYW1lIGRp
cmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5d2Vic29ja2V0IDAuNC45CisgICAgICAgIFNwZWNp
ZnkgLS1zZXJ2ZXJfaG9zdCAxMjcuMC4wLjEsIHNvIHRoYXQgaXQgb25seSBiaW5kcyBsaXN0ZW5p
bmcgc29ja2V0CisgICAgICAgIHRvIDEyNy4wLjAuMSB0byBwcmV2ZW50IGFjY2VzcyBmcm9tIG5v
bi1sb2NhbGhvc3QuCisgICAgICAgIENoYW5nZSAtLWNnaV9wYXRocyBmcm9tIC93ZWJzb2NrZXQv
dGVzdHMvY29va2llcyB0byAvd2Vic29ja2V0L3Rlc3RzLAorICAgICAgICBiZWNhdXNlIHB5d2Vi
c29ja2V0IDAuNC45IHN1cHBvcnRzIGh0bWwgYW5kIGNnaSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkK
KyAgICAgICAgYW5kIG9ubHkgZXhlY3V0YWJsZSAoaHR0cG9ubHktY29va2llcy5wbCkgd2lsbCBi
ZSBoYW5kbGVkIGFzIGNnaQorICAgICAgICBzY3JpcHQuCisgICAgICAgIAorICAgICAgICAqIHdl
YnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5LgorICAg
ICAgICAqIHdlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29v
a2llLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29v
a2llLnBsOiBBZGRlZC4KKwogMjAxMC0wMi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpJbmRl
eDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llX3dzaC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5CShy
ZXZpc2lvbiA1NDk1MSkJKGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMv
ZWNoby1jb29raWVfd3NoLnB5OjU0OTUxKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2VjaG8tY29va2llX3dzaC5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisjIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAorCitk
ZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCitk
ZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICByZXF1ZXN0LmhlYWRlcnNfaW5bJ0Nvb2tpZSddKQpJbmRleDogTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDU0OTUxKQkoZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQv
dGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0OjU0OTUxKQorKysgTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9u
bHkgY29va2llcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitXZWJTb2NrZXQgb3Bl
bgorV2ViU29ja2V0IGNsb3NlZAorUEFTUyBjb29raWUgaXMgIldLLXdlYnNvY2tldC10ZXN0PTE7
IFdLLXdlYnNvY2tldC10ZXN0LWh0dHBvbmx5PTEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h0dHBvbmx5LWNvb2tpZS5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCShyZXZpc2lvbiA1NDk1MSkJKGZyb20gTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBsOjU0OTUxKQor
KysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5wbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisjIS91c3IvYmluL3BlcmwgLXdUCit1c2Ugc3RyaWN0
OworCitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuIjsKK3ByaW50ICJTZXQtQ29v
a2llOiBXSy13ZWJzb2NrZXQtdGVzdD0xXHJcbiI7CitwcmludCAiU2V0LUNvb2tpZTogV0std2Vi
c29ja2V0LXRlc3QtaHR0cG9ubHk9MTsgSHR0cE9ubHlcclxuIjsKK3ByaW50ICJcclxuIjsKK3By
aW50IDw8SFRNTAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2ll
cy48L3A+Cis8cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb29raWU7CisKK2Z1bmN0aW9uIGVu
ZFRlc3QoKQoreworICAgIHNob3VsZEJlKCJjb29raWUiLCAnIldLLXdlYnNvY2tldC10ZXN0PTE7
IFdLLXdlYnNvY2tldC10ZXN0LWh0dHBvbmx5PTEiJyk7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJz
ZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIHdzID0gbmV3IFdlYlNvY2tl
dCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tp
ZSIpOword3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIldlYlNvY2tldCBvcGVu
Iik7Cit9Oword3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgY29va2llID0gZXZ0
LmRhdGE7CisgICAgd3MuY2xvc2UoKTsKK307Cit3cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7Cisg
ICAgZGVidWcoIldlYlNvY2tldCBjbG9zZWQiKTsKKyAgICBlbmRUZXN0KCk7Cit9OworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgor
SFRNTApJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5w
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29v
a2llLnBsCShyZXZpc2lvbiA1NDk1MSkKKysrIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9o
dHRwb25seS1jb29raWUucGwJKHdvcmtpbmcgY29weSkKQEAgLTgsOCArOCw4IEBAIHByaW50ICJc
clxuIjsKIHByaW50IDw8SFRNTAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHA+VGVz
dCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy48L3A+CkBAIC0zMSw3ICszMSw3IEBA
IGZ1bmN0aW9uIGVuZFRlc3QoKQogICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKIH0KIAotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93
ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZSIpOwordmFyIHdzID0gbmV3IFdlYlNv
Y2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWUiKTsK
IHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkgewogICAgIGRlYnVnKCJXZWJTb2NrZXQgb3BlbiIpOwog
fTsKSW5kZXg6IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2ll
X3dzaC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2ll
cy9lY2hvLWNvb2tpZV93c2gucHkJKHJldmlzaW9uIDU0OTUxKQorKysgTGF5b3V0VGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBtc2d1dGlsCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1
ZXN0KToKLSAgICBwYXNzCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6
Ci0gICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgIHJlcXVlc3QuaGVhZGVyc19pblsn
Q29va2llJ10pCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRw
b25seS1jb29raWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDU0OTUxKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHkt
Y29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi1UZXN0
IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLVdlYlNvY2tldCBvcGVuCi1XZWJTb2NrZXQgY2xvc2VkCi1QQVNTIGNvb2tpZSBp
cyAiV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSIKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHkt
Y29va2llLnBsCShyZXZpc2lvbiA1NDk1MSkKKysrIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0
cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MSArMCww
IEBACi0jIS91c3IvYmluL3BlcmwgLXdUCi11c2Ugc3RyaWN0OwotCi1wcmludCAiQ29udGVudC1U
eXBlOiB0ZXh0L2h0bWxcclxuIjsKLXByaW50ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVz
dD0xXHJcbiI7Ci1wcmludCAiU2V0LUNvb2tpZTogV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9
MTsgSHR0cE9ubHlcclxuIjsKLXByaW50ICJcclxuIjsKLXByaW50IDw8SFRNTAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+
VGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy48L3A+Ci08cD5PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuPC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Ci19Ci0KLXZhciBjb29raWU7Ci0KLWZ1bmN0aW9uIGVuZFRlc3QoKQotewotICAgIHNob3Vs
ZEJlKCJjb29raWUiLCAnIldLLXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNvY2tldC10ZXN0LWh0
dHBvbmx5PTEiJyk7Ci0gICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKLX0KLQotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4
MC93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZSIpOwotd3Mub25vcGVuID0gZnVu
Y3Rpb24oKSB7Ci0gICAgZGVidWcoIldlYlNvY2tldCBvcGVuIik7Ci19Owotd3Mub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgY29va2llID0gZXZ0LmRhdGE7Ci0gICAgd3MuY2xvc2Uo
KTsKLX07Ci13cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIldlYlNvY2tldCBj
bG9zZWQiKTsKLSAgICBlbmRUZXN0KCk7Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotSFRNTAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49188</attachid>
            <date>2010-02-21 23:54:46 -0800</date>
            <delta_ts>2010-03-01 02:13:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100222165444.patch</filename>
            <type>text/plain</type>
            <size>23992</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1MDY5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDItMTcgIEZ1bWl0b3NoaSBVa2FpICA8
dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5d2Vic29ja2V0IDAuNC45LgorICAg
ICAgICBTcGVjaWZ5IC0tc2VydmVyLWhvc3QgMTI3LjAuMC4xLCBzbyB0aGF0IGl0IG9ubHkgYmlu
ZHMgbGlzdGVuaW5nIHNvY2tldAorICAgICAgICB0byAxMjcuMC4wLjEgdG8gcHJldmVudCBhY2Nl
c3MgZnJvbSBub24tbG9jYWxob3N0LgorICAgICAgICBDaGFuZ2UgLS1jZ2ktcGF0aHMgZnJvbSAv
d2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMgdG8gL3dlYnNvY2tldC90ZXN0cywKKyAgICAgICAgYmVj
YXVzZSBweXdlYnNvY2tldCAwLjQuOS4xIHN1cHBvcnRzIGh0bWwgYW5kIGNnaSBpbiB0aGUgc2Ft
ZSBkaXJlY3RvcnkKKyAgICAgICAgYW5kIG9ubHkgZXhlY3V0YWJsZSAoaHR0cG9ubHktY29va2ll
cy5wbCkgd2lsbCBiZSBoYW5kbGVkIGFzIGNnaQorICAgICAgICBzY3JpcHQuCisKKyAgICAgICAg
KiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0
LXdlYnNvY2tldHNlcnZlcjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgICogcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHk6CisgICAgICAgICogcHl3ZWJzb2NrZXQvZXhhbXBsZS9l
Y2hvX2NsaWVudC5weQorICAgICAgICAqIHB5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAu
dHh0CisgICAgICAgICogcHl3ZWJzb2NrZXQvc2V0dXAucHk6CisKIDIwMTAtMDItMjAgIENocmlz
IEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMJKHJldmlz
aW9uIDU1MDY5KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzk0LDEyICsxMzk0LDEzIEBAIHN1YiBvcGVuV2ViU29ja2V0U2VydmVy
SWZOZWVkZWQoKQogCiAgICAgbXkgQGFyZ3MgPSAoCiAgICAgICAgICJXZWJLaXRUb29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSIsCi0gICAgICAgICItcCIsICIk
d2ViU29ja2V0UG9ydCIsCi0gICAgICAgICItZCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCi0g
ICAgICAgICItcyIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAotICAgICAgICAiLW0iLCAi
JHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKLSAgICAgICAgIi14IiwgIi93ZWJzb2NrZXQvdGVz
dHMvY29va2llcyIsCi0gICAgICAgICItbCIsICIkbG9nRmlsZSIsCisgICAgICAgICItLXNlcnZl
ci1ob3N0IiwgIjEyNy4wLjAuMSIsCisgICAgICAgICItLXBvcnQiLCAiJHdlYlNvY2tldFBvcnQi
LAorICAgICAgICAiLS1kb2N1bWVudC1yb290IiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAg
ICAgICAgIi0tc2Nhbi1kaXIiLCAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyIiwKKyAgICAgICAg
Ii0td2Vic29jay1oYW5kbGVycy1tYXAtZmlsZSIsICIkd2ViU29ja2V0SGFuZGxlck1hcEZpbGUi
LAorICAgICAgICAiLS1jZ2ktcGF0aHMiLCAiL3dlYnNvY2tldC90ZXN0cyIsCisgICAgICAgICIt
LWxvZy1maWxlIiwgIiRsb2dGaWxlIiwKICAgICAgICAgIi0tc3RyaWN0IiwKICAgICApOwogICAg
ICMgd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wu
CkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2
ZXIJKHJldmlzaW9uIDU1MDY5KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXdl
YnNvY2tldHNlcnZlcgkod29ya2luZyBjb3B5KQpAQCAtNzEsMTEgKzcxLDEyIEBAIHN1YiBvcGVu
V2ViU29ja2V0U2VydmVyKCkKIAogICAgIG15IEBhcmdzID0gKAogICAgICAgICAiJHNyY0Rpci9X
ZWJLaXRUb29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSIsCi0g
ICAgICAgICItcCIsICIkd2ViU29ja2V0UG9ydCIsCi0gICAgICAgICItZCIsICIkd2ViU29ja2V0
SGFuZGxlckRpciIsCi0gICAgICAgICItcyIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIiLAot
ICAgICAgICAiLW0iLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKLSAgICAgICAgIi14Iiwg
Ii93ZWJzb2NrZXQvdGVzdHMvY29va2llcyIsCisgICAgICAgICItLXNlcnZlci1ob3N0IiwgIjEy
Ny4wLjAuMSIsCisgICAgICAgICItLXBvcnQiLCAiJHdlYlNvY2tldFBvcnQiLAorICAgICAgICAi
LS1kb2N1bWVudC1yb290IiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAgICAgICAgIi0tc2Nh
bi1kaXIiLCAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyIiwKKyAgICAgICAgIi0td2Vic29jay1o
YW5kbGVycy1tYXAtZmlsZSIsICIkd2ViU29ja2V0SGFuZGxlck1hcEZpbGUiLAorICAgICAgICAi
LS1jZ2ktcGF0aHMiLCAiL3dlYnNvY2tldC90ZXN0cyIsCiAgICAgKTsKIAogICAgICRFTlZ7IlBZ
VEhPTlBBVEgifSA9ICR3ZWJTb2NrZXRQeXRob25QYXRoOwpJbmRleDogV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
d2Vic29ja2V0X3NlcnZlci5weQkocmV2aXNpb24gNTUwNjkpCisrKyBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTE1NiwxOCArMTU2LDE5IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2Vy
dmVyLkxpZ2h0dHBkKToKICAgICAgICAgICAgICdzdGFuZGFsb25lLnB5JykKICAgICAgICAgc3Rh
cnRfY21kID0gWwogICAgICAgICAgICAgcHl0aG9uX2ludGVycCwgcHl3ZWJzb2NrZXRfc2NyaXB0
LAotICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX3BvcnQpLAotICAgICAgICAgICAgJy1kJywg
c2VsZi5fbGF5b3V0X3Rlc3RzLAotICAgICAgICAgICAgJy1zJywgc2VsZi5fd2ViX3NvY2tldF90
ZXN0cywKLSAgICAgICAgICAgICcteCcsICcvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMnLAotICAg
ICAgICAgICAgJy1sJywgZXJyb3JfbG9nLAorICAgICAgICAgICAgJy0tc2VydmVyLWhvc3QnLCAn
MTI3LjAuMC4xJywKKyAgICAgICAgICAgICctLXBvcnQnLCBzdHIoc2VsZi5fcG9ydCksCisgICAg
ICAgICAgICAnLS1kb2N1bWVudC1yb290Jywgc2VsZi5fbGF5b3V0X3Rlc3RzLAorICAgICAgICAg
ICAgJy0tc2Nhbi1kaXInLCBzZWxmLl93ZWJfc29ja2V0X3Rlc3RzLAorICAgICAgICAgICAgJy0t
Y2dpLXBhdGhzJywgJy93ZWJzb2NrZXQvdGVzdHMnLAorICAgICAgICAgICAgJy0tbG9nLWZpbGUn
LCBlcnJvcl9sb2csCiAgICAgICAgIF0KIAogICAgICAgICBoYW5kbGVyX21hcF9maWxlID0gb3Mu
cGF0aC5qb2luKHNlbGYuX3dlYl9zb2NrZXRfdGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2hhbmRsZXJfbWFwLnR4dCcpCiAgICAgICAgIGlmIG9zLnBhdGgu
ZXhpc3RzKGhhbmRsZXJfbWFwX2ZpbGUpOgogICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNp
bmcgaGFuZGxlcl9tYXBfZmlsZTogJXMnICUgaGFuZGxlcl9tYXBfZmlsZSkKLSAgICAgICAgICAg
IHN0YXJ0X2NtZC5hcHBlbmQoJy1tJykKKyAgICAgICAgICAgIHN0YXJ0X2NtZC5hcHBlbmQoJy0t
d2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScpCiAgICAgICAgICAgICBzdGFydF9jbWQuYXBwZW5k
KGhhbmRsZXJfbWFwX2ZpbGUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBsb2dnaW5nLndh
cm5pbmcoJ05vIGhhbmRsZXJfbWFwX2ZpbGUgZm91bmQnKQpJbmRleDogV2ViS2l0VG9vbHMvcHl3
ZWJzb2NrZXQvc2V0dXAucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQv
c2V0dXAucHkJKHJldmlzaW9uIDU1MDY5KQorKysgV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvc2V0
dXAucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgc2V0dXAoYXV0aG9yPSdZdXpv
IEZ1amlzaGltYScsCiAgICAgICBuYW1lPV9QQUNLQUdFX05BTUUsCiAgICAgICBwYWNrYWdlcz1b
X1BBQ0tBR0VfTkFNRV0sCiAgICAgICB1cmw9J2h0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9weXdl
YnNvY2tldC8nLAotICAgICAgdmVyc2lvbj0nMC40LjgnLAorICAgICAgdmVyc2lvbj0nMC40Ljku
MScsCiAgICAgICApCiAKIApJbmRleDogV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9l
Y2hvX2NsaWVudC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9weXdlYnNvY2tldC9leGFt
cGxlL2VjaG9fY2xpZW50LnB5CShyZXZpc2lvbiA1NTA2OSkKKysrIFdlYktpdFRvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw5ICsx
NjMsMTEgQEAgZGVmIG1haW4oKToKICAgICBzeXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcign
dXRmLTgnKShzeXMuc3Rkb3V0KQogCiAgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXJfaG9zdCcsIGRlc3Q9J3NlcnZlcl9ob3N0
JywgdHlwZT0nc3RyaW5nJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXIt
aG9zdCcsICctLXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2
ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
bG9jYWxob3N0JywgaGVscD0nc2VydmVyIGhvc3QnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
cCcsICctLXNlcnZlcl9wb3J0JywgZGVzdD0nc2VydmVyX3BvcnQnLCB0eXBlPSdpbnQnLAorICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQn
LAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywK
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2Vy
dmVyIHBvcnQnKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9
J29yaWdpbicsIHR5cGU9J3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
aHR0cDovL2xvY2FsaG9zdC8nLCBoZWxwPSdvcmlnaW4nKQpAQCAtMTc5LDggKzE4MSw4IEBAIGRl
ZiBtYWluKCk6CiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSdzdXBw
cmVzcyBtZXNzYWdlcycpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVz
dD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKScpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1rJywgJy0tc29ja2V0X3RpbWVvdXQnLCBkZXN0PSdzb2NrZXRfdGltZW91dCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD1fVElNRU9VVF9TRUMsCisg
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2NrZXRf
dGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQnLCB0
eXBlPSdpbnQnLCBkZWZhdWx0PV9USU1FT1VUX1NFQywKICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSdUaW1lb3V0KHNlYykgZm9yIHNvY2tldHMnKQogCiAgICAgKG9wdGlvbnMsIHVudXNlZF9h
cmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKSW5kZXg6IFdlYktpdFRvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CShyZXZpc2lvbiAwKQorKysgV2ViS2l0VG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTEgQEAKKyMgd2Vic29ja2V0IGhhbmRsZXIgbWFwIGZpbGUsIHVzZWQgYnkgc3RhbmRh
bG9uZS5weSAtbSBvcHRpb24uCisjIEEgbGluZSBzdGFydGluZyB3aXRoICcjJyBpcyBhIGNvbW1l
bnQgbGluZS4KKyMgRWFjaCBsaW5lIGNvbnNpc3RzIG9mICdhbGlhc19yZXNvdXJjZV9wYXRoJyBh
bmQgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnCisjIHNlcGFyYXRlZCBieSBzcGFjZXMuCisjIEFs
aWFzaW5nIGlzIHByb2Nlc3NlZCBmcm9tIHRoZSB0b3AgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlu
ZSwgYW5kCisjICdleGlzdGluZ19yZXNvdXJjZV9wYXRoJyBtdXN0IGV4aXN0IGJlZm9yZSBpdCBp
cyBhbGlhc2VkLgorIyBGb3IgZXhhbXBsZSwKKyMgIC8gL2VjaG8KKyMgbWVhbnMgdGhhdCBhIHJl
cXVlc3QgdG8gJy8nIHdpbGwgYmUgaGFuZGxlZCBieSBoYW5kbGVycyBmb3IgJy9lY2hvJy4KKy8g
L2VjaG8KKwpJbmRleDogV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkJKHJldmlzaW9uIDU1MDY5KQorKysgV2ViS2l0VG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkJKHdvcmtpbmcgY29weSkK
QEAgLTU1LDYgKzU1LDEwIEBAIHVuZGVyIHNjYW5fZGlyIGFyZSBzY2FubmVkLiBUaGlzIGlzIHVz
ZWYKIE5vdGU6CiBUaGlzIHNlcnZlciBpcyBkZXJpdmVkIGZyb20gU29ja2V0U2VydmVyLlRocmVh
ZGluZ01peEluLiBIZW5jZSBhIHRocmVhZCBpcwogdXNlZCBmb3IgZWFjaCByZXF1ZXN0LgorCitT
RUNVUklUWSBXQVJOSU5HOiBUaGlzIHVzZXMgQ0dJSFRUUFNlcnZlciBhbmQgQ0dJSFRUUFNlcnZl
ciBpcyBub3Qgc2VjdXJlLgorSXQgbWF5IGV4ZWN1dGUgYXJiaXRyYXJ5IFB5dGhvbiBjb2RlIG9y
IGV4dGVybmFsIHByb2dyYW1zLiBJdCBzaG91bGQgbm90IGJlCit1c2VkIG91dHNpZGUgYSBmaXJl
d2FsbC4KICIiIgogCiBpbXBvcnQgQmFzZUhUVFBTZXJ2ZXIKQEAgLTI3MiwxMCArMjc2LDE5IEBA
IGNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXIKICAgICBkZWYgaXNfY2dp
KHNlbGYpOgogICAgICAgICAiIiJUZXN0IHdoZXRoZXIgc2VsZi5wYXRoIGNvcnJlc3BvbmRzIHRv
IGEgQ0dJIHNjcmlwdC4KIAotICAgICAgICBBZGQgZXh0cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGgg
ZG9lc24ndCBjb250YWlucyAuLiIiIgorICAgICAgICBBZGQgZXh0cmEgY2hlY2sgdGhhdCBzZWxm
LnBhdGggZG9lc24ndCBjb250YWlucyAuLgorICAgICAgICBBbHNvIGNoZWNrIGlmIHRoZSBmaWxl
IGlzIGEgZXhlY3V0YWJsZSBmaWxlIG9yIG5vdC4KKyAgICAgICAgSWYgdGhlIGZpbGUgaXMgbm90
IGV4ZWN1dGFibGUsIGl0IGlzIGhhbmRsZWQgYXMgc3RhdGljIGZpbGUgb3IgZGlyCisgICAgICAg
IHJhdGhlciB0aGFuIGEgQ0dJIHNjcmlwdC4KKyAgICAgICAgIiIiCiAgICAgICAgIGlmIENHSUhU
VFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2NnaShzZWxmKToKICAgICAgICAgICAg
IGlmICcuLicgaW4gc2VsZi5wYXRoOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICAgICAgc2NyaXB0ZmlsZSA9IHNlbGYudHJhbnNsYXRlX3BhdGgoc2VsZi5wYXRoLnNwbGl0
KCc/JywgMilbMF0pCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0Zmls
ZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5pc19leGVjdXRhYmxlKHNjcmlwdGZpbGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKQEAgLTMy
MSwyNiArMzM0LDMyIEBAIGRlZiBfYWxpYXNfaGFuZGxlcnMoZGlzcGF0Y2hlciwgd2Vic29ja18K
IAogZGVmIF9tYWluKCk6CiAgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKKyAg
ICBwYXJzZXIuYWRkX29wdGlvbignLUgnLCAnLS1zZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0
JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcsCisgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD0nJywKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2
ZXIgaG9zdG5hbWUgdG8gbGlzdGVuIHRvJykKICAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAn
LS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9J2ludCcsCiAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1oYW5kc2hha2UuX0RFRkFVTFRfV0VCX1NPQ0tFVF9QT1JULAogICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J3BvcnQgdG8gbGlzdGVuIHRvJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLXcnLCAnLS13ZWJzb2NrX2hhbmRsZXJzJywgZGVzdD0nd2Vic29ja19oYW5kbGVycycsCisg
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Vic29jay1oYW5kbGVycycsICctLXdlYnNv
Y2tfaGFuZGxlcnMnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxl
cnMnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy4nLAogICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J1dlYiBTb2NrZXQgaGFuZGxlcnMgcm9vdCBkaXJlY3RvcnkuJykKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLW0nLCAnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKKyAg
ICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJywK
KyAgICAgICAgICAgICAgICAgICAgICAnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKICAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ1dlYiBTb2NrZXQgaGFuZGxlcnMgbWFwIGZpbGUuICcKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnRWFjaCBsaW5lIGNvbnNpc3RzIG9mIGFsaWFzX3Jlc291cmNlX3BhdGggYW5k
ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCwg
c2VwYXJhdGVkIGJ5IHNwYWNlcy4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1z
Y2FuX2RpcicsIGRlc3Q9J3NjYW5fZGlyJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAn
LS1zY2FuLWRpcicsICctLXNjYW5fZGlyJywgZGVzdD0nc2Nhbl9kaXInLAogICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnV2Vi
IFNvY2tldCBoYW5kbGVycyBzY2FuIGRpcmVjdG9yeS4gJwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdNdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIHdlYnNvY2tfaGFuZGxlcnMuJykpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1kJywgJy0tZG9jdW1lbnRfcm9vdCcsIGRlc3Q9J2RvY3Vt
ZW50X3Jvb3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy4nLAorICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctZCcsICctLWRvY3VtZW50LXJvb3QnLCAnLS1kb2N1bWVudF9yb290JywK
KyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkb2N1bWVudF9yb290JywgZGVmYXVsdD0nLics
CiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nRG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkuJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLXgnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0
aHMnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCcteCcsICctLWNnaS1wYXRocycsICctLWNnaV9w
YXRocycsIGRlc3Q9J2NnaV9wYXRocycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1O
b25lLAogICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdDR0kgcGF0aHMgcmVsYXRpdmUgdG8g
ZG9jdW1lbnRfcm9vdC4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbW1hLXNlcGFy
YXRlZC4gKGUuZyAteCAvY2dpLC9odGJpbikgJwpAQCAtMzQ4LDIxICszNjcsMjIgQEAgZGVmIF9t
YWluKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzIENHSSBwcm9ncmFtcy4gTXVz
dCBiZSBleGVjdXRhYmxlLicpKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRscycs
IGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLyknKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctaycsICctLXByaXZhdGVfa2V5JywgZGVzdD0ncHJpdmF0ZV9rZXknLAorICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXByaXZhdGUta2V5JywgJy0tcHJpdmF0ZV9rZXkn
LAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ByaXZhdGVfa2V5JywKICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkgZmlsZS4nKQogICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVzdD0nY2VydGlmaWNh
dGUnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBjZXJ0aWZp
Y2F0ZSBmaWxlLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbG9nX2ZpbGUnLCBk
ZXN0PSdsb2dfZmlsZScsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbG9nLWZpbGUn
LCAnLS1sb2dfZmlsZScsIGRlc3Q9J2xvZ19maWxlJywKICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PScnLCBoZWxwPSdMb2cgZmlsZS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxv
Z19sZXZlbCcsIHR5cGU9J2Nob2ljZScsIGRlc3Q9J2xvZ19sZXZlbCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD0nd2FybicsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxl
dmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKICAgICAgICAgICAgICAgICAgICAg
ICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJywgJ2NyaXRpY2FsJ10s
CiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsLicpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tbG9nX21heCcsIGRlc3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQnLAorICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLWxvZy1tYXgnLCAnLS1sb2dfbWF4JywgZGVzdD0nbG9nX21heCcs
IHR5cGU9J2ludCcsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9MT0df
TUFYX0JZVEVTLAogICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBtYXhpbXVtIGJ5dGVz
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2dfY291bnQnLCBkZXN0PSdsb2dfY291bnQn
LCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfTE9H
X0JBQ0tVUF9DT1VOVCwKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctY291bnQnLCAnLS1s
b2dfY291bnQnLCBkZXN0PSdsb2dfY291bnQnLAorICAgICAgICAgICAgICAgICAgICAgIHR5cGU9
J2ludCcsIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCwKICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdMb2cgYmFja3VwIGNvdW50JykKICAgICBwYXJzZXIuYWRkX29wdGlvbign
LS1zdHJpY3QnLCBkZXN0PSdzdHJpY3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J1N0cmljdGx5IGNoZWNrIGhhbmRzaGFr
ZSByZXF1ZXN0JykKQEAgLTQwNyw3ICs0MjcsOCBAQCBkZWYgX21haW4oKToKICAgICAgICAgV2Vi
U29ja2V0UmVxdWVzdEhhbmRsZXIub3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgV2ViU29ja2V0
U2VydmVyLm9wdGlvbnMgPSBvcHRpb25zCiAKLSAgICAgICAgc2VydmVyID0gV2ViU29ja2V0U2Vy
dmVyKCgnJywgb3B0aW9ucy5wb3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCisgICAgICAg
IHNlcnZlciA9IFdlYlNvY2tldFNlcnZlcigob3B0aW9ucy5zZXJ2ZXJfaG9zdCwgb3B0aW9ucy5w
b3J0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlNvY2tldFJlcXVlc3RI
YW5kbGVyKQogICAgICAgICBzZXJ2ZXIuc2VydmVfZm9yZXZlcigpCiAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiwgZToKICAgICAgICAgbG9nZ2luZy5jcml0aWNhbChzdHIoZSkpCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA1NTA2OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE1IEBACisyMDEwLTAyLTE3ICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHB5
d2Vic29ja2V0IHNob3VsZCBzdXBwb3J0IGh0bWwgYW5kIGNnaSBpbiB0aGUgc2FtZSBkaXJlY3Rv
cnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDg3
OQorICAgIAorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tp
ZS5wbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3No
LnB5OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNo
by1jb29raWVfd3NoLnB5LgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29r
aWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJzb2Nr
ZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsOiBBZGRlZC4KKwogMjAxMC0wMi0wNyAgWXV6byBG
dWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3No
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9lY2hvLWNvb2tp
ZV93c2gucHkJKHJldmlzaW9uIDU0OTUxKQkoZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVz
dHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gucHk6NTQ5NTEpCisrKyBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmli
dXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBt
c2d1dGlsCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAg
ICBwYXNzCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgIHJlcXVlc3QuaGVhZGVyc19pblsnQ29va2llJ10p
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9u
bHktY29va2llLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTQ5NTEpCShmcm9tIExheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQ6NTQ5
NTEpCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitUZXN0IFdlYlNvY2tldCBz
ZW5kcyBIdHRwT25seSBjb29raWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1dl
YlNvY2tldCBvcGVuCitXZWJTb2NrZXQgY2xvc2VkCitQQVNTIGNvb2tpZSBpcyAiV0std2Vic29j
a2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwJKHJldmlzaW9uIDU0OTUxKQko
ZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUu
cGw6NTQ5NTEpCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2ll
LnBsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKyMhL3Vzci9iaW4vcGVybCAtd1QK
K3VzZSBzdHJpY3Q7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG4iOworcHJp
bnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxuIjsKK3ByaW50ICJTZXQtQ29v
a2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRwT25seVxyXG4iOworcHJpbnQg
IlxyXG4iOworcHJpbnQgPDxIVE1MCis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRw
T25seSBjb29raWVzLjwvcD4KKzxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNvb2tpZTsKKwor
ZnVuY3Rpb24gZW5kVGVzdCgpCit7CisgICAgc2hvdWxkQmUoImNvb2tpZSIsICciV0std2Vic29j
a2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKKyAgICBpc1N1Y2Nl
c3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgd3MgPSBu
ZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVz
L2VjaG8tY29va2llIik7Cit3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiV2Vi
U29ja2V0IG9wZW4iKTsKK307Cit3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICBj
b29raWUgPSBldnQuZGF0YTsKKyAgICB3cy5jbG9zZSgpOworfTsKK3dzLm9uY2xvc2UgPSBmdW5j
dGlvbigpIHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3NlZCIpOworICAgIGVuZFRlc3QoKTsK
K307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CitIVE1MCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9u
bHktY29va2llLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9o
dHRwb25seS1jb29raWUucGwJKHJldmlzaW9uIDU0OTUxKQorKysgTGF5b3V0VGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5wbAkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDgg
QEAgcHJpbnQgIlxyXG4iOwogcHJpbnQgPDxIVE1MCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLjwvcD4KQEAgLTMx
LDcgKzMxLDcgQEAgZnVuY3Rpb24gZW5kVGVzdCgpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOwogfQogCi12YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4w
LjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llIik7Cit2YXIgd3Mg
PSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hv
LWNvb2tpZSIpOwogd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CiAgICAgZGVidWcoIldlYlNvY2tl
dCBvcGVuIik7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMv
ZWNoby1jb29raWVfd3NoLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90
ZXN0cy9jb29raWVzL2VjaG8tY29va2llX3dzaC5weQkocmV2aXNpb24gNTUwNjkpCisrKyBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gucHkJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKLSAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAgcmVxdWVzdC5o
ZWFkZXJzX2luWydDb29raWUnXSkKSW5kZXg6IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9j
b29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNTUwNjkpCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2ll
cy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsw
LDAgQEAKLVRlc3QgV2ViU29ja2V0IHNlbmRzIEh0dHBPbmx5IGNvb2tpZXMuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotV2ViU29ja2V0IG9wZW4KLVdlYlNvY2tldCBjbG9zZWQKLVBB
U1MgY29va2llIGlzICJXSy13ZWJzb2NrZXQtdGVzdD0xOyBXSy13ZWJzb2NrZXQtdGVzdC1odHRw
b25seT0xIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNv
b2tpZS5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2ll
cy9odHRwb25seS1jb29raWUucGwJKHJldmlzaW9uIDU1MDY5KQorKysgTGF5b3V0VGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBsCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUxICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtd1QKLXVzZSBzdHJpY3Q7Ci0KLXByaW50
ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG4iOwotcHJpbnQgIlNldC1Db29raWU6IFdLLXdl
YnNvY2tldC10ZXN0PTFcclxuIjsKLXByaW50ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVz
dC1odHRwb25seT0xOyBIdHRwT25seVxyXG4iOwotcHJpbnQgIlxyXG4iOwotcHJpbnQgPDxIVE1M
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLjwvcD4KLTxw
Pk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvb2tpZTsKLQotZnVuY3Rpb24gZW5kVGVzdCgpCi17
Ci0gICAgc2hvdWxkQmUoImNvb2tpZSIsICciV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29j
a2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKLSAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOwotfQotCi12YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEy
Ny4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llIik7Ci13cy5v
bm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiV2ViU29ja2V0IG9wZW4iKTsKLX07Ci13
cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKLSAgICBjb29raWUgPSBldnQuZGF0YTsKLSAg
ICB3cy5jbG9zZSgpOwotfTsKLXdzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1Zygi
V2ViU29ja2V0IGNsb3NlZCIpOwotICAgIGVuZFRlc3QoKTsKLX07Ci0KLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci1IVE1MCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49714</attachid>
            <date>2010-03-01 02:13:40 -0800</date>
            <delta_ts>2010-03-03 00:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100301191338.patch</filename>
            <type>text/plain</type>
            <size>25139</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1MzYzKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMDEgIEZ1bWl0b3NoaSBVa2FpICA8
dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5d2Vic29ja2V0IDAuNC45LjEKKyAg
ICAgICAgU3BlY2lmeSAtLXNlcnZlci1ob3N0IDEyNy4wLjAuMSwgc28gdGhhdCBpdCBvbmx5IGJp
bmRzIGxpc3RlbmluZyBzb2NrZXQKKyAgICAgICAgdG8gMTI3LjAuMC4xIHRvIHByZXZlbnQgYWNj
ZXNzIGZyb20gbm9uLWxvY2FsaG9zdC4KKyAgICAgICAgQ2hhbmdlIC0tY2dpLXBhdGhzIGZyb20g
L3dlYnNvY2tldC90ZXN0cy9jb29raWVzIHRvIC93ZWJzb2NrZXQvdGVzdHMsCisgICAgICAgIGJl
Y2F1c2UgcHl3ZWJzb2NrZXQgMC40LjkuMSBzdXBwb3J0cyBodG1sIGFuZCBjZ2kgaW4gdGhlIHNh
bWUgZGlyZWN0b3J5CisgICAgICAgIGFuZCBvbmx5IGV4ZWN1dGFibGUgKGh0dHBvbmx5LWNvb2tp
ZXMucGwpIHdpbGwgYmUgaGFuZGxlZCBhcyBjZ2kKKyAgICAgICAgc2NyaXB0LgorCisgICAgICAg
ICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtp
dC13ZWJzb2NrZXRzZXJ2ZXI6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGhpcmRwYXJ0eS9weXdlYnNvY2tldC9SRUFETUUud2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxl
L2hhbmRsZXJfbWFwLnR4dDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9zZXR1cC5weToKKwog
MjAxMC0wMy0wMSAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRl
c3RzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwko
cmV2aXNpb24gNTUzNjMpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMJ
KHdvcmtpbmcgY29weSkKQEAgLTE0MDQsMTIgKzE0MDQsMTMgQEAgc3ViIG9wZW5XZWJTb2NrZXRT
ZXJ2ZXJJZk5lZWRlZCgpCiAKICAgICBteSBAYXJncyA9ICgKICAgICAgICAgIldlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
c3RhbmRhbG9uZS5weSIsCi0gICAgICAgICItcCIsICIkd2ViU29ja2V0UG9ydCIsCi0gICAgICAg
ICItZCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCi0gICAgICAgICItcyIsICIkd2ViU29ja2V0
SGFuZGxlclNjYW5EaXIiLAotICAgICAgICAiLW0iLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxl
IiwKLSAgICAgICAgIi14IiwgIi93ZWJzb2NrZXQvdGVzdHMvY29va2llcyIsCi0gICAgICAgICIt
bCIsICIkbG9nRmlsZSIsCisgICAgICAgICItLXNlcnZlci1ob3N0IiwgIjEyNy4wLjAuMSIsCisg
ICAgICAgICItLXBvcnQiLCAiJHdlYlNvY2tldFBvcnQiLAorICAgICAgICAiLS1kb2N1bWVudC1y
b290IiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKKyAgICAgICAgIi0tc2Nhbi1kaXIiLCAiJHdl
YlNvY2tldEhhbmRsZXJTY2FuRGlyIiwKKyAgICAgICAgIi0td2Vic29jay1oYW5kbGVycy1tYXAt
ZmlsZSIsICIkd2ViU29ja2V0SGFuZGxlck1hcEZpbGUiLAorICAgICAgICAiLS1jZ2ktcGF0aHMi
LCAiL3dlYnNvY2tldC90ZXN0cyIsCisgICAgICAgICItLWxvZy1maWxlIiwgIiRsb2dGaWxlIiwK
ICAgICAgICAgIi0tc3RyaWN0IiwKICAgICApOwogICAgICMgd3NzIGlzIGRpc2FibGVkIHVudGls
IGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBweU9wZW5TU0wuCkluZGV4OiBXZWJLaXRUb29scy9TY3Jp
cHRzL3J1bi13ZWJraXQtd2Vic29ja2V0c2VydmVyCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIJKHJldmlzaW9uIDU1MzYzKQorKysg
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgkod29ya2luZyBj
b3B5KQpAQCAtNzEsMTEgKzcxLDEyIEBAIHN1YiBvcGVuV2ViU29ja2V0U2VydmVyKCkKIAogICAg
IG15IEBhcmdzID0gKAogICAgICAgICAiJHNyY0Rpci9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHki
LAotICAgICAgICAiLXAiLCAiJHdlYlNvY2tldFBvcnQiLAotICAgICAgICAiLWQiLCAiJHdlYlNv
Y2tldEhhbmRsZXJEaXIiLAotICAgICAgICAiLXMiLCAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGly
IiwKLSAgICAgICAgIi1tIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCi0gICAgICAgICIt
eCIsICIvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMiLAorICAgICAgICAiLS1zZXJ2ZXItaG9zdCIs
ICIxMjcuMC4wLjEiLAorICAgICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQb3J0IiwKKyAgICAg
ICAgIi0tZG9jdW1lbnQtcm9vdCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCisgICAgICAgICIt
LXNjYW4tZGlyIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCisgICAgICAgICItLXdlYnNv
Y2staGFuZGxlcnMtbWFwLWZpbGUiLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKKyAgICAg
ICAgIi0tY2dpLXBhdGhzIiwgIi93ZWJzb2NrZXQvdGVzdHMvY29va2llcyIsCiAgICAgKTsKIAog
ICAgICRFTlZ7IlBZVEhPTlBBVEgifSA9ICR3ZWJTb2NrZXRQeXRob25QYXRoOwpJbmRleDogV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2Vy
dmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQkocmV2aXNpb24gNTUzNjMpCisrKyBXZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2
ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1NiwxOCArMTU2LDE5IEBAIGNsYXNzIFB5V2ViU29j
a2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgICAgICdzdGFuZGFsb25lLnB5JykK
ICAgICAgICAgc3RhcnRfY21kID0gWwogICAgICAgICAgICAgcHl0aG9uX2ludGVycCwgcHl3ZWJz
b2NrZXRfc2NyaXB0LAotICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX3BvcnQpLAotICAgICAg
ICAgICAgJy1kJywgc2VsZi5fbGF5b3V0X3Rlc3RzLAotICAgICAgICAgICAgJy1zJywgc2VsZi5f
d2ViX3NvY2tldF90ZXN0cywKLSAgICAgICAgICAgICcteCcsICcvd2Vic29ja2V0L3Rlc3RzL2Nv
b2tpZXMnLAotICAgICAgICAgICAgJy1sJywgZXJyb3JfbG9nLAorICAgICAgICAgICAgJy0tc2Vy
dmVyLWhvc3QnLCAnMTI3LjAuMC4xJywKKyAgICAgICAgICAgICctLXBvcnQnLCBzdHIoc2VsZi5f
cG9ydCksCisgICAgICAgICAgICAnLS1kb2N1bWVudC1yb290Jywgc2VsZi5fbGF5b3V0X3Rlc3Rz
LAorICAgICAgICAgICAgJy0tc2Nhbi1kaXInLCBzZWxmLl93ZWJfc29ja2V0X3Rlc3RzLAorICAg
ICAgICAgICAgJy0tY2dpLXBhdGhzJywgJy93ZWJzb2NrZXQvdGVzdHMvY29va2llcycsCisgICAg
ICAgICAgICAnLS1sb2ctZmlsZScsIGVycm9yX2xvZywKICAgICAgICAgXQogCiAgICAgICAgIGhh
bmRsZXJfbWFwX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3NvY2tldF90ZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGxlcl9tYXAudHh0JykK
ICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoaGFuZGxlcl9tYXBfZmlsZSk6CiAgICAgICAgICAg
ICBsb2dnaW5nLmRlYnVnKCdVc2luZyBoYW5kbGVyX21hcF9maWxlOiAlcycgJSBoYW5kbGVyX21h
cF9maWxlKQotICAgICAgICAgICAgc3RhcnRfY21kLmFwcGVuZCgnLW0nKQorICAgICAgICAgICAg
c3RhcnRfY21kLmFwcGVuZCgnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJykKICAgICAgICAg
ICAgIHN0YXJ0X2NtZC5hcHBlbmQoaGFuZGxlcl9tYXBfZmlsZSkKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnTm8gaGFuZGxlcl9tYXBfZmlsZSBmb3VuZCcpCklu
ZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQv
UkVBRE1FLndlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvUkVBRE1FLndlYmtpdAkocmV2aXNpb24gNTUzNjMpCisr
KyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvUkVB
RE1FLndlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtNCwxMCArNCwxMCBAQCBmcm9tIHRoZSBmb2xs
b3dpbmcgbG9jYXRpb246CiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3ZWJzb2NrZXQvCiAK
IFRoaXMgZGlyZWN0b3J5IGN1cnJlbnRseSBjb250YWlucyB0aGUgZm9sbG93aW5nIHZlcnNpb246
Ci1GSVhNRTogRmlsbCBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIGhlcmUuCiswLjQuOS4xCiAKIFRo
ZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9ucyBoYXZlIGJlZW4gbWFkZSB0byB0aGlzIGxvY2FsIHZl
cnNpb246Ci1GSVhNRTogRmlsbCBpbiBsb2NhbCBtb2RpZmljYXRpb25zLgorbm90aGluZwogCiBN
b3JlIGluZm9ybWF0aW9uIG9uIHRoZXNlIGxvY2FsIG1vZGlmaWNhdGlvbnMgY2FuIGJlIGZvdW5k
IGhlcmU6CiAKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9w
eXdlYnNvY2tldC9zZXR1cC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvc2V0dXAucHkJKHJldmlzaW9uIDU1MzYzKQor
KysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Nl
dHVwLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHNldHVwKGF1dGhvcj0nWXV6
byBGdWppc2hpbWEnLAogICAgICAgbmFtZT1fUEFDS0FHRV9OQU1FLAogICAgICAgcGFja2FnZXM9
W19QQUNLQUdFX05BTUVdLAogICAgICAgdXJsPSdodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3
ZWJzb2NrZXQvJywKLSAgICAgIHZlcnNpb249JzAuNC44JywKKyAgICAgIHZlcnNpb249JzAuNC45
LjEnLAogICAgICAgKQogCiAKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhp
cmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFt
cGxlL2VjaG9fY2xpZW50LnB5CShyZXZpc2lvbiA1NTM2MykKKysrIFdlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsOSArMTYzLDExIEBAIGRlZiBtYWluKCk6CiAgICAgc3lz
LnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91dCkKIAogICAgIHBh
cnNlciA9IE9wdGlvblBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Vy
dmVyX2hvc3QnLCBkZXN0PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCisgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy1zJywgJy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCisgICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3QnLCB0eXBlPSdzdHJpbmcnLAogICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9J2xvY2FsaG9zdCcsIGhlbHA9J3NlcnZlciBob3N0
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1zZXJ2ZXJfcG9ydCcsIGRlc3Q9J3Nl
cnZlcl9wb3J0JywgdHlwZT0naW50JywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1z
ZXJ2ZXItcG9ydCcsICctLXNlcnZlcl9wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSdzZXJ2ZXJfcG9ydCcsIHR5cGU9J2ludCcsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD1fVU5ERUZJTkVEX1BPUlQsIGhlbHA9J3NlcnZlciBwb3J0JykKICAgICBwYXJzZXIuYWRkX29w
dGlvbignLW8nLCAnLS1vcmlnaW4nLCBkZXN0PSdvcmlnaW4nLCB0eXBlPSdzdHJpbmcnLAogICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9J2h0dHA6Ly9sb2NhbGhvc3QvJywgaGVscD0nb3Jp
Z2luJykKQEAgLTE3OSw4ICsxODEsOCBAQCBkZWYgbWFpbigpOgogICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9VHJ1ZSwgaGVscD0nc3VwcHJlc3MgbWVzc2FnZXMnKQogICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3Ry
dWUnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMg
KHdzczovLyknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXNvY2tldF90aW1lb3V0
JywgZGVzdD0nc29ja2V0X3RpbWVvdXQnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2lu
dCcsIGRlZmF1bHQ9X1RJTUVPVVRfU0VDLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaycsICct
LXNvY2tldC10aW1lb3V0JywgJy0tc29ja2V0X3RpbWVvdXQnLAorICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J3NvY2tldF90aW1lb3V0JywgdHlwZT0naW50JywgZGVmYXVsdD1fVElNRU9VVF9T
RUMsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVGltZW91dChzZWMpIGZvciBzb2NrZXRz
JykKIAogICAgIChvcHRpb25zLCB1bnVzZWRfYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCklu
ZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0
CShyZXZpc2lvbiAwKQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5
L3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDExIEBACisjIHdlYnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLCB1c2VkIGJ5IHN0YW5kYWxv
bmUucHkgLW0gb3B0aW9uLgorIyBBIGxpbmUgc3RhcnRpbmcgd2l0aCAnIycgaXMgYSBjb21tZW50
IGxpbmUuCisjIEVhY2ggbGluZSBjb25zaXN0cyBvZiAnYWxpYXNfcmVzb3VyY2VfcGF0aCcgYW5k
ICdleGlzdGluZ19yZXNvdXJjZV9wYXRoJworIyBzZXBhcmF0ZWQgYnkgc3BhY2VzLgorIyBBbGlh
c2luZyBpcyBwcm9jZXNzZWQgZnJvbSB0aGUgdG9wIHRvIHRoZSBib3R0b20gb2YgdGhlIGxpbmUs
IGFuZAorIyAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCcgbXVzdCBleGlzdCBiZWZvcmUgaXQgaXMg
YWxpYXNlZC4KKyMgRm9yIGV4YW1wbGUsCisjICAvIC9lY2hvCisjIG1lYW5zIHRoYXQgYSByZXF1
ZXN0IHRvICcvJyB3aWxsIGJlIGhhbmRsZWQgYnkgaGFuZGxlcnMgZm9yICcvZWNobycuCisvIC9l
Y2hvCisKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L3N0YW5kYWxvbmUucHkJKHJldmlzaW9uIDU1MzYzKQorKysgV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsMTAgKzI3MiwxOSBAQCBjbGFzcyBXZWJT
b2NrZXRSZXF1ZXN0SGFuZGxlcihDR0lIVFRQU2VyCiAgICAgZGVmIGlzX2NnaShzZWxmKToKICAg
ICAgICAgIiIiVGVzdCB3aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0byBhIENHSSBzY3Jp
cHQuCiAKLSAgICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29u
dGFpbnMgLi4iIiIKKyAgICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNu
J3QgY29udGFpbnMgLi4KKyAgICAgICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBhIGV4ZWN1
dGFibGUgZmlsZSBvciBub3QuCisgICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVjdXRhYmxl
LCBpdCBpcyBoYW5kbGVkIGFzIHN0YXRpYyBmaWxlIG9yIGRpcgorICAgICAgICByYXRoZXIgdGhh
biBhIENHSSBzY3JpcHQuCisgICAgICAgICIiIgogICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNH
SUhUVFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2VsZik6CiAgICAgICAgICAgICBpZiAnLi4nIGlu
IHNlbGYucGF0aDoKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHNj
cmlwdGZpbGUgPSBzZWxmLnRyYW5zbGF0ZV9wYXRoKHNlbGYucGF0aC5zcGxpdCgnPycsIDIpWzBd
KQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHNjcmlwdGZpbGUpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZXhlY3V0
YWJsZShzY3JpcHRmaWxlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAg
ICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQogCkBAIC0zMjEsMjYgKzMzMCwz
MiBAQCBkZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfCiAKIGRlZiBfbWFp
bigpOgogICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCisgICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy1IJywgJy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCisgICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9JycsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1l
IHRvIGxpc3RlbiB0bycpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRl
c3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9aGFu
ZHNoYWtlLl9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwKICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSdwb3J0IHRvIGxpc3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0t
d2Vic29ja19oYW5kbGVycycsIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnMnLAorICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctdycsICctLXdlYnNvY2staGFuZGxlcnMnLCAnLS13ZWJzb2NrX2hhbmRsZXJz
JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzJywKICAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PScuJywKICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdXZWIgU29ja2V0IGhhbmRsZXJzIHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1tJywgJy0td2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCisgICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy1tJywgJy0td2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScsCisgICAgICAgICAg
ICAgICAgICAgICAgJy0td2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCiAgICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nd2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCiAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdXZWIg
U29ja2V0IGhhbmRsZXJzIG1hcCBmaWxlLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J0VhY2ggbGluZSBjb25zaXN0cyBvZiBhbGlhc19yZXNvdXJjZV9wYXRoIGFuZCAnCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgsIHNlcGFyYXRlZCBi
eSBzcGFjZXMuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Nhbl9kaXInLCBk
ZXN0PSdzY2FuX2RpcicsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Nhbi1kaXIn
LCAnLS1zY2FuX2RpcicsIGRlc3Q9J3NjYW5fZGlyJywKICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYiBTb2NrZXQgaGFu
ZGxlcnMgc2NhbiBkaXJlY3RvcnkuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVz
dCBiZSBhIGRpcmVjdG9yeSB1bmRlciB3ZWJzb2NrX2hhbmRsZXJzLicpKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctZCcsICctLWRvY3VtZW50X3Jvb3QnLCBkZXN0PSdkb2N1bWVudF9yb290JywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScuJywKKyAgICBwYXJzZXIuYWRkX29wdGlv
bignLWQnLCAnLS1kb2N1bWVudC1yb290JywgJy0tZG9jdW1lbnRfcm9vdCcsCisgICAgICAgICAg
ICAgICAgICAgICAgZGVzdD0nZG9jdW1lbnRfcm9vdCcsIGRlZmF1bHQ9Jy4nLAogICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J0RvY3VtZW50IHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy14JywgJy0tY2dpX3BhdGhzJywgZGVzdD0nY2dpX3BhdGhzJywKKyAgICBw
YXJzZXIuYWRkX29wdGlvbignLXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0
PSdjZ2lfcGF0aHMnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jv
b3QuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0ZWQuIChlLmcg
LXggL2NnaSwvaHRiaW4pICcKQEAgLTM0OCwyMSArMzYzLDIyIEBAIGRlZiBfbWFpbigpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdhcyBDR0kgcHJvZ3JhbXMuIE11c3QgYmUgZXhlY3V0
YWJsZS4nKSkKICAgICBwYXJzZXIuYWRkX29wdGlvbignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2Vf
dGxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8pJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LWsnLCAnLS1wcml2YXRlX2tleScsIGRlc3Q9J3ByaXZhdGVfa2V5JywKKyAgICBwYXJzZXIuYWRk
X29wdGlvbignLWsnLCAnLS1wcml2YXRlLWtleScsICctLXByaXZhdGVfa2V5JywKKyAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdwcml2YXRlX2tleScsCiAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykKICAgICBwYXJzZXIuYWRk
X29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKICAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbCcsICctLWxvZ19maWxlJywgZGVzdD0nbG9nX2Zp
bGUnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9nX2Zp
bGUnLCBkZXN0PSdsb2dfZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywg
aGVscD0nTG9nIGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2dfbGV2ZWwnLCB0
eXBlPSdjaG9pY2UnLCBkZXN0PSdsb2dfbGV2ZWwnLAotICAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9J3dhcm4nLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxv
Z19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9n
X2xldmVsJywgZGVmYXVsdD0nd2FybicsCiAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1b
J2RlYnVnJywgJ2luZm8nLCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAogICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWxvZ19tYXgnLCBkZXN0PSdsb2dfbWF4JywgdHlwZT0naW50JywKKyAgICBwYXJzZXIuYWRkX29w
dGlvbignLS1sb2ctbWF4JywgJy0tbG9nX21heCcsIGRlc3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQn
LAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX01BWF9CWVRFUywK
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbWF4aW11bSBieXRlcycpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tbG9nX2NvdW50JywgZGVzdD0nbG9nX2NvdW50JywgdHlwZT0naW50
JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX0xPR19CQUNLVVBfQ09V
TlQsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWNvdW50JywgJy0tbG9nX2NvdW50Jywg
ZGVzdD0nbG9nX2NvdW50JywKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZh
dWx0PV9ERUZBVUxUX0xPR19CQUNLVVBfQ09VTlQsCiAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nTG9nIGJhY2t1cCBjb3VudCcpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tc3RyaWN0Jywg
ZGVzdD0nc3RyaWN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PUZhbHNlLCBoZWxwPSdTdHJpY3RseSBjaGVjayBoYW5kc2hha2UgcmVxdWVzdCcp
CkBAIC00MDcsNyArNDIzLDggQEAgZGVmIF9tYWluKCk6CiAgICAgICAgIFdlYlNvY2tldFJlcXVl
c3RIYW5kbGVyLm9wdGlvbnMgPSBvcHRpb25zCiAgICAgICAgIFdlYlNvY2tldFNlcnZlci5vcHRp
b25zID0gb3B0aW9ucwogCi0gICAgICAgIHNlcnZlciA9IFdlYlNvY2tldFNlcnZlcigoJycsIG9w
dGlvbnMucG9ydCksIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKQorICAgICAgICBzZXJ2ZXIgPSBX
ZWJTb2NrZXRTZXJ2ZXIoKG9wdGlvbnMuc2VydmVyX2hvc3QsIG9wdGlvbnMucG9ydCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKICAg
ICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQogICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAg
ICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoc3RyKGUpKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTUzNjMp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0wMy0wMSAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBweXdlYnNvY2tldCBz
aG91bGQgc3VwcG9ydCBodG1sIGFuZCBjZ2kgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NzkKKworICAgICAg
ICAqIHdlYnNvY2tldC90ZXN0cy9jb29raWVzOiBSZW1vdmVkLgorICAgICAgICAqIHdlYnNvY2tl
dC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llX3dzaC5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5w
bDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNv
b2tpZV93c2gucHkuCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS1l
eHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29r
aWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2Vic29ja2V0L3Rl
c3RzL2h0dHBvbmx5LWNvb2tpZS5wbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBsLgorCiAyMDEwLTAyLTI4ICBSb2JlcnQg
SG9nYW4gIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgpJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2VjaG8tY29v
a2llX3dzaC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvZWNo
by1jb29raWVfd3NoLnB5CShyZXZpc2lvbiA1NTM2MCkJKGZyb20gTGF5b3V0VGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5OjU1MzYwKQorKysgTGF5b3V0VGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llX3dzaC5weQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitmcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgbXNndXRpbAorCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCk6CisgICAgcGFzcworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgor
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICByZXF1ZXN0LmhlYWRlcnNfaW5bJ0Nv
b2tpZSddKQpJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tp
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU1MzYwKQkoZnJvbSBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQu
dHh0OjU1MzYwKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tp
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBXZWJT
b2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCitXZWJTb2NrZXQgb3BlbgorV2ViU29ja2V0IGNsb3NlZAorUEFTUyBjb29raWUgaXMgIldL
LXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNvY2tldC10ZXN0LWh0dHBvbmx5PTEiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5wbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCShyZXZpc2lvbiA1
NTM2MCkJKGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHkt
Y29va2llLnBsOjU1MzYwKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5
LWNvb2tpZS5wbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisjIS91c3IvYmluL3Bl
cmwgLXdUCit1c2Ugc3RyaWN0OworCitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxu
IjsKK3ByaW50ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdD0xXHJcbiI7CitwcmludCAi
U2V0LUNvb2tpZTogV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MTsgSHR0cE9ubHlcclxuIjsK
K3ByaW50ICJcclxuIjsKK3ByaW50IDw8SFRNTAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0
aW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBXZWJTb2NrZXQgc2Vu
ZHMgSHR0cE9ubHkgY29va2llcy48L3A+Cis8cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuPC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb29r
aWU7CisKK2Z1bmN0aW9uIGVuZFRlc3QoKQoreworICAgIHNob3VsZEJlKCJjb29raWUiLCAnIldL
LXdlYnNvY2tldC10ZXN0PTE7IFdLLXdlYnNvY2tldC10ZXN0LWh0dHBvbmx5PTEiJyk7CisgICAg
aXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFy
IHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMv
Y29va2llcy9lY2hvLWNvb2tpZSIpOword3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgZGVi
dWcoIldlYlNvY2tldCBvcGVuIik7Cit9Oword3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7
CisgICAgY29va2llID0gZXZ0LmRhdGE7CisgICAgd3MuY2xvc2UoKTsKK307Cit3cy5vbmNsb3Nl
ID0gZnVuY3Rpb24oKSB7CisgICAgZGVidWcoIldlYlNvY2tldCBjbG9zZWQiKTsKKyAgICBlbmRU
ZXN0KCk7Cit9OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgorSFRNTApJbmRleDogTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h0dHBvbmx5LWNvb2tpZS5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHR0cG9ubHktY29va2llLnBsCShyZXZpc2lvbiA1NTM2MCkKKysrIExheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwJKHdvcmtpbmcgY29weSkKQEAgLTgs
OCArOCw4IEBAIHByaW50ICJcclxuIjsKIHByaW50IDw8SFRNTAogPGh0bWw+CiA8aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHA+VGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy48L3A+
CkBAIC0zMSw3ICszMSw3IEBAIGZ1bmN0aW9uIGVuZFRlc3QoKQogICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KIAotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6
Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZSIpOwor
dmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVz
dHMvZWNoby1jb29raWUiKTsKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkgewogICAgIGRlYnVnKCJX
ZWJTb2NrZXQgb3BlbiIpOwogfTsKSW5kZXg6IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9j
b29raWVzL2VjaG8tY29va2llX3dzaC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gucHkJKHJldmlzaW9uIDU1MzYzKQor
KysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4
dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgIHJl
cXVlc3QuaGVhZGVyc19pblsnQ29va2llJ10pCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQv
dGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDU1MzYzKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMSArMCwwIEBACi1UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVdlYlNvY2tldCBvcGVuCi1XZWJTb2NrZXQgY2xv
c2VkCi1QQVNTIGNvb2tpZSBpcyAiV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRl
c3QtaHR0cG9ubHk9MSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRw
b25seS1jb29raWUucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBsCShyZXZpc2lvbiA1NTM2MykKKysrIExheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAkod29ya2luZyBj
b3B5KQpAQCAtMSw1MSArMCwwIEBACi0jIS91c3IvYmluL3BlcmwgLXdUCi11c2Ugc3RyaWN0Owot
Ci1wcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuIjsKLXByaW50ICJTZXQtQ29va2ll
OiBXSy13ZWJzb2NrZXQtdGVzdD0xXHJcbiI7Ci1wcmludCAiU2V0LUNvb2tpZTogV0std2Vic29j
a2V0LXRlc3QtaHR0cG9ubHk9MTsgSHR0cE9ubHlcclxuIjsKLXByaW50ICJcclxuIjsKLXByaW50
IDw8SFRNTAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHA+VGVzdCBXZWJTb2NrZXQgc2VuZHMgSHR0cE9ubHkgY29va2llcy48
L3A+Ci08cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuPC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciBjb29raWU7Ci0KLWZ1bmN0aW9uIGVuZFRl
c3QoKQotewotICAgIHNob3VsZEJlKCJjb29raWUiLCAnIldLLXdlYnNvY2tldC10ZXN0PTE7IFdL
LXdlYnNvY2tldC10ZXN0LWh0dHBvbmx5PTEiJyk7Ci0gICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQo
KTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLQotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgi
d3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZSIp
Owotd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIldlYlNvY2tldCBvcGVuIik7
Ci19Owotd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgY29va2llID0gZXZ0LmRh
dGE7Ci0gICAgd3MuY2xvc2UoKTsKLX07Ci13cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAg
ZGVidWcoIldlYlNvY2tldCBjbG9zZWQiKTsKLSAgICBlbmRUZXN0KCk7Ci19OwotCi12YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotSFRN
TAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49885</attachid>
            <date>2010-03-03 00:52:50 -0800</date>
            <delta_ts>2010-03-03 18:08:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100303175247.patch</filename>
            <type>text/plain</type>
            <size>31204</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1NDU0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDMtMDMgIEZ1bWl0b3NoaSBVa2FpICA8
dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5d2Vic29ja2V0IDAuNC45LjIKKyAg
ICAgICAgU3BlY2lmeSAtLXNlcnZlci1ob3N0IDEyNy4wLjAuMSwgc28gdGhhdCBpdCBvbmx5IGJp
bmRzIGxpc3RlbmluZyBzb2NrZXQKKyAgICAgICAgdG8gMTI3LjAuMC4xIHRvIHByZXZlbnQgYWNj
ZXNzIGZyb20gbm9uLWxvY2FsaG9zdC4KKyAgICAgICAgQ2hhbmdlIC0tY2dpLXBhdGhzIGZyb20g
L3dlYnNvY2tldC90ZXN0cy9jb29raWVzIHRvIC93ZWJzb2NrZXQvdGVzdHMsCisgICAgICAgIGJl
Y2F1c2UgcHl3ZWJzb2NrZXQgMC40LjkuMiBzdXBwb3J0cyBodG1sIGFuZCBjZ2kgaW4gdGhlIHNh
bWUgZGlyZWN0b3J5CisgICAgICAgIGFuZCBvbmx5IGV4ZWN1dGFibGUgKGh0dHBvbmx5LWNvb2tp
ZXMucGwpIHdpbGwgYmUgaGFuZGxlZCBhcyBjZ2kKKyAgICAgICAgc2NyaXB0LgorCisgICAgICAg
ICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtp
dC13ZWJzb2NrZXRzZXJ2ZXI6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGhpcmRwYXJ0eS9weXdlYnNvY2tldC9SRUFETUUud2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxl
L2hhbmRsZXJfbWFwLnR4dDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdXRpbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJz
b2NrZXQvc2V0dXAucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRTogQWRkZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvaGVsbG8ucGw6IEFkZGVkLgorCiAyMDEwLTAzLTAyICBBcm5vIFJlbmV2aWVyICA8YXJub0By
ZW5ldmllci5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZh
LgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwkocmV2aXNpb24gNTU0NTQp
CisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMJKHdvcmtpbmcgY29weSkK
QEAgLTE0MDQsMTIgKzE0MDQsMTMgQEAgc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgp
CiAKICAgICBteSBAYXJncyA9ICgKICAgICAgICAgIldlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSIs
Ci0gICAgICAgICItcCIsICIkd2ViU29ja2V0UG9ydCIsCi0gICAgICAgICItZCIsICIkd2ViU29j
a2V0SGFuZGxlckRpciIsCi0gICAgICAgICItcyIsICIkd2ViU29ja2V0SGFuZGxlclNjYW5EaXIi
LAotICAgICAgICAiLW0iLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKLSAgICAgICAgIi14
IiwgIi93ZWJzb2NrZXQvdGVzdHMvY29va2llcyIsCi0gICAgICAgICItbCIsICIkbG9nRmlsZSIs
CisgICAgICAgICItLXNlcnZlci1ob3N0IiwgIjEyNy4wLjAuMSIsCisgICAgICAgICItLXBvcnQi
LCAiJHdlYlNvY2tldFBvcnQiLAorICAgICAgICAiLS1kb2N1bWVudC1yb290IiwgIiR3ZWJTb2Nr
ZXRIYW5kbGVyRGlyIiwKKyAgICAgICAgIi0tc2Nhbi1kaXIiLCAiJHdlYlNvY2tldEhhbmRsZXJT
Y2FuRGlyIiwKKyAgICAgICAgIi0td2Vic29jay1oYW5kbGVycy1tYXAtZmlsZSIsICIkd2ViU29j
a2V0SGFuZGxlck1hcEZpbGUiLAorICAgICAgICAiLS1jZ2ktcGF0aHMiLCAiL3dlYnNvY2tldC90
ZXN0cyIsCisgICAgICAgICItLWxvZy1maWxlIiwgIiRsb2dGaWxlIiwKICAgICAgICAgIi0tc3Ry
aWN0IiwKICAgICApOwogICAgICMgd3NzIGlzIGRpc2FibGVkIHVudGlsIGFsbCBwbGF0Zm9ybXMg
c3VwcG9ydCBweU9wZW5TU0wuCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
d2Vic29ja2V0c2VydmVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdl
YmtpdC13ZWJzb2NrZXRzZXJ2ZXIJKHJldmlzaW9uIDU1NDU0KQorKysgV2ViS2l0VG9vbHMvU2Ny
aXB0cy9ydW4td2Via2l0LXdlYnNvY2tldHNlcnZlcgkod29ya2luZyBjb3B5KQpAQCAtNzEsMTEg
KzcxLDEyIEBAIHN1YiBvcGVuV2ViU29ja2V0U2VydmVyKCkKIAogICAgIG15IEBhcmdzID0gKAog
ICAgICAgICAiJHNyY0Rpci9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAotICAgICAgICAiLXAi
LCAiJHdlYlNvY2tldFBvcnQiLAotICAgICAgICAiLWQiLCAiJHdlYlNvY2tldEhhbmRsZXJEaXIi
LAotICAgICAgICAiLXMiLCAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyIiwKLSAgICAgICAgIi1t
IiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCi0gICAgICAgICIteCIsICIvd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMiLAorICAgICAgICAiLS1zZXJ2ZXItaG9zdCIsICIxMjcuMC4wLjEiLAor
ICAgICAgICAiLS1wb3J0IiwgIiR3ZWJTb2NrZXRQb3J0IiwKKyAgICAgICAgIi0tZG9jdW1lbnQt
cm9vdCIsICIkd2ViU29ja2V0SGFuZGxlckRpciIsCisgICAgICAgICItLXNjYW4tZGlyIiwgIiR3
ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCisgICAgICAgICItLXdlYnNvY2staGFuZGxlcnMtbWFw
LWZpbGUiLCAiJHdlYlNvY2tldEhhbmRsZXJNYXBGaWxlIiwKKyAgICAgICAgIi0tY2dpLXBhdGhz
IiwgIi93ZWJzb2NrZXQvdGVzdHMvY29va2llcyIsCiAgICAgKTsKIAogICAgICRFTlZ7IlBZVEhP
TlBBVEgifSA9ICR3ZWJTb2NrZXRQeXRob25QYXRoOwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
c29ja2V0X3NlcnZlci5weQkocmV2aXNpb24gNTU0NTQpCisrKyBXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tldF9zZXJ2ZXIucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTE1NiwxOCArMTU2LDE5IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVy
LkxpZ2h0dHBkKToKICAgICAgICAgICAgICdzdGFuZGFsb25lLnB5JykKICAgICAgICAgc3RhcnRf
Y21kID0gWwogICAgICAgICAgICAgcHl0aG9uX2ludGVycCwgcHl3ZWJzb2NrZXRfc2NyaXB0LAot
ICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX3BvcnQpLAotICAgICAgICAgICAgJy1kJywgc2Vs
Zi5fbGF5b3V0X3Rlc3RzLAotICAgICAgICAgICAgJy1zJywgc2VsZi5fd2ViX3NvY2tldF90ZXN0
cywKLSAgICAgICAgICAgICcteCcsICcvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMnLAotICAgICAg
ICAgICAgJy1sJywgZXJyb3JfbG9nLAorICAgICAgICAgICAgJy0tc2VydmVyLWhvc3QnLCAnMTI3
LjAuMC4xJywKKyAgICAgICAgICAgICctLXBvcnQnLCBzdHIoc2VsZi5fcG9ydCksCisgICAgICAg
ICAgICAnLS1kb2N1bWVudC1yb290Jywgc2VsZi5fbGF5b3V0X3Rlc3RzLAorICAgICAgICAgICAg
Jy0tc2Nhbi1kaXInLCBzZWxmLl93ZWJfc29ja2V0X3Rlc3RzLAorICAgICAgICAgICAgJy0tY2dp
LXBhdGhzJywgJy93ZWJzb2NrZXQvdGVzdHMvY29va2llcycsCisgICAgICAgICAgICAnLS1sb2ct
ZmlsZScsIGVycm9yX2xvZywKICAgICAgICAgXQogCiAgICAgICAgIGhhbmRsZXJfbWFwX2ZpbGUg
PSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3NvY2tldF90ZXN0cywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGxlcl9tYXAudHh0JykKICAgICAgICAgaWYgb3Mu
cGF0aC5leGlzdHMoaGFuZGxlcl9tYXBfZmlsZSk6CiAgICAgICAgICAgICBsb2dnaW5nLmRlYnVn
KCdVc2luZyBoYW5kbGVyX21hcF9maWxlOiAlcycgJSBoYW5kbGVyX21hcF9maWxlKQotICAgICAg
ICAgICAgc3RhcnRfY21kLmFwcGVuZCgnLW0nKQorICAgICAgICAgICAgc3RhcnRfY21kLmFwcGVu
ZCgnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJykKICAgICAgICAgICAgIHN0YXJ0X2NtZC5h
cHBlbmQoaGFuZGxlcl9tYXBfZmlsZSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGxvZ2dp
bmcud2FybmluZygnTm8gaGFuZGxlcl9tYXBfZmlsZSBmb3VuZCcpCkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvUkVBRE1FLndlYmtpdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3
ZWJzb2NrZXQvUkVBRE1FLndlYmtpdAkocmV2aXNpb24gNTU0NTQpCisrKyBXZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvUkVBRE1FLndlYmtpdAkod29y
a2luZyBjb3B5KQpAQCAtNCwxMCArNCwxMCBAQCBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb246
CiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3ZWJzb2NrZXQvCiAKIFRoaXMgZGlyZWN0b3J5
IGN1cnJlbnRseSBjb250YWlucyB0aGUgZm9sbG93aW5nIHZlcnNpb246Ci1GSVhNRTogRmlsbCBp
biB0aGUgY3VycmVudCB2ZXJzaW9uIGhlcmUuCiswLjQuOS4xCiAKIFRoZSBmb2xsb3dpbmcgbW9k
aWZpY2F0aW9ucyBoYXZlIGJlZW4gbWFkZSB0byB0aGlzIGxvY2FsIHZlcnNpb246Ci1GSVhNRTog
RmlsbCBpbiBsb2NhbCBtb2RpZmljYXRpb25zLgorbm90aGluZwogCiBNb3JlIGluZm9ybWF0aW9u
IG9uIHRoZXNlIGxvY2FsIG1vZGlmaWNhdGlvbnMgY2FuIGJlIGZvdW5kIGhlcmU6CiAKSW5kZXg6
IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9zZXR1
cC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFy
dHkvcHl3ZWJzb2NrZXQvc2V0dXAucHkJKHJldmlzaW9uIDU1NDU0KQorKysgV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3NldHVwLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHNldHVwKGF1dGhvcj0nWXV6byBGdWppc2hpbWEnLAog
ICAgICAgbmFtZT1fUEFDS0FHRV9OQU1FLAogICAgICAgcGFja2FnZXM9W19QQUNLQUdFX05BTUVd
LAogICAgICAgdXJsPSdodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3ZWJzb2NrZXQvJywKLSAg
ICAgIHZlcnNpb249JzAuNC44JywKKyAgICAgIHZlcnNpb249JzAuNC45LjInLAogICAgICAgKQog
CiAKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNv
Y2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50
LnB5CShyZXZpc2lvbiA1NTQ1NCkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhp
cmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0xNjMsOSArMTYzLDExIEBAIGRlZiBtYWluKCk6CiAgICAgc3lzLnN0ZG91dCA9IGNvZGVj
cy5nZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91dCkKIAogICAgIHBhcnNlciA9IE9wdGlvblBh
cnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2VydmVyX2hvc3QnLCBkZXN0
PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1z
JywgJy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCisgICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0nc2VydmVyX2hvc3QnLCB0eXBlPSdzdHJpbmcnLAogICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9J2xvY2FsaG9zdCcsIGhlbHA9J3NlcnZlciBob3N0JykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLXAnLCAnLS1zZXJ2ZXJfcG9ydCcsIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlw
ZT0naW50JywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1zZXJ2ZXItcG9ydCcsICct
LXNlcnZlcl9wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfcG9ydCcs
IHR5cGU9J2ludCcsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fVU5ERUZJTkVEX1BP
UlQsIGhlbHA9J3NlcnZlciBwb3J0JykKICAgICBwYXJzZXIuYWRkX29wdGlvbignLW8nLCAnLS1v
cmlnaW4nLCBkZXN0PSdvcmlnaW4nLCB0eXBlPSdzdHJpbmcnLAogICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9J2h0dHA6Ly9sb2NhbGhvc3QvJywgaGVscD0nb3JpZ2luJykKQEAgLTE3OSw4
ICsxODEsOCBAQCBkZWYgbWFpbigpOgogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1
ZSwgaGVscD0nc3VwcHJlc3MgbWVzc2FnZXMnKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcs
ICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLyknKQotICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXNvY2tldF90aW1lb3V0JywgZGVzdD0nc29ja2V0
X3RpbWVvdXQnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1bHQ9X1RJ
TUVPVVRfU0VDLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXNvY2tldC10aW1lb3V0
JywgJy0tc29ja2V0X3RpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NvY2tl
dF90aW1lb3V0JywgdHlwZT0naW50JywgZGVmYXVsdD1fVElNRU9VVF9TRUMsCiAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0nVGltZW91dChzZWMpIGZvciBzb2NrZXRzJykKIAogICAgIChvcHRp
b25zLCB1bnVzZWRfYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVy
X21hcC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CShyZXZpc2lvbiAwKQor
KysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L2V4
YW1wbGUvaGFuZGxlcl9tYXAudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACisjIHdl
YnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLCB1c2VkIGJ5IHN0YW5kYWxvbmUucHkgLW0gb3B0aW9u
LgorIyBBIGxpbmUgc3RhcnRpbmcgd2l0aCAnIycgaXMgYSBjb21tZW50IGxpbmUuCisjIEVhY2gg
bGluZSBjb25zaXN0cyBvZiAnYWxpYXNfcmVzb3VyY2VfcGF0aCcgYW5kICdleGlzdGluZ19yZXNv
dXJjZV9wYXRoJworIyBzZXBhcmF0ZWQgYnkgc3BhY2VzLgorIyBBbGlhc2luZyBpcyBwcm9jZXNz
ZWQgZnJvbSB0aGUgdG9wIHRvIHRoZSBib3R0b20gb2YgdGhlIGxpbmUsIGFuZAorIyAnZXhpc3Rp
bmdfcmVzb3VyY2VfcGF0aCcgbXVzdCBleGlzdCBiZWZvcmUgaXQgaXMgYWxpYXNlZC4KKyMgRm9y
IGV4YW1wbGUsCisjICAvIC9lY2hvCisjIG1lYW5zIHRoYXQgYSByZXF1ZXN0IHRvICcvJyB3aWxs
IGJlIGhhbmRsZWQgYnkgaGFuZGxlcnMgZm9yICcvZWNobycuCisvIC9lY2hvCisKSW5kZXg6IFdl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxv
bmUucHkJKHJldmlzaW9uIDU1NDU0KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
aGlyZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzIsMTAgKzI3MiwxOSBAQCBjbGFzcyBXZWJTb2NrZXRSZXF1ZXN0SGFu
ZGxlcihDR0lIVFRQU2VyCiAgICAgZGVmIGlzX2NnaShzZWxmKToKICAgICAgICAgIiIiVGVzdCB3
aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0byBhIENHSSBzY3JpcHQuCiAKLSAgICAgICAg
QWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29udGFpbnMgLi4iIiIKKyAg
ICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29udGFpbnMgLi4K
KyAgICAgICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBhIGV4ZWN1dGFibGUgZmlsZSBvciBu
b3QuCisgICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVjdXRhYmxlLCBpdCBpcyBoYW5kbGVk
IGFzIHN0YXRpYyBmaWxlIG9yIGRpcgorICAgICAgICByYXRoZXIgdGhhbiBhIENHSSBzY3JpcHQu
CisgICAgICAgICIiIgogICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFu
ZGxlci5pc19jZ2koc2VsZik6CiAgICAgICAgICAgICBpZiAnLi4nIGluIHNlbGYucGF0aDoKICAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHNjcmlwdGZpbGUgPSBzZWxm
LnRyYW5zbGF0ZV9wYXRoKHNlbGYucGF0aC5zcGxpdCgnPycsIDIpWzBdKQorICAgICAgICAgICAg
aWYgbm90IG9zLnBhdGguaXNmaWxlKHNjcmlwdGZpbGUpOgorICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQorICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZXhlY3V0YWJsZShzY3JpcHRmaWxl
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIHJldHVybiBUcnVl
CiAgICAgICAgIHJldHVybiBGYWxzZQogCkBAIC0zMjEsMjYgKzMzMCwzMiBAQCBkZWYgX2FsaWFz
X2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfCiAKIGRlZiBfbWFpbigpOgogICAgIHBhcnNl
ciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1IJywg
Jy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nc2VydmVyX2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsCisg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIGxpc3RlbiB0bycp
CiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBl
PSdpbnQnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9aGFuZHNoYWtlLl9ERUZBVUxU
X1dFQl9TT0NLRVRfUE9SVCwKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwb3J0IHRvIGxp
c3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Vic29ja19oYW5kbGVy
cycsIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnMnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdycs
ICctLXdlYnNvY2staGFuZGxlcnMnLCAnLS13ZWJzb2NrX2hhbmRsZXJzJywKKyAgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzJywKICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PScuJywKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdXZWIgU29ja2V0IGhh
bmRsZXJzIHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0t
d2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywg
Jy0td2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScsCisgICAgICAgICAgICAgICAgICAgICAgJy0t
d2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
d2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdXZWIgU29ja2V0IGhhbmRsZXJz
IG1hcCBmaWxlLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0VhY2ggbGluZSBjb25z
aXN0cyBvZiBhbGlhc19yZXNvdXJjZV9wYXRoIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMuJykpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Nhbl9kaXInLCBkZXN0PSdzY2FuX2Rpcics
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Nhbi1kaXInLCAnLS1zY2FuX2Rpcics
IGRlc3Q9J3NjYW5fZGlyJywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCiAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYiBTb2NrZXQgaGFuZGxlcnMgc2NhbiBkaXJl
Y3RvcnkuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVzdCBiZSBhIGRpcmVjdG9y
eSB1bmRlciB3ZWJzb2NrX2hhbmRsZXJzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcs
ICctLWRvY3VtZW50X3Jvb3QnLCBkZXN0PSdkb2N1bWVudF9yb290JywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PScuJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWQnLCAnLS1kb2N1
bWVudC1yb290JywgJy0tZG9jdW1lbnRfcm9vdCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVz
dD0nZG9jdW1lbnRfcm9vdCcsIGRlZmF1bHQ9Jy4nLAogICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J0RvY3VtZW50IHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy14
JywgJy0tY2dpX3BhdGhzJywgZGVzdD0nY2dpX3BhdGhzJywKKyAgICBwYXJzZXIuYWRkX29wdGlv
bignLXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0aHMnLAog
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jvb3QuJwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0ZWQuIChlLmcgLXggL2NnaSwvaHRiaW4p
ICcKQEAgLTM0OCwyMSArMzYzLDIyIEBAIGRlZiBfbWFpbigpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdhcyBDR0kgcHJvZ3JhbXMuIE11c3QgYmUgZXhlY3V0YWJsZS4nKSkKICAgICBw
YXJzZXIuYWRkX29wdGlvbignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9uPSdz
dG9yZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1
c2UgVExTICh3c3M6Ly8pJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1wcml2YXRl
X2tleScsIGRlc3Q9J3ByaXZhdGVfa2V5JywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAn
LS1wcml2YXRlLWtleScsICctLXByaXZhdGVfa2V5JywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdwcml2YXRlX2tleScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVs
cD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykKICAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAn
LS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctbCcsICctLWxvZ19maWxlJywgZGVzdD0nbG9nX2ZpbGUnLAorICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9nX2ZpbGUnLCBkZXN0PSdsb2df
ZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nTG9nIGZpbGUu
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLCBk
ZXN0PSdsb2dfbGV2ZWwnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9J3dhcm4nLAor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9
J2Nob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVs
dD0nd2FybicsCiAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8n
LCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAogICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J0xvZyBsZXZlbC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZ19tYXgnLCBkZXN0
PSdsb2dfbWF4JywgdHlwZT0naW50JywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbWF4
JywgJy0tbG9nX21heCcsIGRlc3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQnLAogICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX01BWF9CWVRFUywKICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdMb2cgbWF4aW11bSBieXRlcycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tbG9nX2NvdW50JywgZGVzdD0nbG9nX2NvdW50JywgdHlwZT0naW50JywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX0xPR19CQUNLVVBfQ09VTlQsCisgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tbG9nLWNvdW50JywgJy0tbG9nX2NvdW50JywgZGVzdD0nbG9nX2NvdW50
JywKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PV9ERUZBVUxUX0xP
R19CQUNLVVBfQ09VTlQsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGJhY2t1cCBj
b3VudCcpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tc3RyaWN0JywgZGVzdD0nc3RyaWN0Jywg
YWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNl
LCBoZWxwPSdTdHJpY3RseSBjaGVjayBoYW5kc2hha2UgcmVxdWVzdCcpCkBAIC0zODEsNiArMzk3
LDE4IEBAIGRlZiBfbWFpbigpOgogICAgIGlmIG9wdGlvbnMuY2dpX3BhdGhzOgogICAgICAgICBD
R0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5jZ2lfZGlyZWN0b3JpZXMgPSBcCiAg
ICAgICAgICAgICBvcHRpb25zLmNnaV9wYXRocy5zcGxpdCgnLCcpCisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgorICAgICAgICAgICAgY3lnd2luX3BhdGgg
PSBOb25lCisgICAgICAgICAgICAjIEZvciBXaW4zMiBQeXRob24sIGl0IGlzIGV4cGVjdGVkIHRo
YXQgQ1lHV0lOX1BBVEgKKyAgICAgICAgICAgICMgaXMgc2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5
Z3dpbiBiaW5hcmllcy4KKyAgICAgICAgICAgICMgRm9yIGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2
ZXIucHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5fUEFUSCB0bworICAgICAgICAgICAgIyBmdWxs
IHBhdGggb2YgdGhpcmRfcGFydHkvY3lnd2luL2Jpbi4KKyAgICAgICAgICAgIGlmICdDWUdXSU5f
UEFUSCcgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgICAgICBjeWd3aW5fcGF0aCA9IG9zLmVu
dmlyb25bJ0NZR1dJTl9QQVRIJ10KKyAgICAgICAgICAgIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dp
bihjeWd3aW5fcGF0aCkKKyAgICAgICAgICAgIGRlZiBfX2NoZWNrX3NjcmlwdChzY3JpcHRwYXRo
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gdXRpbC5nZXRfc2NyaXB0X2ludGVycChzY3JpcHRw
YXRoLCBjeWd3aW5fcGF0aCkKKyAgICAgICAgICAgIENHSUhUVFBTZXJ2ZXIuZXhlY3V0YWJsZSA9
IF9fY2hlY2tfc2NyaXB0CiAKICAgICBpZiBvcHRpb25zLnVzZV90bHM6CiAgICAgICAgIGlmIG5v
dCBfSEFTX09QRU5fU1NMOgpAQCAtNDA3LDcgKzQzNSw4IEBAIGRlZiBfbWFpbigpOgogICAgICAg
ICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci5vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBXZWJT
b2NrZXRTZXJ2ZXIub3B0aW9ucyA9IG9wdGlvbnMKIAotICAgICAgICBzZXJ2ZXIgPSBXZWJTb2Nr
ZXRTZXJ2ZXIoKCcnLCBvcHRpb25zLnBvcnQpLCBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKKyAg
ICAgICAgc2VydmVyID0gV2ViU29ja2V0U2VydmVyKChvcHRpb25zLnNlcnZlcl9ob3N0LCBvcHRp
b25zLnBvcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU29ja2V0UmVx
dWVzdEhhbmRsZXIpCiAgICAgICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKICAgICBleGNlcHQg
RXhjZXB0aW9uLCBlOgogICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKHN0cihlKSkKSW5kZXg6IFdl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvdXRpbC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkJKHJldmlz
aW9uIDU1NDU0KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw4IEBACiAKIAogaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgb3MKK2ltcG9ydCByZQogaW1w
b3J0IHRyYWNlYmFjawogCiAKQEAgLTU2LDQgKzU4LDY0IEBAIGRlZiBwcmVwZW5kX21lc3NhZ2Vf
dG9fZXhjZXB0aW9uKG1lc3NhZ2UKICAgICByZXR1cm4KIAogCitkZWYgX190cmFuc2xhdGVfaW50
ZXJwKGludGVycCwgY3lnd2luX3BhdGgpOgorICAgICIiIlRyYW5zbGF0ZSBpbnRlcnAgcHJvZ3Jh
bSBwYXRoIGZvciBXaW4zMiBweXRob24gdG8gcnVuIGN5Z3dpbiBwcm9ncmFtCisgICAgKGUuZy4g
cGVybCkuICBOb3RlIHRoYXQgaXQgZG9lc24ndCBzdXBwb3J0IHBhdGggdGhhdCBjb250YWlucyBz
cGFjZSwKKyAgICB3aGljaCBpcyB0eXBpY2FsbHkgdHJ1ZSBmb3IgVW5peCwgd2hlcmUgIyEtc2Ny
aXB0IGlzIHdyaXR0ZW4uCisgICAgRm9yIFdpbjMyIHB5dGhvbiwgY3lnd2luX3BhdGggaXMgYSBk
aXJlY3Rvcnkgb2YgY3lnd2luIGJpbmFyaWVzLgorCisgICAgQXJnczoKKyAgICAgIGludGVycDog
aW50ZXJwIGNvbW1hbmQgbGluZQorICAgICAgY3lnd2luX3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9m
IGN5Z3dpbiBiaW5hcnksIG9yIE5vbmUKKyAgICBSZXR1cm5zOgorICAgICAgdHJhbnNsYXRlZCBp
bnRlcnAgY29tbWFuZCBsaW5lLgorICAgICIiIgorICAgIGlmIG5vdCBjeWd3aW5fcGF0aDoKKyAg
ICAgICAgcmV0dXJuIGludGVycAorICAgIG0gPSByZS5tYXRjaCgiXlteIF0qLyhbXiBdKykoIC4q
KT8iLCBpbnRlcnApCisgICAgaWYgbToKKyAgICAgICAgY21kID0gb3MucGF0aC5qb2luKGN5Z3dp
bl9wYXRoLCBtLmdyb3VwKDEpKQorICAgICAgICByZXR1cm4gY21kICsgbS5ncm91cCgyKQorICAg
IHJldHVybiBpbnRlcnAKKworCitkZWYgZ2V0X3NjcmlwdF9pbnRlcnAoc2NyaXB0X3BhdGgsIGN5
Z3dpbl9wYXRoPU5vbmUpOgorICAgICIiIkdldHMgIyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5l
IGZyb20gdGhlIHNjcmlwdC4KKworICAgIEl0IGFsc28gZml4ZXMgY29tbWFuZCBwYXRoLiAgV2hl
biBDeWd3aW4gUHl0aG9uIGlzIHVzZWQsIGUuZy4gaW4gV2ViS2l0LAorICAgIGl0IGNvdWxkIHJ1
biAiL3Vzci9iaW4vcGVybCAtd1QgaGVsbG8ucGwiLgorICAgIFdoZW4gV2luMzIgUHl0aG9uIGlz
IHVzZWQsIGUuZy4gaW4gQ2hyb21pdW0sIGl0IGNvdWxkbid0LiAgU28sIGZpeAorICAgICIvdXNy
L2Jpbi9wZXJsIiB0byAiPGN5Z3dpbl9wYXRoPlxwZXJsLmV4ZSIuCisKKyAgICBBcmdzOgorICAg
ICAgc2NyaXB0X3BhdGg6IHBhdGhuYW1lIG9mIHRoZSBzY3JpcHQKKyAgICAgIGN5Z3dpbl9wYXRo
OiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBvciBOb25lCisgICAgUmV0dXJuczoK
KyAgICAgICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSwgb3IgTm9uZSBpZiBpdCBpcyBub3Qg
IyEtc2NyaXB0LgorICAgICIiIgorICAgIGZwID0gb3BlbihzY3JpcHRfcGF0aCkKKyAgICBsaW5l
ID0gZnAucmVhZGxpbmUoKQorICAgIGZwLmNsb3NlKCkKKyAgICBtID0gcmUubWF0Y2goIl4jISgu
KikiLCBsaW5lKQorICAgIGlmIG06CisgICAgICAgIHJldHVybiBfX3RyYW5zbGF0ZV9pbnRlcnAo
bS5ncm91cCgxKSwgY3lnd2luX3BhdGgpCisgICAgcmV0dXJuIE5vbmUKKworZGVmIHdyYXBfcG9w
ZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpOgorICAgICIiIldyYXAgcG9wZW4zIHRvIHN1cHBvcnQg
IyEtc2NyaXB0IG9uIFdpbmRvd3MuCisKKyAgICBBcmdzOgorICAgICAgY3lnd2luX3BhdGg6ICBw
YXRoIGZvciBjeWd3aW4gYmluYXJ5IGlmIGNvbW1hbmQgcGF0aCBpcyBuZWVkZWQgdG8gYmUKKyAg
ICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZC4gIE5vbmUgaWYgbm8gdHJhbnNsYXRpb24gcmVx
dWlyZWQuCisgICAgIiIiCisgICAgX19vcmlnX3BvcGVuMyA9IG9zLnBvcGVuMworICAgIGRlZiBf
X3dyYXBfcG9wZW4zKGNtZCwgbW9kZT0ndCcsIGJ1ZnNpemU9LTEpOgorICAgICAgICBjbWRsaW5l
ID0gY21kLnNwbGl0KCcgJykKKyAgICAgICAgaW50ZXJwID0gZ2V0X3NjcmlwdF9pbnRlcnAoY21k
bGluZVswXSwgY3lnd2luX3BhdGgpCisgICAgICAgIGlmIGludGVycDoKKyAgICAgICAgICAgIGNt
ZCA9IGludGVycCArICIgIiArIGNtZAorICAgICAgICByZXR1cm4gX19vcmlnX3BvcGVuMyhjbWQs
IG1vZGUsIGJ1ZnNpemUpCisgICAgb3MucG9wZW4zID0gX193cmFwX3BvcGVuMworCisKICMgdmk6
c3RzPTQgc3c9NCBldApJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBh
cnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRp
bC5weQkocmV2aXNpb24gNTU0NTQpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDExICszMywxNCBAQAogIiIiVGVzdHMgZm9yIHV0aWwgbW9kdWxlLiIiIgogCiAKK2ltcG9y
dCBvcworaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9ydCBjb25maWcgICMgVGhp
cyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBtb2RfcHl3ZWJzb2NrZXQuCiBmcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAogCitfVEVTVF9EQVRBX0RJUiA9IG9zLnBhdGguam9pbihvcy5w
YXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rlc3RkYXRhJykKIAogY2xhc3MgVXRpbFRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2dldF9zdGFja190cmFjZShzZWxmKToKQEAg
LTU1LDYgKzU4LDE4IEBAIGNsYXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKCdIZWxsbyAnLCBleGMpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkJywgc3RyKGV4YykpCiAKKyAgICBkZWYg
dGVzdF9nZXRfc2NyaXB0X2ludGVycChzZWxmKToKKyAgICAgICAgY3lnd2luX3BhdGggPSAnYzpc
XGN5Z3dpblxcYmluJworICAgICAgICBjeWd3aW5fcGVybCA9IG9zLnBhdGguam9pbihjeWd3aW5f
cGF0aCwgJ3BlcmwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3Nj
cmlwdF9pbnRlcnAoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdS
RUFETUUnKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRpbC5nZXRfc2NyaXB0
X2ludGVycCgKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ1JFQURN
RScpLCBjeWd3aW5fcGF0aCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy91c3IvYmluL3Bl
cmwgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKKyAgICAgICAgICAgIG9zLnBhdGguam9p
bihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGN5Z3dpbl9wZXJsICsgJyAtd1QnLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAorICAgICAgICAg
ICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnaGVsbG8ucGwnKSwgY3lnd2luX3BhdGgp
KQorCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCklu
ZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS9SRUFETUUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitU
ZXN0IGRhdGEgZGlyZWN0b3J5CkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oZWxsby5wbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9oZWxsby5wbAkocmV2aXNpb24gMCkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hlbGxvLnBsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKKyMhL3Vzci9iaW4vcGVybCAtd1QKK3ByaW50ICJI
ZWxsb1xuIjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NDU0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDMgIEZ1bWl0b3No
aSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQg
Y2dpIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvY29v
a2llczogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNv
b2tpZV93c2gucHk6IFJlbW92ZWQuCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMv
aHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJzb2Nr
ZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGw6IFJlbW92ZWQuCisgICAgICAgICog
d2Vic29ja2V0L3Rlc3RzL2VjaG8tY29va2llX3dzaC5weTogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5LgorICAgICAgICAq
IHdlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5
LWNvb2tpZS5wbC4KKwogMjAxMC0wMy0wMiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE5vdCByZXZpZXdlZCwgdGVzdCBmaXguCkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYnNvY2tldC90ZXN0cy9lY2hvLWNvb2tpZV93c2gucHkJKHJldmlzaW9uIDU1MzYwKQko
ZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gu
cHk6NTUzNjApCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3No
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisK
K2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCisKK2RlZiB3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKK2RlZiB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
IHJlcXVlc3QuaGVhZGVyc19pblsnQ29va2llJ10pCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNTUzNjApCShmcm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0
dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQ6NTUzNjApCisrKyBMYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDExIEBACitUZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1dlYlNvY2tldCBvcGVuCitXZWJTb2NrZXQgY2xv
c2VkCitQQVNTIGNvb2tpZSBpcyAiV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRl
c3QtaHR0cG9ubHk9MSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29v
a2llLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25s
eS1jb29raWUucGwJKHJldmlzaW9uIDU1MzYwKQkoZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQv
dGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGw6NTUzNjApCisrKyBMYXlvdXRUZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTEgQEAKKyMhL3Vzci9iaW4vcGVybCAtd1QKK3VzZSBzdHJpY3Q7CisKK3ByaW50ICJDb250
ZW50LVR5cGU6IHRleHQvaHRtbFxyXG4iOworcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tl
dC10ZXN0PTFcclxuIjsKK3ByaW50ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRw
b25seT0xOyBIdHRwT25seVxyXG4iOworcHJpbnQgIlxyXG4iOworcHJpbnQgPDxIVE1MCis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLjwvcD4KKzxwPk9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKK30KKwordmFyIGNvb2tpZTsKKworZnVuY3Rpb24gZW5kVGVzdCgpCit7CisgICAg
c2hvdWxkQmUoImNvb2tpZSIsICciV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRl
c3QtaHR0cG9ubHk9MSInKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAu
MTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llIik7Cit3cy5vbm9wZW4g
PSBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IG9wZW4iKTsKK307Cit3cy5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKKyAgICBjb29raWUgPSBldnQuZGF0YTsKKyAgICB3cy5j
bG9zZSgpOworfTsKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiV2ViU29j
a2V0IGNsb3NlZCIpOworICAgIGVuZFRlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CitIVE1MCkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwJKHJldmlzaW9u
IDU1MzYwKQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5w
bAkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDggQEAgcHJpbnQgIlxyXG4iOwogcHJpbnQgPDxI
VE1MCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rp
b24uanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cD5UZXN0IFdlYlNvY2tldCBzZW5k
cyBIdHRwT25seSBjb29raWVzLjwvcD4KQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gZW5kVGVz
dCgpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi12YXIg
d3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9j
b29raWVzL2VjaG8tY29va2llIik7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4w
LjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9lY2hvLWNvb2tpZSIpOwogd3Mub25vcGVuID0gZnVu
Y3Rpb24oKSB7CiAgICAgZGVidWcoIldlYlNvY2tldCBvcGVuIik7CiB9OwpJbmRleDogTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llX3dz
aC5weQkocmV2aXNpb24gNTU0NTQpCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29v
a2llcy9lY2hvLWNvb2tpZV93c2gucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAot
IyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwK
LQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MK
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAgcmVxdWVzdC5oZWFkZXJzX2luWydDb29raWUnXSkKSW5kZXg6
IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tp
ZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTU0NTQpCisrKyBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICswLDAgQEAKLVRlc3QgV2ViU29ja2V0IHNlbmRz
IEh0dHBPbmx5IGNvb2tpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotV2ViU29j
a2V0IG9wZW4KLVdlYlNvY2tldCBjbG9zZWQKLVBBU1MgY29va2llIGlzICJXSy13ZWJzb2NrZXQt
dGVzdD0xOyBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xIgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGwJKHJldmlz
aW9uIDU1NDU0KQorKysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9u
bHktY29va2llLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUxICswLDAgQEAKLSMhL3Vzci9iaW4v
cGVybCAtd1QKLXVzZSBzdHJpY3Q7Ci0KLXByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxy
XG4iOwotcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxuIjsKLXByaW50
ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRwT25seVxyXG4i
OwotcHJpbnQgIlxyXG4iOwotcHJpbnQgPDxIVE1MCi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0IFdlYlNvY2tldCBz
ZW5kcyBIdHRwT25seSBjb29raWVzLjwvcD4KLTxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48
L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNv
b2tpZTsKLQotZnVuY3Rpb24gZW5kVGVzdCgpCi17Ci0gICAgc2hvdWxkQmUoImNvb2tpZSIsICci
V0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKLSAg
ICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotCi12
YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0
cy9jb29raWVzL2VjaG8tY29va2llIik7Ci13cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBk
ZWJ1ZygiV2ViU29ja2V0IG9wZW4iKTsKLX07Ci13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQp
IHsKLSAgICBjb29raWUgPSBldnQuZGF0YTsKLSAgICB3cy5jbG9zZSgpOwotfTsKLXdzLm9uY2xv
c2UgPSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3NlZCIpOwotICAgIGVu
ZFRlc3QoKTsKLX07Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Ci1IVE1MCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49969</attachid>
            <date>2010-03-03 18:08:40 -0800</date>
            <delta_ts>2010-03-08 23:35:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34879-20100304110838.patch</filename>
            <type>text/plain</type>
            <size>31420</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1NDkxKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDMtMDMgIEZ1bWl0b3NoaSBVa2FpICA8
dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcHl3ZWJzb2NrZXQgc2hvdWxkIHN1cHBvcnQgaHRtbCBhbmQgY2dpIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0ODc5CisKKyAgICAgICAgSW1wb3J0IHB5d2Vic29ja2V0IDAuNC45LjIKKyAg
ICAgICAgU3BlY2lmeSAtLXNlcnZlci1ob3N0IDEyNy4wLjAuMSwgc28gdGhhdCBpdCBvbmx5IGJp
bmRzIGxpc3RlbmluZyBzb2NrZXQKKyAgICAgICAgdG8gMTI3LjAuMC4xIHRvIHByZXZlbnQgYWNj
ZXNzIGZyb20gbm9uLWxvY2FsaG9zdC4KKyAgICAgICAgQ2hhbmdlIC0tY2dpLXBhdGhzIGZyb20g
L3dlYnNvY2tldC90ZXN0cy9jb29raWVzIHRvIC93ZWJzb2NrZXQvdGVzdHMsCisgICAgICAgIGJl
Y2F1c2UgcHl3ZWJzb2NrZXQgMC40LjkuMiBzdXBwb3J0cyBodG1sIGFuZCBjZ2kgaW4gdGhlIHNh
bWUgZGlyZWN0b3J5CisgICAgICAgIGFuZCBvbmx5IGV4ZWN1dGFibGUgKGh0dHBvbmx5LWNvb2tp
ZXMucGwpIHdpbGwgYmUgaGFuZGxlZCBhcyBjZ2kKKyAgICAgICAgc2NyaXB0LgorCisgICAgICAg
ICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtp
dC13ZWJzb2NrZXRzZXJ2ZXI6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGhpcmRwYXJ0eS9weXdlYnNvY2tldC9SRUFETUUud2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxl
L2hhbmRsZXJfbWFwLnR4dDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdXRpbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJz
b2NrZXQvc2V0dXAucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRTogQWRkZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvaGVsbG8ucGw6IEFkZGVkLgorCiAyMDEwLTAzLTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IE1hcmsgUm93ZS4KSW5k
ZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMJKHJldmlzaW9uIDU1NDkxKQorKysg
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDI1LDEyICsxNDI1LDEzIEBAIHN1YiBvcGVuV2ViU29ja2V0U2VydmVySWZOZWVkZWQoKQogCiAg
ICAgbXkgQGFyZ3MgPSAoCiAgICAgICAgICJXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkiLAotICAg
ICAgICAiLXAiLCAiJHdlYlNvY2tldFBvcnQiLAotICAgICAgICAiLWQiLCAiJHdlYlNvY2tldEhh
bmRsZXJEaXIiLAotICAgICAgICAiLXMiLCAiJHdlYlNvY2tldEhhbmRsZXJTY2FuRGlyIiwKLSAg
ICAgICAgIi1tIiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCi0gICAgICAgICIteCIsICIv
d2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMiLAotICAgICAgICAiLWwiLCAiJGxvZ0ZpbGUiLAorICAg
ICAgICAiLS1zZXJ2ZXItaG9zdCIsICIxMjcuMC4wLjEiLAorICAgICAgICAiLS1wb3J0IiwgIiR3
ZWJTb2NrZXRQb3J0IiwKKyAgICAgICAgIi0tZG9jdW1lbnQtcm9vdCIsICIkd2ViU29ja2V0SGFu
ZGxlckRpciIsCisgICAgICAgICItLXNjYW4tZGlyIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRp
ciIsCisgICAgICAgICItLXdlYnNvY2staGFuZGxlcnMtbWFwLWZpbGUiLCAiJHdlYlNvY2tldEhh
bmRsZXJNYXBGaWxlIiwKKyAgICAgICAgIi0tY2dpLXBhdGhzIiwgIi93ZWJzb2NrZXQvdGVzdHMi
LAorICAgICAgICAiLS1sb2ctZmlsZSIsICIkbG9nRmlsZSIsCiAgICAgICAgICItLXN0cmljdCIs
CiAgICAgKTsKICAgICAjIHdzcyBpcyBkaXNhYmxlZCB1bnRpbCBhbGwgcGxhdGZvcm1zIHN1cHBv
cnQgcHlPcGVuU1NMLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXdlYnNv
Y2tldHNlcnZlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
d2Vic29ja2V0c2VydmVyCShyZXZpc2lvbiA1NTQ5MSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMv
cnVuLXdlYmtpdC13ZWJzb2NrZXRzZXJ2ZXIJKHdvcmtpbmcgY29weSkKQEAgLTcxLDExICs3MSwx
MiBAQCBzdWIgb3BlbldlYlNvY2tldFNlcnZlcigpCiAKICAgICBteSBAYXJncyA9ICgKICAgICAg
ICAgIiRzcmNEaXIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IiwKLSAgICAgICAgIi1wIiwgIiR3
ZWJTb2NrZXRQb3J0IiwKLSAgICAgICAgIi1kIiwgIiR3ZWJTb2NrZXRIYW5kbGVyRGlyIiwKLSAg
ICAgICAgIi1zIiwgIiR3ZWJTb2NrZXRIYW5kbGVyU2NhbkRpciIsCi0gICAgICAgICItbSIsICIk
d2ViU29ja2V0SGFuZGxlck1hcEZpbGUiLAotICAgICAgICAiLXgiLCAiL3dlYnNvY2tldC90ZXN0
cy9jb29raWVzIiwKKyAgICAgICAgIi0tc2VydmVyLWhvc3QiLCAiMTI3LjAuMC4xIiwKKyAgICAg
ICAgIi0tcG9ydCIsICIkd2ViU29ja2V0UG9ydCIsCisgICAgICAgICItLWRvY3VtZW50LXJvb3Qi
LCAiJHdlYlNvY2tldEhhbmRsZXJEaXIiLAorICAgICAgICAiLS1zY2FuLWRpciIsICIkd2ViU29j
a2V0SGFuZGxlclNjYW5EaXIiLAorICAgICAgICAiLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxl
IiwgIiR3ZWJTb2NrZXRIYW5kbGVyTWFwRmlsZSIsCisgICAgICAgICItLWNnaS1wYXRocyIsICIv
d2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMiLAogICAgICk7CiAKICAgICAkRU5WeyJQWVRIT05QQVRI
In0gPSAkd2ViU29ja2V0UHl0aG9uUGF0aDsKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vic29ja2V0X3NlcnZlci5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYnNvY2tl
dF9zZXJ2ZXIucHkJKHJldmlzaW9uIDU1NDkxKQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJzb2NrZXRfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0xNTYsMTggKzE1NiwxOSBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdo
dHRwZCk6CiAgICAgICAgICAgICAnc3RhbmRhbG9uZS5weScpCiAgICAgICAgIHN0YXJ0X2NtZCA9
IFsKICAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAsIHB5d2Vic29ja2V0X3NjcmlwdCwKLSAgICAg
ICAgICAgICctcCcsIHN0cihzZWxmLl9wb3J0KSwKLSAgICAgICAgICAgICctZCcsIHNlbGYuX2xh
eW91dF90ZXN0cywKLSAgICAgICAgICAgICctcycsIHNlbGYuX3dlYl9zb2NrZXRfdGVzdHMsCi0g
ICAgICAgICAgICAnLXgnLCAnL3dlYnNvY2tldC90ZXN0cy9jb29raWVzJywKLSAgICAgICAgICAg
ICctbCcsIGVycm9yX2xvZywKKyAgICAgICAgICAgICctLXNlcnZlci1ob3N0JywgJzEyNy4wLjAu
MScsCisgICAgICAgICAgICAnLS1wb3J0Jywgc3RyKHNlbGYuX3BvcnQpLAorICAgICAgICAgICAg
Jy0tZG9jdW1lbnQtcm9vdCcsIHNlbGYuX2xheW91dF90ZXN0cywKKyAgICAgICAgICAgICctLXNj
YW4tZGlyJywgc2VsZi5fd2ViX3NvY2tldF90ZXN0cywKKyAgICAgICAgICAgICctLWNnaS1wYXRo
cycsICcvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMnLAorICAgICAgICAgICAgJy0tbG9nLWZpbGUn
LCBlcnJvcl9sb2csCiAgICAgICAgIF0KIAogICAgICAgICBoYW5kbGVyX21hcF9maWxlID0gb3Mu
cGF0aC5qb2luKHNlbGYuX3dlYl9zb2NrZXRfdGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2hhbmRsZXJfbWFwLnR4dCcpCiAgICAgICAgIGlmIG9zLnBhdGgu
ZXhpc3RzKGhhbmRsZXJfbWFwX2ZpbGUpOgogICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNp
bmcgaGFuZGxlcl9tYXBfZmlsZTogJXMnICUgaGFuZGxlcl9tYXBfZmlsZSkKLSAgICAgICAgICAg
IHN0YXJ0X2NtZC5hcHBlbmQoJy1tJykKKyAgICAgICAgICAgIHN0YXJ0X2NtZC5hcHBlbmQoJy0t
d2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScpCiAgICAgICAgICAgICBzdGFydF9jbWQuYXBwZW5k
KGhhbmRsZXJfbWFwX2ZpbGUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBsb2dnaW5nLndh
cm5pbmcoJ05vIGhhbmRsZXJfbWFwX2ZpbGUgZm91bmQnKQpJbmRleDogV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L1JFQURNRS53ZWJraXQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29j
a2V0L1JFQURNRS53ZWJraXQJKHJldmlzaW9uIDU1NDkxKQorKysgV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L1JFQURNRS53ZWJraXQJKHdvcmtpbmcg
Y29weSkKQEAgLTQsMTAgKzQsMTAgQEAgZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uOgogaHR0
cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vic29ja2V0LwogCiBUaGlzIGRpcmVjdG9yeSBjdXJy
ZW50bHkgY29udGFpbnMgdGhlIGZvbGxvd2luZyB2ZXJzaW9uOgotRklYTUU6IEZpbGwgaW4gdGhl
IGN1cnJlbnQgdmVyc2lvbiBoZXJlLgorMC40LjkuMgogCiBUaGUgZm9sbG93aW5nIG1vZGlmaWNh
dGlvbnMgaGF2ZSBiZWVuIG1hZGUgdG8gdGhpcyBsb2NhbCB2ZXJzaW9uOgotRklYTUU6IEZpbGwg
aW4gbG9jYWwgbW9kaWZpY2F0aW9ucy4KK21pbm9yIHVwZGF0ZXMgaW4gV2ViU29ja2V0UmVxdWVz
dEhhbmRsZXIuaXNfY2dpCiAKIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlc2UgbG9jYWwgbW9kaWZp
Y2F0aW9ucyBjYW4gYmUgZm91bmQgaGVyZToKIApJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3NldHVwLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9zZXR1cC5w
eQkocmV2aXNpb24gNTU0OTEpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJk
cGFydHkvcHl3ZWJzb2NrZXQvc2V0dXAucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcg
QEAgc2V0dXAoYXV0aG9yPSdZdXpvIEZ1amlzaGltYScsCiAgICAgICBuYW1lPV9QQUNLQUdFX05B
TUUsCiAgICAgICBwYWNrYWdlcz1bX1BBQ0tBR0VfTkFNRV0sCiAgICAgICB1cmw9J2h0dHA6Ly9j
b2RlLmdvb2dsZS5jb20vcC9weXdlYnNvY2tldC8nLAotICAgICAgdmVyc2lvbj0nMC40LjgnLAor
ICAgICAgdmVyc2lvbj0nMC40LjkuMicsCiAgICAgICApCiAKIApJbmRleDogV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGll
bnQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBh
cnR5L3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkJKHJldmlzaW9uIDU1NDkxKQor
KysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L2V4
YW1wbGUvZWNob19jbGllbnQucHkJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw5ICsxNjMsMTEgQEAg
ZGVmIG1haW4oKToKICAgICBzeXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcigndXRmLTgnKShz
eXMuc3Rkb3V0KQogCiAgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLXMnLCAnLS1zZXJ2ZXJfaG9zdCcsIGRlc3Q9J3NlcnZlcl9ob3N0JywgdHlwZT0n
c3RyaW5nJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXItaG9zdCcsICct
LXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcs
IHR5cGU9J3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nbG9jYWxob3N0
JywgaGVscD0nc2VydmVyIGhvc3QnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXNl
cnZlcl9wb3J0JywgZGVzdD0nc2VydmVyX3BvcnQnLCB0eXBlPSdpbnQnLAorICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctcCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAorICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQn
KQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbics
IHR5cGU9J3N0cmluZycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0naHR0cDovL2xv
Y2FsaG9zdC8nLCBoZWxwPSdvcmlnaW4nKQpAQCAtMTc5LDggKzE4MSw4IEBAIGRlZiBtYWluKCk6
CiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSdzdXBwcmVzcyBtZXNz
YWdlcycpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVzdD0ndXNlX3Rs
cycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1G
YWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1r
JywgJy0tc29ja2V0X3RpbWVvdXQnLCBkZXN0PSdzb2NrZXRfdGltZW91dCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD1fVElNRU9VVF9TRUMsCisgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2NrZXRfdGltZW91dCcs
CisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQnLCB0eXBlPSdpbnQn
LCBkZWZhdWx0PV9USU1FT1VUX1NFQywKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdUaW1l
b3V0KHNlYykgZm9yIHNvY2tldHMnKQogCiAgICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9IHBh
cnNlci5wYXJzZV9hcmdzKCkKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhp
cmRwYXJ0eS9weXdlYnNvY2tldC9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9oYW5kbGVyX21hcC50eHQJKHJldmlzaW9uIDApCisrKyBXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKyMgd2Vic29ja2V0IGhhbmRsZXIgbWFwIGZp
bGUsIHVzZWQgYnkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24uCisjIEEgbGluZSBzdGFydGluZyB3
aXRoICcjJyBpcyBhIGNvbW1lbnQgbGluZS4KKyMgRWFjaCBsaW5lIGNvbnNpc3RzIG9mICdhbGlh
c19yZXNvdXJjZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnCisjIHNlcGFyYXRl
ZCBieSBzcGFjZXMuCisjIEFsaWFzaW5nIGlzIHByb2Nlc3NlZCBmcm9tIHRoZSB0b3AgdG8gdGhl
IGJvdHRvbSBvZiB0aGUgbGluZSwgYW5kCisjICdleGlzdGluZ19yZXNvdXJjZV9wYXRoJyBtdXN0
IGV4aXN0IGJlZm9yZSBpdCBpcyBhbGlhc2VkLgorIyBGb3IgZXhhbXBsZSwKKyMgIC8gL2VjaG8K
KyMgbWVhbnMgdGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwgYmUgaGFuZGxlZCBieSBoYW5kbGVy
cyBmb3IgJy9lY2hvJy4KKy8gL2VjaG8KKwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQkocmV2aXNpb24gNTU0OTEp
CisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3MiwxMCAr
MjcyLDIyIEBAIGNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXIKICAgICBk
ZWYgaXNfY2dpKHNlbGYpOgogICAgICAgICAiIiJUZXN0IHdoZXRoZXIgc2VsZi5wYXRoIGNvcnJl
c3BvbmRzIHRvIGEgQ0dJIHNjcmlwdC4KIAotICAgICAgICBBZGQgZXh0cmEgY2hlY2sgdGhhdCBz
ZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLiIiIgorICAgICAgICBBZGQgZXh0cmEgY2hlY2sg
dGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLgorICAgICAgICBBbHNvIGNoZWNrIGlm
IHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBmaWxlIG9yIG5vdC4KKyAgICAgICAgSWYgdGhlIGZp
bGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlzIGhhbmRsZWQgYXMgc3RhdGljIGZpbGUgb3IgZGly
CisgICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJIHNjcmlwdC4KKyAgICAgICAgIiIiCiAgICAgICAg
IGlmIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2NnaShzZWxmKToKICAg
ICAgICAgICAgIGlmICcuLicgaW4gc2VsZi5wYXRoOgogICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICAgICAgIyBzdHJpcCBxdWVyeSBwYXJhbWV0ZXIgZnJvbSByZXF1ZXN0IHBh
dGgKKyAgICAgICAgICAgIHJlc291cmNlX25hbWUgPSBzZWxmLnBhdGguc3BsaXQoJz8nLCAyKVsw
XQorICAgICAgICAgICAgIyBjb252ZXJ0IHJlc291cmNlX25hbWUgaW50byByZWFsIHBhdGggbmFt
ZSBpbiBmaWxlc3lzdGVtLgorICAgICAgICAgICAgc2NyaXB0ZmlsZSA9IHNlbGYudHJhbnNsYXRl
X3BhdGgocmVzb3VyY2VfbmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShz
Y3JpcHRmaWxlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlm
IG5vdCBzZWxmLmlzX2V4ZWN1dGFibGUoc2NyaXB0ZmlsZSk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UK
IApAQCAtMzIxLDI2ICszMzMsMzIgQEAgZGVmIF9hbGlhc19oYW5kbGVycyhkaXNwYXRjaGVyLCB3
ZWJzb2NrXwogCiBkZWYgX21haW4oKToKICAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJz
ZXIoKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctSCcsICctLXNlcnZlci1ob3N0JywgJy0tc2Vy
dmVyX2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9ob3N0JywKKyAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLAorICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J3NlcnZlciBob3N0bmFtZSB0byBsaXN0ZW4gdG8nKQogICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywKICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PWhhbmRzaGFrZS5fREVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCiAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0ncG9ydCB0byBsaXN0ZW4gdG8nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctdycsICctLXdlYnNvY2tfaGFuZGxlcnMnLCBkZXN0PSd3ZWJzb2NrX2hhbmRs
ZXJzJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXcnLCAnLS13ZWJzb2NrLWhhbmRsZXJzJywg
Jy0td2Vic29ja19oYW5kbGVycycsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vic29j
a19oYW5kbGVycycsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nLicsCiAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nV2ViIFNvY2tldCBoYW5kbGVycyByb290IGRpcmVjdG9yeS4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLXdlYnNvY2tfaGFuZGxlcnNfbWFwX2Zp
bGUnLAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLXdlYnNvY2staGFuZGxlcnMtbWFw
LWZpbGUnLAorICAgICAgICAgICAgICAgICAgICAgICctLXdlYnNvY2tfaGFuZGxlcnNfbWFwX2Zp
bGUnLAogICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnNfbWFwX2Zp
bGUnLAogICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnV2ViIFNvY2tldCBoYW5kbGVycyBtYXAgZmlsZS4gJwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdFYWNoIGxpbmUgY29uc2lzdHMgb2YgYWxpYXNfcmVzb3VyY2Vf
cGF0aCBhbmQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGlzdGluZ19yZXNvdXJj
ZV9wYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
cycsICctLXNjYW5fZGlyJywgZGVzdD0nc2Nhbl9kaXInLAorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctcycsICctLXNjYW4tZGlyJywgJy0tc2Nhbl9kaXInLCBkZXN0PSdzY2FuX2RpcicsCiAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCdXZWIgU29ja2V0IGhhbmRsZXJzIHNjYW4gZGlyZWN0b3J5LiAnCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ011c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgd2Vic29ja19oYW5kbGVy
cy4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWQnLCAnLS1kb2N1bWVudF9yb290JywgZGVz
dD0nZG9jdW1lbnRfcm9vdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nLicsCisg
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1kJywgJy0tZG9jdW1lbnQtcm9vdCcsICctLWRvY3VtZW50
X3Jvb3QnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RvY3VtZW50X3Jvb3QnLCBkZWZh
dWx0PScuJywKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdEb2N1bWVudCByb290IGRpcmVj
dG9yeS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCcteCcsICctLWNnaV9wYXRocycsIGRlc3Q9
J2NnaV9wYXRocycsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy14JywgJy0tY2dpLXBhdGhzJywg
Jy0tY2dpX3BhdGhzJywgZGVzdD0nY2dpX3BhdGhzJywKICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ0NHSSBwYXRocyByZWxh
dGl2ZSB0byBkb2N1bWVudF9yb290LicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29t
bWEtc2VwYXJhdGVkLiAoZS5nIC14IC9jZ2ksL2h0YmluKSAnCkBAIC0zNDgsMjEgKzM2NiwyMiBA
QCBkZWYgX21haW4oKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXMgQ0dJIHByb2dy
YW1zLiBNdXN0IGJlIGV4ZWN1dGFibGUuJykpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy10Jywg
Jy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKScpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tcHJpdmF0ZV9rZXknLCBkZXN0PSdwcml2YXRlX2tl
eScsCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tcHJpdmF0ZS1rZXknLCAnLS1wcml2
YXRlX2tleScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ncHJpdmF0ZV9rZXknLAogICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtleSBmaWxl
LicpCiAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1jJywgJy0tY2VydGlmaWNhdGUnLCBkZXN0PSdj
ZXJ0aWZpY2F0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExT
IGNlcnRpZmljYXRlIGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWwnLCAnLS1sb2df
ZmlsZScsIGRlc3Q9J2xvZ19maWxlJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWwnLCAnLS1s
b2ctZmlsZScsICctLWxvZ19maWxlJywgZGVzdD0nbG9nX2ZpbGUnLAogICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J0xvZyBmaWxlLicpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tbG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywgZGVzdD0nbG9nX2xldmVsJywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PSd3YXJuJywKKyAgICBwYXJzZXIuYWRkX29wdGlvbign
LS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAorICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAogICAgICAgICAgICAg
ICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InLCAnY3Jp
dGljYWwnXSwKICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwuJykKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLS1sb2dfbWF4JywgZGVzdD0nbG9nX21heCcsIHR5cGU9J2ludCcs
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLW1heCcsICctLWxvZ19tYXgnLCBkZXN0PSds
b2dfbWF4JywgdHlwZT0naW50JywKICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZB
VUxUX0xPR19NQVhfQllURVMsCiAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIG1heGlt
dW0gYnl0ZXMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZ19jb3VudCcsIGRlc3Q9J2xv
Z19jb3VudCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVG
QVVMVF9MT0dfQkFDS1VQX0NPVU5ULAorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1jb3Vu
dCcsICctLWxvZ19jb3VudCcsIGRlc3Q9J2xvZ19jb3VudCcsCisgICAgICAgICAgICAgICAgICAg
ICAgdHlwZT0naW50JywgZGVmYXVsdD1fREVGQVVMVF9MT0dfQkFDS1VQX0NPVU5ULAogICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBiYWNrdXAgY291bnQnKQogICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLXN0cmljdCcsIGRlc3Q9J3N0cmljdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0nU3RyaWN0bHkgY2hlY2sg
aGFuZHNoYWtlIHJlcXVlc3QnKQpAQCAtMzgxLDYgKzQwMCwxOCBAQCBkZWYgX21haW4oKToKICAg
ICBpZiBvcHRpb25zLmNnaV9wYXRoczoKICAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVx
dWVzdEhhbmRsZXIuY2dpX2RpcmVjdG9yaWVzID0gXAogICAgICAgICAgICAgb3B0aW9ucy5jZ2lf
cGF0aHMuc3BsaXQoJywnKQorICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAn
d2luMzInKToKKyAgICAgICAgICAgIGN5Z3dpbl9wYXRoID0gTm9uZQorICAgICAgICAgICAgIyBG
b3IgV2luMzIgUHl0aG9uLCBpdCBpcyBleHBlY3RlZCB0aGF0IENZR1dJTl9QQVRICisgICAgICAg
ICAgICAjIGlzIHNldCB0byBhIGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCisgICAgICAg
ICAgICAjIEZvciBleGFtcGxlLCB3ZWJzb2NrZXRfc2VydmVyLnB5IGluIENocm9taXVtIHNldHMg
Q1lHV0lOX1BBVEggdG8KKyAgICAgICAgICAgICMgZnVsbCBwYXRoIG9mIHRoaXJkX3BhcnR5L2N5
Z3dpbi9iaW4uCisgICAgICAgICAgICBpZiAnQ1lHV0lOX1BBVEgnIGluIG9zLmVudmlyb246Cisg
ICAgICAgICAgICAgICAgY3lnd2luX3BhdGggPSBvcy5lbnZpcm9uWydDWUdXSU5fUEFUSCddCisg
ICAgICAgICAgICB1dGlsLndyYXBfcG9wZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpCisgICAgICAg
ICAgICBkZWYgX19jaGVja19zY3JpcHQoc2NyaXB0cGF0aCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoc2NyaXB0cGF0aCwgY3lnd2luX3BhdGgpCisgICAg
ICAgICAgICBDR0lIVFRQU2VydmVyLmV4ZWN1dGFibGUgPSBfX2NoZWNrX3NjcmlwdAogCiAgICAg
aWYgb3B0aW9ucy51c2VfdGxzOgogICAgICAgICBpZiBub3QgX0hBU19PUEVOX1NTTDoKQEAgLTQw
Nyw3ICs0MzgsOCBAQCBkZWYgX21haW4oKToKICAgICAgICAgV2ViU29ja2V0UmVxdWVzdEhhbmRs
ZXIub3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgV2ViU29ja2V0U2VydmVyLm9wdGlvbnMgPSBv
cHRpb25zCiAKLSAgICAgICAgc2VydmVyID0gV2ViU29ja2V0U2VydmVyKCgnJywgb3B0aW9ucy5w
b3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCisgICAgICAgIHNlcnZlciA9IFdlYlNvY2tl
dFNlcnZlcigob3B0aW9ucy5zZXJ2ZXJfaG9zdCwgb3B0aW9ucy5wb3J0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKQogICAgICAgICBz
ZXJ2ZXIuc2VydmVfZm9yZXZlcigpCiAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKICAgICAgICAg
bG9nZ2luZy5jcml0aWNhbChzdHIoZSkpCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3RoaXJkcGFydHkvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5CShyZXZpc2lvbiA1NTQ5MSkKKysrIFdlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdXRpbC5weQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiAKIGltcG9ydCBT
dHJpbmdJTworaW1wb3J0IG9zCitpbXBvcnQgcmUKIGltcG9ydCB0cmFjZWJhY2sKIAogCkBAIC01
Niw0ICs1OCw2NCBAQCBkZWYgcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihtZXNzYWdlCiAg
ICAgcmV0dXJuCiAKIAorZGVmIF9fdHJhbnNsYXRlX2ludGVycChpbnRlcnAsIGN5Z3dpbl9wYXRo
KToKKyAgICAiIiJUcmFuc2xhdGUgaW50ZXJwIHByb2dyYW0gcGF0aCBmb3IgV2luMzIgcHl0aG9u
IHRvIHJ1biBjeWd3aW4gcHJvZ3JhbQorICAgIChlLmcuIHBlcmwpLiAgTm90ZSB0aGF0IGl0IGRv
ZXNuJ3Qgc3VwcG9ydCBwYXRoIHRoYXQgY29udGFpbnMgc3BhY2UsCisgICAgd2hpY2ggaXMgdHlw
aWNhbGx5IHRydWUgZm9yIFVuaXgsIHdoZXJlICMhLXNjcmlwdCBpcyB3cml0dGVuLgorICAgIEZv
ciBXaW4zMiBweXRob24sIGN5Z3dpbl9wYXRoIGlzIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5h
cmllcy4KKworICAgIEFyZ3M6CisgICAgICBpbnRlcnA6IGludGVycCBjb21tYW5kIGxpbmUKKyAg
ICAgIGN5Z3dpbl9wYXRoOiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBvciBOb25l
CisgICAgUmV0dXJuczoKKyAgICAgIHRyYW5zbGF0ZWQgaW50ZXJwIGNvbW1hbmQgbGluZS4KKyAg
ICAiIiIKKyAgICBpZiBub3QgY3lnd2luX3BhdGg6CisgICAgICAgIHJldHVybiBpbnRlcnAKKyAg
ICBtID0gcmUubWF0Y2goIl5bXiBdKi8oW14gXSspKCAuKik/IiwgaW50ZXJwKQorICAgIGlmIG06
CisgICAgICAgIGNtZCA9IG9zLnBhdGguam9pbihjeWd3aW5fcGF0aCwgbS5ncm91cCgxKSkKKyAg
ICAgICAgcmV0dXJuIGNtZCArIG0uZ3JvdXAoMikKKyAgICByZXR1cm4gaW50ZXJwCisKKworZGVm
IGdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdF9wYXRoLCBjeWd3aW5fcGF0aD1Ob25lKToKKyAgICAi
IiJHZXRzICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSBmcm9tIHRoZSBzY3JpcHQuCisKKyAg
ICBJdCBhbHNvIGZpeGVzIGNvbW1hbmQgcGF0aC4gIFdoZW4gQ3lnd2luIFB5dGhvbiBpcyB1c2Vk
LCBlLmcuIGluIFdlYktpdCwKKyAgICBpdCBjb3VsZCBydW4gIi91c3IvYmluL3BlcmwgLXdUIGhl
bGxvLnBsIi4KKyAgICBXaGVuIFdpbjMyIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIENocm9taXVt
LCBpdCBjb3VsZG4ndC4gIFNvLCBmaXgKKyAgICAiL3Vzci9iaW4vcGVybCIgdG8gIjxjeWd3aW5f
cGF0aD5ccGVybC5leGUiLgorCisgICAgQXJnczoKKyAgICAgIHNjcmlwdF9wYXRoOiBwYXRobmFt
ZSBvZiB0aGUgc2NyaXB0CisgICAgICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUgb2YgY3ln
d2luIGJpbmFyeSwgb3IgTm9uZQorICAgIFJldHVybnM6CisgICAgICAjIS1pbnRlcnByZXRlciBj
b21tYW5kIGxpbmUsIG9yIE5vbmUgaWYgaXQgaXMgbm90ICMhLXNjcmlwdC4KKyAgICAiIiIKKyAg
ICBmcCA9IG9wZW4oc2NyaXB0X3BhdGgpCisgICAgbGluZSA9IGZwLnJlYWRsaW5lKCkKKyAgICBm
cC5jbG9zZSgpCisgICAgbSA9IHJlLm1hdGNoKCJeIyEoLiopIiwgbGluZSkKKyAgICBpZiBtOgor
ICAgICAgICByZXR1cm4gX190cmFuc2xhdGVfaW50ZXJwKG0uZ3JvdXAoMSksIGN5Z3dpbl9wYXRo
KQorICAgIHJldHVybiBOb25lCisKK2RlZiB3cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRo
KToKKyAgICAiIiJXcmFwIHBvcGVuMyB0byBzdXBwb3J0ICMhLXNjcmlwdCBvbiBXaW5kb3dzLgor
CisgICAgQXJnczoKKyAgICAgIGN5Z3dpbl9wYXRoOiAgcGF0aCBmb3IgY3lnd2luIGJpbmFyeSBp
ZiBjb21tYW5kIHBhdGggaXMgbmVlZGVkIHRvIGJlCisgICAgICAgICAgICAgICAgICAgIHRyYW5z
bGF0ZWQuICBOb25lIGlmIG5vIHRyYW5zbGF0aW9uIHJlcXVpcmVkLgorICAgICIiIgorICAgIF9f
b3JpZ19wb3BlbjMgPSBvcy5wb3BlbjMKKyAgICBkZWYgX193cmFwX3BvcGVuMyhjbWQsIG1vZGU9
J3QnLCBidWZzaXplPS0xKToKKyAgICAgICAgY21kbGluZSA9IGNtZC5zcGxpdCgnICcpCisgICAg
ICAgIGludGVycCA9IGdldF9zY3JpcHRfaW50ZXJwKGNtZGxpbmVbMF0sIGN5Z3dpbl9wYXRoKQor
ICAgICAgICBpZiBpbnRlcnA6CisgICAgICAgICAgICBjbWQgPSBpbnRlcnAgKyAiICIgKyBjbWQK
KyAgICAgICAgcmV0dXJuIF9fb3JpZ19wb3BlbjMoY21kLCBtb2RlLCBidWZzaXplKQorICAgIG9z
LnBvcGVuMyA9IF9fd3JhcF9wb3BlbjMKKworCiAjIHZpOnN0cz00IHN3PTQgZXQKSW5kZXg6IFdl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfdXRpbC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwucHkJKHJldmlzaW9uIDU1NDkxKQor
KysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF91dGlsLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMsMTQgQEAKICIiIlRl
c3RzIGZvciB1dGlsIG1vZHVsZS4iIiIKIAogCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKIGltcG9y
dCB1bml0dGVzdAogCiBpbXBvcnQgY29uZmlnICAjIFRoaXMgbXVzdCBiZSBpbXBvcnRlZCBiZWZv
cmUgbW9kX3B5d2Vic29ja2V0LgogZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKIAor
X1RFU1RfREFUQV9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0s
ICd0ZXN0ZGF0YScpCiAKIGNsYXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBk
ZWYgdGVzdF9nZXRfc3RhY2tfdHJhY2Uoc2VsZik6CkBAIC01NSw2ICs1OCwxOCBAQCBjbGFzcyBV
dGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdl
X3RvX2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
ZWxsbyBXb3JsZCcsIHN0cihleGMpKQogCisgICAgZGVmIHRlc3RfZ2V0X3NjcmlwdF9pbnRlcnAo
c2VsZik6CisgICAgICAgIGN5Z3dpbl9wYXRoID0gJ2M6XFxjeWd3aW5cXGJpbicKKyAgICAgICAg
Y3lnd2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsICdwZXJsJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAorICAgICAgICAg
ICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJykpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCisgICAgICAgICAgICBv
cy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSwgY3lnd2luX3BhdGgpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jpbi9wZXJsIC13VCcsIHV0aWwuZ2V0X3Njcmlw
dF9pbnRlcnAoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxs
by5wbCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjeWd3aW5fcGVybCArICcgLXdUJywg
dXRpbC5nZXRfc2NyaXB0X2ludGVycCgKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9E
QVRBX0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9wYXRoKSkKKwogCiBpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdl
YnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRQkocmV2aXNpb24gMCkKKysrIFdlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JF
QURNRQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorVGVzdCBkYXRhIGRpcmVjdG9yeQpJbmRl
eDogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvaGVsbG8ucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90aGlyZHBhcnR5L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGVsbG8ucGwJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oZWxsby5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
IEBACisjIS91c3IvYmluL3BlcmwgLXdUCitwcmludCAiSGVsbG9cbiI7CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA1NTQ5MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE4IEBACisyMDEwLTAzLTAzICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHB5
d2Vic29ja2V0IHNob3VsZCBzdXBwb3J0IGh0bWwgYW5kIGNnaSBpbiB0aGUgc2FtZSBkaXJlY3Rv
cnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDg3
OQorCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXM6IFJlbW92ZWQuCisgICAgICAg
ICogd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5OiBSZW1vdmVkLgor
ICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9u
bHktY29va2llLnBsOiBSZW1vdmVkLgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9lY2hvLWNv
b2tpZV93c2gucHk6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29r
aWVzL2VjaG8tY29va2llX3dzaC5weS4KKyAgICAgICAgKiB3ZWJzb2NrZXQvdGVzdHMvaHR0cG9u
bHktY29va2llLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3
ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGwuCisKIDIwMTAtMDMt
MDMgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVz
dHMvZWNoby1jb29raWVfd3NoLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tl
dC90ZXN0cy9lY2hvLWNvb2tpZV93c2gucHkJKHJldmlzaW9uIDU1MzYwKQkoZnJvbSBMYXlvdXRU
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNvb2tpZV93c2gucHk6NTUzNjApCisr
KyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvZWNoby1jb29raWVfd3NoLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6CisgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgIHJlcXVlc3QuaGVh
ZGVyc19pblsnQ29va2llJ10pCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0
cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTUzNjAp
CShmcm9tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tp
ZS1leHBlY3RlZC50eHQ6NTUzNjApCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0
cG9ubHktY29va2llLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBA
CitUZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKK1dlYlNvY2tldCBvcGVuCitXZWJTb2NrZXQgY2xvc2VkCitQQVNTIGNv
b2tpZSBpcyAiV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9
MSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwJ
KHJldmlzaW9uIDU1MzYwKQkoZnJvbSBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2ll
cy9odHRwb25seS1jb29raWUucGw6NTUzNjApCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHR0cG9ubHktY29va2llLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKyMh
L3Vzci9iaW4vcGVybCAtd1QKK3VzZSBzdHJpY3Q7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRl
eHQvaHRtbFxyXG4iOworcHJpbnQgIlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxu
IjsKK3ByaW50ICJTZXQtQ29va2llOiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRw
T25seVxyXG4iOworcHJpbnQgIlxyXG4iOworcHJpbnQgPDxIVE1MCis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IFdl
YlNvY2tldCBzZW5kcyBIdHRwT25seSBjb29raWVzLjwvcD4KKzxwPk9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KwordmFyIGNvb2tpZTsKKworZnVuY3Rpb24gZW5kVGVzdCgpCit7CisgICAgc2hvdWxkQmUoImNv
b2tpZSIsICciV0std2Vic29ja2V0LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9
MSInKTsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworfQorCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNv
Y2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llIik7Cit3cy5vbm9wZW4gPSBmdW5jdGlvbigp
IHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IG9wZW4iKTsKK307Cit3cy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldnQpIHsKKyAgICBjb29raWUgPSBldnQuZGF0YTsKKyAgICB3cy5jbG9zZSgpOworfTsK
K3dzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3NlZCIp
OworICAgIGVuZFRlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CitIVE1MCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHR0cG9ubHktY29va2llLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9odHRwb25seS1jb29raWUucGwJKHJldmlzaW9uIDU1MzYwKQorKysg
TGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h0dHBvbmx5LWNvb2tpZS5wbAkod29ya2luZyBj
b3B5KQpAQCAtOCw4ICs4LDggQEAgcHJpbnQgIlxyXG4iOwogcHJpbnQgPDxIVE1MCiA8aHRtbD4K
IDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25seSBj
b29raWVzLjwvcD4KQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gZW5kVGVzdCgpCiAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi12YXIgd3MgPSBuZXcgV2Vi
U29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8t
Y29va2llIik7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dl
YnNvY2tldC90ZXN0cy9lY2hvLWNvb2tpZSIpOwogd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CiAg
ICAgZGVidWcoIldlYlNvY2tldCBvcGVuIik7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2Nvb2tpZXMvZWNoby1jb29raWVfd3NoLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2VjaG8tY29va2llX3dzaC5weQkocmV2aXNp
b24gNTU0OTEpCisrKyBMYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvY29va2llcy9lY2hvLWNv
b2tpZV93c2gucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLQotZGVmIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAgcmVxdWVzdC5oZWFkZXJzX2luWydDb29raWUnXSkKSW5kZXg6IExheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2h0dHBvbmx5LWNvb2tpZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHkt
Y29va2llLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTU0OTEpCisrKyBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDExICswLDAgQEAKLVRlc3QgV2ViU29ja2V0IHNlbmRzIEh0dHBPbmx5IGNv
b2tpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotV2ViU29ja2V0IG9wZW4KLVdl
YlNvY2tldCBjbG9zZWQKLVBBU1MgY29va2llIGlzICJXSy13ZWJzb2NrZXQtdGVzdD0xOyBXSy13
ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9j
b29raWVzL2h0dHBvbmx5LWNvb2tpZS5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvY29va2llcy9odHRwb25seS1jb29raWUucGwJKHJldmlzaW9uIDU1NDkxKQor
KysgTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2Nvb2tpZXMvaHR0cG9ubHktY29va2llLnBs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUxICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybCAtd1QKLXVz
ZSBzdHJpY3Q7Ci0KLXByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG4iOwotcHJpbnQg
IlNldC1Db29raWU6IFdLLXdlYnNvY2tldC10ZXN0PTFcclxuIjsKLXByaW50ICJTZXQtQ29va2ll
OiBXSy13ZWJzb2NrZXQtdGVzdC1odHRwb25seT0xOyBIdHRwT25seVxyXG4iOwotcHJpbnQgIlxy
XG4iOwotcHJpbnQgPDxIVE1MCi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0IFdlYlNvY2tldCBzZW5kcyBIdHRwT25s
eSBjb29raWVzLjwvcD4KLTxwPk9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvb2tpZTsKLQotZnVu
Y3Rpb24gZW5kVGVzdCgpCi17Ci0gICAgc2hvdWxkQmUoImNvb2tpZSIsICciV0std2Vic29ja2V0
LXRlc3Q9MTsgV0std2Vic29ja2V0LXRlc3QtaHR0cG9ubHk9MSInKTsKLSAgICBpc1N1Y2Nlc3Nm
dWxseVBhcnNlZCgpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotCi12YXIgd3MgPSBuZXcg
V2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9jb29raWVzL2Vj
aG8tY29va2llIik7Ci13cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiV2ViU29j
a2V0IG9wZW4iKTsKLX07Ci13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKLSAgICBjb29r
aWUgPSBldnQuZGF0YTsKLSAgICB3cy5jbG9zZSgpOwotfTsKLXdzLm9uY2xvc2UgPSBmdW5jdGlv
bigpIHsKLSAgICBkZWJ1ZygiV2ViU29ja2V0IGNsb3NlZCIpOwotICAgIGVuZFRlc3QoKTsKLX07
Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+Ci1IVE1MCg==
</data>
<flag name="review"
          id="32986"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>