<?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>11667</bug_id>
          
          <creation_ts>2006-11-21 08:31:40 -0800</creation_ts>
          <short_desc>SVG: method .getTransformToElement(elt) in SVGLocatable not implemented</short_desc>
          <delta_ts>2006-12-03 16:48:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.carto.net/neumann/webkitsvgbugs/SVGLocatableTest.svg</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="Andreas Neumann">a.neumann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>44977</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Neumann">a.neumann</who>
    <bug_when>2006-11-21 08:31:40 -0800</bug_when>
    <thetext>This method seems to be missing and returns a Null value.

Expected values are indicated in the example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44574</commentid>
    <comment_count>1</comment_count>
      <attachid>11618</attachid>
    <who name="Andreas Neumann">a.neumann</who>
    <bug_when>2006-11-23 02:40:36 -0800</bug_when>
    <thetext>Created attachment 11618
here is another testcase executed onload. The expected results are from Batik (which I believe, are right) and the other results are filled in by the SVG UA onload.

There was some confusion about this method. Firefox and Opera did it different in comparison to Batik and ASV6. ASV3 did not implement this method unfortunately. So, if you test against a different implementation I&apos;ll recommend Batik or a SVN/CVS version of Firefox/Opera.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44337</commentid>
    <comment_count>2</comment_count>
      <attachid>11630</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-25 14:53:20 -0800</bug_when>
    <thetext>Created attachment 11630
First attempt

I worked Andreas&apos; testcase into one suitable for webkit tests.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44235</commentid>
    <comment_count>3</comment_count>
      <attachid>11635</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-26 05:02:35 -0800</bug_when>
    <thetext>Created attachment 11635
Improved patch

Thi patch is an improvement, since it reports back any exceptions that get set while performing
this function, ie. SVG_MATRIX_NOT_INVERTABLE.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44217</commentid>
    <comment_count>4</comment_count>
      <attachid>11636</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-26 07:02:51 -0800</bug_when>
    <thetext>Created attachment 11636
Improved patch

This patch fixes a memleak involving getCTM.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44221</commentid>
    <comment_count>5</comment_count>
      <attachid>11636</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-11-26 13:09:28 -0800</bug_when>
    <thetext>Comment on attachment 11636
Improved patch

Ok, I have two concerns.

1. We&apos;re mallocing when not necessary:
 +    SVGMatrix* ctm = SVGSVGElement::createSVGMatrix();
+    ctm-&gt;multiply(startctm);

In the error condition, no malloc is needed.  Ideally we would just move off of SVGMatrix internally (this function could take/return AffineTransforms, and let something outside of it do the wrapping).  I&apos;m not sure it&apos;s worth going through contortions to avoid mallocs in error conditions however.  Consider making this an AffineTransform in/out function though.

2.  We need tests for the error conditions.  I see this behavior:
+        if (ec)
+            return ctm;

Does that match the spec?  Does that match firefox/opera?  It would be good to test.

Otherwise it looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44156</commentid>
    <comment_count>6</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-27 03:17:22 -0800</bug_when>
    <thetext>Hi Eric,

(In reply to comment #5)
&gt; (From update of attachment 11636 [edit])
&gt; Ok, I have two concerns.
&gt; 
&gt; 1. We&apos;re mallocing when not necessary:
&gt;  +    SVGMatrix* ctm = SVGSVGElement::createSVGMatrix();
&gt; +    ctm-&gt;multiply(startctm);
&gt; 
&gt; In the error condition, no malloc is needed.  Ideally we would just move off of
&gt; SVGMatrix internally (this function could take/return AffineTransforms, and let
&gt; something outside of it do the wrapping).  I&apos;m not sure it&apos;s worth going
&gt; through contortions to avoid mallocs in error conditions however.  Consider
&gt; making this an AffineTransform in/out function though.

I agree in theory, this is AFAIK a gray area since I don&apos;t think it is specified anywhere
what to return in error conditions, ie. null or some &quot;real&quot; matrix. Also it could wait until
we adopt AffineTransform more for internal use, where we use SVGMatrix now.

&gt; 2.  We need tests for the error conditions.  I see this behavior:
&gt; +        if (ec)
&gt; +            return ctm;
&gt; 
&gt; Does that match the spec?  Does that match firefox/opera?  It would be good to
&gt; test.

I added it in the test (now othermaciej pointed out how to do it).  Will attach a new patch shortly.

&gt; Otherwise it looks fine.

Great.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44158</commentid>
    <comment_count>7</comment_count>
      <attachid>11640</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-27 03:27:49 -0800</bug_when>
    <thetext>Created attachment 11640
Improved testcase

Now we test that getTransformToElement throws the right exception.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44032</commentid>
    <comment_count>8</comment_count>
      <attachid>11650</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-11-28 01:39:45 -0800</bug_when>
    <thetext>Created attachment 11650
Now uses virtual base class

This patch introduces virtual base class SVGLocatable. This helps since we need only one implementation of getTransformToElement instead of one for SVGTextElement, one for SVGStyledTransformable etc. However it probably needs to be (performance) tested well.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43503</commentid>
    <comment_count>9</comment_count>
      <attachid>11650</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2006-12-02 16:56:09 -0800</bug_when>
    <thetext>Comment on attachment 11650
Now uses virtual base class

Looks reasonable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43424</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-12-03 16:48:15 -0800</bug_when>
    <thetext>Landed by Rob in r17991.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11618</attachid>
            <date>2006-11-23 02:40:36 -0800</date>
            <delta_ts>2006-11-23 02:40:36 -0800</delta_ts>
            <desc>here is another testcase executed onload. The expected results are from Batik (which I believe, are right) and the other results are filled in by the SVG UA onload.</desc>
            <filename>getTransformToElementTest.svg</filename>
            <type>image/svg+xml</type>
            <size>3188</size>
            <attacher name="Andreas Neumann">a.neumann</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJM
SUMgIi0vL1czQy8vRFREIFNWRyAxLjAvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9S
RUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIG9ubG9hZD0idGVzdGdldFRy
YW5zZm9ybVRvRWxlbWVudChldnQpIj4KICAgIDx0aXRsZT5UZXN0IG9mIFNWR0xvY2F0YWJsZS5n
ZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZWxlbWVudCk8L3RpdGxlPgoJCTxzY3JpcHQgdHlwZT0idGV4
dC9lY21hc2NyaXB0Ij4KCQkJPCFbQ0RBVEFbCgkJCQlmdW5jdGlvbiB0ZXN0Z2V0VHJhbnNmb3Jt
VG9FbGVtZW50KGV2dCkgewoJCQkJCXZhciByZWZlcmVuY2VFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlZmVyZW5jZVRleHQiKTsKCQkJCQl2YXIgbWF0ckdyb3VwMSA9IHJlZmVy
ZW5jZUVsZW1lbnQuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJncm91cDEiKSk7CgkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdEdyb3VwMSIp
LmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gbWF0ckdyb3VwMS5hKyIsIittYXRyR3JvdXAxLmIrIiwi
K21hdHJHcm91cDEuYysiLCIrbWF0ckdyb3VwMS5kKyIsIittYXRyR3JvdXAxLmUrIiwiK21hdHJH
cm91cDEuZjsKCQkJCQl2YXIgbWF0ckdyb3VwMiA9IHJlZmVyZW5jZUVsZW1lbnQuZ2V0VHJhbnNm
b3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cDIiKSk7CgkJCQkJZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdEdyb3VwMiIpLmZpcnN0Q2hpbGQubm9kZVZhbHVl
ID0gbWF0ckdyb3VwMi5hLnRvRml4ZWQoMykrIiwiK21hdHJHcm91cDIuYi50b0ZpeGVkKDMpKyIs
IittYXRyR3JvdXAyLmMudG9GaXhlZCgzKSsiLCIrbWF0ckdyb3VwMi5kLnRvRml4ZWQoMykrIiwi
K21hdHJHcm91cDIuZS50b0ZpeGVkKDMpKyIsIittYXRyR3JvdXAyLmYudG9GaXhlZCgzKTsKCQkJ
CQl2YXIgbWF0ckdyb3VwcmVkUmVjdCA9IHJlZmVyZW5jZUVsZW1lbnQuZ2V0VHJhbnNmb3JtVG9F
bGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWRSZWN0IikpOwoJCQkJCWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRyZWRSZWN0IikuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSBt
YXRyR3JvdXByZWRSZWN0LmEudG9GaXhlZCgzKSsiLCIrbWF0ckdyb3VwcmVkUmVjdC5iLnRvRml4
ZWQoMykrIiwiK21hdHJHcm91cHJlZFJlY3QuYy50b0ZpeGVkKDMpKyIsIittYXRyR3JvdXByZWRS
ZWN0LmQudG9GaXhlZCgzKSsiLCIrbWF0ckdyb3VwcmVkUmVjdC5lLnRvRml4ZWQoMykrIiwiK21h
dHJHcm91cHJlZFJlY3QuZi50b0ZpeGVkKDMpOwoJCQkJfQoJCQldXT4KCQk8L3NjcmlwdD4KCQk8
ZyBmb250LWZhbWlseT0ic2Fucy1zZXJpZiI+CgkJCTxnIGlkPSJncm91cDEiIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDE1LDE1KSI+CgkJCQk8dGV4dCBpZD0icmVmZXJlbmNlVGV4dCIgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoLTIwLC0yMCksc2NhbGUoMC41KSIgZm9udC1zaXplPSIzMCIgeD0iNTAiIHk9
IjE1MCIgZm9udC13ZWlnaHQ9ImJvbGQiPlRoaXMgd2lsbCB0ZXN0IHRoZSAuZ2V0VHJhbnNmb3Jt
VG9FbGVtZW50KGVsdCkgbWV0aG9kOjwvdGV4dD4KCQkJPC9nPgoJCQk8ZyBpZD0iZ3JvdXAyIiB0
cmFuc2Zvcm09InJvdGF0ZSg0NSkiPgoJCQkJPHJlY3QgaWQ9InJlZFJlY3QiIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDEwMCwwKSIgeD0iNTAiIHk9IjUwIiB3aWR0aD0iNzAiIGhlaWdodD0iMzAiIGZp
bGw9InJlZCIvPgoJCQk8L2c+CgkJCTxnIGlkPSJleHBlY3RlZFJlc3VsdHMiIGZvbnQtc2l6ZT0i
MTIiPgoJCQkJPHRleHQgeD0iMTQwIiB5PSIxMDAiIGZvbnQtd2VpZ2h0PSJib2xkIj5FeHBlY3Rl
ZCBSZXN1bHRzOjwvdGV4dD4KCQkJCTx0ZXh0IHg9IjE0MCIgeT0iMTIwIj4KCQkJCQk8dHNwYW4g
ZHk9IjAiIHg9IjE0MCI+Z2V0VHJhbnNmb3JtVG9FbGVtZW50KCkgZnJvbSAicmVmZXJlbmNlVGV4
dCIgdG8gImdyb3VwMSI6PC90c3Bhbj4KCQkJCQk8dHNwYW4gZHk9IjIwIiB4PSIxNDAiPjAuNSww
LDAsMC41LC0yMCwtMjA8L3RzcGFuPgoJCQkJCTx0c3BhbiBkeT0iMjUiIHg9IjE0MCI+Z2V0VHJh
bnNmb3JtVG9FbGVtZW50KCkgZnJvbSAicmVmZXJlbmNlVGV4dCIgdG8gImdyb3VwMiI6PC90c3Bh
bj4KCQkJCQk8dHNwYW4gZHk9IjIwIiB4PSIxNDAiPjAuMzU0LC0wLjM1NCwwLjM1NCwwLjM1NCwt
Ny4wNzEsMC4wMDA8L3RzcGFuPgoJCQkJCTx0c3BhbiBkeT0iMjUiIHg9IjE0MCI+Z2V0VHJhbnNm
b3JtVG9FbGVtZW50KCkgZnJvbSAicmVmZXJlbmNlVGV4dCIgdG8gInJlZFJlY3QiOjwvdHNwYW4+
CgkJCQkJPHRzcGFuIGR5PSIyMCIgeD0iMTQwIj4wLjM1NCwtMC4zNTQsMC4zNTQsMC4zNTQsLTEw
Ny4wNzEsMC4wMDA8L3RzcGFuPgoJCQkJPC90ZXh0PgoJCQk8L2c+CgkJCTxnIGlkPSJpbXBsZW1l
bnRlZFJlc3VsdHMiIGZvbnQtc2l6ZT0iMTIiPgoJCQkJPHRleHQgeD0iMTQwIiB5PSIyODAiIGZv
bnQtd2VpZ2h0PSJib2xkIj5SZXN1bHRzIG9mIHRoZSBjdXJyZW50IFNWRyBVQTo8L3RleHQ+CgkJ
CQk8dGV4dCB4PSIxNDAiIHk9IjMwMCI+CgkJCQkJPHRzcGFuIGR5PSIwIiB4PSIxNDAiPmdldFRy
YW5zZm9ybVRvRWxlbWVudCgpIGZyb20gInJlZmVyZW5jZVRleHQiIHRvICJncm91cDEiOjwvdHNw
YW4+CgkJCQkJPHRzcGFuIGR5PSIyMCIgeD0iMTQwIiBpZD0icmVzdWx0R3JvdXAxIj4gPC90c3Bh
bj4KCQkJCQk8dHNwYW4gZHk9IjI1IiB4PSIxNDAiPmdldFRyYW5zZm9ybVRvRWxlbWVudCgpIGZy
b20gInJlZmVyZW5jZVRleHQiIHRvICJncm91cDIiOjwvdHNwYW4+CgkJCQkJPHRzcGFuIGR5PSIy
MCIgeD0iMTQwIiBpZD0icmVzdWx0R3JvdXAyIj4gPC90c3Bhbj4KCQkJCQk8dHNwYW4gZHk9IjI1
IiB4PSIxNDAiPmdldFRyYW5zZm9ybVRvRWxlbWVudCgpIGZyb20gInJlZmVyZW5jZVRleHQiIHRv
ICJyZWRSZWN0Ijo8L3RzcGFuPgoJCQkJCTx0c3BhbiBkeT0iMjAiIHg9IjE0MCIgaWQ9InJlc3Vs
dHJlZFJlY3QiPiA8L3RzcGFuPgoJCQkJPC90ZXh0PgoJCQk8L2c+CgkJPC9nPgo8L3N2Zz4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11630</attachid>
            <date>2006-11-25 14:53:20 -0800</date>
            <delta_ts>2006-11-26 05:02:35 -0800</delta_ts>
            <desc>First attempt</desc>
            <filename>11667.diff</filename>
            <type>text/plain</type>
            <size>15115</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3ODc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTEtMjUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE2NjcKKyAgICAgICAgU1ZHOiBtZXRob2QgLmdldFRyYW5zZm9ybVRvRWxlbWVudChl
bHQpIGluIFNWR0xvY2F0YWJsZSBub3QgaW1wbGVtZW50ZWQKKworICAgICAgICAqIHN2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3Zn
OiBBZGRlZC4KKwogMjAwNi0xMS0yNCAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWl0ei4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2M4NmU3ZWRk
Y2FjZWM3Njc3MDJmZTM0MDg2YzYzMzc2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9F
bGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBLQ2FudmFzQ29udGFpbmVyIHtzdmd9IGF0ICgtMi41MCwx
NS41MCkgc2l6ZSAxMjIuNzF4MTk2LjYzCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAo
LTIuNTAsMTUuNTApIHNpemUgMjAuNTB4OSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgxNS4wMCwxNS4wMCl9XQorICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoNTAsMTUwKSBzaXplIDgwMHgzNgorICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMjgpIHNpemUgODJ4MzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLC0y
OCkgd2lkdGggODI6ICJQYXNzZWQiCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAoNDku
NTAsMTQxLjQyKSBzaXplIDcwLjcxeDcwLjcxIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0w
LjcxLDAuNzEpKSB0PSgwLjAwLDAuMDApfV0KKyAgICAgICAgS0NhbnZhc0l0ZW0ge3JlY3R9IGF0
ICg0OS41MCwxNDEuNDIpIHNpemUgNzAuNzF4NzAuNzEgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDAuMDApfV0gW2RhdGE9Ik01MC4wMCw1MC4wMEwxMjAu
MDAsNTAuMDBMMTIwLjAwLDgwLjAwTDUwLjAwLDgwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBCYXNpYy8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS1iYXNpYy5k
dGQiPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxlPSJiYXNpYyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayIgaWQ9InN2Zy1yb290IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICA8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFb
CisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciByZWZlcmVuY2VFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZVRleHQiKTsKKyAgICB2YXIgY3RtID0g
cmVmZXJlbmNlRWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImdyb3VwMSIpKTsKKyAgICAgICAgIGlmIChjdG0uYSA9PSAwLjUgJiYgY3RtLmIgPT0g
MCAmJiBjdG0uYyA9PSAwICYmIGN0bS5kID09IDAuNSAmJgorICAgICAgICAgICAgIGN0bS5lID09
IC0yMCAmJiBjdG0uZiA9PSAtMjApIHsKKyAgICAgICAgIGN0bSA9IHJlZmVyZW5jZUVsZW1lbnQu
Z2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cDIiKSk7
CisgICAgICAgICAgICAgaWYgKGN0bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9G
aXhlZCgzKSA9PSAtMC4zNTQgJiYKKyAgICAgICAgICAgICAgICAgY3RtLmMudG9GaXhlZCgzKSA9
PSAwLjM1NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09IDAuMzU0ICYmCisgICAgICAgICAgICAgICAg
IGN0bS5lLnRvRml4ZWQoMykgPT0gLTcuMDcxICYmIGN0bS5mID09IDAuMCkgeworICAgICAgICAg
ICAgICAgICBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVkUmVjdCIpKTsKKyAgICAgICAgICAgICAgICAgaWYgKGN0
bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9GaXhlZCgzKSA9PSAtMC4zNTQgJiYK
KyAgICAgICAgICAgICAgICAgICAgIGN0bS5jLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmQu
dG9GaXhlZCgzKSA9PSAwLjM1NCAmJgorICAgICAgICAgICAgICAgICAgICAgY3RtLmUudG9GaXhl
ZCgzKSA9PSAtMTA3LjA3MSAmJiBjdG0uZiA9PSAwLjApIHsKKyAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VUZXh0IikudGV4dENvbnRlbnQgPSAi
UGFzc2VkIjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgIF1dPjwvc2NyaXB0PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMSIgdHJh
bnNmb3JtPSJ0cmFuc2xhdGUoMTUsMTUpIj4KKyAgICAgICAgICAgICAgICA8dGV4dCBpZD0icmVm
ZXJlbmNlVGV4dCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwLC0yMCksc2NhbGUoMC41KSIgZm9u
dC1zaXplPSIzMCIgeD0iNTAiIHk9IjE1MCI+RmFpbGVkPC90ZXh0PgorICAgICAgICAgICAgPC9n
PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMiIgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj4KKyAg
ICAgICAgICAgICAgICA8cmVjdCBpZD0icmVkUmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAw
LDApIiB4PSI1MCIgeT0iNTAiIHdpZHRoPSI3MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIvPgor
ICAgICAgICAgICAgPC9nPgorPC9zdmc+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc4NzkpCisrKyBXZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA2LTExLTI1ICBSb2Ig
QnVpcyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NworICAgICAgICBTVkc6IG1ldGhvZCAuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGVsdCkgaW4gU1ZH
TG9jYXRhYmxlIG5vdCBpbXBsZW1lbnRlZAorCisgICAgICAgIEltcGxlbWVudCBnZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2Nh
dGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1U
b0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAo
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudCk6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudC5oOgorCiAyMDA2LTExLTI0ICBSb2IgQnVpcyAgPGJ1aXNAa2Rl
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6LgpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdM
b2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMjIgQEAgU1ZHTWF0cml4
KiBTVkdMb2NhdGFibGU6OmdldFNjcmVlbkNUTShjbwogICAgIHJldHVybiBjdG07CiB9CiAKK1NW
R01hdHJpeCogU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHTWF0cml4KiBz
dGFydGN0bSwgU1ZHRWxlbWVudCogdGFyZ2V0KQoreworICAgIFNWR01hdHJpeCogY3RtID0gU1ZH
U1ZHRWxlbWVudDo6Y3JlYXRlU1ZHTWF0cml4KCk7CisgICAgY3RtLT5tdWx0aXBseShzdGFydGN0
bSk7CisKKyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gc3ZnX2R5bmFtaWNfY2FzdCh0
YXJnZXQpOworICAgIGlmICh0YXJnZXRFbGVtZW50ICYmIHRhcmdldEVsZW1lbnQtPmlzU3R5bGVk
TG9jYXRhYmxlKCkpIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBkdW1teTsKKyAgICAgICAgUmVm
UHRyPFNWR01hdHJpeD4gdGFyZ2V0Q1RNID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudCo+KHRhcmdldEVsZW1lbnQpLT5nZXRDVE0oKTsKKyAgICAgICAgdGFyZ2V0Q1RNLmdl
dCgpLT5pbnZlcnNlKGR1bW15KTsKKyAgICAgICAgY3RtLT5wb3N0TXVsdGlwbHkodGFyZ2V0Q1RN
LmdldCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gY3RtOworfQorCiB9CiAKICNlbmRpZiAvLyBT
VkdfU1VQUE9SVApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgJKHJldmlzaW9uIDE3ODc5
KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU0LDYgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgRmxvYXRS
ZWN0IGdldEJCb3goY29uc3QgU1ZHU3R5bGVkRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgU1ZH
TWF0cml4KiBnZXRDVE0oY29uc3QgU1ZHRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgU1ZHTWF0
cml4KiBnZXRTY3JlZW5DVE0oY29uc3QgU1ZHRWxlbWVudCopOworICAgICAgICBzdGF0aWMgU1ZH
TWF0cml4KiBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHTWF0cml4KiBzdGFydGN0bSwgU1ZHRWxl
bWVudCogYm91bmQpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE3ODc5KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgRmxv
YXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OgogICAgIHJldHVybiBTVkdUcmFu
c2Zvcm1hYmxlOjpnZXRCQm94KHRoaXMpOwogfQogCi1TVkdNYXRyaXggKlNWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdAorU1ZHTWF0cml4KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBTVkdMb2NhdGFibGU6Omdl
dFRyYW5zZm9ybVRvRWxlbWVudChnZXRDVE0oKSwgZWxlbWVudCk7CiB9CiAKIHZvaWQgU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmF0dGFjaCgpCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdUZXh0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
VGV4dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1RleHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiwxMSBAQCBTVkdN
YXRyaXgqIFNWR1RleHRFbGVtZW50OjpnZXRDVE0oKSBjb25zCiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybWFibGU6OmdldENUTSh0aGlzKTsKIH0KIAorU1ZHTWF0cml4KiBTVkdUZXh0RWxlbWVudDo6
Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdAoreworICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmdldFRyYW5zZm9ybVRvRWxlbWVu
dChnZXRDVE0oKSwgZWxlbWVudCk7Cit9CisKIFJlbmRlck9iamVjdCogU1ZHVGV4dEVsZW1lbnQ6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQog
ewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdUZXh0KHRoaXMpOwpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgpIGNv
bnN0OwogICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCogZ2V0Q1RNKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRTY3JlZW5DVE0oKSBjb25zdDsKLSAgICAgICAgdmlydHVh
bCBTVkdNYXRyaXgqIGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0aW9u
Q29kZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgqIGdl
dFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
CiAgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHls
ZSkgeyByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7IH0KICAg
ICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3Jt
VG9FbGVtZW50LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1h
cmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQt
c3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRy
YW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10
eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVV
Z0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFRMWtsRVFWUjRuTzNkUytpbWMvL0E4Yy9Na0JoRApt
T25uRUJzWnM3SlFGQ1VMcDdLWVdNbENMS1VjaXZLWTJZd05SVGxGcHNTQ2tveG1OVElMRms0bEc1
dEJEdVVRZzV6bVlESitqUGt2Cm5paDVlUHpMdk9jcHI5ZnUvbHpkMS9mNkx0OWQ5MzFkUy9idjM3
OS9BQUFBQWtzUDlnVUFBQUQvSEFJRUFBRElDQkFBQUNBalFBQUEKZ0l3QUFRQUFNZ0lFQUFESUNC
QUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JB
QQpBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JB
QUFDQWpRQUFBZ0l3QUFRQUFNZ0lFCkFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JB
QUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0EKQVFBQU1nSUVBQURJQ0JB
QUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFB
QUNBagpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFB
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJCi9HTUNaTWVPSGZQRkYxOGM3TXNBQUlCL3RMODlRTFpz
MlRLclY2K2VKVXVXek5WWFh6MVhYSEhGbkhQT09mT3ZmLzFyZHU3YytYY3YKOTVjODlkUlRzN0N3
TUMrOTlOSkJXUjhBQVBpM0pmdjM3OS8vZDU5MC9mcjFjOGNkZDh5UFAvNDRoeHh5eUh6MjJXZHo3
cm5uenFtbgpuanJQUC8vODM3M2NYN0t3c0RBYk4yNmN5eSsvL0tDc0R3QUFIS0NmWUIxNTVKRy8r
WHpDQ1NmTXBaZGVPaSs4OE1KdjdvTDgrT09QCi8vSDdQLy84OC85ci9tZCsrYzZ5WmN0bTZkSi96
Qy9PQUFEZ2Y5SWgxVUtmZnZycEhIMzAwWFBVVVVmTm80OCtPai8vL1BOOCtlV1gKOCtxcnI4NlRU
ejQ1Ung5OTlNek1QUERBQTdOcTFhcDU3cm5uWnVYS2xYUFBQZmY4NmZ6MTExK2ZoeDkrZUxadjN6
NXIxcXlaZGV2Vwp6Y0xDd3J6Ly92dHp6ejMzekpvMWErYWpqejZhUFh2MlZGc0ZBQUQrd0FHOUpi
QnYzNzc1K09PUDU3Nzc3cHV0VzdmTy9mZmZQenQzCjdwenJycnR1MXE1ZE8rdldyWnM5ZS9iTWxp
MWJabWJtODg4L242ZWZmbnF1dlBMS2Vmenh4K2VrazA3NjAvbG5uMzAyZDk5OTl6enkKeUNPemRl
dlcyYlp0Mjl4Nzc3MnpkKy9ldWVDQ0MyYjkrdlZ6d3cwM3pMWFhYanU3ZHUyYUpVdVdITWp0QWdB
QS84VUJ2UU55NDQwMwp6bkhISFRmbm4zLytmUDMxMTdOOCtmS1ptWG5sbFZkbVlXRmgzbnJycmRt
eFk4ZTg5OTU3TXpPemZQbnllZU9OTithV1cyNloyMisvCmZhNjk5dG8vblcvY3VISDI3dDA3ZDkx
MTE4ek1yRnExYXQ1ODg4MTU0b2tuNW9namp2ZzFWRTQ3N2JSWldGZzRrRnNGQUFEK2dnTWEKSUE4
KytPQWNjc2p2bHpqc3NNUG01cHR2bnNzdXUyeE9Qdm5rMmJkdjM4ek1yRml4WWpadDJqUlhYWFhW
UFAzMDAvUE1NOC9NMldlZgovWWZ6ZDk5OWQ4NDk5OXk1N2JiYmZuUCs2NisvZms0NTVaVGZ6Sll1
WGVvT0NBQUFIR1Q1djdJLytPQ0R1ZmppaTJmZHVuVnozbm5uCi9lYllOOTk4TXhkZWVPRzgrZWFi
YythWlo4NUZGMTAwMzMvLy9SL096enp6ek44OVduZm56cDJ6c0xBd3I3MzIycTloQXdBQS9HODQK
SUFIeXk1T3V2dnZ1dTk4ZGUvbmxsMmZIamgzejAwOC96ZUxpNHJ6enpqdS9QZzNyblhmZW1hMWJ0
ODd4eHg4L216ZHZudVhMbDgvdQozYnYvY0w1Mjdkclp1blhyYk5pd1liNzk5dHZadm4zN1BQVFFR
M1BOTmRmTTd0MjdaL1BtelRNenMydlhydG0xYTlmczNyMzdRR3dYCkFBRDRpNVp0MkxCaHc5OTV3
bWVmZlhidXYvLysrZnJycjJmbnpwMnpaczJhT2ZiWVkzODlmdUtKSjg2bVRadm1zY2NlbTIrKytX
Yk8KT09PTWVmVFJSK2YwMDArZkk0NDRZbTY5OWRaWnRXclZiTnUyYlZhdlhqMlhYSExKZlBMSkov
OXh2bkxseWxsY1hKdzc3N3h6Tm03YwpPQjk4OE1IY2ROTk5jOG9wcDh6aGh4OCtOOTk4ODd6NDRv
dno5dHR2ejRjZmZqZ3pNMmVkZGRhc1dMSGk3OXd5QUFEd0Z4MlFGeEgrCk4vdjM3NS9GeGNVNTdM
RERadWJmN3dNNTlOQkRaOSsrZmJOczJiTDU2cXV2NXBoampwbGx5NWJOelB6aC9CZDc5dXlaeGNY
Rk9lYVkKWTM0elgxeGNuTDE3OTg1UlJ4MDFQL3p3dzYvckFRQUFCOGRCQ1JBQUFPQ2Z5YXZCQVFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
CkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSVBOL1R6N0IxdmtiUFdRQUFBQUFTVVZP
Uks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11635</attachid>
            <date>2006-11-26 05:02:35 -0800</date>
            <delta_ts>2006-11-26 07:02:51 -0800</delta_ts>
            <desc>Improved patch</desc>
            <filename>11667-2.diff</filename>
            <type>text/plain</type>
            <size>15173</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3ODc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTEtMjUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE2NjcKKyAgICAgICAgU1ZHOiBtZXRob2QgLmdldFRyYW5zZm9ybVRvRWxlbWVudChl
bHQpIGluIFNWR0xvY2F0YWJsZSBub3QgaW1wbGVtZW50ZWQKKworICAgICAgICAqIHN2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3Zn
OiBBZGRlZC4KKwogMjAwNi0xMS0yNCAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWl0ei4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2M4NmU3ZWRk
Y2FjZWM3Njc3MDJmZTM0MDg2YzYzMzc2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9F
bGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBLQ2FudmFzQ29udGFpbmVyIHtzdmd9IGF0ICgtMi41MCwx
NS41MCkgc2l6ZSAxMjIuNzF4MTk2LjYzCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAo
LTIuNTAsMTUuNTApIHNpemUgMjAuNTB4OSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgxNS4wMCwxNS4wMCl9XQorICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoNTAsMTUwKSBzaXplIDgwMHgzNgorICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMjgpIHNpemUgODJ4MzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLC0y
OCkgd2lkdGggODI6ICJQYXNzZWQiCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAoNDku
NTAsMTQxLjQyKSBzaXplIDcwLjcxeDcwLjcxIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0w
LjcxLDAuNzEpKSB0PSgwLjAwLDAuMDApfV0KKyAgICAgICAgS0NhbnZhc0l0ZW0ge3JlY3R9IGF0
ICg0OS41MCwxNDEuNDIpIHNpemUgNzAuNzF4NzAuNzEgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDAuMDApfV0gW2RhdGE9Ik01MC4wMCw1MC4wMEwxMjAu
MDAsNTAuMDBMMTIwLjAwLDgwLjAwTDUwLjAwLDgwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBCYXNpYy8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS1iYXNpYy5k
dGQiPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxlPSJiYXNpYyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayIgaWQ9InN2Zy1yb290IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICA8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFb
CisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciByZWZlcmVuY2VFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZVRleHQiKTsKKyAgICB2YXIgY3RtID0g
cmVmZXJlbmNlRWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImdyb3VwMSIpKTsKKyAgICAgICAgIGlmIChjdG0uYSA9PSAwLjUgJiYgY3RtLmIgPT0g
MCAmJiBjdG0uYyA9PSAwICYmIGN0bS5kID09IDAuNSAmJgorICAgICAgICAgICAgIGN0bS5lID09
IC0yMCAmJiBjdG0uZiA9PSAtMjApIHsKKyAgICAgICAgIGN0bSA9IHJlZmVyZW5jZUVsZW1lbnQu
Z2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cDIiKSk7
CisgICAgICAgICAgICAgaWYgKGN0bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9G
aXhlZCgzKSA9PSAtMC4zNTQgJiYKKyAgICAgICAgICAgICAgICAgY3RtLmMudG9GaXhlZCgzKSA9
PSAwLjM1NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09IDAuMzU0ICYmCisgICAgICAgICAgICAgICAg
IGN0bS5lLnRvRml4ZWQoMykgPT0gLTcuMDcxICYmIGN0bS5mID09IDAuMCkgeworICAgICAgICAg
ICAgICAgICBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVkUmVjdCIpKTsKKyAgICAgICAgICAgICAgICAgaWYgKGN0
bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9GaXhlZCgzKSA9PSAtMC4zNTQgJiYK
KyAgICAgICAgICAgICAgICAgICAgIGN0bS5jLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmQu
dG9GaXhlZCgzKSA9PSAwLjM1NCAmJgorICAgICAgICAgICAgICAgICAgICAgY3RtLmUudG9GaXhl
ZCgzKSA9PSAtMTA3LjA3MSAmJiBjdG0uZiA9PSAwLjApIHsKKyAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VUZXh0IikudGV4dENvbnRlbnQgPSAi
UGFzc2VkIjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgIF1dPjwvc2NyaXB0PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMSIgdHJh
bnNmb3JtPSJ0cmFuc2xhdGUoMTUsMTUpIj4KKyAgICAgICAgICAgICAgICA8dGV4dCBpZD0icmVm
ZXJlbmNlVGV4dCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwLC0yMCksc2NhbGUoMC41KSIgZm9u
dC1zaXplPSIzMCIgeD0iNTAiIHk9IjE1MCI+RmFpbGVkPC90ZXh0PgorICAgICAgICAgICAgPC9n
PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMiIgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj4KKyAg
ICAgICAgICAgICAgICA8cmVjdCBpZD0icmVkUmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAw
LDApIiB4PSI1MCIgeT0iNTAiIHdpZHRoPSI3MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIvPgor
ICAgICAgICAgICAgPC9nPgorPC9zdmc+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc4NzkpCisrKyBXZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA2LTExLTI1ICBSb2Ig
QnVpcyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NworICAgICAgICBTVkc6IG1ldGhvZCAuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGVsdCkgaW4gU1ZH
TG9jYXRhYmxlIG5vdCBpbXBsZW1lbnRlZAorCisgICAgICAgIEltcGxlbWVudCBnZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2Nh
dGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1U
b0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAo
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudCk6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudC5oOgorCiAyMDA2LTExLTI0ICBSb2IgQnVpcyAgPGJ1aXNAa2Rl
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6LgpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdM
b2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMjMgQEAgU1ZHTWF0cml4
KiBTVkdMb2NhdGFibGU6OmdldFNjcmVlbkNUTShjbwogICAgIHJldHVybiBjdG07CiB9CiAKK1NW
R01hdHJpeCogU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHTWF0cml4KiBz
dGFydGN0bSwgU1ZHRWxlbWVudCogdGFyZ2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBT
VkdNYXRyaXgqIGN0bSA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR01hdHJpeCgpOworICAgIGN0
bS0+bXVsdGlwbHkoc3RhcnRjdG0pOworCisgICAgU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9
IHN2Z19keW5hbWljX2Nhc3QodGFyZ2V0KTsKKyAgICBpZiAodGFyZ2V0RWxlbWVudCAmJiB0YXJn
ZXRFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKSB7CisgICAgICAgIFJlZlB0cjxTVkdNYXRy
aXg+IHRhcmdldENUTSA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQqPih0
YXJnZXRFbGVtZW50KS0+Z2V0Q1RNKCk7CisgICAgICAgIHRhcmdldENUTS5nZXQoKS0+aW52ZXJz
ZShlYyk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiBjdG07CisgICAgICAg
IGN0bS0+cG9zdE11bHRpcGx5KHRhcmdldENUTS5nZXQoKSk7CisgICAgfQorCisgICAgcmV0dXJu
IGN0bTsKK30KKwogfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0xvY2F0YWJsZS5oCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xv
Y2F0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBnZXRCQm94KGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnQqKTsKICAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0Q1RNKGNvbnN0IFNWR0VsZW1l
bnQqKTsKICAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0U2NyZWVuQ1RNKGNvbnN0IFNWR0Vs
ZW1lbnQqKTsKKyAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0VHJhbnNmb3JtVG9FbGVtZW50
KFNWR01hdHJpeCogc3RhcnRjdG0sIFNWR0VsZW1lbnQqIGJvdW5kLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAkocmV2aXNpb24g
MTc4NzkpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsOSBAQCBGbG9hdFJlY3QgU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6Omdl
dEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeCAqU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0CitTVkdNYXRyaXgqIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpnZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZTo6Z2V0VHJhbnNmb3Jt
VG9FbGVtZW50KGdldENUTSgpLCBlbGVtZW50LCBlYyk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQ6OmF0dGFjaCgpCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
ZXh0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiwxMSBAQCBTVkdNYXRyaXgq
IFNWR1RleHRFbGVtZW50OjpnZXRDVE0oKSBjb25zCiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFi
bGU6OmdldENUTSh0aGlzKTsKIH0KIAorU1ZHTWF0cml4KiBTVkdUZXh0RWxlbWVudDo6Z2V0VHJh
bnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAoreworICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmdldFRyYW5zZm9ybVRvRWxlbWVudChn
ZXRDVE0oKSwgZWxlbWVudCwgZWMpOworfQorCiBSZW5kZXJPYmplY3QqIFNWR1RleHRFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkK
IHsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHVGV4dCh0aGlzKTsKSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkocmV2aXNpb24gMTc4NzkpCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgqIGdldENUTSgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIFNWR01hdHJpeCogZ2V0U2NyZWVuQ1RNKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgU1ZHTWF0cml4KiBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBn
ZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
IAogICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5
bGUpIHsgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyB9CiAg
ICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9y
bVRvRWxlbWVudC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRU
cmFuc2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUt
dHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhF
VWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBUTFrbEVRVlI0bk8zZFMraW1jLy9BOGMvTWtCaEQK
bU9ubkVCc1pzN0pRRkNVTHA3S1lXTWxDTEtVY2l2S1kyWXdOUlRsRnBzU0Nrb3htTlRJTEZrNGxH
NXRCRHVVUWc1em1ZREoralBrdgpuaWg1ZVB6THZPY3ByOWZ1L2x6ZDEvZjZMdDlkOTMxZFMvYnYz
NzkvQUFBQUFrc1A5Z1VBQUFEL0hBSUVBQURJQ0JBQUFDQWpRQUFBCmdJd0FBUUFBTWdJRUFBRElD
QkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNC
QUEKQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNC
QUFBQ0FqUUFBQWdJd0FBUUFBTWdJRQpBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNC
QUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBCkFRQUFNZ0lFQUFESUNC
QUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JB
QUFDQWoKUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JB
QUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESQovR01DWk1lT0hmUEZGMThjN01zQUFJQi90TDg5UUxa
czJUS3JWNitlSlV1V3pOVlhYejFYWEhIRm5IUE9PZk92Zi8xcmR1N2MrWGN2Cjk1Yzg5ZFJUczdD
d01DKzk5TkpCV1I4QUFQaTNKZnYzNzkvL2Q1OTAvZnIxYzhjZGQ4eVBQLzQ0aHh4eXlIejIyV2R6
N3JubnpxbW4KbmpyUFAvLzgzNzNjWDdLd3NEQWJOMjZjeXkrLy9LQ3NEd0FBSEtDZllCMTU1Skcv
K1h6Q0NTZk1wWmRlT2krODhNSnY3b0w4K09PUAovL0g3UC8vODgvOXIvbWQrK2M2eVpjdG02ZEov
ekMvT0FBRGdmOUloMVVLZmZ2cnBISDMwMFhQVVVVZk5vNDgrT2ovLy9QTjgrZVdYCjgrcXJyODZU
VHo0NVJ4OTk5TXpNUFBEQUE3TnExYXA1N3Jublp1WEtsWFBQUGZmODZmejExMStmaHg5K2VMWnYz
ejVyMXF5WmRldlcKemNMQ3dyei8vdnR6enozM3pKbzFhK2Fqano2YVBYdjJWRnNGQUFEK3dBRzlK
YkJ2Mzc3NStPT1A1Nzc3N3B1dFc3Zk8vZmZmUHp0Mwo3cHpycnJ0dTFxNWRPK3ZXclpzOWUvYk1s
aTFiWm1ibTg4OC9uNmVmZm5xdXZQTEtlZnp4eCtla2swNzYwL2xubjMwMmQ5OTk5enp5CnlDT3pk
ZXZXMmJadDI5eDc3NzJ6ZCsvZXVlQ0NDMmI5K3ZWend3MDN6TFhYWGp1N2R1MmFKVXVXSE1qdEFn
QUEvOFVCdlFOeTQ0MDMKem5ISEhUZm5uMy8rZlAzMTE3TjgrZktabVhubGxWZG1ZV0ZoM25ycnJk
bXhZOGU4OTk1N016T3pmUG55ZWVPTk4rYVdXMjZaMjIrLwpmYTY5OXRvL25XL2N1SEgyN3QwN2Q5
MTExOHpNckZxMWF0NTg4ODE1NG9rbjVvZ2pqdmcxVkU0NzdiUlpXRmc0a0ZzRkFBRCtnZ01hCklB
OCsrT0FjY3Nqdmx6anNzTVBtNXB0dm5zc3V1MnhPUHZuazJiZHYzOHpNckZpeFlqWnQyalJYWFhY
VlBQMzAwL1BNTTgvTTJXZWYKL1lmemQ5OTlkODQ5OTl5NTdiYmJmblArNjYrL2ZrNDU1WlRmekpZ
dVhlb09DQUFBSEdUNXY3SS8rT0NEdWZqaWkyZmR1blZ6M25ubgovZWJZTjk5OE14ZGVlT0c4K2Vh
YmMrYVpaODVGRjEwMDMzLy8vUi9Penp6enpOODlXbmZuenAyenNMQXdyNzMyMnE5aEF3QUEvRzg0
CklBSHl5NU91dnZ2dXU5OGRlL25sbDJmSGpoM3owMDgvemVMaTRyenp6anUvUGczcm5YZmVtYTFi
dDg3eHh4OC9temR2bnVYTGw4L3UKM2J2L2NMNTI3ZHJadW5YcmJOaXdZYjc5OXR2WnZuMzdQUFRR
UTNQTk5kZk03dDI3Wi9QbXpUTXpzMnZYcnRtMWE5ZnMzcjM3UUd3WApBQUQ0aTVadDJMQmh3OTk1
d21lZmZYYnV2Ly8rK2ZycnIyZm56cDJ6WnMyYU9mYllZMzg5ZnVLSko4Nm1UWnZtc2NjZW0yKysr
V2JPCk9PT01lZlRSUitmMDAwK2ZJNDQ0WW02OTlkWlp0V3JWYk51MmJWYXZYajJYWEhMSmZQTEpK
Lzl4dm5MbHlsbGNYSnc3Nzd4ek5tN2MKT0I5ODhNSGNkTk5OYzhvcHA4emhoeDgrTjk5ODg3ejQ0
b3Z6OXR0dno0Y2Zmamd6TTJlZGRkYXNXTEhpNzl3eUFBRHdGeDJRRnhIKwpOL3YzNzUvRnhjVTU3
TEREWnViZjd3TTU5TkJEWjkrK2ZiTnMyYkw1NnF1djVwaGpqcGxseTViTnpQemgvQmQ3OXV5Wnhj
WEZPZWFZClkzNHpYMXhjbkwxNzk4NVJSeDAxUC96d3c2L3JBUUFBQjhkQkNSQUFBT0NmeWF2QkFR
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFB
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFB
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkK
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlQTi9UejdCMXZrYlBXUUFBQUFBU1VW
T1JLNUNZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11636</attachid>
            <date>2006-11-26 07:02:51 -0800</date>
            <delta_ts>2006-11-28 01:39:45 -0800</delta_ts>
            <desc>Improved patch</desc>
            <filename>11667-3.diff</filename>
            <type>text/plain</type>
            <size>15284</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3ODgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTEtMjUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE2NjcKKyAgICAgICAgU1ZHOiBtZXRob2QgLmdldFRyYW5zZm9ybVRvRWxlbWVudChl
bHQpIGluIFNWR0xvY2F0YWJsZSBub3QgaW1wbGVtZW50ZWQKKworICAgICAgICAqIHN2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3Zn
OiBBZGRlZC4KKwogMjAwNi0xMS0yNCAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWl0ei4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2M4NmU3ZWRk
Y2FjZWM3Njc3MDJmZTM0MDg2YzYzMzc2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9F
bGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgICBLQ2FudmFzQ29udGFpbmVyIHtzdmd9IGF0ICgtMi41MCwx
NS41MCkgc2l6ZSAxMjIuNzF4MTk2LjYzCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAo
LTIuNTAsMTUuNTApIHNpemUgMjAuNTB4OSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgxNS4wMCwxNS4wMCl9XQorICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBh
dCAoNTAsMTUwKSBzaXplIDgwMHgzNgorICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwtMjgpIHNpemUgODJ4MzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLC0y
OCkgd2lkdGggODI6ICJQYXNzZWQiCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAoNDku
NTAsMTQxLjQyKSBzaXplIDcwLjcxeDcwLjcxIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0w
LjcxLDAuNzEpKSB0PSgwLjAwLDAuMDApfV0KKyAgICAgICAgS0NhbnZhc0l0ZW0ge3JlY3R9IGF0
ICg0OS41MCwxNDEuNDIpIHNpemUgNzAuNzF4NzAuNzEgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMTAwLjAwLDAuMDApfV0gW2RhdGE9Ik01MC4wMCw1MC4wMEwxMjAu
MDAsNTAuMDBMMTIwLjAwLDgwLjAwTDUwLjAwLDgwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBCYXNpYy8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS1iYXNpYy5k
dGQiPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxlPSJiYXNpYyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayIgaWQ9InN2Zy1yb290IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICA8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFb
CisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciByZWZlcmVuY2VFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZVRleHQiKTsKKyAgICB2YXIgY3RtID0g
cmVmZXJlbmNlRWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImdyb3VwMSIpKTsKKyAgICAgICAgIGlmIChjdG0uYSA9PSAwLjUgJiYgY3RtLmIgPT0g
MCAmJiBjdG0uYyA9PSAwICYmIGN0bS5kID09IDAuNSAmJgorICAgICAgICAgICAgIGN0bS5lID09
IC0yMCAmJiBjdG0uZiA9PSAtMjApIHsKKyAgICAgICAgIGN0bSA9IHJlZmVyZW5jZUVsZW1lbnQu
Z2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91cDIiKSk7
CisgICAgICAgICAgICAgaWYgKGN0bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9G
aXhlZCgzKSA9PSAtMC4zNTQgJiYKKyAgICAgICAgICAgICAgICAgY3RtLmMudG9GaXhlZCgzKSA9
PSAwLjM1NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09IDAuMzU0ICYmCisgICAgICAgICAgICAgICAg
IGN0bS5lLnRvRml4ZWQoMykgPT0gLTcuMDcxICYmIGN0bS5mID09IDAuMCkgeworICAgICAgICAg
ICAgICAgICBjdG0gPSByZWZlcmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVkUmVjdCIpKTsKKyAgICAgICAgICAgICAgICAgaWYgKGN0
bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9GaXhlZCgzKSA9PSAtMC4zNTQgJiYK
KyAgICAgICAgICAgICAgICAgICAgIGN0bS5jLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmQu
dG9GaXhlZCgzKSA9PSAwLjM1NCAmJgorICAgICAgICAgICAgICAgICAgICAgY3RtLmUudG9GaXhl
ZCgzKSA9PSAtMTA3LjA3MSAmJiBjdG0uZiA9PSAwLjApIHsKKyAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VUZXh0IikudGV4dENvbnRlbnQgPSAi
UGFzc2VkIjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgIF1dPjwvc2NyaXB0PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMSIgdHJh
bnNmb3JtPSJ0cmFuc2xhdGUoMTUsMTUpIj4KKyAgICAgICAgICAgICAgICA8dGV4dCBpZD0icmVm
ZXJlbmNlVGV4dCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwLC0yMCksc2NhbGUoMC41KSIgZm9u
dC1zaXplPSIzMCIgeD0iNTAiIHk9IjE1MCI+RmFpbGVkPC90ZXh0PgorICAgICAgICAgICAgPC9n
PgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMiIgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj4KKyAg
ICAgICAgICAgICAgICA8cmVjdCBpZD0icmVkUmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAw
LDApIiB4PSI1MCIgeT0iNTAiIHdpZHRoPSI3MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIvPgor
ICAgICAgICAgICAgPC9nPgorPC9zdmc+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc4ODApCisrKyBXZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA2LTExLTI2ICBSb2Ig
QnVpcyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY2
NworICAgICAgICBTVkc6IG1ldGhvZCAuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGVsdCkgaW4gU1ZH
TG9jYXRhYmxlIG5vdCBpbXBsZW1lbnRlZAorCisgICAgICAgIEltcGxlbWVudCBnZXRUcmFuc2Zv
cm1Ub0VsZW1lbnQgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2Nh
dGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1U
b0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGUuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAo
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudCk6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudC5oOgorCiAyMDA2LTExLTI2ICBTaW1vbiBIYXVzbWFubiAgPGhh
dXNtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdMb2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsMjMg
QEAgU1ZHTWF0cml4KiBTVkdMb2NhdGFibGU6OmdldFNjcmVlbkNUTShjbwogICAgIHJldHVybiBj
dG07CiB9CiAKK1NWR01hdHJpeCogU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQo
U1ZHTWF0cml4KiBzdGFydGN0bSwgU1ZHRWxlbWVudCogdGFyZ2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBTVkdNYXRyaXgqIGN0bSA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR01hdHJp
eCgpOworICAgIGN0bS0+bXVsdGlwbHkoc3RhcnRjdG0pOworCisgICAgU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCA9IHN2Z19keW5hbWljX2Nhc3QodGFyZ2V0KTsKKyAgICBpZiAodGFyZ2V0RWxl
bWVudCAmJiB0YXJnZXRFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKSB7CisgICAgICAgIFJl
ZlB0cjxTVkdNYXRyaXg+IHRhcmdldENUTSA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZExvY2F0YWJs
ZUVsZW1lbnQqPih0YXJnZXRFbGVtZW50KS0+Z2V0Q1RNKCk7CisgICAgICAgIHRhcmdldENUTS5n
ZXQoKS0+aW52ZXJzZShlYyk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiBj
dG07CisgICAgICAgIGN0bS0+cG9zdE11bHRpcGx5KHRhcmdldENUTS5nZXQoKSk7CisgICAgfQor
CisgICAgcmV0dXJuIGN0bTsKK30KKwogfQogCiAjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCShyZXZpc2lvbiAxNzg3OSkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBnZXRCQm94KGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqKTsKICAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0Q1RNKGNv
bnN0IFNWR0VsZW1lbnQqKTsKICAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0U2NyZWVuQ1RN
KGNvbnN0IFNWR0VsZW1lbnQqKTsKKyAgICAgICAgc3RhdGljIFNWR01hdHJpeCogZ2V0VHJhbnNm
b3JtVG9FbGVtZW50KFNWR01hdHJpeCogc3RhcnRjdG0sIFNWR0VsZW1lbnQqIGJvdW5kLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cAkocmV2aXNpb24gMTc4NzkpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsMTAgQEAgRmxv
YXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OgogICAgIHJldHVybiBTVkdUcmFu
c2Zvcm1hYmxlOjpnZXRCQm94KHRoaXMpOwogfQogCi1TVkdNYXRyaXggKlNWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdAorU1ZHTWF0cml4KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIFJlZlB0cjxTVkdNYXRyaXg+IHN0
YXJ0Y3RtKGdldENUTSgpKTsKKyAgICByZXR1cm4gU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1U
b0VsZW1lbnQoc3RhcnRjdG0uZ2V0KCksIGVsZW1lbnQsIGVjKTsKIH0KIAogdm9pZCBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6YXR0YWNoKCkKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1RleHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
ZXh0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE3ODc5KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
VGV4dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDEyIEBAIFNWR01h
dHJpeCogU1ZHVGV4dEVsZW1lbnQ6OmdldENUTSgpIGNvbnMKICAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtYWJsZTo6Z2V0Q1RNKHRoaXMpOwogfQogCitTVkdNYXRyaXgqIFNWR1RleHRFbGVtZW50Ojpn
ZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpIGNvbnN0Cit7CisgICAgUmVmUHRyPFNWR01hdHJpeD4gc3RhcnRjdG0oZ2V0Q1RNKCkpOwor
ICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmdldFRyYW5zZm9ybVRvRWxlbWVudChzdGFydGN0bS5n
ZXQoKSwgZWxlbWVudCwgZWMpOworfQorCiBSZW5kZXJPYmplY3QqIFNWR1RleHRFbGVtZW50Ojpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKIHsK
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHVGV4dCh0aGlzKTsKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkocmV2aXNpb24gMTc4NzkpCisrKyBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgqIGdldENUTSgpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIFNWR01hdHJpeCogZ2V0U2NyZWVuQ1RNKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwg
U1ZHTWF0cml4KiBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRU
cmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUp
IHsgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyB9CiAgICAg
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRv
RWxlbWVudC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJr
ZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFu
c2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlw
ZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBUTFrbEVRVlI0bk8zZFMraW1jLy9BOGMvTWtCaEQKbU9u
bkVCc1pzN0pRRkNVTHA3S1lXTWxDTEtVY2l2S1kyWXdOUlRsRnBzU0Nrb3htTlRJTEZrNGxHNXRC
RHVVUWc1em1ZREoralBrdgpuaWg1ZVB6THZPY3ByOWZ1L2x6ZDEvZjZMdDlkOTMxZFMvYnYzNzkv
QUFBQUFrc1A5Z1VBQUFEL0hBSUVBQURJQ0JBQUFDQWpRQUFBCmdJd0FBUUFBTWdJRUFBRElDQkFB
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUEK
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0FBUUFBTWdJRQpBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBCkFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFD
QWoKUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFD
QWpRQUFBZ0l3QUFRQUFNZ0lFQUFESQovR01DWk1lT0hmUEZGMThjN01zQUFJQi90TDg5UUxaczJU
S3JWNitlSlV1V3pOVlhYejFYWEhIRm5IUE9PZk92Zi8xcmR1N2MrWGN2Cjk1Yzg5ZFJUczdDd01D
Kzk5TkpCV1I4QUFQaTNKZnYzNzkvL2Q1OTAvZnIxYzhjZGQ4eVBQLzQ0aHh4eXlIejIyV2R6N3Ju
bnpxbW4KbmpyUFAvLzgzNzNjWDdLd3NEQWJOMjZjeXkrLy9LQ3NEd0FBSEtDZllCMTU1SkcvK1h6
Q0NTZk1wWmRlT2krODhNSnY3b0w4K09PUAovL0g3UC8vODgvOXIvbWQrK2M2eVpjdG02ZEovekMv
T0FBRGdmOUloMVVLZmZ2cnBISDMwMFhQVVVVZk5vNDgrT2ovLy9QTjgrZVdYCjgrcXJyODZUVHo0
NVJ4OTk5TXpNUFBEQUE3TnExYXA1N3Jublp1WEtsWFBQUGZmODZmejExMStmaHg5K2VMWnYzejVy
MXF5WmRldlcKemNMQ3dyei8vdnR6enozM3pKbzFhK2Fqano2YVBYdjJWRnNGQUFEK3dBRzlKYkJ2
Mzc3NStPT1A1Nzc3N3B1dFc3Zk8vZmZmUHp0Mwo3cHpycnJ0dTFxNWRPK3ZXclpzOWUvYk1saTFi
Wm1ibTg4OC9uNmVmZm5xdXZQTEtlZnp4eCtla2swNzYwL2xubjMwMmQ5OTk5enp5CnlDT3pkZXZX
MmJadDI5eDc3NzJ6ZCsvZXVlQ0NDMmI5K3ZWend3MDN6TFhYWGp1N2R1MmFKVXVXSE1qdEFnQUEv
OFVCdlFOeTQ0MDMKem5ISEhUZm5uMy8rZlAzMTE3TjgrZktabVhubGxWZG1ZV0ZoM25ycnJkbXhZ
OGU4OTk1N016T3pmUG55ZWVPTk4rYVdXMjZaMjIrLwpmYTY5OXRvL25XL2N1SEgyN3QwN2Q5MTEx
OHpNckZxMWF0NTg4ODE1NG9rbjVvZ2pqdmcxVkU0NzdiUlpXRmc0a0ZzRkFBRCtnZ01hCklBOCsr
T0FjY3Nqdmx6anNzTVBtNXB0dm5zc3V1MnhPUHZuazJiZHYzOHpNckZpeFlqWnQyalJYWFhYVlBQ
MzAwL1BNTTgvTTJXZWYKL1lmemQ5OTlkODQ5OTl5NTdiYmJmblArNjYrL2ZrNDU1WlRmekpZdVhl
b09DQUFBSEdUNXY3SS8rT0NEdWZqaWkyZmR1blZ6M25ubgovZWJZTjk5OE14ZGVlT0c4K2VhYmMr
YVpaODVGRjEwMDMzLy8vUi9Penp6enpOODlXbmZuenAyenNMQXdyNzMyMnE5aEF3QUEvRzg0CklB
SHl5NU91dnZ2dXU5OGRlL25sbDJmSGpoM3owMDgvemVMaTRyenp6anUvUGczcm5YZmVtYTFidDg3
eHh4OC9temR2bnVYTGw4L3UKM2J2L2NMNTI3ZHJadW5YcmJOaXdZYjc5OXR2WnZuMzdQUFRRUTNQ
Tk5kZk03dDI3Wi9QbXpUTXpzMnZYcnRtMWE5ZnMzcjM3UUd3WApBQUQ0aTVadDJMQmh3OTk1d21l
ZmZYYnV2Ly8rK2ZycnIyZm56cDJ6WnMyYU9mYllZMzg5ZnVLSko4Nm1UWnZtc2NjZW0yKysrV2JP
Ck9PT01lZlRSUitmMDAwK2ZJNDQ0WW02OTlkWlp0V3JWYk51MmJWYXZYajJYWEhMSmZQTEpKLzl4
dm5MbHlsbGNYSnc3Nzd4ek5tN2MKT0I5ODhNSGNkTk5OYzhvcHA4emhoeDgrTjk5ODg3ejQ0b3Z6
OXR0dno0Y2Zmamd6TTJlZGRkYXNXTEhpNzl3eUFBRHdGeDJRRnhIKwpOL3YzNzUvRnhjVTU3TERE
WnViZjd3TTU5TkJEWjkrK2ZiTnMyYkw1NnF1djVwaGpqcGxseTViTnpQemgvQmQ3OXV5WnhjWEZP
ZWFZClkzNHpYMXhjbkwxNzk4NVJSeDAxUC96d3c2L3JBUUFBQjhkQkNSQUFBT0NmeWF2QkFRQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEK
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0kKRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lF
QUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVB
QUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlQTi9UejdCMXZrYlBXUUFBQUFBU1VWT1JL
NUNZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11640</attachid>
            <date>2006-11-27 03:27:49 -0800</date>
            <delta_ts>2006-11-28 01:39:45 -0800</delta_ts>
            <desc>Improved testcase</desc>
            <filename>11667-4.diff</filename>
            <type>text/plain</type>
            <size>15574</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3ODgyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTEtMjUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE2NjcKKyAgICAgICAgU1ZHOiBtZXRob2QgLmdldFRyYW5zZm9ybVRvRWxlbWVudChl
bHQpIGluIFNWR0xvY2F0YWJsZSBub3QgaW1wbGVtZW50ZWQKKworICAgICAgICAqIHN2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3Zn
OiBBZGRlZC4KKwogMjAwNi0xMS0yNCAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWl0ei4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1l
bnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2M4NmU3ZWRk
Y2FjZWM3Njc3MDJmZTM0MDg2YzYzMzc2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9F
bGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgS0NhbnZhc0NvbnRhaW5lciB7c3ZnfSBhdCAoLTIuNTAs
MTUuNTApIHNpemUgMTIyLjcxeDE5Ni42MworICAgICAgS0NhbnZhc0NvbnRhaW5lciB7Z30gYXQg
KDAsMCkgc2l6ZSAweDAgW3RyYW5zZm9ybT17bT0oKDAuMDAsMC4wMCkoMC4wMCwwLjAwKSkgdD0o
MC4wMCwwLjAwKX1dCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAoLTIuNTAsMTUuNTAp
IHNpemUgMjAuNTB4OSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgx
NS4wMCwxNS4wMCl9XQorICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTAsMTUwKSBz
aXplIDgwMHgzNgorICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwt
MjgpIHNpemUgODJ4MzYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLC0yOCkgd2lkdGggODI6
ICJQYXNzZWQiCisgICAgICBLQ2FudmFzQ29udGFpbmVyIHtnfSBhdCAoNDkuNTAsMTQxLjQyKSBz
aXplIDcwLjcxeDcwLjcxIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0
PSgwLjAwLDAuMDApfV0KKyAgICAgICAgS0NhbnZhc0l0ZW0ge3JlY3R9IGF0ICg0OS41MCwxNDEu
NDIpIHNpemUgNzAuNzF4NzAuNzEgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAw
KSkgdD0oMTAwLjAwLDAuMDApfV0gW2RhdGE9Ik01MC4wMCw1MC4wMEwxMjAuMDAsNTAuMDBMMTIw
LjAwLDgwLjAwTDUwLjAwLDgwLjAwIl0KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0
VHJhbnNmb3JtVG9FbGVtZW50LnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURP
Q1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMSBCYXNpYy8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS1iYXNpYy5kdGQiPgorPHN2ZyB2
ZXJzaW9uPSIxLjEiIGJhc2VQcm9maWxlPSJiYXNpYyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgaWQ9
InN2Zy1yb290IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICA8c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+PCFbQ0RBVEFbCisgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICB2YXIgcmVmZXJlbmNlRWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VUZXh0Iik7CisgICAgICAgIHZhciBjdG0gPSByZWZl
cmVuY2VFbGVtZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ3JvdXAxIikpOworICAgICAgICBpZiAoY3RtLmEgPT0gMC41ICYmIGN0bS5iID09IDAgJiYg
Y3RtLmMgPT0gMCAmJiBjdG0uZCA9PSAwLjUgJiYKKyAgICAgICAgICAgIGN0bS5lID09IC0yMCAm
JiBjdG0uZiA9PSAtMjApIHsKKyAgICAgICAgY3RtID0gcmVmZXJlbmNlRWxlbWVudC5nZXRUcmFu
c2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyb3VwMiIpKTsKKyAgICAg
ICAgaWYgKGN0bS5hLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmIudG9GaXhlZCgzKSA9PSAt
MC4zNTQgJiYKKyAgICAgICAgICAgIGN0bS5jLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmQu
dG9GaXhlZCgzKSA9PSAwLjM1NCAmJgorICAgICAgICAgICAgY3RtLmUudG9GaXhlZCgzKSA9PSAt
Ny4wNzEgJiYgY3RtLmYgPT0gMC4wKSB7CisgICAgICAgICAgICBjdG0gPSByZWZlcmVuY2VFbGVt
ZW50LmdldFRyYW5zZm9ybVRvRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVkUmVj
dCIpKTsKKyAgICAgICAgICAgIGlmIChjdG0uYS50b0ZpeGVkKDMpID09IDAuMzU0ICYmIGN0bS5i
LnRvRml4ZWQoMykgPT0gLTAuMzU0ICYmCisgICAgICAgICAgICAgICAgY3RtLmMudG9GaXhlZCgz
KSA9PSAwLjM1NCAmJiBjdG0uZC50b0ZpeGVkKDMpID09IDAuMzU0ICYmCisgICAgICAgICAgICAg
ICAgIGN0bS5lLnRvRml4ZWQoMykgPT0gLTEwNy4wNzEgJiYgY3RtLmYgPT0gMC4wKSB7CisgICAg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICB2YXIgY3RtID0gcmVmZXJlbmNlRWxl
bWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyb3Vw
MCIpKTsKKyAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZVRleHQiKS50ZXh0Q29udGVudCA9ICJQ
YXNzZWQiOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQor
ICAgICAgICAgfQorICAgICAgfQorICAgXV0+PC9zY3JpcHQ+CisgICAgICAgICAgICA8ZyBpZD0i
Z3JvdXAwIiB0cmFuc2Zvcm09InNjYWxlKDApIi8+CisgICAgICAgICAgICA8ZyBpZD0iZ3JvdXAx
IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNSwxNSkiPgorICAgICAgICAgICAgICAgIDx0ZXh0IGlk
PSJyZWZlcmVuY2VUZXh0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAsLTIwKSxzY2FsZSgwLjUp
IiBmb250LXNpemU9IjMwIiB4PSI1MCIgeT0iMTUwIj5GYWlsZWQ8L3RleHQ+CisgICAgICAgICAg
ICA8L2c+CisgICAgICAgICAgICA8ZyBpZD0iZ3JvdXAyIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSki
PgorICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJyZWRSZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0
ZSgxMDAsMCkiIHg9IjUwIiB5PSI1MCIgd2lkdGg9IjcwIiBoZWlnaHQ9IjMwIiBmaWxsPSJub25l
Ii8+CisgICAgICAgICAgICA8L2c+Cis8L3N2Zz4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzg4MikKKysrIFdlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDYtMTEtMjYg
IFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNjY3CisgICAgICAgIFNWRzogbWV0aG9kIC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZWx0KSBp
biBTVkdMb2NhdGFibGUgbm90IGltcGxlbWVudGVkCisKKyAgICAgICAgSW1wbGVtZW50IGdldFRy
YW5zZm9ybVRvRWxlbWVudCBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0xvY2F0YWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMb2NhdGFibGU6OmdldFRyYW5z
Zm9ybVRvRWxlbWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5oOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHA6CisgICAg
ICAgIChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50
KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dEVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudCk6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisKIDIwMDYtMTEtMjYgIFNpbW9uIEhhdXNtYW5u
ICA8aGF1c21hbm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWouCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMb2NhdGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5jcHAJKHJldmlzaW9uIDE3ODgyKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEy
MywyMyBAQCBTVkdNYXRyaXgqIFNWR0xvY2F0YWJsZTo6Z2V0U2NyZWVuQ1RNKGNvCiAgICAgcmV0
dXJuIGN0bTsKIH0KIAorU1ZHTWF0cml4KiBTVkdMb2NhdGFibGU6OmdldFRyYW5zZm9ybVRvRWxl
bWVudChTVkdNYXRyaXgqIHN0YXJ0Y3RtLCBTVkdFbGVtZW50KiB0YXJnZXQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIFNWR01hdHJpeCogY3RtID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZH
TWF0cml4KCk7CisgICAgY3RtLT5tdWx0aXBseShzdGFydGN0bSk7CisKKyAgICBTVkdFbGVtZW50
KiB0YXJnZXRFbGVtZW50ID0gc3ZnX2R5bmFtaWNfY2FzdCh0YXJnZXQpOworICAgIGlmICh0YXJn
ZXRFbGVtZW50ICYmIHRhcmdldEVsZW1lbnQtPmlzU3R5bGVkTG9jYXRhYmxlKCkpIHsKKyAgICAg
ICAgUmVmUHRyPFNWR01hdHJpeD4gdGFyZ2V0Q1RNID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkTG9j
YXRhYmxlRWxlbWVudCo+KHRhcmdldEVsZW1lbnQpLT5nZXRDVE0oKTsKKyAgICAgICAgdGFyZ2V0
Q1RNLmdldCgpLT5pbnZlcnNlKGVjKTsKKyAgICAgICAgaWYgKGVjKQorICAgICAgICAgICAgcmV0
dXJuIGN0bTsKKyAgICAgICAgY3RtLT5wb3N0TXVsdGlwbHkodGFyZ2V0Q1RNLmdldCgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gY3RtOworfQorCiB9CiAKICNlbmRpZiAvLyBTVkdfU1VQUE9SVApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgJKHJldmlzaW9uIDE3ODgyKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgRmxvYXRSZWN0IGdldEJCb3go
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgU1ZHTWF0cml4KiBnZXRD
VE0oY29uc3QgU1ZHRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgU1ZHTWF0cml4KiBnZXRTY3Jl
ZW5DVE0oY29uc3QgU1ZHRWxlbWVudCopOworICAgICAgICBzdGF0aWMgU1ZHTWF0cml4KiBnZXRU
cmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHTWF0cml4KiBzdGFydGN0bSwgU1ZHRWxlbWVudCogYm91bmQs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNzg4MikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDkgKzEwNywxMCBA
QCBGbG9hdFJlY3QgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6CiAgICAgcmV0dXJuIFNW
R1RyYW5zZm9ybWFibGU6OmdldEJCb3godGhpcyk7CiB9CiAKLVNWR01hdHJpeCAqU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0CitTVkdNYXRyaXgqIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCogZWxlbWVudCwgRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPFNWR01hdHJp
eD4gc3RhcnRjdG0oZ2V0Q1RNKCkpOworICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmdldFRyYW5z
Zm9ybVRvRWxlbWVudChzdGFydGN0bS5nZXQoKSwgZWxlbWVudCwgZWMpOwogfQogCiB2b2lkIFNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjphdHRhY2goKQpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1RleHRFbGVtZW50LmNwcAkocmV2aXNpb24gMTc4ODIpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsMTIgQEAg
U1ZHTWF0cml4KiBTVkdUZXh0RWxlbWVudDo6Z2V0Q1RNKCkgY29ucwogICAgIHJldHVybiBTVkdU
cmFuc2Zvcm1hYmxlOjpnZXRDVE0odGhpcyk7CiB9CiAKK1NWR01hdHJpeCogU1ZHVGV4dEVsZW1l
bnQ6OmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKK3sKKyAgICBSZWZQdHI8U1ZHTWF0cml4PiBzdGFydGN0bShnZXRDVE0o
KSk7CisgICAgcmV0dXJuIFNWR0xvY2F0YWJsZTo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KHN0YXJ0
Y3RtLmdldCgpLCBlbGVtZW50LCBlYyk7Cit9CisKIFJlbmRlck9iamVjdCogU1ZHVGV4dEVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxl
KQogewogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdUZXh0KHRoaXMpOwpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiAxNzg4MikKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCogZ2V0Q1RNKCkgY29uc3Q7CiAgICAg
ICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRTY3JlZW5DVE0oKSBjb25zdDsKLSAgICAgICAgdmly
dHVhbCBTVkdNYXRyaXgqIGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICAgICAgdmlydHVhbCBTVkdNYXRyaXgq
IGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBz
dHlsZSkgeyByZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7IH0K
ICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKTsKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNm
b3JtVG9FbGVtZW50LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxl
IG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dl
dFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFRMWtsRVFWUjRuTzNkUytpbWMvL0E4Yy9Na0Jo
RAptT25uRUJzWnM3SlFGQ1VMcDdLWVdNbENMS1VjaXZLWTJZd05SVGxGcHNTQ2tveG1OVElMRms0
bEc1dEJEdVVRZzV6bVlESitqUGt2Cm5paDVlUHpMdk9jcHI5ZnUvbHpkMS9mNkx0OWQ5MzFkUy9i
djM3OS9BQUFBQWtzUDlnVUFBQUQvSEFJRUFBRElDQkFBQUNBalFBQUEKZ0l3QUFRQUFNZ0lFQUFE
SUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJ
Q0JBQQpBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJ
Q0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFCkFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJ
Q0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0EKQVFBQU1nSUVBQURJ
Q0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElD
QkFBQUNBagpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElD
QkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJCi9HTUNaTWVPSGZQRkYxOGM3TXNBQUlCL3RMODlR
TFpzMlRLclY2K2VKVXVXek5WWFh6MVhYSEhGbkhQT09mT3ZmLzFyZHU3YytYY3YKOTVjODlkUlRz
N0N3TUMrOTlOSkJXUjhBQVBpM0pmdjM3OS8vZDU5MC9mcjFjOGNkZDh5UFAvNDRoeHh5eUh6MjJX
ZHo3cm5uenFtbgpuanJQUC8vODM3M2NYN0t3c0RBYk4yNmN5eSsvL0tDc0R3QUFIS0NmWUIxNTVK
Ry8rWHpDQ1NmTXBaZGVPaSs4OE1KdjdvTDgrT09QCi8vSDdQLy84OC85ci9tZCsrYzZ5WmN0bTZk
Si96Qy9PQUFEZ2Y5SWgxVUtmZnZycEhIMzAwWFBVVVVmTm80OCtPai8vL1BOOCtlV1gKOCtxcnI4
NlRUejQ1Ung5OTlNek1QUERBQTdOcTFhcDU3cm5uWnVYS2xYUFBQZmY4NmZ6MTExK2ZoeDkrZUxa
djN6NXIxcXlaZGV2Vwp6Y0xDd3J6Ly92dHp6ejMzekpvMWErYWpqejZhUFh2MlZGc0ZBQUQrd0FH
OUpiQnYzNzc1K09PUDU3Nzc3cHV0VzdmTy9mZmZQenQzCjdwenJycnR1MXE1ZE8rdldyWnM5ZS9i
TWxpMWJabWJtODg4L242ZWZmbnF1dlBMS2Vmenh4K2VrazA3NjAvbG5uMzAyZDk5OTl6enkKeUNP
emRldlcyYlp0Mjl4Nzc3MnpkKy9ldWVDQ0MyYjkrdlZ6d3cwM3pMWFhYanU3ZHUyYUpVdVdITWp0
QWdBQS84VUJ2UU55NDQwMwp6bkhISFRmbm4zLytmUDMxMTdOOCtmS1ptWG5sbFZkbVlXRmgzbnJy
cmRteFk4ZTg5OTU3TXpPemZQbnllZU9OTithV1cyNloyMisvCmZhNjk5dG8vblcvY3VISDI3dDA3
ZDkxMTE4ek1yRnExYXQ1ODg4MTU0b2tuNW9namp2ZzFWRTQ3N2JSWldGZzRrRnNGQUFEK2dnTWEK
SUE4KytPQWNjc2p2bHpqc3NNUG01cHR2bnNzdXUyeE9Qdm5rMmJkdjM4ek1yRml4WWpadDJqUlhY
WFhWUFAzMDAvUE1NOC9NMldlZgovWWZ6ZDk5OWQ4NDk5OXk1N2JiYmZuUCs2NisvZms0NTVaVGZ6
Sll1WGVvT0NBQUFIR1Q1djdJLytPQ0R1ZmppaTJmZHVuVnozbm5uCi9lYllOOTk4TXhkZWVPRzgr
ZWFiYythWlo4NUZGMTAwMzMvLy9SL096enp6ek44OVduZm56cDJ6c0xBd3I3MzIycTloQXdBQS9H
ODQKSUFIeXk1T3V2dnZ1dTk4ZGUvbmxsMmZIamgzejAwOC96ZUxpNHJ6enpqdS9QZzNyblhmZW1h
MWJ0ODd4eHg4L216ZHZudVhMbDgvdQozYnYvY0w1Mjdkclp1blhyYk5pd1liNzk5dHZadm4zN1BQ
VFFRM1BOTmRmTTd0MjdaL1BtelRNenMydlhydG0xYTlmczNyMzdRR3dYCkFBRDRpNVp0MkxCaHc5
OTV3bWVmZlhidXYvLysrZnJycjJmbnpwMnpaczJhT2ZiWVkzODlmdUtKSjg2bVRadm1zY2NlbTIr
KytXYk8KT09PTWVmVFJSK2YwMDArZkk0NDRZbTY5OWRaWnRXclZiTnUyYlZhdlhqMlhYSExKZlBM
SkovOXh2bkxseWxsY1hKdzc3N3h6Tm03YwpPQjk4OE1IY2ROTk5jOG9wcDh6aGh4OCtOOTk4ODd6
NDRvdno5dHR2ejRjZmZqZ3pNMmVkZGRhc1dMSGk3OXd5QUFEd0Z4MlFGeEgrCk4vdjM3NS9GeGNV
NTdMRERadWJmN3dNNTlOQkRaOSsrZmJOczJiTDU2cXV2NXBoampwbGx5NWJOelB6aC9CZDc5dXla
eGNYRk9lYVkKWTM0elgxeGNuTDE3OTg1UlJ4MDFQL3p3dzYvckFRQUFCOGRCQ1JBQUFPQ2Z5YXZC
QVFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05B
QUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05B
QUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFB
QUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFB
QUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFB
QUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFB
QUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFB
Q0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFB
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFB
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFB
Q0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFD
QWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
CmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEK
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSVBOL1R6N0IxdmtiUFdRQUFBQUFT
VVZPUks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11650</attachid>
            <date>2006-11-28 01:39:45 -0800</date>
            <delta_ts>2006-12-02 16:56:09 -0800</delta_ts>
            <desc>Now uses virtual base class</desc>
            <filename>11667-5.diff</filename>
            <type>text/plain</type>
            <size>24262</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3OTA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTEtMjggIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE2NjcKKyAgICAgICAgU1ZHOiBtZXRob2QgLmdldFRyYW5zZm9ybVRvRWxlbWVudChl
bHQpIGluIFNWR0xvY2F0YWJsZSBub3QgaW1wbGVtZW50ZWQKKworICAgICAgICAqIHN2Zy9jdXN0
b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmc6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3Zn
OiBBZGRlZC4KKwogMjAwNi0xMS0yNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3Rl
ZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJh
bnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACitjODZlN2VkZGNhY2VjNzY3NzAyZmUzNDA4NmM2MzM3NgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVt
ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dl
dFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIEtDYW52YXNDb250YWluZXIge3N2
Z30gYXQgKC0yLjUwLDE1LjUwKSBzaXplIDEyMi43MXgxOTYuNjMKKyAgICAgIEtDYW52YXNDb250
YWluZXIge2d9IGF0ICgwLDApIHNpemUgMHgwIFt0cmFuc2Zvcm09e209KCgwLjAwLDAuMDApKDAu
MDAsMC4wMCkpIHQ9KDAuMDAsMC4wMCl9XQorICAgICAgS0NhbnZhc0NvbnRhaW5lciB7Z30gYXQg
KC0yLjUwLDE1LjUwKSBzaXplIDIwLjUweDkgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMTUuMDAsMTUuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0g
YXQgKDUwLDE1MCkgc2l6ZSA4MDB4MzYKKyAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsj
dGV4dH0gYXQgKDAsLTI4KSBzaXplIDgyeDM2CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwt
MjgpIHdpZHRoIDgyOiAiUGFzc2VkIgorICAgICAgS0NhbnZhc0NvbnRhaW5lciB7Z30gYXQgKDQ5
LjUwLDE0MS40Mikgc2l6ZSA3MC43MXg3MC43MSBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgt
MC43MSwwLjcxKSkgdD0oMC4wMCwwLjAwKX1dCisgICAgICAgIEtDYW52YXNJdGVtIHtyZWN0fSBh
dCAoNDkuNTAsMTQxLjQyKSBzaXplIDcwLjcxeDcwLjcxIFt0cmFuc2Zvcm09e209KCgxLjAwLDAu
MDApKDAuMDAsMS4wMCkpIHQ9KDEwMC4wMCwwLjAwKX1dIFtkYXRhPSJNNTAuMDAsNTAuMDBMMTIw
LjAwLDUwLjAwTDEyMC4wMCw4MC4wMEw1MC4wMCw4MC4wMCJdCkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC5zdmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3ZnCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQuc3ZnCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEgQmFzaWMv
L0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEtYmFzaWMu
ZHRkIj4KKzxzdmcgdmVyc2lvbj0iMS4xIiBiYXNlUHJvZmlsZT0iYmFzaWMiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiIGlkPSJzdmctcm9vdCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgb25sb2Fk
PSJydW5UZXN0KCkiPgorICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2VjbWFzY3JpcHQiPjwhW0NEQVRB
WworICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdmFyIHJlZmVyZW5jZUVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlVGV4dCIpOworICAgICAgICB2
YXIgY3RtID0gcmVmZXJlbmNlRWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImdyb3VwMSIpKTsKKyAgICAgICAgaWYgKGN0bS5hID09IDAuNSAmJiBj
dG0uYiA9PSAwICYmIGN0bS5jID09IDAgJiYgY3RtLmQgPT0gMC41ICYmCisgICAgICAgICAgICBj
dG0uZSA9PSAtMjAgJiYgY3RtLmYgPT0gLTIwKSB7CisgICAgICAgIGN0bSA9IHJlZmVyZW5jZUVs
ZW1lbnQuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncm91
cDIiKSk7CisgICAgICAgIGlmIChjdG0uYS50b0ZpeGVkKDMpID09IDAuMzU0ICYmIGN0bS5iLnRv
Rml4ZWQoMykgPT0gLTAuMzU0ICYmCisgICAgICAgICAgICBjdG0uYy50b0ZpeGVkKDMpID09IDAu
MzU0ICYmIGN0bS5kLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYKKyAgICAgICAgICAgIGN0bS5lLnRv
Rml4ZWQoMykgPT0gLTcuMDcxICYmIGN0bS5mID09IDAuMCkgeworICAgICAgICAgICAgY3RtID0g
cmVmZXJlbmNlRWxlbWVudC5nZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZFJlY3QiKSk7CisgICAgICAgICAgICBpZiAoY3RtLmEudG9GaXhlZCgzKSA9PSAw
LjM1NCAmJiBjdG0uYi50b0ZpeGVkKDMpID09IC0wLjM1NCAmJgorICAgICAgICAgICAgICAgIGN0
bS5jLnRvRml4ZWQoMykgPT0gMC4zNTQgJiYgY3RtLmQudG9GaXhlZCgzKSA9PSAwLjM1NCAmJgor
ICAgICAgICAgICAgICAgICBjdG0uZS50b0ZpeGVkKDMpID09IC0xMDcuMDcxICYmIGN0bS5mID09
IDAuMCkgeworICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgdmFyIGN0bSA9
IHJlZmVyZW5jZUVsZW1lbnQuZ2V0VHJhbnNmb3JtVG9FbGVtZW50KGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJncm91cDAiKSk7CisgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VUZXh0IikudGV4
dENvbnRlbnQgPSAiUGFzc2VkIjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9Cisg
ICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIF1dPjwvc2NyaXB0PgorICAgICAg
ICAgICAgPGcgaWQ9Imdyb3VwMCIgdHJhbnNmb3JtPSJzY2FsZSgwKSIvPgorICAgICAgICAgICAg
PGcgaWQ9Imdyb3VwMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUsMTUpIj4KKyAgICAgICAgICAg
ICAgICA8dGV4dCBpZD0icmVmZXJlbmNlVGV4dCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIwLC0y
MCksc2NhbGUoMC41KSIgZm9udC1zaXplPSIzMCIgeD0iNTAiIHk9IjE1MCI+RmFpbGVkPC90ZXh0
PgorICAgICAgICAgICAgPC9nPgorICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMiIgdHJhbnNmb3Jt
PSJyb3RhdGUoNDUpIj4KKyAgICAgICAgICAgICAgICA8cmVjdCBpZD0icmVkUmVjdCIgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMTAwLDApIiB4PSI1MCIgeT0iNTAiIHdpZHRoPSI3MCIgaGVpZ2h0PSIz
MCIgZmlsbD0ibm9uZSIvPgorICAgICAgICAgICAgPC9nPgorPC9zdmc+CkluZGV4OiBXZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5
MDQpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDA2LTExLTI4ICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTY2NworICAgICAgICBTVkc6IG1ldGhvZCAuZ2V0VHJhbnNmb3JtVG9F
bGVtZW50KGVsdCkgaW4gU1ZHTG9jYXRhYmxlIG5vdCBpbXBsZW1lbnRlZAorCisgICAgICAgIElt
cGxlbWVudCBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQgZnVuY3Rpb25hbGl0eS4gSW50cm9kdWNlIHZp
cnR1YWwKKyAgICAgICAgYmFzZWNsYXNzIFNWR0xvY2F0YWJsZSB0byBhbGxvdyBvbmUgaW1wbGVt
ZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIEZpbmFsbHkgY2xlYW51cCBz
b21lIGNvZGUuCisKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xvY2F0YWJsZTo6Z2V0VHJhbnNmb3JtVG9FbGVtZW50KToKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0
eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkTG9j
YXRhYmxlRWxlbWVudDo6U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmZhcnRoZXN0Vmll
d3BvcnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQ6OmdldENUTSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50
OjpnZXRTY3JlZW5DVE0pOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVF
bGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
OjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6bG9jYWxNYXRyaXgpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldENUTSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0U2NyZWVuQ1RNKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojp1cGRhdGVMb2NhbFRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmZhcnRoZXN0Vmlld3BvcnRFbGVt
ZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5oOgorCiAyMDA2LTExLTI3ICBBbmRlcnMgQ2FybHNzb24g
IDxhY2FybHNzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBmaXhpbmcgdGhlIGJ1aWxkLgpJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdMb2NhdGFibGUuY3BwCShyZXZpc2lvbiAxNzkwNCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2
ICsxMjMsMjQgQEAgU1ZHTWF0cml4KiBTVkdMb2NhdGFibGU6OmdldFNjcmVlbkNUTShjbwogICAg
IHJldHVybiBjdG07CiB9CiAKK1NWR01hdHJpeCogU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2Zvcm1U
b0VsZW1lbnQoU1ZHRWxlbWVudCogdGFyZ2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sK
KyAgICBSZWZQdHI8U1ZHTWF0cml4PiBzdGFydGN0bShnZXRDVE0oKSk7CisgICAgU1ZHTWF0cml4
KiBjdG0gPSBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdNYXRyaXgoKTsKKyAgICBjdG0tPm11bHRp
cGx5KHN0YXJ0Y3RtLmdldCgpKTsKKworICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSBz
dmdfZHluYW1pY19jYXN0KHRhcmdldCk7CisgICAgaWYgKHRhcmdldEVsZW1lbnQgJiYgdGFyZ2V0
RWxlbWVudC0+aXNTdHlsZWRMb2NhdGFibGUoKSkgeworICAgICAgICBSZWZQdHI8U1ZHTWF0cml4
PiB0YXJnZXRDVE0gPSBzdGF0aWNfY2FzdDxTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Kj4odGFy
Z2V0RWxlbWVudCktPmdldENUTSgpOworICAgICAgICB0YXJnZXRDVE0uZ2V0KCktPmludmVyc2Uo
ZWMpOworICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICByZXR1cm4gY3RtOworICAgICAgICBj
dG0tPnBvc3RNdWx0aXBseSh0YXJnZXRDVE0uZ2V0KCkpOworICAgIH0KKworICAgIHJldHVybiBj
dG07Cit9CisKIH0KIAogI2VuZGlmIC8vIFNWR19TVVBQT1JUCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdMb2NhdGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdM
b2NhdGFibGUuaAkocmV2aXNpb24gMTc5MDQpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMb2Nh
dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goKSBjb25zdCA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRDVE0oKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1
YWwgU1ZHTWF0cml4KiBnZXRTY3JlZW5DVE0oKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwg
U1ZHTWF0cml4KiBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdCA9IDA7CisgICAgICAgIFNWR01hdHJpeCogZ2V0VHJhbnNmb3JtVG9FbGVtZW50
KFNWR0VsZW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHN0YXRpYyBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNW
R1N0eWxlZEVsZW1lbnQqKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZExvY2F0
YWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzkwNCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJt
YW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IHByb2plY3QKIApAQCAtMzEsMTAgKzMxLDExIEBACiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAj
aW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25h
bWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudDo6U1ZHU3R5bGVk
TG9jYXRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAq
ZG9jKQotOiBTVkdTdHlsZWRFbGVtZW50KHRhZ05hbWUsIGRvYyksIFNWR0xvY2F0YWJsZSgpCitT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50OjpTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBTVkdMb2NhdGFi
bGUoKQorICAgICwgU1ZHU3R5bGVkRWxlbWVudCh0YWdOYW1lLCBkb2MpCiB7CiB9CiAKQEAgLTQy
LDEyICs0MywxMiBAQCBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojp+U1ZHU3R5bGVkTG9jCiB7
CiB9CiAKLVNWR0VsZW1lbnQgKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3
cG9ydEVsZW1lbnQoKSBjb25zdAorU1ZHRWxlbWVudCogU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVu
dDo6bmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR0xvY2F0
YWJsZTo6bmVhcmVzdFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKIH0KIAotU1ZHRWxlbWVudCAqU1ZH
U3R5bGVkTG9jYXRhYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAor
U1ZHRWxlbWVudCogU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBTVkdMb2NhdGFibGU6OmZhcnRoZXN0Vmlld3Bv
cnRFbGVtZW50KHRoaXMpOwogfQpAQCAtNTcsMjAgKzU4LDE2IEBAIEZsb2F0UmVjdCBTVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50OjpnZXQKICAgICByZXR1cm4gU1ZHTG9jYXRhYmxlOjpnZXRCQm94
KHRoaXMpOwogfQogCi1TVkdNYXRyaXggKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmdldENU
TSgpIGNvbnN0CitTVkdNYXRyaXgqIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmdldENUTSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZTo6Z2V0Q1RNKHRoaXMpOwogfQogCi1T
VkdNYXRyaXggKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmdldFNjcmVlbkNUTSgpIGNvbnN0
CitTVkdNYXRyaXgqIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmdldFNjcmVlbkNUTSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFNWR0xvY2F0YWJsZTo6Z2V0U2NyZWVuQ1RNKHRoaXMpOwogfQog
Ci1TVkdNYXRyaXggKlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQ6OmdldFRyYW5zZm9ybVRvRWxl
bWVudChTVkdFbGVtZW50ICosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdAotewotICAgIC8vIFRPRE8h
Ci0gICAgcmV0dXJuIDA7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmgJKHJldmlzaW9uIDE3OTA0KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0
LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgS0RFIHByb2plY3QKIApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgU1ZHTWF0cml4OwogICAgIGNsYXNzIFNWR0VsZW1lbnQ7CiAKLSAg
ICBjbGFzcyBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1l
bnQsIHB1YmxpYyBTVkdMb2NhdGFibGUgeworICAgIGNsYXNzIFNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCwgdmlydHVhbCBwdWJsaWMgU1ZHTG9jYXRh
YmxlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQoKTsKQEAgLTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KCkgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgU1ZHTWF0cml4KiBnZXRDVE0oKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdNYXRy
aXgqIGdldFNjcmVlbkNUTSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCogZ2V0
VHJhbnNmb3JtVG9FbGVtZW50KFNWR0VsZW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTc5
MDQpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0zNSw5ICszNSw5IEBACiAj
aW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3Qu
aCIKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCAqZG9jKQorU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQ6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCiAgICAgOiBTVkdTdHlsZWRM
b2NhdGFibGVFbGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIFNWR1RyYW5zZm9ybWFibGUoKQog
ICAgICwgbV90cmFuc2Zvcm0obmV3IFNWR1RyYW5zZm9ybUxpc3QpCkBAIC01MCwyMiArNTAsMjIg
QEAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6On5TVkdTdHlsZQogCiBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUZJTklUSU9OUyhTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudCwgU1ZHVHJh
bnNmb3JtTGlzdCosIFRyYW5zZm9ybUxpc3QsIHRyYW5zZm9ybUxpc3QsIFRyYW5zZm9ybSwgdHJh
bnNmb3JtLCBTVkdOYW1lczo6dHJhbnNmb3JtQXR0ci5sb2NhbE5hbWUoKSwgbV90cmFuc2Zvcm0u
Z2V0KCkpCiAKLVNWR01hdHJpeCAqU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmxvY2Fs
TWF0cml4KCkgY29uc3QKK1NWR01hdHJpeCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6
OmxvY2FsTWF0cml4KCkgY29uc3QKIHsKICAgICByZXR1cm4gbGF6eV9jcmVhdGU8U1ZHTWF0cml4
PihtX2xvY2FsTWF0cml4KTsKIH0KIAotU1ZHTWF0cml4ICpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6Z2V0Q1RNKCkgY29uc3QKK1NWR01hdHJpeCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQ6OmdldENUTSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6
OmdldENUTSh0aGlzKTsKIH0KIAotU1ZHTWF0cml4ICpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudDo6Z2V0U2NyZWVuQ1RNKCkgY29uc3QKK1NWR01hdHJpeCogU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnQ6OmdldFNjcmVlbkNUTSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybWFibGU6OmdldFNjcmVlbkNUTSh0aGlzKTsKIH0KIAotdm9pZCBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6dXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdCAqbG9j
YWxUcmFuc2Zvcm1zKQordm9pZCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6dXBkYXRl
TG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdCogbG9jYWxUcmFuc2Zvcm1zKQogewogICAg
IC8vIFVwZGF0ZSBjYWNoZWQgbG9jYWwgbWF0cml4CiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4g
bG9jYWxUcmFuc2Zvcm0gPSBsb2NhbFRyYW5zZm9ybXMtPmNvbmNhdGVuYXRlKCk7CkBAIC03OCwx
MCArNzgsMTAgQEAgdm9pZCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6dXBkYQogICAg
IH0KIH0KIAotdm9pZCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQordm9pZCBTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQog
ewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpIHsKLSAg
ICAgICAgU1ZHVHJhbnNmb3JtTGlzdCAqbG9jYWxUcmFuc2Zvcm1zID0gdHJhbnNmb3JtQmFzZVZh
bHVlKCk7CisgICAgICAgIFNWR1RyYW5zZm9ybUxpc3QqIGxvY2FsVHJhbnNmb3JtcyA9IHRyYW5z
Zm9ybUJhc2VWYWx1ZSgpOwogCiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAg
ICBsb2NhbFRyYW5zZm9ybXMtPmNsZWFyKGVjKTsKQEAgLTkyLDEyICs5MiwxMiBAQCB2b2lkIFNW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpwYXJzCiAgICAgICAgIFNWR1N0eWxlZExvY2F0
YWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogfQogCi1TVkdFbGVtZW50
ICpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6bmVhcmVzdFZpZXdwb3J0RWxlbWVudCgp
IGNvbnN0CitTVkdFbGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6bmVhcmVz
dFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6
Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQodGhpcyk7CiB9CiAKLVNWR0VsZW1lbnQgKlNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50OjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0CitT
VkdFbGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9y
dEVsZW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVz
dFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKIH0KQEAgLTEwNywxMSArMTA3LDYgQEAgRmxvYXRSZWN0
IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OgogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1h
YmxlOjpnZXRCQm94KHRoaXMpOwogfQogCi1TVkdNYXRyaXggKlNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50OjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoU1ZHRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdAotewotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50OjphdHRhY2goKQogewogICAgIFNWR1N0eWxlZEVsZW1lbnQ6OmF0dGFjaCgp
OwpAQCAtMTIwLDYgKzExNSw3IEBAIHZvaWQgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6
OmF0dGEKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0TG9jYWxUcmFuc2Zvcm0obV9sb2NhbE1hdHJp
eC0+bWF0cml4KCkpOwogfQogCit9CiAKIC8vIHZpbTp0cz00Om5vZXQKICNlbmRpZiAvLyBTVkdf
U1VQUE9SVApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5oCShyZXZpc2lvbiAxNzkwNCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4g
PHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJv
amVjdAogCkBAIC00NSwyMCArNDUsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNTdHlsZWRUcmFuc2Zvcm1hYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIC8vICdTVkdUcmFuc2Zvcm1hYmxlJyBmdW5jdGlvbnMKLSAgICAgICAgdmly
dHVhbCBTVkdNYXRyaXggKmxvY2FsTWF0cml4KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU1ZH
TWF0cml4KiBsb2NhbE1hdHJpeCgpIGNvbnN0OwogCiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTog
J1NWR0xvY2F0YWJsZScKLSAgICAgICAgdmlydHVhbCBTVkdNYXRyaXggKmdldENUTSgpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCAqZ2V0U2NyZWVuQ1RNKCkgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgU1ZHRWxlbWVudCAqbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnQgKmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRDVE0oKSBjb25zdDsKKyAgICAgICAg
dmlydHVhbCBTVkdNYXRyaXgqIGdldFNjcmVlbkNUTSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFs
IFNWR0VsZW1lbnQqIG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwogCiAgICAg
ICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBT
VkdNYXRyaXggKmdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGUgKmF0dHIpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKTsKIAotICAgICAgICB2b2lkIHVwZGF0ZUxv
Y2FsVHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3QgKmxvY2FsVHJhbnNmb3Jtcyk7CisgICAgICAg
IHZvaWQgdXBkYXRlTG9jYWxUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdCogbG9jYWxUcmFuc2Zv
cm1zKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKIApJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudC5oCShyZXZpc2lvbiAxNzkwNCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveCgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFNWR01hdHJpeCogZ2V0Q1RNKCkgY29uc3Q7CiAgICAg
ICAgIHZpcnR1YWwgU1ZHTWF0cml4KiBnZXRTY3JlZW5DVE0oKSBjb25zdDsKLSAgICAgICAgdmly
dHVhbCBTVkdNYXRyaXgqIGdldFRyYW5zZm9ybVRvRWxlbWVudChTVkdFbGVtZW50KiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpIHsgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyB9CiAgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5oCShyZXZpc2lvbiAxNzkwNCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHTWF0cml4OwogICAgIGNsYXNz
IFNWR1RyYW5zZm9ybUxpc3Q7CiAKLSAgICBjbGFzcyBTVkdUcmFuc2Zvcm1hYmxlIDogcHVibGlj
IFNWR0xvY2F0YWJsZSB7CisgICAgY2xhc3MgU1ZHVHJhbnNmb3JtYWJsZSA6IHZpcnR1YWwgcHVi
bGljIFNWR0xvY2F0YWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBTVkdUcmFuc2Zvcm1hYmxl
KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR1RyYW5zZm9ybWFibGUoKTsKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9jdXN0b20vZ2V0VHJhbnNmb3JtVG9FbGVtZW50LWV4cGVjdGVkLnBuZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWlt
ZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldFRyYW5zZm9ybVRvRWxlbWVudC1leHBlY3RlZC5wbmcK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFRMWts
RVFWUjRuTzNkUytpbWMvL0E4Yy9Na0JoRAptT25uRUJzWnM3SlFGQ1VMcDdLWVdNbENMS1VjaXZL
WTJZd05SVGxGcHNTQ2tveG1OVElMRms0bEc1dEJEdVVRZzV6bVlESitqUGt2Cm5paDVlUHpMdk9j
cHI5ZnUvbHpkMS9mNkx0OWQ5MzFkUy9idjM3OS9BQUFBQWtzUDlnVUFBQUQvSEFJRUFBRElDQkFB
QUNBalFBQUEKZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFB
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQQpBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFB
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFCkFBRElDQkFB
QUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0EKQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBagpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFB
Q0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJCi9HTUNa
TWVPSGZQRkYxOGM3TXNBQUlCL3RMODlRTFpzMlRLclY2K2VKVXVXek5WWFh6MVhYSEhGbkhQT09m
T3ZmLzFyZHU3YytYY3YKOTVjODlkUlRzN0N3TUMrOTlOSkJXUjhBQVBpM0pmdjM3OS8vZDU5MC9m
cjFjOGNkZDh5UFAvNDRoeHh5eUh6MjJXZHo3cm5uenFtbgpuanJQUC8vODM3M2NYN0t3c0RBYk4y
NmN5eSsvL0tDc0R3QUFIS0NmWUIxNTVKRy8rWHpDQ1NmTXBaZGVPaSs4OE1KdjdvTDgrT09QCi8v
SDdQLy84OC85ci9tZCsrYzZ5WmN0bTZkSi96Qy9PQUFEZ2Y5SWgxVUtmZnZycEhIMzAwWFBVVVVm
Tm80OCtPai8vL1BOOCtlV1gKOCtxcnI4NlRUejQ1Ung5OTlNek1QUERBQTdOcTFhcDU3cm5uWnVY
S2xYUFBQZmY4NmZ6MTExK2ZoeDkrZUxadjN6NXIxcXlaZGV2Vwp6Y0xDd3J6Ly92dHp6ejMzekpv
MWErYWpqejZhUFh2MlZGc0ZBQUQrd0FHOUpiQnYzNzc1K09PUDU3Nzc3cHV0VzdmTy9mZmZQenQz
CjdwenJycnR1MXE1ZE8rdldyWnM5ZS9iTWxpMWJabWJtODg4L242ZWZmbnF1dlBMS2Vmenh4K2Vr
azA3NjAvbG5uMzAyZDk5OTl6enkKeUNPemRldlcyYlp0Mjl4Nzc3MnpkKy9ldWVDQ0MyYjkrdlZ6
d3cwM3pMWFhYanU3ZHUyYUpVdVdITWp0QWdBQS84VUJ2UU55NDQwMwp6bkhISFRmbm4zLytmUDMx
MTdOOCtmS1ptWG5sbFZkbVlXRmgzbnJycmRteFk4ZTg5OTU3TXpPemZQbnllZU9OTithV1cyNloy
MisvCmZhNjk5dG8vblcvY3VISDI3dDA3ZDkxMTE4ek1yRnExYXQ1ODg4MTU0b2tuNW9namp2ZzFW
RTQ3N2JSWldGZzRrRnNGQUFEK2dnTWEKSUE4KytPQWNjc2p2bHpqc3NNUG01cHR2bnNzdXUyeE9Q
dm5rMmJkdjM4ek1yRml4WWpadDJqUlhYWFhWUFAzMDAvUE1NOC9NMldlZgovWWZ6ZDk5OWQ4NDk5
OXk1N2JiYmZuUCs2NisvZms0NTVaVGZ6Sll1WGVvT0NBQUFIR1Q1djdJLytPQ0R1ZmppaTJmZHVu
Vnozbm5uCi9lYllOOTk4TXhkZWVPRzgrZWFiYythWlo4NUZGMTAwMzMvLy9SL096enp6ek44OVdu
Zm56cDJ6c0xBd3I3MzIycTloQXdBQS9HODQKSUFIeXk1T3V2dnZ1dTk4ZGUvbmxsMmZIamgzejAw
OC96ZUxpNHJ6enpqdS9QZzNyblhmZW1hMWJ0ODd4eHg4L216ZHZudVhMbDgvdQozYnYvY0w1Mjdk
clp1blhyYk5pd1liNzk5dHZadm4zN1BQVFFRM1BOTmRmTTd0MjdaL1BtelRNenMydlhydG0xYTlm
czNyMzdRR3dYCkFBRDRpNVp0MkxCaHc5OTV3bWVmZlhidXYvLysrZnJycjJmbnpwMnpaczJhT2Zi
WVkzODlmdUtKSjg2bVRadm1zY2NlbTIrKytXYk8KT09PTWVmVFJSK2YwMDArZkk0NDRZbTY5OWRa
WnRXclZiTnUyYlZhdlhqMlhYSExKZlBMSkovOXh2bkxseWxsY1hKdzc3N3h6Tm03YwpPQjk4OE1I
Y2ROTk5jOG9wcDh6aGh4OCtOOTk4ODd6NDRvdno5dHR2ejRjZmZqZ3pNMmVkZGRhc1dMSGk3OXd5
QUFEd0Z4MlFGeEgrCk4vdjM3NS9GeGNVNTdMRERadWJmN3dNNTlOQkRaOSsrZmJOczJiTDU2cXV2
NXBoampwbGx5NWJOelB6aC9CZDc5dXlaeGNYRk9lYVkKWTM0elgxeGNuTDE3OTg1UlJ4MDFQL3p3
dzYvckFRQUFCOGRCQ1JBQUFPQ2Z5YXZCQVFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNB
akFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0Fq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpq
QUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpB
QUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0kKRUFBQUlDTkFBQUNBakFB
QkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUEKSUNOQUFBQ0FqQUFC
QUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkEKQUFDQWpBQUJB
QUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0EKakFBQkFB
QXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUIKQUFB
eUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJCkVBQUFJQ05BQUFDQWpBQUJBQUF5
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXkK
QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBCklDTkFBQUNBakFBQkFBQXlB
Z1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BCkFBQ0FqQUFCQUFBeUFn
UUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0kKRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeQpBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBCmpBQUJBQUF5QWdR
QUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUEKSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQQpBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCCkFBQXlBZ1FB
QU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkEKQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSQpFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5CkFnUUFB
TWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0EKakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQQpJQ05BQUFDQWpBQUJBQUF5QWdRQUFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBCkFN
Z0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUIKQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQQpBQUNBakFBQkFBQXlBZ1FBQU1n
SUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
CkVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXkKQWdRQUFNZ0lFQUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQQpqQUFCQUFBeUFnUUFBTWdJ
RUFBQUlDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBCklDTkFBQUNBakFBQkFBQXlBZ1FBQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUEKQU1nSUVBQUFJQ05BQUFDQWpBQUJBQUF5QWdRQUFNZ0lF
QUFBSUNOQUFBQ0FqQUFCQUFBeUFnUUFBTWdJRUFBQUlDTkFBQUNBakFBQgpBQUF5QWdRQUFNZ0lF
QUFBSVBOL1R6N0IxdmtiUFdRQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="4176"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>