<?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>38709</bug_id>
          
          <creation_ts>2010-05-06 17:48:44 -0700</creation_ts>
          <short_desc>getActiveUniform must ensure names of arrays end in &quot;[0]&quot;</short_desc>
          <delta_ts>2010-06-11 08:17:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>222082</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-05-06 17:48:44 -0700</bug_when>
    <thetext>In order to match OpenGL ES 2.0 semantics, getActiveUniform must ensure that if the name of an array uniform is fetched, the suffix &quot;[0]&quot; is present. Desktop GL does not enforce this rule. See section 2.10.4 &quot;Shader Variables&quot; in the ES spec version 2.0.24 (p. 34, GetActiveUniform), and compare to section 2.15.3 &quot;Shader Variables&quot; in the OpenGL 2.1 spec version dated 2006-12-01 (p. 80).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236548</commentid>
    <comment_count>1</comment_count>
      <attachid>58414</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-06-10 14:52:20 -0700</bug_when>
    <thetext>Created attachment 58414
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236604</commentid>
    <comment_count>2</comment_count>
      <attachid>58414</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-10 17:47:04 -0700</bug_when>
    <thetext>Comment on attachment 58414
patch

The changes generally look good, in particular the strengthening of the test case. We should consider using bindAttribLocation to avoid some of the swapping logic, but that isn&apos;t necessary to do now. A couple of comments:

WebCore/html/canvas/WebGLRenderingContext.cpp:966
 +          }
I know this is how Chromium&apos;s command buffer version is written, but here it would be much more concisely expressed as:

if (info.size &gt; 1 &amp;&amp; !info.name.endsWith(&quot;[0]&quot;))
    info.name.append(&quot;[0]&quot;);


LayoutTests/fast/canvas/webgl/resources/intArrayUniformShader.vert:7
 +                  + ival2[0] + ival2[1];
The formatting is unnecessarily weird here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236617</commentid>
    <comment_count>3</comment_count>
      <attachid>58429</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-06-10 18:04:48 -0700</bug_when>
    <thetext>Created attachment 58429
revised patch: responding to kbr&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236619</commentid>
    <comment_count>4</comment_count>
      <attachid>58429</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-06-10 18:09:13 -0700</bug_when>
    <thetext>Comment on attachment 58429
revised patch: responding to kbr&apos;s review

Looks good. Assuming you re-ran the test after the change to the string manipulation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236637</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-06-10 18:49:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 58429 [details])
&gt; Looks good. Assuming you re-ran the test after the change to the string manipulation code.

Yes I did.  However, my Mac GL driver returns with &quot;[0]&quot;, so the code path is not covered by the test on my Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236672</commentid>
    <comment_count>6</comment_count>
      <attachid>58429</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-10 21:35:19 -0700</bug_when>
    <thetext>Comment on attachment 58429
revised patch: responding to kbr&apos;s review

Weeeeird. But ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236835</commentid>
    <comment_count>7</comment_count>
      <attachid>58429</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-11 08:17:08 -0700</bug_when>
    <thetext>Comment on attachment 58429
revised patch: responding to kbr&apos;s review

Clearing flags on attachment: 58429

Committed r61020: &lt;http://trac.webkit.org/changeset/61020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236836</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-11 08:17:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58414</attachid>
            <date>2010-06-10 14:52:20 -0700</date>
            <delta_ts>2010-06-10 18:04:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>uniform.patch</filename>
            <type>text/plain</type>
            <size>23929</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDk3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRBY3Rp
dmVVbmlmb3JtIG11c3QgZW5zdXJlIG5hbWVzIG9mIGFycmF5cyBlbmQgaW4gIlswXSIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzA5CisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwKKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZUF0dHJpYik6IEFwcGVuZCAiWzBd
IiB0byB0aGUgbmFtZSBpZiBuZWVkZWQuCisKIDIwMTAtMDYtMTAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCkluZGV4
OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiA2MDkyNykKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTU4LDYgKzk1OCwxMyBAQCBQYXNzUmVmUHRyPFdlYkdM
QWN0aXZlSW5mbz4gV2ViR0xSZW5kZXJpCiAgICAgaWYgKCFtX2NvbnRleHQtPmdldEFjdGl2ZUF0
dHJpYihwcm9ncmFtLCBpbmRleCwgaW5mbykpIHsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQor
ICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKSB7CisgICAgICAgIGlmIChpbmZvLnNpemUgPiAx
KSB7CisgICAgICAgICAgICB1bnNpZ25lZCBsZW4gPSBpbmZvLm5hbWUubGVuZ3RoKCk7CisgICAg
ICAgICAgICBpZiAobGVuID4gMyAmJiAoaW5mby5uYW1lW2xlbiAtIDNdICE9ICdbJyB8fCBpbmZv
Lm5hbWVbbGVuIC0gMl0gIT0gJzAnIHx8IGluZm8ubmFtZVtsZW4gLSAxXSAhPSAnXScpKQorICAg
ICAgICAgICAgICAgIGluZm8ubmFtZS5hcHBlbmQoIlswXSIpOworICAgICAgICB9CisgICAgfQog
ICAgIHJldHVybiBXZWJHTEFjdGl2ZUluZm86OmNyZWF0ZShpbmZvLm5hbWUsIGluZm8udHlwZSwg
aW5mby5zaXplKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjA5NzUpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0xMCAg
WmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGdldEFjdGl2ZVVuaWZvcm0gbXVzdCBlbnN1cmUgbmFtZXMg
b2YgYXJyYXlzIGVuZCBpbiAiWzBdIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzg3MDkKKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dldC1h
Y3RpdmUtdGVzdC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QtZXhwZWN0ZWQudHh0LCBtb2RpZmllZCB0byB0ZXN0IGFy
cmF5IG5hbWVzLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVU
ZXN0Lmh0bWwuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZl
VGVzdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNl
cy9pbnRBcnJheVVuaWZvcm1TaGFkZXIudmVydDogQWRkZWQsIHdpdGggYXJyYXkgdW5pZm9ybS4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0
LmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvZ2V0QWN0aXZlVGVzdC5qcywgbW9kaWZpZWQgdG8gdGVzdCBhcnJheSBuYW1lcy4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qczogUmVt
b3ZlZC4KKwogMjAxMC0wNi0xMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUt
dGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYwOTI3KQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0LWV4cGVjdGVkLnR4dDo2MDkyNykKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorVGVzdCBvZiBnZXRBY3RpdmVBdHRyaWIgYW5k
IGdldEFjdGl2ZVVuaWZvcm0KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNv
bnRleHQuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAwKS5uYW1lIGlzICd1X21vZGVsVmlld1Byb2pNYXRyaXgnCitQQVNTIGNvbnRleHQuZ2V0
QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfTUFUNAorUEFT
UyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCitQQVNTIGNv
bnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAxKSB0aHJldyBleGNlcHRpb24gR0wgZXJy
b3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMg
MAorUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2Vw
dGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCitQQVNTIGNvbnRleHQuZ2V0
RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSB0aHJl
dyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgorUEFTUyBjb250
ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFt
LCAwKS5uYW1lIGlzICdhX25vcm1hbCcKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJv
Z3JhbSwgMCkudHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZFQzMKK1BBU1MgY29udGV4dC5nZXRBY3Rp
dmVBdHRyaWIocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0
cmliKHByb2dyYW0sIDEpLm5hbWUgaXMgJ2FfdmVydGV4JworUEFTUyBjb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCAxKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfVkVDNAorUEFTUyBjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIGlzIDEKK1BBU1MgY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEg
aW4gZ2V0QWN0aXZlQXR0cmliLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBj
b250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAtMSkgdGhyZXcgZXhjZXB0aW9uIEdMIGVy
cm9yIDEyODEgaW4gZ2V0QWN0aXZlQXR0cmliLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMg
MAorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihudWxsLCAwKSB0aHJldyBleGNlcHRpb24g
R0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVBdHRyaWIuCitQQVNTIGNvbnRleHQuZ2V0RXJyb3Io
KSBpcyAwCitQQVNTIGNvbnRleHQyLmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0Mi5nZXRB
Y3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4g
Z2V0QWN0aXZlQXR0cmliLgorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29u
dGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJy
b3IgMTI4MiBpbiBnZXRBY3RpdmVVbmlmb3JtLgorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlz
IDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIHRocmV3IGV4Y2Vw
dGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCitQQVNTIGNvbnRleHQuZ2V0
RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRo
cmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KK1BBU1MgY29u
dGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXQt
YWN0aXZlLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYwOTI3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwzNyArMiw1MSBAQCBUZXN0IG9mIGdldEFjdGl2
ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAot
UEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0IGlzIG5vbi1udWxsLgor
UEFTUyBjb250ZXh0MiBpcyBub24tbnVsbC4KK1BBU1MgcHJvZ3JhbSBpcyBub24tbnVsbC4KK1BB
U1MgcHJvZ3JhbTIgaXMgbm9uLW51bGwuCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250
ZXh0Lk5PX0VSUk9SCiBQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5u
YW1lIGlzICd1X21vZGVsVmlld1Byb2pNYXRyaXgnCiBQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5p
Zm9ybShwcm9ncmFtLCAwKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfTUFUNAogUEFTUyBjb250ZXh0
LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCi1QQVNTIGNvbnRleHQuZ2V0
QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAxKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBp
biBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBj
b250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2VwdGlvbiBHTCBl
cnJvciAxMjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBp
cyAwCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSB0aHJldyBleGNlcHRp
b24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0LmdldEVy
cm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5uYW1l
IGlzICdhX25vcm1hbCcKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCku
dHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZFQzMKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDEpLm5hbWUgaXMgJ2FfdmVydGV4JwotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihw
cm9ncmFtLCAxKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfVkVDNAotUEFTUyBjb250ZXh0LmdldEFj
dGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIGlzIDEKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVB
dHRyaWIocHJvZ3JhbSwgMikgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0
aXZlQXR0cmliLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAtMSkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEg
aW4gZ2V0QWN0aXZlQXR0cmliLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBj
b250ZXh0LmdldEFjdGl2ZUF0dHJpYihudWxsLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3Ig
MTI4MSBpbiBnZXRBY3RpdmVBdHRyaWIuCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCi1Q
QVNTIGNvbnRleHQyLmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0Mi5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0QWN0aXZl
QXR0cmliLgotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dDIuZ2V0
QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MiBp
biBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1Mg
Y29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBl
cnJvciAxMjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBp
cyAwCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2Vw
dGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5nZXRF
cnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDEpIGlz
IG51bGwKK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQor
UEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIGlzIG51bGwKK1BBU1Mg
Y29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0
LmdldEFjdGl2ZVVuaWZvcm0obnVsbCwgMCkgaXMgbnVsbAorUEFTUyBjb250ZXh0LmdldEVycm9y
KCkgaXMgY29udGV4dC5JTlZBTElEX1ZBTFVFCitQQVNTIGluZm9baWldIGlzIG5vbi1udWxsLgor
UEFTUyBpbmZvW2lpXSBpcyBub24tbnVsbC4KK1BBU1MgaW5mb1tpaV0ubmFtZSBpcyBleHBlY3Rl
ZFtpaV0ubmFtZQorUEFTUyBpbmZvW2lpXS50eXBlIGlzIGV4cGVjdGVkW2lpXS50eXBlCitQQVNT
IGluZm9baWldLnNpemUgaXMgZXhwZWN0ZWRbaWldLnNpemUKK1BBU1MgaW5mb1tpaV0ubmFtZSBp
cyBleHBlY3RlZFtpaV0ubmFtZQorUEFTUyBpbmZvW2lpXS50eXBlIGlzIGV4cGVjdGVkW2lpXS50
eXBlCitQQVNTIGluZm9baWldLnNpemUgaXMgZXhwZWN0ZWRbaWldLnNpemUKK1BBU1MgaW5mbzJb
aWldIGlzIG5vbi1udWxsLgorUEFTUyBpbmZvMltpaV0gaXMgbm9uLW51bGwuCitQQVNTIGluZm8y
W2lpXS5uYW1lIGlzIGV4cGVjdGVkMltpaV0ubmFtZQorUEFTUyBpbmZvMltpaV0udHlwZSBpcyBl
eHBlY3RlZDJbaWldLnR5cGUKK1BBU1MgaW5mbzJbaWldLnNpemUgaXMgZXhwZWN0ZWQyW2lpXS5z
aXplCitQQVNTIGluZm8yW2lpXS5uYW1lIGlzIGV4cGVjdGVkMltpaV0ubmFtZQorUEFTUyBpbmZv
MltpaV0udHlwZSBpcyBleHBlY3RlZDJbaWldLnR5cGUKK1BBU1MgaW5mbzJbaWldLnNpemUgaXMg
ZXhwZWN0ZWQyW2lpXS5zaXplCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0s
IDIpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9W
QUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAtMSkgaXMgbnVsbAor
UEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgY29udGV4dC5JTlZBTElEX1ZBTFVFCitQQVNTIGNv
bnRleHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDApIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRF
cnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigp
IGlzIGNvbnRleHQuTk9fRVJST1IKK1BBU1MgY29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDApIGlzIG51bGwKK1BBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBpcyBjb250ZXh0Mi5JTlZB
TElEX09QRVJBVElPTgorUEFTUyBjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDAp
IGlzIG51bGwKK1BBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBpcyBjb250ZXh0Mi5JTlZBTElEX09Q
RVJBVElPTgorUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgaXMgbnVs
bAorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgY29udGV4dC5JTlZBTElEX1ZBTFVFCitQQVNT
IGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIGlzIG51bGwKK1BBU1MgY29udGV4
dC5nZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QuaHRtbAkocmV2aXNpb24gNjA5Mjcp
CShmcm9tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbDo2
MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRBY3RpdmVU
ZXN0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwJKHJldmlz
aW9uIDYwOTI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10
ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBACiA8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAotPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9nZXRBY3RpdmVUZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0LmpzIj48L3NjcmlwdD4KIAogPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZl
VGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYwOTI3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzkgKzAsMCBAQAotVGVzdCBvZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZv
cm0KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3Io
KSBpcyAwCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5uYW1lIGlz
ICd1X21vZGVsVmlld1Byb2pNYXRyaXgnCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShw
cm9ncmFtLCAwKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfTUFUNAotUEFTUyBjb250ZXh0LmdldEFj
dGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZl
VW5pZm9ybShwcm9ncmFtLCAxKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRB
Y3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0
LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAx
MjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCi1Q
QVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSB0aHJldyBleGNlcHRpb24gR0wg
ZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkg
aXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5uYW1lIGlzICdh
X25vcm1hbCcKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkudHlwZSBp
cyBjb250ZXh0LkZMT0FUX1ZFQzMKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMCkuc2l6ZSBpcyAxCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDEp
Lm5hbWUgaXMgJ2FfdmVydGV4JwotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFt
LCAxKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfVkVDNAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0
dHJpYihwcm9ncmFtLCAxKS5zaXplIGlzIDEKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgMikgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlQXR0
cmliLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCAtMSkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0
QWN0aXZlQXR0cmliLgotUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0
LmdldEFjdGl2ZUF0dHJpYihudWxsLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBp
biBnZXRBY3RpdmVBdHRyaWIuCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCi1QQVNTIGNv
bnRleHQyLmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0Mi5nZXRBY3RpdmVBdHRyaWIocHJv
Z3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0QWN0aXZlQXR0cmli
LgotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dDIuZ2V0QWN0aXZl
VW5pZm9ybShwcm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MiBpbiBnZXRB
Y3RpdmVVbmlmb3JtLgotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4
dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAx
MjgxIGluIGdldEFjdGl2ZVVuaWZvcm0uCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCi1Q
QVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBH
TCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5nZXRFcnJvcigp
IGlzIDAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVz
dC5odG1sCShyZXZpc2lvbiA2MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dldEFjdGl2ZVRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNSArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvZ2V0QWN0aXZlVGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9pbnRBcnJheVVu
aWZvcm1TaGFkZXIudmVydAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3JtU2hhZGVyLnZlcnQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3Jt
U2hhZGVyLnZlcnQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAordW5pZm9ybSBpbnQgaXZh
bDsKK3VuaWZvcm0gaW50IGl2YWwyWzJdOworCit2b2lkIG1haW4oKQoreworICAgIGludCBzdW0g
PSBpdmFsCisgICAgICAgICAgICAgICAgKyBpdmFsMlswXSArIGl2YWwyWzFdOworICAgIGdsX1Bv
c2l0aW9uID0gdmVjNChzdW0sIDAuMCwgMC4wLCAxLjApOworfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFj
dGl2ZS10ZXN0LmpzCShyZXZpc2lvbiA2MDkyNykJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldEFjdGl2ZVRlc3QuanM6NjA5MjcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IG9mIGdldEFj
dGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybSIpOworCit2YXIgY29udGV4dCA9IGNyZWF0
ZTNERGVidWdDb250ZXh0KCk7Cit2YXIgY29udGV4dDIgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgp
OwordmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwordmFyIHByb2dy
YW0yID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0Mik7CisKK3Nob3VsZEJlKCJjb250ZXh0
LmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShw
cm9ncmFtLCAwKS5uYW1lIiwgIid1X21vZGVsVmlld1Byb2pNYXRyaXgnIik7CitzaG91bGRCZSgi
Y29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9B
VF9NQVQ0Iik7CitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDAp
LnNpemUiLCAiMSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAxKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRU
aHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIC0xKSIpOworc2hvdWxkQmUo
ImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3Rp
dmVVbmlmb3JtKG51bGwsIDApIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAi
KTsKKworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLm5hbWUi
LCAiJ2Ffbm9ybWFsJyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9WRUMzIik7CitzaG91bGRCZSgiY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkuc2l6ZSIsICIxIik7CitzaG91bGRCZSgiY29udGV4
dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkubmFtZSIsICInYV92ZXJ0ZXgnIik7CitzaG91
bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkudHlwZSIsICJjb250ZXh0
LkZMT0FUX1ZFQzQiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFt
LCAxKS5zaXplIiwgIjEiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihw
cm9ncmFtLCAyKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91
bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIik7CitzaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldEFj
dGl2ZUF0dHJpYihudWxsLCAwKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIw
Iik7CisKK3Nob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKK3Nob3VsZFRocm93
KCJjb250ZXh0Mi5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250
ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0Mi5nZXRBY3RpdmVV
bmlmb3JtKHByb2dyYW0sIDApIik7CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICIw
Iik7CisKK2NvbnRleHQuZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKK3Nob3VsZFRocm93KCJjb250
ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiMCIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIDApIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3NjcmlwdC10ZXN0cy9nZXQtYWN0aXZlLXRlc3QuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qcwko
cmV2aXNpb24gNjA5MjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQt
dGVzdHMvZ2V0LWFjdGl2ZS10ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICsxLDk0IEBA
CiBkZXNjcmlwdGlvbigiVGVzdCBvZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZv
cm0iKTsKIAotdmFyIGNvbnRleHQgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgpOwotdmFyIGNvbnRl
eHQyID0gY3JlYXRlM0REZWJ1Z0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250
ZXh0KCk7CitzaG91bGRCZU5vbk51bGwoImNvbnRleHQiKTsKK3ZhciBjb250ZXh0MiA9IGNyZWF0
ZTNEQ29udGV4dCgpOworc2hvdWxkQmVOb25OdWxsKCJjb250ZXh0MiIpOwogdmFyIHByb2dyYW0g
PSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwotdmFyIHByb2dyYW0yID0gbG9hZFN0YW5k
YXJkUHJvZ3JhbShjb250ZXh0Mik7CitzaG91bGRCZU5vbk51bGwoInByb2dyYW0iKTsKK3ZhciBw
cm9ncmFtMiA9IGxvYWRQcm9ncmFtKGNvbnRleHQyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlc291cmNlcy9pbnRBcnJheVVuaWZvcm1TaGFkZXIudmVydCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWciKTsKK3Nob3Vs
ZEJlTm9uTnVsbCgicHJvZ3JhbTIiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAi
Y29udGV4dC5OT19FUlJPUiIpOwogCi1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAi
KTsKIHNob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSIs
ICIndV9tb2RlbFZpZXdQcm9qTWF0cml4JyIpOwogc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZl
VW5pZm9ybShwcm9ncmFtLCAwKS50eXBlIiwgImNvbnRleHQuRkxPQVRfTUFUNCIpOwogc2hvdWxk
QmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIiwgIjEiKTsKLXNo
b3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkiKTsKLXNob3Vs
ZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0
QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAtMSkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9y
KCkiLCAiMCIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAw
KSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci0KLXNob3VsZEJlKCJj
b250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5uYW1lIiwgIidhX25vcm1hbCciKTsK
LXNob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS50eXBlIiwgImNv
bnRleHQuRkxPQVRfVkVDMyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIDApLnNpemUiLCAiMSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmli
KHByb2dyYW0sIDEpLm5hbWUiLCAiJ2FfdmVydGV4JyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0
QWN0aXZlQXR0cmliKHByb2dyYW0sIDEpLnR5cGUiLCAiY29udGV4dC5GTE9BVF9WRUM0Iik7Ci1z
aG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSIsICIxIik7
Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKLXNo
b3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotc2hvdWxkVGhyb3coImNvbnRleHQu
Z2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIC0xKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJy
b3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwg
MCkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotCi1zaG91bGRCZSgi
Y29udGV4dDIuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dDIuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDApIik7Ci1zaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIs
ICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAw
KSIpOwotc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkQmVOdWxs
KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkiKTsKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CitzaG91bGRCZU51bGwo
ImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAtMSkiKTsKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CitzaG91bGRCZU51bGwo
ImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSIpOworc2hvdWxkQmUoImNvbnRleHQu
Z2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKKworLy8gd2UgZG9uJ3Qga25v
dyB0aGUgb3JkZXIgdGhlIGF0dHJpYnMgd2lsbCBhcHBlYXIuCit2YXIgaW5mbyA9IFsKKyAgICBj
b250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSwKKyAgICBjb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCAxKQorXTsKK2ZvciAodmFyIGlpID0gMDsgaWkgPCBpbmZvLmxlbmd0
aDsgKytpaSkKKyAgICBzaG91bGRCZU5vbk51bGwoImluZm9baWldIik7CisKK3ZhciBleHBlY3Rl
ZCA9IFsKKyAgICB7IG5hbWU6ICdhX25vcm1hbCcsIHR5cGU6IGNvbnRleHQuRkxPQVRfVkVDMywg
c2l6ZTogMSB9LAorICAgIHsgbmFtZTogJ2FfdmVydGV4JywgdHlwZTogY29udGV4dC5GTE9BVF9W
RUM0LCBzaXplOiAxIH0KK107CisKK2lmIChpbmZvWzBdLm5hbWUgIT0gZXhwZWN0ZWRbMF0ubmFt
ZSkgeworICAgIHQgPSBpbmZvWzBdOworICAgIGluZm9bMF0gPSBpbmZvWzFdOworICAgIGluZm9b
MV0gPSB0OworfQorCitmb3IgKHZhciBpaSA9IDA7IGlpIDwgaW5mby5sZW5ndGg7ICsraWkpIHsK
KyAgICBzaG91bGRCZSgiaW5mb1tpaV0ubmFtZSIsICJleHBlY3RlZFtpaV0ubmFtZSIpOworICAg
IHNob3VsZEJlKCJpbmZvW2lpXS50eXBlIiwgImV4cGVjdGVkW2lpXS50eXBlIik7CisgICAgc2hv
dWxkQmUoImluZm9baWldLnNpemUiLCAiZXhwZWN0ZWRbaWldLnNpemUiKTsKK30KKworLy8gd2Ug
ZG9uJ3Qga25vdyB0aGUgb3JkZXIgdGhlIHVuaWZvcm1zIHdpbGwgYXBwZWFyLgordmFyIGluZm8y
ID0gWworICAgIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbTIsIDApLAorICAgIGNv
bnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbTIsIDEpCitdOworZm9yICh2YXIgaWkgPSAw
OyBpaSA8IGluZm8yLmxlbmd0aDsgKytpaSkKKyAgICBzaG91bGRCZU5vbk51bGwoImluZm8yW2lp
XSIpOworCit2YXIgZXhwZWN0ZWQyID0gWworICAgIHsgbmFtZTogJ2l2YWwnLCB0eXBlOiBjb250
ZXh0LklOVCwgc2l6ZTogMSB9LAorICAgIHsgbmFtZTogJ2l2YWwyWzBdJywgdHlwZTogY29udGV4
dC5JTlQsIHNpemU6IDIgfQorXTsKKworaWYgKGluZm8yWzBdLm5hbWUgIT0gZXhwZWN0ZWQyWzBd
Lm5hbWUpIHsKKyAgICB0ID0gaW5mbzJbMF07CisgICAgaW5mbzJbMF0gPSBpbmZvMlsxXTsKKyAg
ICBpbmZvMlsxXSA9IHQ7Cit9CisKK2ZvciAodmFyIGlpID0gMDsgaWkgPCBpbmZvLmxlbmd0aDsg
KytpaSkgeworICAgIHNob3VsZEJlKCJpbmZvMltpaV0ubmFtZSIsICJleHBlY3RlZDJbaWldLm5h
bWUiKTsKKyAgICBzaG91bGRCZSgiaW5mbzJbaWldLnR5cGUiLCAiZXhwZWN0ZWQyW2lpXS50eXBl
Iik7CisgICAgc2hvdWxkQmUoImluZm8yW2lpXS5zaXplIiwgImV4cGVjdGVkMltpaV0uc2l6ZSIp
OworfQorCitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDIp
Iik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxV
RSIpOworc2hvdWxkQmVOdWxsKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAtMSki
KTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVF
Iik7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDApIik7Citz
aG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwor
CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICJjb250ZXh0Lk5PX0VSUk9SIik7Citz
aG91bGRCZU51bGwoImNvbnRleHQyLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSIpOworc2hv
dWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiY29udGV4dDIuSU5WQUxJRF9PUEVSQVRJT04i
KTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIp
Oworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiY29udGV4dDIuSU5WQUxJRF9PUEVS
QVRJT04iKTsKIAogY29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOwotc2hvdWxkVGhyb3co
ImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOwotc2hvdWxkQmUoImNvbnRl
eHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwor
c2hvdWxkQmVOdWxsKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkiKTsKK3No
b3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7Citz
aG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIik7CitzaG91
bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOwogCi1z
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcwkocmV2
aXNpb24gNjA5MjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvZ2V0QWN0aXZlVGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi1kZXNj
cmlwdGlvbigiVGVzdCBvZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZvcm0iKTsK
LQotdmFyIGNvbnRleHQgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgpOwotdmFyIGNvbnRleHQyID0g
Y3JlYXRlM0REZWJ1Z0NvbnRleHQoKTsKLXZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3Jh
bShjb250ZXh0KTsKLXZhciBwcm9ncmFtMiA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dDIp
OwotCi1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLXNob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSIsICIndV9tb2RlbFZpZXdQcm9q
TWF0cml4JyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAw
KS50eXBlIiwgImNvbnRleHQuRkxPQVRfTUFUNCIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0
aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIiwgIjEiKTsKLXNob3VsZFRocm93KCJjb250ZXh0
LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVy
cm9yKCkiLCAiMCIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAtMSkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotc2hvdWxk
VGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSIpOwotc2hvdWxkQmUoImNv
bnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci0KLXNob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0
dHJpYihwcm9ncmFtLCAwKS5uYW1lIiwgIidhX25vcm1hbCciKTsKLXNob3VsZEJlKCJjb250ZXh0
LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS50eXBlIiwgImNvbnRleHQuRkxPQVRfVkVDMyIp
Owotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnNpemUiLCAi
MSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDEpLm5hbWUi
LCAiJ2FfdmVydGV4JyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDEpLnR5cGUiLCAiY29udGV4dC5GTE9BVF9WRUM0Iik7Ci1zaG91bGRCZSgiY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSIsICIxIik7Ci1zaG91bGRUaHJvdygiY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKLXNob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiMCIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIC0xKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91
bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkiKTsKLXNob3VsZEJlKCJj
b250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotCi1zaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3Io
KSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0s
IDApIik7Ci1zaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJv
dygiY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOwotc2hvdWxkQmUoImNv
bnRleHQyLmdldEVycm9yKCkiLCAiMCIpOwotCi1jb250ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3Jh
bSk7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIik7
Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0
RXJyb3IoKSIsICIwIik7Ci0KLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58429</attachid>
            <date>2010-06-10 18:04:48 -0700</date>
            <delta_ts>2010-06-11 08:17:07 -0700</delta_ts>
            <desc>revised patch: responding to kbr&apos;s review</desc>
            <filename>uniform.patch</filename>
            <type>text/plain</type>
            <size>23763</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDk3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDYtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRBY3Rp
dmVVbmlmb3JtIG11c3QgZW5zdXJlIG5hbWVzIG9mIGFycmF5cyBlbmQgaW4gIlswXSIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzA5CisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwKKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZUF0dHJpYik6IEFwcGVuZCAiWzBd
IiB0byB0aGUgbmFtZSBpZiBuZWVkZWQuCisKIDIwMTAtMDYtMTAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCkluZGV4
OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiA2MDkyNykKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcwLDYgKzk3MCwxMCBAQCBQYXNzUmVmUHRyPFdlYkdM
QWN0aXZlSW5mbz4gV2ViR0xSZW5kZXJpCiAgICAgaWYgKCFtX2NvbnRleHQtPmdldEFjdGl2ZVVu
aWZvcm0ocHJvZ3JhbSwgaW5kZXgsIGluZm8pKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
KyAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkgeworICAgICAgICBpZiAoaW5mby5zaXplID4g
MSAmJiAhaW5mby5uYW1lLmVuZHNXaXRoKCJbMF0iKSkKKyAgICAgICAgICAgIGluZm8ubmFtZS5h
cHBlbmQoIlswXSIpOworICAgIH0KICAgICByZXR1cm4gV2ViR0xBY3RpdmVJbmZvOjpjcmVhdGUo
aW5mby5uYW1lLCBpbmZvLnR5cGUsIGluZm8uc2l6ZSk7CiB9CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDYwOTc1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTAtMDYtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRBY3RpdmVVbmlm
b3JtIG11c3QgZW5zdXJlIG5hbWVzIG9mIGFycmF5cyBlbmQgaW4gIlswXSIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NzA5CisKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0LWV4cGVjdGVkLnR4
dCwgbW9kaWZpZWQgdG8gdGVzdCBhcnJheSBuYW1lcy4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93
ZWJnbC9nZXQtYWN0aXZlLXRlc3QuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC5odG1sLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL2dldEFjdGl2ZVRlc3QtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3JtU2hhZGVyLnZlcnQ6IEFkZGVk
LCB3aXRoIGFycmF5IHVuaWZvcm0uCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0
LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldEFjdGl2ZVRlc3QuanMsIG1vZGlmaWVkIHRvIHRl
c3QgYXJyYXkgbmFtZXMuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3Rz
L2dldEFjdGl2ZVRlc3QuanM6IFJlbW92ZWQuCisKIDIwMTAtMDYtMTAgIFJvYmVydCBIb2dhbiAg
PHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFj
dGl2ZS10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2MDkyNykJ
KGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC1leHBlY3Rl
ZC50eHQ6NjA5MjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXQtYWN0aXZl
LXRlc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKK1Rlc3Qg
b2YgZ2V0QWN0aXZlQXR0cmliIGFuZCBnZXRBY3RpdmVVbmlmb3JtCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0
LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSBpcyAndV9tb2RlbFZpZXdQcm9qTWF0
cml4JworUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkudHlwZSBpcyBj
b250ZXh0LkZMT0FUX01BVDQKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0s
IDApLnNpemUgaXMgMQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkg
dGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KK1BBU1Mg
Y29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHBy
b2dyYW0sIC0xKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlm
b3JtLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0LmdldEFjdGl2
ZVVuaWZvcm0obnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0
aXZlVW5pZm9ybS4KK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkubmFtZSBpcyAnYV9ub3JtYWwnCitQQVNTIGNvbnRl
eHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnR5cGUgaXMgY29udGV4dC5GTE9BVF9WRUMz
CitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnNpemUgaXMgMQorUEFT
UyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5uYW1lIGlzICdhX3ZlcnRleCcK
K1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkudHlwZSBpcyBjb250ZXh0
LkZMT0FUX1ZFQzQKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6
ZSBpcyAxCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDIpIHRocmV3IGV4
Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KK1BBU1MgY29udGV4dC5n
ZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEp
IHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KK1BBU1Mg
Y29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVs
bCwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlQXR0cmliLgor
UEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlz
IDAKK1BBU1MgY29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2Vw
dGlvbiBHTCBlcnJvciAxMjgyIGluIGdldEFjdGl2ZUF0dHJpYi4KK1BBU1MgY29udGV4dDIuZ2V0
RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkg
dGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KK1BBU1Mg
Y29udGV4dDIuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShw
cm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlm
b3JtLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRB
Y3RpdmVBdHRyaWIuCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXQtYWN0aXZlLXRlc3QtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA2MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dldC1hY3RpdmUtdGVzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMzcgKzIs
NTEgQEAgVGVzdCBvZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaQogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCiAKLVBBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1Mg
Y29udGV4dCBpcyBub24tbnVsbC4KK1BBU1MgY29udGV4dDIgaXMgbm9uLW51bGwuCitQQVNTIHBy
b2dyYW0gaXMgbm9uLW51bGwuCitQQVNTIHByb2dyYW0yIGlzIG5vbi1udWxsLgorUEFTUyBjb250
ZXh0LmdldEVycm9yKCkgaXMgY29udGV4dC5OT19FUlJPUgogUEFTUyBjb250ZXh0LmdldEFjdGl2
ZVVuaWZvcm0ocHJvZ3JhbSwgMCkubmFtZSBpcyAndV9tb2RlbFZpZXdQcm9qTWF0cml4JwogUEFT
UyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkudHlwZSBpcyBjb250ZXh0LkZM
T0FUX01BVDQKIFBBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNpemUg
aXMgMQotUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkgdGhyZXcgZXhj
ZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KLVBBU1MgY29udGV4dC5n
ZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIC0x
KSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFT
UyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0o
bnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlVW5pZm9y
bS4KLVBBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVB
dHRyaWIocHJvZ3JhbSwgMCkubmFtZSBpcyAnYV9ub3JtYWwnCi1QQVNTIGNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDApLnR5cGUgaXMgY29udGV4dC5GTE9BVF9WRUMzCi1QQVNTIGNv
bnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnNpemUgaXMgMQotUEFTUyBjb250ZXh0
LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5uYW1lIGlzICdhX3ZlcnRleCcKLVBBU1MgY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkudHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZF
QzQKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSBpcyAxCi1Q
QVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDIpIHRocmV3IGV4Y2VwdGlvbiBH
TCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5nZXRFcnJvcigp
IGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIHRocmV3IGV4
Y2VwdGlvbiBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5n
ZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkgdGhy
ZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlQXR0cmliLgotUEFTUyBjb250
ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1Mg
Y29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBl
cnJvciAxMjgyIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBp
cyAwCi1QQVNTIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KLVBBU1MgY29udGV4dDIu
Z2V0RXJyb3IoKSBpcyAwCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAw
KSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFT
UyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihw
cm9ncmFtLCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVBdHRy
aWIuCi1QQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZl
VW5pZm9ybShwcm9ncmFtLCAxKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBj
b250ZXh0LklOVkFMSURfVkFMVUUKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIC0xKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250ZXh0LklOVkFM
SURfVkFMVUUKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51bGwsIDApIGlzIG51bGwK
K1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQorUEFTUyBp
bmZvW2lpXSBpcyBub24tbnVsbC4KK1BBU1MgaW5mb1tpaV0gaXMgbm9uLW51bGwuCitQQVNTIGlu
Zm9baWldLm5hbWUgaXMgZXhwZWN0ZWRbaWldLm5hbWUKK1BBU1MgaW5mb1tpaV0udHlwZSBpcyBl
eHBlY3RlZFtpaV0udHlwZQorUEFTUyBpbmZvW2lpXS5zaXplIGlzIGV4cGVjdGVkW2lpXS5zaXpl
CitQQVNTIGluZm9baWldLm5hbWUgaXMgZXhwZWN0ZWRbaWldLm5hbWUKK1BBU1MgaW5mb1tpaV0u
dHlwZSBpcyBleHBlY3RlZFtpaV0udHlwZQorUEFTUyBpbmZvW2lpXS5zaXplIGlzIGV4cGVjdGVk
W2lpXS5zaXplCitQQVNTIGluZm8yW2lpXSBpcyBub24tbnVsbC4KK1BBU1MgaW5mbzJbaWldIGlz
IG5vbi1udWxsLgorUEFTUyBpbmZvMltpaV0ubmFtZSBpcyBleHBlY3RlZDJbaWldLm5hbWUKK1BB
U1MgaW5mbzJbaWldLnR5cGUgaXMgZXhwZWN0ZWQyW2lpXS50eXBlCitQQVNTIGluZm8yW2lpXS5z
aXplIGlzIGV4cGVjdGVkMltpaV0uc2l6ZQorUEFTUyBpbmZvMltpaV0ubmFtZSBpcyBleHBlY3Rl
ZDJbaWldLm5hbWUKK1BBU1MgaW5mbzJbaWldLnR5cGUgaXMgZXhwZWN0ZWQyW2lpXS50eXBlCitQ
QVNTIGluZm8yW2lpXS5zaXplIGlzIGV4cGVjdGVkMltpaV0uc2l6ZQorUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAyKSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0RXJyb3Io
KSBpcyBjb250ZXh0LklOVkFMSURfVkFMVUUKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgLTEpIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQu
SU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihudWxsLCAwKSBpcyBu
dWxsCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250ZXh0LklOVkFMSURfVkFMVUUKK1BB
U1MgY29udGV4dDIuZ2V0RXJyb3IoKSBpcyBjb250ZXh0Lk5PX0VSUk9SCitQQVNTIGNvbnRleHQy
LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSBpcyBudWxsCitQQVNTIGNvbnRleHQyLmdldEVy
cm9yKCkgaXMgY29udGV4dDIuSU5WQUxJRF9PUEVSQVRJT04KK1BBU1MgY29udGV4dDIuZ2V0QWN0
aXZlVW5pZm9ybShwcm9ncmFtLCAwKSBpcyBudWxsCitQQVNTIGNvbnRleHQyLmdldEVycm9yKCkg
aXMgY29udGV4dDIuSU5WQUxJRF9PUEVSQVRJT04KK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlm
b3JtKHByb2dyYW0sIDApIGlzIG51bGwKK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRl
eHQuSU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAw
KSBpcyBudWxsCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250ZXh0LklOVkFMSURfVkFM
VUUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0
Lmh0bWwJKHJldmlzaW9uIDYwOTI3KQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9nZXRBY3RpdmVUZXN0Lmh0bWw6NjA5MjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9nZXQtYWN0aXZlLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBA
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVz
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1h
Y3RpdmUtdGVzdC5odG1sCShyZXZpc2lvbiA2MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgs
NyBAQAogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiAKLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qcyI+PC9zY3Jp
cHQ+CiAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dl
dEFjdGl2ZVRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2MDkyNykK
KysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLVRlc3Qgb2YgZ2V0QWN0aXZlQXR0
cmliIGFuZCBnZXRBY3RpdmVVbmlmb3JtCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
UEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZv
cm0ocHJvZ3JhbSwgMCkubmFtZSBpcyAndV9tb2RlbFZpZXdQcm9qTWF0cml4JwotUEFTUyBjb250
ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkudHlwZSBpcyBjb250ZXh0LkZMT0FUX01B
VDQKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNpemUgaXMgMQot
UEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMSkgdGhyZXcgZXhjZXB0aW9u
IEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KLVBBU1MgY29udGV4dC5nZXRFcnJv
cigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIC0xKSB0aHJl
dyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250
ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0obnVsbCwg
MCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KLVBB
U1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgMCkubmFtZSBpcyAnYV9ub3JtYWwnCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0
cmliKHByb2dyYW0sIDApLnR5cGUgaXMgY29udGV4dC5GTE9BVF9WRUMzCi1QQVNTIGNvbnRleHQu
Z2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnNpemUgaXMgMQotUEFTUyBjb250ZXh0LmdldEFj
dGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5uYW1lIGlzICdhX3ZlcnRleCcKLVBBU1MgY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkudHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZFQzQKLVBB
U1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSBpcyAxCi1QQVNTIGNv
bnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDIpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJv
ciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAK
LVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2VwdGlv
biBHTCBlcnJvciAxMjgxIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dC5nZXRFcnJv
cigpIGlzIDAKLVBBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEdMIGVycm9yIDEyODEgaW4gZ2V0QWN0aXZlQXR0cmliLgotUEFTUyBjb250ZXh0Lmdl
dEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKLVBBU1MgY29udGV4
dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAx
MjgyIGluIGdldEFjdGl2ZUF0dHJpYi4KLVBBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBpcyAwCi1Q
QVNTIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9u
IEdMIGVycm9yIDEyODIgaW4gZ2V0QWN0aXZlVW5pZm9ybS4KLVBBU1MgY29udGV4dDIuZ2V0RXJy
b3IoKSBpcyAwCi1QQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSB0aHJl
dyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVVbmlmb3JtLgotUEFTUyBjb250
ZXh0LmdldEVycm9yKCkgaXMgMAotUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFt
LCAwKSB0aHJldyBleGNlcHRpb24gR0wgZXJyb3IgMTI4MSBpbiBnZXRBY3RpdmVBdHRyaWIuCi1Q
QVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyAwCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZ2V0QWN0aXZlVGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbAkocmV2aXNpb24gNjA5MjcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldEFjdGl2ZVRlc3QuanMiPjwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3JtU2hhZGVyLnZlcnQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL2ludEFycmF5VW5pZm9ybVNoYWRl
ci52ZXJ0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVz
b3VyY2VzL2ludEFycmF5VW5pZm9ybVNoYWRlci52ZXJ0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDggQEAKK3VuaWZvcm0gaW50IGl2YWw7Cit1bmlmb3JtIGludCBpdmFsMlsyXTsKKwordm9pZCBt
YWluKCkKK3sKKyAgICBpbnQgc3VtID0gaXZhbCArIGl2YWwyWzBdICsgaXZhbDJbMV07CisgICAg
Z2xfUG9zaXRpb24gPSB2ZWM0KHN1bSwgMC4wLCAwLjAsIDEuMCk7Cit9CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9n
ZXQtYWN0aXZlLXRlc3QuanMJKHJldmlzaW9uIDYwOTI3KQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qczo2MDkyNykKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXQtYWN0aXZlLXRlc3Qu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorZGVzY3JpcHRpb24oIlRlc3Qgb2Yg
Z2V0QWN0aXZlQXR0cmliIGFuZCBnZXRBY3RpdmVVbmlmb3JtIik7CisKK3ZhciBjb250ZXh0ID0g
Y3JlYXRlM0REZWJ1Z0NvbnRleHQoKTsKK3ZhciBjb250ZXh0MiA9IGNyZWF0ZTNERGVidWdDb250
ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Cit2YXIg
cHJvZ3JhbTIgPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQyKTsKKworc2hvdWxkQmUoImNv
bnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlm
b3JtKHByb2dyYW0sIDApLm5hbWUiLCAiJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCciKTsKK3Nob3Vs
ZEJlKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkudHlwZSIsICJjb250ZXh0
LkZMT0FUX01BVDQiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3Jh
bSwgMCkuc2l6ZSIsICIxIik7CitzaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3Jt
KHByb2dyYW0sIDEpIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKK3No
b3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIik7CitzaG91
bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0Lmdl
dEFjdGl2ZVVuaWZvcm0obnVsbCwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCki
LCAiMCIpOworCitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCku
bmFtZSIsICInYV9ub3JtYWwnIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgMCkudHlwZSIsICJjb250ZXh0LkZMT0FUX1ZFQzMiKTsKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5zaXplIiwgIjEiKTsKK3Nob3VsZEJlKCJj
b250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5uYW1lIiwgIidhX3ZlcnRleCciKTsK
K3Nob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS50eXBlIiwgImNv
bnRleHQuRkxPQVRfVkVDNCIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIDEpLnNpemUiLCAiMSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlQXR0
cmliKHByb2dyYW0sIDIpIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsK
K3Nob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAtMSkiKTsKK3No
b3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkVGhyb3coImNvbnRleHQu
Z2V0QWN0aXZlQXR0cmliKG51bGwsIDApIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigp
IiwgIjAiKTsKKworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxk
VGhyb3coImNvbnRleHQyLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKSIpOworc2hvdWxkQmUo
ImNvbnRleHQyLmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkVGhyb3coImNvbnRleHQyLmdldEFj
dGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigp
IiwgIjAiKTsKKworY29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworc2hvdWxkVGhyb3co
ImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOworc2hvdWxkQmUoImNvbnRl
eHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwor
CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2dldC1hY3RpdmUtdGVzdC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0LWFjdGl2ZS10ZXN0
LmpzCShyZXZpc2lvbiA2MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Nj
cmlwdC10ZXN0cy9nZXQtYWN0aXZlLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzEs
OTQgQEAKIGRlc2NyaXB0aW9uKCJUZXN0IG9mIGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZl
VW5pZm9ybSIpOwogCi12YXIgY29udGV4dCA9IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Ci12YXIg
Y29udGV4dDIgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgpOwordmFyIGNvbnRleHQgPSBjcmVhdGUz
RENvbnRleHQoKTsKK3Nob3VsZEJlTm9uTnVsbCgiY29udGV4dCIpOwordmFyIGNvbnRleHQyID0g
Y3JlYXRlM0RDb250ZXh0KCk7CitzaG91bGRCZU5vbk51bGwoImNvbnRleHQyIik7CiB2YXIgcHJv
Z3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oY29udGV4dCk7Ci12YXIgcHJvZ3JhbTIgPSBsb2Fk
U3RhbmRhcmRQcm9ncmFtKGNvbnRleHQyKTsKK3Nob3VsZEJlTm9uTnVsbCgicHJvZ3JhbSIpOwor
dmFyIHByb2dyYW0yID0gbG9hZFByb2dyYW0oY29udGV4dDIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVzb3VyY2VzL2ludEFycmF5VW5pZm9ybVNoYWRlci52ZXJ0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZyIpOwor
c2hvdWxkQmVOb25OdWxsKCJwcm9ncmFtMiIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3Io
KSIsICJjb250ZXh0Lk5PX0VSUk9SIik7CiAKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCki
LCAiMCIpOwogc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5u
YW1lIiwgIid1X21vZGVsVmlld1Byb2pNYXRyaXgnIik7CiBzaG91bGRCZSgiY29udGV4dC5nZXRB
Y3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9NQVQ0Iik7CiBz
aG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNpemUiLCAiMSIp
Owotc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAxKSIpOwot
c2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4
dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIC0xKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0
RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51
bGwsIDApIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLQotc2hvdWxk
QmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLm5hbWUiLCAiJ2Ffbm9ybWFs
JyIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnR5cGUi
LCAiY29udGV4dC5GTE9BVF9WRUMzIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkuc2l6ZSIsICIxIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVB
dHRyaWIocHJvZ3JhbSwgMSkubmFtZSIsICInYV92ZXJ0ZXgnIik7Ci1zaG91bGRCZSgiY29udGV4
dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkudHlwZSIsICJjb250ZXh0LkZMT0FUX1ZFQzQi
KTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIiwg
IjEiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAyKSIp
Owotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIik7Ci1zaG91bGRCZSgiY29udGV4dC5n
ZXRFcnJvcigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihu
dWxsLCAwKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci0KLXNob3Vs
ZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250ZXh0Mi5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkiKTsKLXNob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJv
cigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIDApIik7Ci1zaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRC
ZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAxKSIpOworc2hvdWxkQmUo
ImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKK3Nob3VsZEJl
TnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIC0xKSIpOworc2hvdWxkQmUo
ImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUiKTsKK3Nob3VsZEJl
TnVsbCgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51bGwsIDApIik7CitzaG91bGRCZSgiY29u
dGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOworCisvLyB3ZSBkb24n
dCBrbm93IHRoZSBvcmRlciB0aGUgYXR0cmlicyB3aWxsIGFwcGVhci4KK3ZhciBpbmZvID0gWwor
ICAgIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLAorICAgIGNvbnRleHQuZ2V0
QWN0aXZlQXR0cmliKHByb2dyYW0sIDEpCitdOworZm9yICh2YXIgaWkgPSAwOyBpaSA8IGluZm8u
bGVuZ3RoOyArK2lpKQorICAgIHNob3VsZEJlTm9uTnVsbCgiaW5mb1tpaV0iKTsKKwordmFyIGV4
cGVjdGVkID0gWworICAgIHsgbmFtZTogJ2Ffbm9ybWFsJywgdHlwZTogY29udGV4dC5GTE9BVF9W
RUMzLCBzaXplOiAxIH0sCisgICAgeyBuYW1lOiAnYV92ZXJ0ZXgnLCB0eXBlOiBjb250ZXh0LkZM
T0FUX1ZFQzQsIHNpemU6IDEgfQorXTsKKworaWYgKGluZm9bMF0ubmFtZSAhPSBleHBlY3RlZFsw
XS5uYW1lKSB7CisgICAgdCA9IGluZm9bMF07CisgICAgaW5mb1swXSA9IGluZm9bMV07CisgICAg
aW5mb1sxXSA9IHQ7Cit9CisKK2ZvciAodmFyIGlpID0gMDsgaWkgPCBpbmZvLmxlbmd0aDsgKytp
aSkgeworICAgIHNob3VsZEJlKCJpbmZvW2lpXS5uYW1lIiwgImV4cGVjdGVkW2lpXS5uYW1lIik7
CisgICAgc2hvdWxkQmUoImluZm9baWldLnR5cGUiLCAiZXhwZWN0ZWRbaWldLnR5cGUiKTsKKyAg
ICBzaG91bGRCZSgiaW5mb1tpaV0uc2l6ZSIsICJleHBlY3RlZFtpaV0uc2l6ZSIpOworfQorCisv
LyB3ZSBkb24ndCBrbm93IHRoZSBvcmRlciB0aGUgdW5pZm9ybXMgd2lsbCBhcHBlYXIuCit2YXIg
aW5mbzIgPSBbCisgICAgY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtMiwgMCksCisg
ICAgY29udGV4dDIuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtMiwgMSkKK107Citmb3IgKHZhciBp
aSA9IDA7IGlpIDwgaW5mbzIubGVuZ3RoOyArK2lpKQorICAgIHNob3VsZEJlTm9uTnVsbCgiaW5m
bzJbaWldIik7CisKK3ZhciBleHBlY3RlZDIgPSBbCisgICAgeyBuYW1lOiAnaXZhbCcsIHR5cGU6
IGNvbnRleHQuSU5ULCBzaXplOiAxIH0sCisgICAgeyBuYW1lOiAnaXZhbDJbMF0nLCB0eXBlOiBj
b250ZXh0LklOVCwgc2l6ZTogMiB9CitdOworCitpZiAoaW5mbzJbMF0ubmFtZSAhPSBleHBlY3Rl
ZDJbMF0ubmFtZSkgeworICAgIHQgPSBpbmZvMlswXTsKKyAgICBpbmZvMlswXSA9IGluZm8yWzFd
OworICAgIGluZm8yWzFdID0gdDsKK30KKworZm9yICh2YXIgaWkgPSAwOyBpaSA8IGluZm8ubGVu
Z3RoOyArK2lpKSB7CisgICAgc2hvdWxkQmUoImluZm8yW2lpXS5uYW1lIiwgImV4cGVjdGVkMltp
aV0ubmFtZSIpOworICAgIHNob3VsZEJlKCJpbmZvMltpaV0udHlwZSIsICJleHBlY3RlZDJbaWld
LnR5cGUiKTsKKyAgICBzaG91bGRCZSgiaW5mbzJbaWldLnNpemUiLCAiZXhwZWN0ZWQyW2lpXS5z
aXplIik7Cit9CisKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3Jh
bSwgMikiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElE
X1ZBTFVFIik7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0s
IC0xKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURf
VkFMVUUiKTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCki
KTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVF
Iik7CisKK3Nob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgImNvbnRleHQuTk9fRVJST1Ii
KTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIik7
CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICJjb250ZXh0Mi5JTlZBTElEX09QRVJB
VElPTiIpOworc2hvdWxkQmVOdWxsKCJjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0s
IDApIik7CitzaG91bGRCZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICJjb250ZXh0Mi5JTlZBTElE
X09QRVJBVElPTiIpOwogCiBjb250ZXh0LmRlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7Ci1zaG91bGRU
aHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIik7Ci1zaG91bGRCZSgi
Y29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCAwKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIw
Iik7CitzaG91bGRCZU51bGwoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIp
Oworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURfVkFMVUUi
KTsKK3Nob3VsZEJlTnVsbCgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkiKTsK
K3Nob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7
CiAKLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXRBY3RpdmVUZXN0LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXRBY3RpdmVUZXN0Lmpz
CShyZXZpc2lvbiA2MDkyNykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Njcmlw
dC10ZXN0cy9nZXRBY3RpdmVUZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAK
LWRlc2NyaXB0aW9uKCJUZXN0IG9mIGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9y
bSIpOwotCi12YXIgY29udGV4dCA9IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Ci12YXIgY29udGV4
dDIgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgpOwotdmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQ
cm9ncmFtKGNvbnRleHQpOwotdmFyIHByb2dyYW0yID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250
ZXh0Mik7Ci0KLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotc2hvdWxkQmUo
ImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5uYW1lIiwgIid1X21vZGVsVmll
d1Byb2pNYXRyaXgnIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9NQVQ0Iik7Ci1zaG91bGRCZSgiY29udGV4dC5n
ZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNpemUiLCAiMSIpOwotc2hvdWxkVGhyb3coImNv
bnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAxKSIpOwotc2hvdWxkQmUoImNvbnRleHQu
Z2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3Jt
KHByb2dyYW0sIC0xKSIpOwotc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1z
aG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKG51bGwsIDApIik7Ci1zaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKLQotc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDApLm5hbWUiLCAiJ2Ffbm9ybWFsJyIpOwotc2hvdWxkQmUoImNv
bnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9W
RUMzIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkuc2l6
ZSIsICIxIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSku
bmFtZSIsICInYV92ZXJ0ZXgnIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIo
cHJvZ3JhbSwgMSkudHlwZSIsICJjb250ZXh0LkZMT0FUX1ZFQzQiKTsKLXNob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIiwgIjEiKTsKLXNob3VsZFRocm93
KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAyKSIpOwotc2hvdWxkQmUoImNvbnRl
eHQuZ2V0RXJyb3IoKSIsICIwIik7Ci1zaG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgLTEpIik7Ci1zaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgIjAiKTsK
LXNob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihudWxsLCAwKSIpOwotc2hvdWxk
QmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7Ci0KLXNob3VsZEJlKCJjb250ZXh0Mi5nZXRF
cnJvcigpIiwgIjAiKTsKLXNob3VsZFRocm93KCJjb250ZXh0Mi5nZXRBY3RpdmVBdHRyaWIocHJv
Z3JhbSwgMCkiKTsKLXNob3VsZEJlKCJjb250ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKLXNob3Vs
ZFRocm93KCJjb250ZXh0Mi5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApIik7Ci1zaG91bGRC
ZSgiY29udGV4dDIuZ2V0RXJyb3IoKSIsICIwIik7Ci0KLWNvbnRleHQuZGVsZXRlUHJvZ3JhbShw
cm9ncmFtKTsKLXNob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwg
MCkiKTsKLXNob3VsZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiMCIpOwotc2hvdWxkVGhyb3co
ImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIik7Ci1zaG91bGRCZSgiY29udGV4
dC5nZXRFcnJvcigpIiwgIjAiKTsKLQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>