<?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>17736</bug_id>
          
          <creation_ts>2008-03-09 19:19:31 -0700</creation_ts>
          <short_desc>JS (SVG) POD Type bindings bug</short_desc>
          <delta_ts>2008-08-11 19:23:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73159</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-03-09 19:19:31 -0700</bug_when>
    <thetext>As the summary says I found a pretty harsh JS POD type bindings bug, while writing tests for SVGLinearGradientElement &amp; updating of the gradientTransform attribute.

Try in trunk:
var transform = mySVGSVGElement.createSVGTransform();
alert(transform.matrix.a); returns &apos;1.0&apos; as expected
transform.matrix.a = 2;
alert(transform.matrix.a); returns &apos;1.0&apos; :(

Another way to trigger the bug without having to create a new SVGTransform object:
myLinearGradientElement.gradientTransform.baseVal.getItem(0).matrix.a = 2;
alert(myLinearGradientElement.gradientTransform.baseVal.getItem(0).matrix.a); returns &apos;1.0&apos;

The problem is that we forgot to handle the case where a JSSVGPODTypeWrapper is able to create JSSVGPODTypeWrappers itself. In our case &apos;SVGTransform&apos; contains &apos;readonly attribute SVGMatrix matrix;&quot;. As SVGTransform &amp; SVGMatrix are both POD types our updating logic fails. It only works for SVG elements containing POD types (ie. a SVGRectElement contains a SVG(Animated)Length POD type =&gt; when modifying the POD Type the SVGRectElement gets updated correctly.)

Not yet sure about possible solutions, still investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73372</commentid>
    <comment_count>1</comment_count>
      <attachid>19676</attachid>
    <who name="Jonathan Haas">myrdred</who>
    <bug_when>2008-03-11 13:08:38 -0700</bug_when>
    <thetext>Created attachment 19676
Layout test demonstrating this bug

Repro code from the bug repackaged as a layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73645</commentid>
    <comment_count>2</comment_count>
      <attachid>19746</attachid>
    <who name="Jonathan Haas">myrdred</who>
    <bug_when>2008-03-13 16:18:12 -0700</bug_when>
    <thetext>Created attachment 19746
Layout test for this bug

eseidel introduced me to the wonders of the JavaScript layout test framework, so I reworked this test to use it. Added expected results, too, and formatted as a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87730</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-08-03 12:27:28 -0700</bug_when>
    <thetext>Eek, fixed this bug a while ago. Forgot to submit the actual patch. Going to attach it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87731</commentid>
    <comment_count>4</comment_count>
      <attachid>22626</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-08-03 12:53:22 -0700</bug_when>
    <thetext>Created attachment 22626
Initial patch

Fixes all problem with POD types containing POD types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88257</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-08-11 17:54:15 -0700</bug_when>
    <thetext>I think antti should review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88265</commentid>
    <comment_count>6</comment_count>
      <attachid>22626</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2008-08-11 18:40:17 -0700</bug_when>
    <thetext>Comment on attachment 22626
Initial patch

Please add a test for the Immutable marker, otherwise r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88270</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-08-11 19:23:43 -0700</bug_when>
    <thetext>Landed in r35674, with a new test &apos;immutable-properties&apos; which tests all cases of the new &apos;Immutable&apos; IDL flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>19676</attachid>
            <date>2008-03-11 13:08:38 -0700</date>
            <delta_ts>2008-03-13 16:17:40 -0700</delta_ts>
            <desc>Layout test demonstrating this bug</desc>
            <filename>tearoffs-with-tearoffs.svg</filename>
            <type>image/svg+xml</type>
            <size>1157</size>
            <attacher name="Jonathan Haas">myrdred</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuc3ZnIC0tPgo8c3ZnIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8dGV4dCB4PSI1MCIgeT0iNTAiPlRlc3Rpbmcg
d2hldGhlciBhIHRlYXJvZmYgdmFsdWUgd2l0aGluIGFub3RoZXIgdGVhcm9mZiB2YWx1ZSBzdWNj
ZXNzZnVsbHkgdXBkYXRlcy48L3RleHQ+CiAgICA8dGV4dCB4PSI1MCIgeT0iODAiIGZvbnQtZmFt
aWx5PSJtb25vc3BhY2UiPnZhciB0cmFuc2Zvcm0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
Y3JlYXRlU1ZHVHJhbnNmb3JtKCk8L3RleHQ+CiAgICA8dGV4dCB4PSI2MCIgeT0iMTEwIiBmaWxs
PSJyZWQiIGlkPSJpbml0aWFsX2EiPkN1cnJlbnQgdmFsdWUgb2YgdHJhbnNmb3JtLm1hdHJpeC5h
ID0gVEVTVCBGQUlMRUQ8L3RleHQ+CiAgICA8dGV4dCB4PSI1MCIgeT0iMTQwIiBmb250LWZhbWls
eT0ibW9ub3NwYWNlIj50cmFuc2Zvcm0ubWF0cml4LmEgPSAyPC90ZXh0PgogICAgPHRleHQgeD0i
NjAiIHk9IjE3MCIgZmlsbD0icmVkIiBpZD0iY2hhbmdlZF9hIj5DdXJyZW50IHZhbHVlIG9mIHRy
YW5zZm9ybS5tYXRyaXguYSA9IFRFU1QgRkFJTEVEPC90ZXh0PiIKICAgIDx0ZXh0IHg9IjUwIiB5
PSIyMzAiPlRoZSB2YWx1ZSBvZiB0cmFuc2Zvcm0ubWF0cml4LmEgc2hvdWxkIGJlIDEgYmVmb3Jl
IHRoZSBhc3NpZ25tZW50LCAyIGFmdGVyd2FyZC48L3RleHQ+CgogIDxzY3JpcHQ+CiAgICB2YXIg
dHJhbnNmb3JtID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgp
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImluaXRpYWxfYSIpLmZpcnN0Q2hpbGQuZGF0
YSA9ICdDdXJyZW50IHZhbHVlIG9mIHRyYW5zZm9ybS5tYXRyaXguYSA9ICcgKyB0cmFuc2Zvcm0u
bWF0cml4LmE7CiAgICB0cmFuc2Zvcm0ubWF0cml4LmEgPSAyOwogICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNoYW5nZWRfYSIpLmZpcnN0Q2hpbGQuZGF0YSA9ICdDdXJyZW50IHZhbHVlIG9m
IHRyYW5zZm9ybS5tYXRyaXguYSA9ICcgKyB0cmFuc2Zvcm0ubWF0cml4LmE7CiAgPC9zY3JpcHQ+
Cjwvc3ZnPgoKICAKICAKICA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19746</attachid>
            <date>2008-03-13 16:18:12 -0700</date>
            <delta_ts>2008-08-03 12:53:22 -0700</delta_ts>
            <desc>Layout test for this bug</desc>
            <filename>tearoffs-with-tearoffs.patch</filename>
            <type>text/plain</type>
            <size>2738</size>
            <attacher name="Jonathan Haas">myrdred</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzOnRlYXJvZmZzLXdpdGgtdGVh
cm9mZnMuanMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNl
czp0ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLmpzCShyZXZpc2lvbiAwKQ0KKysrIExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vcmVzb3VyY2VzOnRlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMJKHJldmlzaW9u
IDApDQpAQCAtMCwwICsxLDEwIEBADQorZGVzY3JpcHRpb24oIlRlc3RzIHdoZXRoZXIgU1ZHIHRl
YXJvZmYgb2JqZWN0cyB3aXRoIHRlYXJvZmZzIHVwZGF0ZSBwcm9wZXJseS4iKTsNCisNCit2YXIg
c3ZnRG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiwgInN2ZyIsIG51bGwpOw0KK3ZhciB0cmFuc2Zvcm0gPSBzdmdE
b2MuZG9jdW1lbnRFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOw0KKw0KK3Nob3VsZEJlKCJ0
cmFuc2Zvcm0ubWF0cml4LmEiLCAiMSIpOw0KK3RyYW5zZm9ybS5tYXRyaXguYSA9IDI7DQorc2hv
dWxkQmUoInRyYW5zZm9ybS5tYXRyaXguYSIsICIyIik7DQorDQordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7DQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRo
LXRlYXJvZmZzLWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApDQor
KysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTAgQEANCitUZXN0cyB3aGV0aGVyIFNWRyB0
ZWFyb2ZmIG9iamVjdHMgd2l0aCB0ZWFyb2ZmcyB1cGRhdGUgcHJvcGVybHkuDQorDQorT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLg0KKw0KKw0KK1BBU1MgdHJhbnNmb3JtLm1hdHJpeC5hIGlzIDEN
CitQQVNTIHRyYW5zZm9ybS5tYXRyaXguYSBpcyAyDQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQ0KKw0KK1RFU1QgQ09NUExFVEUNCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuaHRtbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5odG1sCShyZXZpc2lvbiAwKQ0KKysr
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5odG1sCShyZXZp
c2lvbiAwKQ0KQEAgLTAsMCArMSwxMyBAQA0KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4NCis8aHRtbD4NCis8aGVhZD4NCis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uLy4uL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4NCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keT4NCis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMiPjwvc2NyaXB0PiAN
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy90ZWFyb2Zmcy13
aXRoLXRlYXJvZmZzLmpzCShyZXZpc2lvbiAwKQ0KKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
cmVzb3VyY2VzL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMJKHJldmlzaW9uIDApDQpAQCAtMCww
ICsxLDEwIEBADQorZGVzY3JpcHRpb24oIlRlc3RzIHdoZXRoZXIgU1ZHIHRlYXJvZmYgb2JqZWN0
cyB3aXRoIHRlYXJvZmZzIHVwZGF0ZSBwcm9wZXJseS4iKTsNCisNCit2YXIgc3ZnRG9jID0gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoImh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiwgInN2ZyIsIG51bGwpOw0KK3ZhciB0cmFuc2Zvcm0gPSBzdmdEb2MuZG9jdW1lbnRF
bGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOw0KKw0KK3Nob3VsZEJlKCJ0cmFuc2Zvcm0ubWF0
cml4LmEiLCAiMSIpOw0KK3RyYW5zZm9ybS5tYXRyaXguYSA9IDI7DQorc2hvdWxkQmUoInRyYW5z
Zm9ybS5tYXRyaXguYSIsICIyIik7DQorDQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
DQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22626</attachid>
            <date>2008-08-03 12:53:22 -0700</date>
            <delta_ts>2008-08-11 18:40:17 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>FixSVGPODTypeProblem.diff</filename>
            <type>text/plain</type>
            <size>23843</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTUzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDgtMDgtMDMgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlczogaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MzYK
KworICAgICAgICBKUyB3cmFwcGVyIG9iamVjdHMgYXJvdW5kIFNWRyBQT0QgdHlwZXMsIHRoYXQg
Y29udGFpbiBvdGhlciBTVkcgUE9EIHR5cGVzIHdpdGggd3JpdGFibGUgcHJvcGVydGllcworICAg
ICAgICBmYWlsZWQgdG8gdXBkYXRlLiBNb2RpZmljYXRpb24gb2YgdGhlIHZhbHVlcyB3ZXJlIGNv
bXBsZXRseSBpZ25vcmVkIChpZS4gdHJhbnNmb3JtLm1hdHJpeC5hID0gNTAsIGRpZG4ndCB0YWtl
IGFueSBlZmZlY3QpCisKKyAgICAgICAgQWRkZWQgdGVzdHM6IHN2Zy9jdXN0b20vc3ZnLW1vZGlm
eS1jdXJyZW50VHJhbnNsYXRlLmh0bWwKKyAgICAgICAgICAgICAgICAgICAgIHN2Zy9jdXN0b20v
dGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5odG1sCisKKyAgICAgICAgRml4ZWQgdGVzdHM6IHN2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRy
YW5zZm9ybS1wcm9wLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdy
YXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHRHluYW1pY1BPRFR5cGVXcmFwcGVyOjpj
b21taXRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBl
cldpdGhQT0RUeXBlUGFyZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdTdGF0
aWNQT0RUeXBlV3JhcHBlcldpdGhQT0RUeXBlUGFyZW50Ojpjb21taXRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQT0RUeXBlUGFyZW50OjpK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBPRFR5cGVQYXJlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQYXJlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBhcmVudDo6b3BlcmF0
b3IgUE9EVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVy
V2l0aFBhcmVudDo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU1ZHU3RhdGlj
UE9EVHlwZVdyYXBwZXJXaXRoUGFyZW50OjpKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBh
cmVudCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIHN2
Zy9TVkdTVkdFbGVtZW50LmlkbDogQWRkIFtJbW11dGFibGVdIG1hcmtlcnMgdG8gU1ZHIFBPRCBh
dHRyaWJ1dGVzLCB0aGF0IGNvbnRhaW4gUE9EIHR5cGVzIHdpdGggd3JpdGFibGUgYXR0cmlidXRl
cy4KKyAgICAgICAgKiBzdmcvU1ZHWm9vbUV2ZW50LmlkbDogIFNWRyBzcGVjaWZpY2F0aW9uIGV4
cGxpY2l0ZWx5IGRlbWFuZHMgdGhlc2UgYXR0cmlidXRlcyB0byBiZSByZWFkb25seSwgZXZlbiBp
dHMgY29udGVudC4KKwogMjAwOC0wOC0wMiAgTWF4aW1lIEJyaXR0byAgPGJyaXR0b0BhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAkocmV2aXNpb24gMzU1MzMpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsMTMgKzM4LDMyIEBAIGNsYXNzIEpTU1ZHUE9EVHlwZVdyYXBwZXIgOiBwdWJsaWMgUmVmQ28K
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5KU1NWR1BPRFR5cGVXcmFwcGVyKCkgeyB9CiAKLSAgICAv
LyBHZXR0ZXIgd3JhcHBlcgogICAgIHZpcnR1YWwgb3BlcmF0b3IgUE9EVHlwZSgpID0gMDsKLQot
ICAgIC8vIFNldHRlciB3cmFwcGVyCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShQT0RU
eXBlLCBTVkdFbGVtZW50KikgPSAwOwogfTsKIAorLy8gVGhpcyBmaWxlIGNvbnRhaW5zIEpTIHdy
YXBwZXIgb2JqZWN0cyBmb3IgU1ZHIGRhdGF0eXBlcywgdGhhdCBhcmUgcGFzc2VkIGFyb3VuZCBi
eSB2YWx1ZQorLy8gaW4gV2ViQ29yZS9zdmcgKGFrYS4gJ1BPRCB0eXBlcycpLiBGb3IgaW5zdGFu
Y2UgU1ZHTWF0cml4IGlzIG1hcHBlZCB0byBBZmZpbmVUcmFuc2Zvcm0sIGFuZAorLy8gcGFzc2Vk
IGFyb3VuZCBhcyBjb25zdCByZWZlcmVuY2UuIFNWRyBET00gZGVtYW5kcyB0aGVzZSBvYmplY3Rz
IHRvIGJlICJsaXZlIiwgY2hhbmdlcyB0byBhbnkKKy8vIG9mIHRoZSB3cml0YWJsZSBhdHRyaWJ1
dGVzIG9mIFNWR01hdHJpeCBuZWVkIHRvIGJlIHJlZmxlY3RlZCBpbiB0aGUgb2JqZWN0IHdoaWNo
IGV4cG9zZWQgdGhlCisvLyBTVkdNYXRyaXggb2JqZWN0IChpZS4gJ3NvbWVFbGVtZW50LnRyYW5z
Zm9ybS5tYXRyaXguYSA9IDUwLjAnLCBpbiB0aGF0IGNhc2UgJ1NWR1RyYW5zZm9ybScpLgorLy8g
VGhlIFNWR1RyYW5zZm9ybSBjbGFzcyBzdG9yZXMgaXRzICJBZmZpbmVUcmFuc2Zvcm0gbV9tYXRy
aXgiIG9iamVjdCBvbiB0aGUgc3RhY2suIElmIGl0IHdvdWxkCisvLyBiZSBzdG9yZWQgYXMgcG9p
bnRlciB3ZSBjb3VsZCBqdXN0IGJ1aWxkIGFuIGF1dG8tZ2VuZXJhdGVkIEpTU1ZHKiB3cmFwcGVy
IG9iamVjdCBhcm91bmQgaXQKKy8vIGFuZCBhbGwgY2hhbmdlcyB0byB0aGF0IG9iamVjdCB3b3Vs
ZCBhdXRvbWF0aWNhbGx5IGFmZmVjdCB0aGUgQWZmaW5lVHJhbnNmb3JtKiBvYmplY3Qgc3RvcmVk
CisvLyBpbiB0aGUgU1ZHVHJhbnNmb3JtIG9iamVjdC4gRm9yIHRoZSBzYWtlIG9mIGVmZmljaWVu
Y3kgYW5kIG1lbW9yeSB3ZSBkb24ndCBwYXNzIGFyb3VuZCBhbnkKKy8vIHByaW1pdGl2ZSB2YWx1
ZXMgYXMgcG9pbnRlcnMsIHNvIGEgY3VzdG9tIEpTIHdyYXBwZXIgb2JqZWN0IGlzIG5lZWRlZCBm
b3IgYWxsIFNWRyB0eXBlcywgdGhhdAorLy8gYXJlIGludGVybmFsbHkgcmVwcmVzZW50ZWQgYnkg
UE9EIHR5cGVzIChTVkdSZWN0IDwtPiBGbG9hdFJlY3QsIFNWR1BvaW50IDwtPiBGbG9hdFBvaW50
LCAuLi4pLgorLy8gVGhvc2UgY3VzdG9tIHdyYXBwZXJzIGFyZSBjYWxsZWQgSlNTVkdQT0RUeXBl
V3JhcHBlciBhbmQgYXJlIGNhcGFibGUgb2YgdXBkYXRpbmcgdGhlIFBPRCB0eXBlcworLy8gYnkg
dGFraW5nIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBnZXR0ZXIgJiBzZXR0ZXIgZnVuY3Rpb25z
IG9mIHRoZSAiY3JlYXRvciBvYmplY3QiLCB0aGUgb2JqZWN0CisvLyB3aGljaCBleHBvc2VkIGEg
U1ZHIFBPRCB0eXBlLiBGb3IgZXhhbXBsZSwgdGhlIEpTU1ZHUE9EVHlwZVdyYXBwZXIgb2JqZWN0
IHdyYXBwaW5nIGEgU1ZHTWF0cml4CisvLyBvYmplY3QgdGFrZXMgKFNWR1RyYW5zZm9ybSosICZT
VkdUcmFuc2Zvcm06Om1hdHJpeCwgJlNWR1RyYW5zZm9ybTo6c2V0TWF0cml4KS4gQSBKUyBjYWxs
IGxpa2UKKy8vICJzb21lRWxlbWVudC50cmFuc2Zvcm0ubWF0cml4LmEgPSA1MC4wJyBjYXVzZXMg
dGhlIEpTU1ZHTWF0cml4IG9iamVjdCB0byBjYWxsIFNWR1RyYW5zZm9ybTo6c2V0TWF0cml4LAor
Ly8gbWV0aG9kLCB3aGljaCBpbiB0dXJuIG5vdGlmaWVzICdzb21lRWxlbWVudCcgdGhhdCB0aGUg
J1NWR05hbWVzOjp0cmFuc2Zvcm1BdHRyJyBoYXMgY2hhbmdlZC4KKy8vIFRoYXQncyBhIHNob3J0
IHNrZXRjaCBvZiBvdXIgU1ZHIERPTSBpbXBsZW1lbnRhdGlvbi4KKworLy8gUmVwcmVzZW50cyBh
IEpTIHdyYXBwZXIgb2JqZWN0IGZvciBTVkdBbmltYXRlZCogY2xhc3NlcywgZXhwb3NpbmcgU1ZH
IFBPRCB0eXBlcyB0aGF0IGNvbnRhaW4gd3JpdGFibGUgcHJvcGVydGllcworLy8gKFR3byBjYXNl
czogU1ZHQW5pbWF0ZWRMZW5ndGggZXhwb3NpbmcgU1ZHTGVuZ3RoLCBTVkdBbmltYXRlZFJlY3Qg
ZXhwb3NpbmcgU1ZHUmVjdCkKKwogdGVtcGxhdGU8dHlwZW5hbWUgUE9EVHlwZSwgdHlwZW5hbWUg
UE9EVHlwZUNyZWF0b3I+CiBjbGFzcyBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlciA6IHB1Ymxp
YyBKU1NWR1BPRFR5cGVXcmFwcGVyPFBPRFR5cGU+IHsKIHB1YmxpYzoKQEAgLTU2LDE4ICs3NSwx
MyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNTVkdEeW5hbWljUE9E
VHlwZVdyYXBwZXIoY3JlYXRvciwgZ2V0dGVyLCBzZXR0ZXIpKTsKICAgICB9CiAKLSAgICAvLyBH
ZXR0ZXIgd3JhcHBlcgogICAgIHZpcnR1YWwgb3BlcmF0b3IgUE9EVHlwZSgpCiAgICAgewogICAg
ICAgICByZXR1cm4gKG1fY3JlYXRvci5nZXQoKS0+Km1fZ2V0dGVyKSgpOwogICAgIH0KIAotICAg
IC8vIFNldHRlciB3cmFwcGVyCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShQT0RUeXBl
IHR5cGUsIFNWR0VsZW1lbnQqIGNvbnRleHQpCiAgICAgewotICAgICAgICBpZiAoIW1fc2V0dGVy
KQotICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIChtX2NyZWF0b3IuZ2V0KCktPiptX3Nl
dHRlcikodHlwZSk7CiAKICAgICAgICAgaWYgKGNvbnRleHQpCkBAIC05MSw2ICsxMDUsMTAgQEAg
cHJpdmF0ZToKICAgICBTZXR0ZXJNZXRob2QgbV9zZXR0ZXI7CiB9OwogCisvLyBSZXByZXNlbnRz
IGEgSlMgd3JhcHBlciBvYmplY3QgZm9yIFNWRyBQT0QgdHlwZXMgKG5vdCBmb3IgU1ZHQW5pbWF0
ZWQqIGNsYXNlcykuIEFueSBtb2RpZmljYXRpb24gdG8gdGhlIFNWRyBQT0QKKy8vIHR5cGVzIGRv
bid0IGNhdXNlIGFueSB1cGRhdGVzIHVubGlrZSBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlci4g
VGhpcyBjbGFzcyBpcyB1c2VkIGZvciByZXR1cm4gdmFsdWVzIChpZS4gZ2V0QkJveCgpKQorLy8g
YW5kIGZvciBwcm9wZXJ0aWVzIHdoZXJlIFNWRyBzcGVjaWZpY2F0aW9uIGV4cGxpY2l0ZWx5IHN0
YXRlcywgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlIFBPRCB0eXBlIGFyZSBpbW11dGFibGUuCisK
IHRlbXBsYXRlPHR5cGVuYW1lIFBPRFR5cGU+CiBjbGFzcyBKU1NWR1N0YXRpY1BPRFR5cGVXcmFw
cGVyIDogcHVibGljIEpTU1ZHUE9EVHlwZVdyYXBwZXI8UE9EVHlwZT4gewogcHVibGljOgpAQCAt
OTksMTkgKzExNywxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNT
VkdTdGF0aWNQT0RUeXBlV3JhcHBlcih0eXBlKSk7CiAgICAgfQogCi0gICAgLy8gR2V0dGVyIHdy
YXBwZXIKICAgICB2aXJ0dWFsIG9wZXJhdG9yIFBPRFR5cGUoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fcG9kVHlwZTsKICAgICB9CiAKLSAgICAvLyBTZXR0ZXIgd3JhcHBlcgogICAgIHZpcnR1
YWwgdm9pZCBjb21taXRDaGFuZ2UoUE9EVHlwZSB0eXBlLCBTVkdFbGVtZW50KikKICAgICB7CiAg
ICAgICAgIG1fcG9kVHlwZSA9IHR5cGU7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgog
ICAgIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXIoUE9EVHlwZSB0eXBlKQogICAgICAgICA6IG1f
cG9kVHlwZSh0eXBlKQogICAgIHsKQEAgLTEyMCw5ICsxMzYsNzUgQEAgcHJpdmF0ZToKICAgICBQ
T0RUeXBlIG1fcG9kVHlwZTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFBPRFR5cGUsIHR5cGVu
YW1lIFBhcmVudFR5cGVBcmc+CitjbGFzcyBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBP
RFR5cGVQYXJlbnQgOiBwdWJsaWMgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxQT0RUeXBlPiB7
CitwdWJsaWM6CisgICAgdHlwZWRlZiBKU1NWR1BPRFR5cGVXcmFwcGVyPFBhcmVudFR5cGVBcmc+
IFBhcmVudFR5cGU7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU1NWR1N0YXRpY1BPRFR5cGVX
cmFwcGVyV2l0aFBPRFR5cGVQYXJlbnQ+IGNyZWF0ZShQT0RUeXBlIHR5cGUsIFBhc3NSZWZQdHI8
UGFyZW50VHlwZT4gcGFyZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyV2l0aFBPRFR5cGVQYXJlbnQodHlwZSwgcGFyZW50KSk7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShQT0RUeXBlIHR5cGUsIFNW
R0VsZW1lbnQqIGNvbnRleHQpCisgICAgeworICAgICAgICBKU1NWR1N0YXRpY1BPRFR5cGVXcmFw
cGVyPFBPRFR5cGU+Ojpjb21taXRDaGFuZ2UodHlwZSwgY29udGV4dCk7CisgICAgICAgIG1fcGFy
ZW50VHlwZS0+Y29tbWl0Q2hhbmdlKFBhcmVudFR5cGVBcmcodHlwZSksIGNvbnRleHQpOyAgICAK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQT0RU
eXBlUGFyZW50KFBPRFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxQYXJlbnRUeXBlPiBwYXJlbnQpCisg
ICAgICAgIDogSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjxQT0RUeXBlPih0eXBlKQorICAgICAg
ICAsIG1fcGFyZW50VHlwZShwYXJlbnQpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxQYXJl
bnRUeXBlPiBtX3BhcmVudFR5cGU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBQT0RUeXBlLCB0
eXBlbmFtZSBQYXJlbnRUeXBlPgorY2xhc3MgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQ
YXJlbnQgOiBwdWJsaWMgSlNTVkdQT0RUeXBlV3JhcHBlcjxQT0RUeXBlPiB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBQT0RUeXBlIChQYXJlbnRUeXBlOjoqR2V0dGVyTWV0aG9kKSgpIGNvbnN0Owor
ICAgIHR5cGVkZWYgdm9pZCAoUGFyZW50VHlwZTo6KlNldHRlck1ldGhvZCkoY29uc3QgUE9EVHlw
ZSYpOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldp
dGhQYXJlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPFBhcmVudFR5cGU+IHBhcmVudCwgR2V0dGVyTWV0
aG9kIGdldHRlciwgU2V0dGVyTWV0aG9kIHNldHRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQYXJlbnQocGFyZW50LCBn
ZXR0ZXIsIHNldHRlcikpOworICAgIH0KKworICAgIHZpcnR1YWwgb3BlcmF0b3IgUE9EVHlwZSgp
CisgICAgeworICAgICAgICByZXR1cm4gKG1fcGFyZW50LmdldCgpLT4qbV9nZXR0ZXIpKCk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShQT0RUeXBlIHR5cGUsIFNWR0Vs
ZW1lbnQqIGNvbnRleHQpCisgICAgeworICAgICAgICAobV9wYXJlbnQuZ2V0KCktPiptX3NldHRl
cikodHlwZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBw
ZXJXaXRoUGFyZW50KFBhc3NSZWZQdHI8UGFyZW50VHlwZT4gcGFyZW50LCBHZXR0ZXJNZXRob2Qg
Z2V0dGVyLCBTZXR0ZXJNZXRob2Qgc2V0dGVyKQorICAgICAgICA6IG1fcGFyZW50KHBhcmVudCkK
KyAgICAgICAgLCBtX2dldHRlcihnZXR0ZXIpCisgICAgICAgICwgbV9zZXR0ZXIoc2V0dGVyKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcGFyZW50KTsKKyAgICAgICAgQVNTRVJUKG1fZ2V0dGVy
KTsKKyAgICAgICAgQVNTRVJUKG1fc2V0dGVyKTsKKyAgICB9CisKKyAgICAvLyBVcGRhdGUgY2Fs
bGJhY2tzCisgICAgUmVmUHRyPFBhcmVudFR5cGU+IG1fcGFyZW50OworICAgIEdldHRlck1ldGhv
ZCBtX2dldHRlcjsKKyAgICBTZXR0ZXJNZXRob2QgbV9zZXR0ZXI7Cit9OworCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBQT0RUeXBlPgogY2xhc3MgU1ZHUE9ETGlzdEl0ZW07CiAKKy8vIEp1c3QgbGlrZSBK
U1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlciwgYnV0IG9ubHkgdXNlZCBmb3IgU1ZHTGlzdCogb2Jq
ZWN0cyB3cmFwcGluZyBhcm91bmQgUE9EIHZhbHVlcy4KKwogdGVtcGxhdGU8dHlwZW5hbWUgUE9E
VHlwZT4KIGNsYXNzIEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yRm9yTGlzdCA6IHB1YmxpYyBK
U1NWR1BPRFR5cGVXcmFwcGVyPFBPRFR5cGU+IHsKIHB1YmxpYzoKQEAgLTEzNiwxMyArMjE4LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU1NWR1BPRFR5cGVXcmFw
cGVyQ3JlYXRvckZvckxpc3QoY3JlYXRvciwgYXR0cmlidXRlTmFtZSkpOwogICAgIH0KIAotICAg
IC8vIEdldHRlciB3cmFwcGVyCiAgICAgdmlydHVhbCBvcGVyYXRvciBQT0RUeXBlKCkKICAgICB7
CiAgICAgICAgIHJldHVybiAobV9jcmVhdG9yLmdldCgpLT4qbV9nZXR0ZXIpKCk7CiAgICAgfQog
Ci0gICAgLy8gU2V0dGVyIHdyYXBwZXIKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKFBP
RFR5cGUgdHlwZSwgU1ZHRWxlbWVudCogY29udGV4dCkKICAgICB7CiAgICAgICAgIGlmICghbV9z
ZXR0ZXIpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQko
cmV2aXNpb24gMzU1MzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ci5wbQkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBteSAlcHJpbWl0aXZlVHlwZUhh
c2ggPSAoImludCIgPT4gMSwgInNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZsb2F0IiA9
PiAxLCAiZG91YmxlIiA9PiAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9vbGVhbiIg
PT4gMSwgInZvaWQiID0+IDEpOwogCi1teSAlcG9kVHlwZUhhc2ggPSAoIlJHQkNvbG9yIiA9PiAx
LCAiU1ZHTGVuZ3RoIiA9PiAxLCAiU1ZHUG9pbnQiID0+IDEsICJTVkdSZWN0IiA9PiAxLCAiU1ZH
TnVtYmVyIiA9PiAxLCAiU1ZHTWF0cml4IiA9PiAxLCAiU1ZHVHJhbnNmb3JtIiA9PiAxKTsKLSAK
K215ICVwb2RUeXBlSGFzaCA9ICgiUkdCQ29sb3IiID0+IDEsICJTVkdOdW1iZXIiID0+IDEsICJT
VkdUcmFuc2Zvcm0iID0+IDEpOworbXkgJXBvZFR5cGVzV2l0aFdyaXRhYmxlUHJvcGVydGllc0hh
c2ggPSAoIlNWR0xlbmd0aCIgPT4gMSwgIlNWR01hdHJpeCIgPT4gMSwgIlNWR1BvaW50IiA9PiAx
LCAiU1ZHUmVjdCIgPT4gMSk7CiBteSAlc3RyaW5nVHlwZUhhc2ggPSAoIkRPTVN0cmluZyIgPT4g
MSwgIkF0b21pY1N0cmluZyIgPT4gMSk7CiAKIG15ICVub25Qb2ludGVyVHlwZUhhc2ggPSAoIkRP
TVRpbWVTdGFtcCIgPT4gMSwgIkNvbXBhcmVIb3ciID0+IDEsICJTVkdQYWludFR5cGUiID0+IDEp
OwpAQCAtMjcwLDYgKzI3MCwxNiBAQCBzdWIgSXNQb2RUeXBlCiAgICAgbXkgJHR5cGUgPSBzaGlm
dDsKIAogICAgIHJldHVybiAxIGlmICRwb2RUeXBlSGFzaHskdHlwZX07CisgICAgcmV0dXJuIDEg
aWYgJHBvZFR5cGVzV2l0aFdyaXRhYmxlUHJvcGVydGllc0hhc2h7JHR5cGV9OworICAgIHJldHVy
biAwOworfQorCitzdWIgSXNQb2RUeXBlV2l0aFdyaXRlYWJsZVByb3BlcnRpZXMKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAx
IGlmICRwb2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoeyR0eXBlfTsKICAgICByZXR1
cm4gMDsKIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCShyZXZpc2lvbiAzNTUzMykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE1NDgsNiArMTU0OCwxOCBAQCBzdWIg
TmF0aXZlVG9KU1ZhbHVlCiAKICAgICAgICAgbXkgJHNldHRlciA9ICJzZXQiIC4gJGNvZGVHZW5l
cmF0b3ItPldLX3VjZmlyc3QoJGdldHRlcik7CiAKKyAgICAgICAgIyBGdW5jdGlvbiBjYWxscyB3
aWxsIG5ldmVyIHJldHVybiAnbW9kaWZ5YWJsZScgUE9EIHR5cGVzIChpZS4gU1ZHUmVjdCBnZXRC
Qm94KCkpIC0gbm8gbmVlZCB0byBrZWVwIHRyYWNrIGNoYW5nZXMgdG8gdGhlIHJldHVybmVkIFNW
R1JlY3QKKyAgICAgICAgaWYgKCRpbkZ1bmN0aW9uQ2FsbCBlcSAwCisgICAgICAgICAgICBhbmQg
bm90ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSkKKyAg
ICAgICAgICAgIGFuZCAkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlV2l0aFdyaXRlYWJsZVByb3Bl
cnRpZXMoJHR5cGUpCisgICAgICAgICAgICBhbmQgbm90IGRlZmluZWQgJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkltbXV0YWJsZSJ9KSB7CisgICAgICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzUG9kVHlwZSgkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQT0RUeXBlUGFy
ZW50PCRuYXRpdmVUeXBlLCAkaW1wbENsYXNzTmFtZT46OmNyZWF0ZSgkdmFsdWUsIGltcGwoKSku
Z2V0KCksIGNvbnRleHQoKSkiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcldpdGhQYXJlbnQ8
JG5hdGl2ZVR5cGUsICRpbXBsQ2xhc3NOYW1lPjo6Y3JlYXRlKGltcCwgJiR7aW1wbENsYXNzTmFt
ZX06OiRnZXR0ZXIsICYke2ltcGxDbGFzc05hbWV9Ojokc2V0dGVyKS5nZXQoKSwgaW1wKSI7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBpZiAoJGltcGxDbGFzc05hbWVGb3JW
YWx1ZUNvbnZlcnNpb24gZXEgIiIpIHsKICAgICAgICAgICAgIGlmIChJc1NWR1R5cGVOZWVkaW5n
Q29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKICAgICAgICAgICAgICAgICByZXR1
cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNy
ZWF0ZSgkdmFsdWUpLmdldCgpLCBjYXN0ZWRUaGlzT2JqLT5jb250ZXh0KCkpIiBpZiAkaW5GdW5j
dGlvbkNhbGwgZXEgMTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTUzMykK
KysrIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3
ICs0Myw3IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGNvcmU6OkRP
TVN0cmluZyBjb250ZW50U3R5bGVUeXBlCiAgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKSovOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVj
dCB2aWV3cG9ydDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1Jl
Y3Qgdmlld3BvcnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRU
b01pbGxpbWV0ZXJYOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgcGl4ZWxVbml0
VG9NaWxsaW1ldGVyWTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHNjcmVlblBp
eGVsVG9NaWxsaW1ldGVyWDsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1pvb21FdmVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHWm9vbUV2ZW50LmlkbAkocmV2aXNpb24gMzU1MzMp
CisrKyBXZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwx
MSArMjYsMTEgQEAKIG1vZHVsZSBzdmcgewogCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1T
VkddIFNWR1pvb21FdmVudCA6IGV2ZW50czo6VUlFdmVudCB7IAotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHUmVjdCB6b29tUmVjdFNjcmVlbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbW11dGFibGVdIFNWR1JlY3Qgem9vbVJlY3RTY3JlZW47CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBmbG9hdCBwcmV2aW91c1NjYWxlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHUG9pbnQgcHJldmlvdXNUcmFuc2xhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBwcmV2aW91c1RyYW5zbGF0ZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGZsb2F0IG5ld1NjYWxlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUG9pbnQgbmV3VHJhbnNsYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0
YWJsZV0gU1ZHUG9pbnQgbmV3VHJhbnNsYXRlOwogICAgIH07CiAKIH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDM1NTMzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMDgtMDgtMDMgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5A
a2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlczogaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MzYKKwor
ICAgICAgICBKUyB3cmFwcGVyIG9iamVjdHMgYXJvdW5kIFNWRyBQT0QgdHlwZXMsIHRoYXQgY29u
dGFpbiBvdGhlciBTVkcgUE9EIHR5cGVzIHdpdGggd3JpdGFibGUgcHJvcGVydGllcworICAgICAg
ICBmYWlsZWQgdG8gdXBkYXRlLiBNb2RpZmljYXRpb24gb2YgdGhlIHZhbHVlcyB3ZXJlIGNvbXBs
ZXRseSBpZ25vcmVkIChpZS4gdHJhbnNmb3JtLm1hdHJpeC5hID0gNTAsIGRpZG4ndCB0YWtlIGFu
eSBlZmZlY3QpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zdmctbW9kaWZ5
LWN1cnJlbnRUcmFuc2xhdGUtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL3N2Zy1tb2RpZnktY3VycmVudFRyYW5zbGF0ZS1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3RlYXJvZmZz
LXdpdGgtdGVhcm9mZnMtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVj
dGVkLnBuZzoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3Jlc291cmNlcy9zdmctbW9kaWZ5LWN1cnJl
bnRUcmFuc2xhdGUuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVzb3VyY2VzL3Rl
YXJvZmZzLXdpdGgtdGVhcm9mZnMuanM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc3Zn
LW1vZGlmeS1jdXJyZW50VHJhbnNsYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9zdmctbW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQt
c3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AuanM6CisKIDIwMDgtMDctMzEgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBDYW1lcm9uIFp3
YXJpY2guCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9zdmctbW9k
aWZ5LWN1cnJlbnRUcmFuc2xhdGUtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vc3ZnLW1vZGlmeS1jdXJyZW50VHJhbnNs
YXRlLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vc3ZnLW1vZGlmeS1jdXJyZW50VHJhbnNsYXRlLWV4cGVjdGVkLmNo
ZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitjNzRmMjRhYWQ4OWZmNDBmODVjMzU1
N2EwMjUzNzIzYQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMtZXhwZWN0ZWQu
Y2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVh
cm9mZnMtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzAxYTdj
ZWM4NGU2Yzk5MjczNWQ3ZTQ1MmViNjYyMWU5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFu
c2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMzU1MzMpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0JKHdv
cmtpbmcgY29weSkKQEAgLTEgKzEgQEAKLWRkMjBkYzM5NzliY2RlYzIxNmY1NmI1ZTg3OTYzYzUx
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorNDRkMTUyYjc5ZTA0NWE0MGU3ZjIxY2UzNTE5
YjY3NjEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1tb2RpZnktY3VycmVudFRyYW5zbGF0ZS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctbW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmct
bW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE0IEBACitUZXN0cyB3aGV0aGVyIGNoYW5nZXMgdG8gdGhlICdjdXJyZW50VHJhbnNsYXRl
JyBTVkdTVkdFbGVtZW50IHByb3BlcnR5IHRha2UgZWZmZWN0LiBZb3Ugc2hvdWxkIHNlZSBhbiB1
bmNsaXBwZWQgMTAweDEwMCByZWN0IGFib3ZlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzdmcuY3VycmVudFRyYW5zbGF0ZS54IGlzIDAKK1BBU1Mgc3ZnLmN1cnJlbnRU
cmFuc2xhdGUueSBpcyAwCitQQVNTIHN2Zy5jdXJyZW50VHJhbnNsYXRlLnggaXMgMTAwCitQQVNT
IHN2Zy5jdXJyZW50VHJhbnNsYXRlLnkgaXMgNTAKK1BBU1Mgc3ZnLmN1cnJlbnRUcmFuc2xhdGUu
eSBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy1tb2RpZnktY3VycmVudFRyYW5z
bGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLW1vZGlm
eS1jdXJyZW50VHJhbnNsYXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1tb2RpZnktY3VycmVudFRyYW5zbGF0ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8u
Li9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdmct
bW9kaWZ5LWN1cnJlbnRUcmFuc2xhdGUuanMiPjwvc2NyaXB0PiAKKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS90ZWFy
b2Zmcy13aXRoLXRlYXJvZmZzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgd2hldGhlciBT
VkcgdGVhcm9mZiBvYmplY3RzIHdpdGggdGVhcm9mZnMgdXBkYXRlIHByb3Blcmx5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0cmFuc2Zvcm0ubWF0cml4LmEgaXMgMQor
UEFTUyB0cmFuc2Zvcm0ubWF0cml4LmEgaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vdGVh
cm9mZnMtd2l0aC10ZWFyb2Zmcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS90ZWFyb2Zmcy13aXRoLXRlYXJvZmZzLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3RlYXJvZmZzLXdpdGgtdGVhcm9mZnMuanMiPjwvc2NyaXB0PiAKKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNv
dXJjZXMvc3ZnLW1vZGlmeS1jdXJyZW50VHJhbnNsYXRlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzL3N2Zy1tb2RpZnktY3VycmVudFRyYW5zbGF0ZS5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzL3N2Zy1t
b2RpZnktY3VycmVudFRyYW5zbGF0ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAor
ZGVzY3JpcHRpb24oIlRlc3RzIHdoZXRoZXIgY2hhbmdlcyB0byB0aGUgJ2N1cnJlbnRUcmFuc2xh
dGUnIFNWR1NWR0VsZW1lbnQgcHJvcGVydHkgdGFrZSBlZmZlY3QuIFlvdSBzaG91bGQgc2VlIGFu
IHVuY2xpcHBlZCAxMDB4MTAwIHJlY3QgYWJvdmUuIik7CisKK3ZhciBzdmcgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInN2ZyIpOworc3Zn
LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAiMTUwIik7Citzdmcuc2V0QXR0cmlidXRlKCJoZWlnaHQi
LCAiMTUwIik7Citkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHN2ZywgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQpOworCit2YXIgcmVjdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAicmVjdCIpOwor
cmVjdC5zZXRBdHRyaWJ1dGUoIngiLCAiLTEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoInkiLCAi
LTEwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworcmVjdC5zZXRBdHRy
aWJ1dGUoImhlaWdodCIsICIxMDAiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJmaWxsIiwgImdyZWVu
Iik7CitzdmcuYXBwZW5kQ2hpbGQocmVjdCk7CisKK3Nob3VsZEJlKCJzdmcuY3VycmVudFRyYW5z
bGF0ZS54IiwgIjAiKTsKK3Nob3VsZEJlKCJzdmcuY3VycmVudFRyYW5zbGF0ZS55IiwgIjAiKTsK
KworLy8gTW9kaWZ5IHRlYXIgb2ZmLCBhbmQgY2hlY2sgcmVzdWx0cyBieSBjYWxsaW5nIHN2Zy5j
dXJyZW50VHJhbnNsYXRlLgordmFyIGN1cnJlbnRUcmFuc2xhdGUgPSBzdmcuY3VycmVudFRyYW5z
bGF0ZTsKK2N1cnJlbnRUcmFuc2xhdGUueCA9IDEwMDsKK3Nob3VsZEJlKCJzdmcuY3VycmVudFRy
YW5zbGF0ZS54IiwgIjEwMCIpOworCitjdXJyZW50VHJhbnNsYXRlLnkgPSA1MDsKK3Nob3VsZEJl
KCJzdmcuY3VycmVudFRyYW5zbGF0ZS55IiwgIjUwIik7CisKK2N1cnJlbnRUcmFuc2xhdGUueSA9
IGN1cnJlbnRUcmFuc2xhdGUueSArIDUwOworc2hvdWxkQmUoInN2Zy5jdXJyZW50VHJhbnNsYXRl
LnkiLCAiMTAwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy90ZWFyb2Zmcy13
aXRoLXRlYXJvZmZzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9y
ZXNvdXJjZXMvdGVhcm9mZnMtd2l0aC10ZWFyb2Zmcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMCBAQAorZGVzY3JpcHRpb24oIlRlc3RzIHdoZXRoZXIgU1ZHIHRlYXJvZmYgb2JqZWN0cyB3
aXRoIHRlYXJvZmZzIHVwZGF0ZSBwcm9wZXJseS4iKTsKKwordmFyIHN2Z0RvYyA9IGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIsICJzdmciLCBudWxsKTsKK3ZhciB0cmFuc2Zvcm0gPSBzdmdEb2MuZG9jdW1lbnRFbGVtZW50
LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOworCitzaG91bGRCZSgidHJhbnNmb3JtLm1hdHJpeC5hIiwg
IjEiKTsKK3RyYW5zZm9ybS5tYXRyaXguYSA9IDI7CitzaG91bGRCZSgidHJhbnNmb3JtLm1hdHJp
eC5hIiwgIjIiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdk
b20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3Zn
ZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzNTUzMykK
KysrIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjMsNyArMjMsNyBAQCBQQVNTIGxpbmVhckdyYWRpZW50RWxlbWVudC5ncmFkaWVu
dFRyYW5zCiBQQVNTIGxpbmVhckdyYWRpZW50RWxlbWVudC5ncmFkaWVudFRyYW5zZm9ybS5iYXNl
VmFsLmdldEl0ZW0oMCkubWF0cml4LmIgaXMgMC4wCiBQQVNTIGxpbmVhckdyYWRpZW50RWxlbWVu
dC5ncmFkaWVudFRyYW5zZm9ybS5iYXNlVmFsLmdldEl0ZW0oMCkubWF0cml4LmMgaXMgMC4wCiBQ
QVNTIGxpbmVhckdyYWRpZW50RWxlbWVudC5ncmFkaWVudFRyYW5zZm9ybS5iYXNlVmFsLmdldEl0
ZW0oMCkubWF0cml4LmQgaXMgMS4wCi1GQUlMIGxpbmVhckdyYWRpZW50RWxlbWVudC5ncmFkaWVu
dFRyYW5zZm9ybS5iYXNlVmFsLmdldEl0ZW0oMCkubWF0cml4LmUgc2hvdWxkIGJlIC0xMDAuIFdh
cyA1MC4KK1BBU1MgbGluZWFyR3JhZGllbnRFbGVtZW50LmdyYWRpZW50VHJhbnNmb3JtLmJhc2VW
YWwuZ2V0SXRlbSgwKS5tYXRyaXguZSBpcyAtMTAwLjAKIFBBU1MgbGluZWFyR3JhZGllbnRFbGVt
ZW50LmdyYWRpZW50VHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKS5tYXRyaXguZiBpcyAwLjAK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdk
b20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC5qcwkocmV2aXNpb24gMzU1MzMpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AuanMJKHdvcmtpbmcgY29weSkKQEAgLTEx
LDE3ICsxMSw4IEBAIGVsbGlwc2VFbGVtZW50LnNldEF0dHJpYnV0ZSgicngiLCAiMTAwIikKIGVs
bGlwc2VFbGVtZW50LnNldEF0dHJpYnV0ZSgicnkiLCAiMTUwIik7CiBlbGxpcHNlRWxlbWVudC5z
ZXRBdHRyaWJ1dGUoImZpbGwiLCAidXJsKCNncmFkaWVudCkiKTsKIAotLy8gVE9ETzogRml4IEpT
IFBPRCB0eXBlIGJpbmRpbmdzIGJ1Zy4gVHJhY2tlZCBieTogaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MzYKLS8vIFdlJ3JlIHVuYWJsZSB0byBtb2RpZnkgJ3RyYW5z
Zm9ybS5tYXRyaXguKicgYXQgdGhlIG1vbWVudCwgYW5kIGhhdmUgdG8gdXNlCi0vLyBjcmVhdGVT
VkdUcmFuc2Zvcm1Gcm9tTWF0cml4IGluc3RlYWQuIE9uY2UgdGhlIGJ1ZyBpcyBmaXhlZCwgdXNl
OgotLy8KLS8vIHZhciB0cmFuc2Zvcm0gPSByb290U1ZHRWxlbWVudC5jcmVhdGVTVkdUcmFuc2Zv
cm0oKTsKLS8vIHRyYW5zZm9ybS5tYXRyaXguZSA9IDUwOwotCi12YXIgbWF0cml4ID0gcm9vdFNW
R0VsZW1lbnQuY3JlYXRlU1ZHTWF0cml4KCk7Ci1tYXRyaXguZSA9IDUwOwotCi12YXIgdHJhbnNm
b3JtID0gcm9vdFNWR0VsZW1lbnQuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgp
OwordmFyIHRyYW5zZm9ybSA9IHJvb3RTVkdFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOwor
dHJhbnNmb3JtLm1hdHJpeC5lID0gNTA7CiAKIHNob3VsZEJlKCJ0cmFuc2Zvcm0udHlwZSIsICJT
VkdUcmFuc2Zvcm0uU1ZHX1RSQU5TRk9STV9NQVRSSVgiKTsKIHNob3VsZEJlKCJ0cmFuc2Zvcm0u
bWF0cml4LmEiLCAiMS4wIik7CkBAIC02NSw3ICs1Niw2IEBAIHNob3VsZEJlKCJsaW5lYXJHcmFk
aWVudEVsZW1lbnQuZ3JhZGllbnQKIHNob3VsZEJlKCJsaW5lYXJHcmFkaWVudEVsZW1lbnQuZ3Jh
ZGllbnRUcmFuc2Zvcm0uYmFzZVZhbC5nZXRJdGVtKDApLm1hdHJpeC5mIiwgIjAuMCIpOwogCiBm
dW5jdGlvbiBleGVjdXRlVGVzdCgpIHsKLSAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHRha2Ug
YW55IGVmZmVjdC4gVHJhY2tlZCBieTogaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3MzYKICAgICBsaW5lYXJHcmFkaWVudEVsZW1lbnQuZ3JhZGllbnRUcmFuc2Zvcm0u
YmFzZVZhbC5nZXRJdGVtKDApLm1hdHJpeC5lID0gLTEwMDsKIAogICAgIHNob3VsZEJlKCJsaW5l
YXJHcmFkaWVudEVsZW1lbnQuZ3JhZGllbnRUcmFuc2Zvcm0uYmFzZVZhbC5nZXRJdGVtKDApLm1h
dHJpeC5hIiwgIjEuMCIpOwo=
</data>
<flag name="review"
          id="10003"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>