<?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>34923</bug_id>
          
          <creation_ts>2010-02-13 17:29:50 -0800</creation_ts>
          <short_desc>Incorrect client rects for blocks the span multiple columns and their descendants</short_desc>
          <delta_ts>2010-02-15 11:49:02 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190295</commentid>
    <comment_count>0</comment_count>
      <attachid>48712</attachid>
    <who name="">mitz</who>
    <bug_when>2010-02-13 17:29:50 -0800</bug_when>
    <thetext>Created attachment 48712
Test case

The DOM getClientRects() API and the -[DOMRange textRects] method return incorrect results for blocks and their descendants when those span more than one column. The attached test case gives an example with getClientRects().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190296</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-02-13 17:30:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/7647300&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190304</commentid>
    <comment_count>2</comment_count>
      <attachid>48716</attachid>
    <who name="">mitz</who>
    <bug_when>2010-02-14 00:51:54 -0800</bug_when>
    <thetext>Created attachment 48716
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190347</commentid>
    <comment_count>3</comment_count>
      <attachid>48732</attachid>
    <who name="">mitz</who>
    <bug_when>2010-02-14 13:56:27 -0800</bug_when>
    <thetext>Created attachment 48732
Allow offsetFromContainer() to return the right offset for a given point in the multi-column case, and pass it the point of interest

This is obviously just a better approximation of correct behavior in the multi-column case, as it still assumes that a quad is mapped to absolute coordinates via a continuous transform. In the multi-column case, the transform is only piecewise-continuous. So this just picks the piece that applies to some point in the quad, rather than always picking the first piece.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190485</commentid>
    <comment_count>4</comment_count>
      <attachid>48732</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-02-15 10:02:08 -0800</bug_when>
    <thetext>Comment on attachment 48732
Allow offsetFromContainer() to return the right offset for a given point in the multi-column case, and pass it the point of interest

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 54757)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,63 @@
&gt; +2010-02-14  Dan Bernstein  &lt;mitz@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        &lt;rdar://problem/7647300&gt; Incorrect client rects for blocks the span multiple columns and their descendants
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=34923
&gt; +

I&apos;d like to see a summary of the problem, and your general approach at fixing it here.

&gt; +        (WebCore::SelectionController::layout): Pass the caretâs origin as the

Garbled curly quote.

&gt; +        column offset to the computation, which previously this function didnât

Ditto

&gt; +        TransformState with the top left corner of the quadâs bounding box. It

And again

&gt; Index: WebCore/rendering/RenderObject.h
&gt; ===================================================================
&gt; --- WebCore/rendering/RenderObject.h	(revision 54757)
&gt; +++ WebCore/rendering/RenderObject.h	(working copy)
&gt; @@ -563,7 +563,7 @@ public:
&gt;      FloatQuad localToContainerQuad(const FloatQuad&amp;, RenderBoxModelObject* repaintContainer, bool fixed = false) const;
&gt;  
&gt;      // Return the offset from the container() renderer (excluding transforms)
&gt; -    virtual IntSize offsetFromContainer(RenderObject*) const;
&gt; +    virtual IntSize offsetFromContainer(RenderObject*, const IntPoint&amp;) const;

I&apos;d like the comment to explain what the point is for.

&gt; +    virtual void adjustForColumns(IntSize&amp;, const IntPoint&amp;) const { }

Also here. How is the IntSize being adjusted? What does the point represent?

r=me, with some addition commentary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190511</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-02-15 11:49:02 -0800</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/projects/webkit/changeset/54784&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48712</attachid>
            <date>2010-02-13 17:29:50 -0800</date>
            <delta_ts>2010-02-13 17:29:50 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>client-rects-with-columns.html</filename>
            <type>text/html</type>
            <size>1180</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">PHN0eWxlPgogICAgZGl2Lm1hcmtlciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVk
OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjMpOwogICAgfQo8
L3N0eWxlPgo8ZGl2IHN0eWxlPSJ3aWR0aDogODAwcHg7IC13ZWJraXQtY29sdW1uczogMjsgYm9y
ZGVyOiBzb2xpZDsiPgogICAgPGRpdiBpZD0ic3BsaXQtYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiBsaWdodGJsdWU7Ij4KICAgICAgICBPbmU8YnI+VHdvPGJyPlRocmVlPGJyPkZvdXIK
ICAgIDwvZGl2Pgo8L2Rpdj4KPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CjxzY3JpcHQ+CiAgICBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKICAgIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2Ug
KyAiXG4iKSk7CiAgICB9CgogICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNwbGl0LWJsb2NrIikubGFzdENoaWxkOwogICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3Jl
YXRlUmFuZ2UoKTsKICAgIHJhbmdlLnNlbGVjdE5vZGUodGV4dE5vZGUpOwogICAgdmFyIHJlY3Rz
ID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjdHMu
bGVuZ3RoOyArK2kpIHsKICAgICAgICBsb2cocmVjdHNbaV0ubGVmdCArICIsICIgKyByZWN0c1tp
XS50b3AgKyAiICgiICsgcmVjdHNbaV0ud2lkdGggKyAiIHggIiArIHJlY3RzW2ldLmhlaWdodCAr
ICIpIik7CiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAibWFya2Vy
IjsKICAgICAgICBkaXYuc3R5bGUubGVmdCA9IHJlY3RzW2ldLmxlZnQgKyAicHgiOwogICAgICAg
IGRpdi5zdHlsZS50b3AgPSByZWN0c1tpXS50b3AgKyAicHgiOwogICAgICAgIGRpdi5zdHlsZS53
aWR0aCA9IHJlY3RzW2ldLndpZHRoICsgInB4IjsKICAgICAgICBkaXYuc3R5bGUuaGVpZ2h0ID0g
cmVjdHNbaV0uaGVpZ2h0ICsgInB4IjsKICAgIH0KPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48716</attachid>
            <date>2010-02-14 00:51:54 -0800</date>
            <delta_ts>2010-02-14 13:56:27 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>column-selection-rects_r2.diff</filename>
            <type>text/plain</type>
            <size>16260</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU0
NzUwKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NDAsNyArODQwLDYgQEAgdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpsYXlv
dXQoKQogICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBjYXJldFBhaW50ZXIgPSBjYXJldFJlbmRl
cmVyKCk7CiAKICAgICAgICAgICAgIC8vIENvbXB1dGUgYW4gb2Zmc2V0IGJldHdlZW4gdGhlIHJl
bmRlcmVyIGFuZCB0aGUgY2FyZXRQYWludGVyCi0gICAgICAgICAgICBJbnRTaXplIG9mZnNldEZy
b21QYWludGVyOwogICAgICAgICAgICAgYm9vbCB1bnJvb3RlZCA9IGZhbHNlOwogICAgICAgICAg
ICAgd2hpbGUgKHJlbmRlcmVyICE9IGNhcmV0UGFpbnRlcikgewogICAgICAgICAgICAgICAgIFJl
bmRlck9iamVjdCogY29udGFpbmVyT2JqZWN0ID0gcmVuZGVyZXItPmNvbnRhaW5lcigpOwpAQCAt
ODQ4LDE1ICs4NDcsMTIgQEAgdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpsYXlvdXQoKQogICAg
ICAgICAgICAgICAgICAgICB1bnJvb3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBvZmZzZXRGcm9tUGFpbnRl
ciArPSByZW5kZXJlci0+b2Zmc2V0RnJvbUNvbnRhaW5lcihjb250YWluZXJPYmplY3QpOworICAg
ICAgICAgICAgICAgIGxvY2FsUmVjdC5tb3ZlKHJlbmRlcmVyLT5vZmZzZXRGcm9tQ29udGFpbmVy
KGNvbnRhaW5lck9iamVjdCwgbG9jYWxSZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAgICAgICAg
ICByZW5kZXJlciA9IGNvbnRhaW5lck9iamVjdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKCF1bnJvb3RlZCkgewotICAgICAgICAgICAgICAgIC8vIE1vdmUg
dGhlIGNhcmV0IHJlY3QgdG8gdGhlIGNvb3JkcyBvZiB0aGUgcGFpbnRlcgotICAgICAgICAgICAg
ICAgIGxvY2FsUmVjdC5tb3ZlKG9mZnNldEZyb21QYWludGVyKTsKKyAgICAgICAgICAgIGlmICgh
dW5yb290ZWQpCiAgICAgICAgICAgICAgICAgbV9jYXJldFJlY3QgPSBsb2NhbFJlY3Q7Ci0gICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fYWJzQ2FyZXRCb3VuZHNEaXJ0
eSA9IHRydWU7CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJl
dmlzaW9uIDU0NzUwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zODc0LDYgKzM4NzQsMjkgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0
UmVjdEZvckNvbHVtbnMoSQogICAgIHIgPSByZXN1bHQ7CiB9CiAKK3ZvaWQgUmVuZGVyQmxvY2s6
OmFkanVzdEZvckNvbHVtbnMoSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRQb2ludCYgcG9pbnQp
IGNvbnN0Cit7CisgICAgaWYgKCFoYXNDb2x1bW5zKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFZlY3RvcjxJbnRSZWN0PiYgY29sdW1uUmVjdHMgPSAqdGhpcy0+Y29sdW1uUmVjdHMoKTsKKwor
ICAgIGludCBnYXBXaWR0aCA9IGNvbHVtbkdhcCgpOworICAgIGludCB4T2Zmc2V0ID0gMDsKKyAg
ICBpbnQgeU9mZnNldCA9IDA7CisgICAgc2l6ZV90IGNvbHVtbkNvdW50ID0gY29sdW1uUmVjdHMu
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29sdW1uQ291bnQ7ICsraSkgewor
ICAgICAgICBJbnRSZWN0IGNvbHVtblJlY3QgPSBjb2x1bW5SZWN0c1tpXTsKKyAgICAgICAgaWYg
KHBvaW50LnkoKSA8IGNvbHVtblJlY3QuYm90dG9tKCkgKyB5T2Zmc2V0KSB7CisgICAgICAgICAg
ICBvZmZzZXQuZXhwYW5kKHhPZmZzZXQsIC15T2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIHhPZmZzZXQgKz0gY29sdW1uUmVjdC53aWR0aCgpICsgZ2Fw
V2lkdGg7CisgICAgICAgIHlPZmZzZXQgKz0gY29sdW1uUmVjdC5oZWlnaHQoKTsKKyAgICB9Cit9
CisKIHZvaWQgUmVuZGVyQmxvY2s6OmNhbGNQcmVmV2lkdGhzKCkKIHsKICAgICBBU1NFUlQocHJl
ZldpZHRoc0RpcnR5KCkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiA1
NDc1MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyOCw2ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclRydW5jYXRpb24oKTsK
IAogICAgIHZvaWQgYWRqdXN0UmVjdEZvckNvbHVtbnMoSW50UmVjdCYpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RGb3JDb2x1bW5zKEludFNpemUmLCBjb25zdCBJbnRQb2ludCYpIGNv
bnN0OwogCiAgICAgdm9pZCBhZGRDb250aW51YXRpb25XaXRoT3V0bGluZShSZW5kZXJJbmxpbmUq
KTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiA1NDc1MCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3NCw3ICs5
NzQsNyBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kCiAgICAgfSBl
bHNlCiAgICAgICAgIGZpeGVkIHw9IGlzRml4ZWRQb3M7CiAgICAgCi0gICAgSW50U2l6ZSBjb250
YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8pOworICAgIEludFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCB0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRR
dWFkKCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKS5sb2NhdGlvbigpKTsKIAogICAgIGJvb2wgcHJl
c2VydmUzRCA9IHVzZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwg
c3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7CiAgICAgaWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxk
VXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgdm9p
ZCBSZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KAogCiAgICAgby0+bWFwQWJzb2x1
dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKIAot
ICAgIEludFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvKTsKKyAg
ICBJbnRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgSW50UG9p
bnQoKSk7CiAKICAgICBib29sIHByZXNlcnZlM0QgPSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmICh1
c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIobykpIHsKQEAg
LTEwMjYsNyArMTAyNiw3IEBAIHZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2lu
dCgKICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCks
IC1jb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6
QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsK
IH0KIAotSW50U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0
KiBvKSBjb25zdAorSW50U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG8g
PT0gY29udGFpbmVyKCkpOwogCkBAIC0xMDM1LDE0ICsxMDM1LDkgQEAgSW50U2l6ZSBSZW5kZXJC
b3g6Om9mZnNldEZyb21Db250YWluZXIoUgogICAgICAgICBvZmZzZXQgKz0gcmVsYXRpdmVQb3Np
dGlvbk9mZnNldCgpOwogCiAgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkgewot
ICAgICAgICBSZW5kZXJCbG9jayogY2I7Ci0gICAgICAgIGlmIChvLT5pc0Jsb2NrRmxvdygpICYm
IHN0eWxlKCktPnBvc2l0aW9uKCkgIT0gQWJzb2x1dGVQb3NpdGlvbiAmJiBzdHlsZSgpLT5wb3Np
dGlvbigpICE9IEZpeGVkUG9zaXRpb24KLSAgICAgICAgICAgICAgICAmJiAoY2IgPSB0b1JlbmRl
ckJsb2NrKG8pKS0+aGFzQ29sdW1ucygpKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IHJlY3QoeCgp
LCB5KCksIDEsIDEpOwotICAgICAgICAgICAgY2ItPmFkanVzdFJlY3RGb3JDb2x1bW5zKHJlY3Qp
OwotICAgICAgICAgICAgb2Zmc2V0LmV4cGFuZChyZWN0LngoKSwgcmVjdC55KCkpOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIG9mZnNldC5leHBhbmQoeCgpLCB5KCkpOworICAgICAgICBp
ZiAoc3R5bGUoKS0+cG9zaXRpb24oKSAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHN0eWxlKCktPnBv
c2l0aW9uKCkgIT0gRml4ZWRQb3NpdGlvbikKKyAgICAgICAgICAgIG8tPmFkanVzdEZvckNvbHVt
bnMob2Zmc2V0LCBJbnRQb2ludChwb2ludC54KCkgKyB4KCksIHBvaW50LnkoKSArIHkoKSkpOwor
ICAgICAgICBvZmZzZXQuZXhwYW5kKHgoKSwgeSgpKTsKICAgICB9CiAKICAgICBpZiAoby0+aGFz
T3ZlcmZsb3dDbGlwKCkpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gNTQ3NTAp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMTcz
LDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICBpbnQgb3ZlcnJpZGVIZWlnaHQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3ZlcnJpZGVTaXplKGludCk7CiAKLSAgICB2aXJ0dWFsIEludFNp
emUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFs
IEludFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIAogICAgIGludCBjYWxjQm9yZGVyQm94V2lkdGgoaW50IHdpZHRoKSBj
b25zdDsKICAgICBpbnQgY2FsY0JvcmRlckJveEhlaWdodChpbnQgaGVpZ2h0KSBjb25zdDsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gNTQ3NTApCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTAsNyAr
NzEwLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludAogICAgIG8t
PmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7CiB9
CiAKLUludFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVj
dCogY29udGFpbmVyKSBjb25zdAorSW50U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250
YWluZXIoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGNvbnN0IEludFBvaW50JiBwb2ludCkgY29u
c3QKIHsKICAgICBBU1NFUlQoY29udGFpbmVyID09IHRoaXMtPmNvbnRhaW5lcigpKTsKIApAQCAt
NzE4LDEzICs3MTgsNyBAQCBJbnRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJvbUNvbnRhaW5l
CiAgICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQogICAgICAgICBvZmZzZXQgKz0gcmVsYXRpdmVQ
b3NpdGlvbk9mZnNldCgpOwogCi0gICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkg
ewotICAgICAgICBSZW5kZXJCbG9jayogY2I7Ci0gICAgICAgIGlmIChjb250YWluZXItPmlzQmxv
Y2tGbG93KCkgJiYgKGNiID0gdG9SZW5kZXJCbG9jayhjb250YWluZXIpKS0+aGFzQ29sdW1ucygp
KSB7Ci0gICAgICAgICAgICBJbnRSZWN0IHJlY3QoMCwgMCwgMSwgMSk7Ci0gICAgICAgICAgICBj
Yi0+YWRqdXN0UmVjdEZvckNvbHVtbnMocmVjdCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgY29u
dGFpbmVyLT5hZGp1c3RGb3JDb2x1bW5zKG9mZnNldCwgcG9pbnQpOwogCiAgICAgaWYgKGNvbnRh
aW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChj
b250YWluZXIpLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKQEAgLTc1Myw3ICs3
NDcsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSCiAgICAgaWYg
KCFvKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9m
ZnNldEZyb21Db250YWluZXIobyk7CisgICAgSW50U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZz
ZXRGcm9tQ29udGFpbmVyKG8sIHRyYW5zZm9ybVN0YXRlLm1hcHBlZFF1YWQoKS5lbmNsb3NpbmdC
b3VuZGluZ0JveCgpLmxvY2F0aW9uKCkpOwogCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gdXNlVHJh
bnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2
ZXMzRCgpKTsKICAgICBpZiAodXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKG8pKSB7CkBAIC03ODUsNyArNzc5LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1h
cEFic29sdXRlVG9Mb2NhbFBvaQogCiAgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4
ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKIAotICAgIEludFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvKTsKKyAgICBJbnRTaXplIGNvbnRhaW5l
ck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgSW50UG9pbnQoKSk7CiAKICAgICBib29s
IHByZXNlcnZlM0QgPSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgp
IHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmICh1c2VUcmFuc2Zvcm1zICYmIHNo
b3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIobykpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCShyZXZpc2lvbiA1NDc1MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBpbnQgdHgsIGludCB0eSk7
CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKIAot
ICAgIHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCopIGNv
bnN0OworICAgIHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVj
dCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKICAgICBJbnRSZWN0IGxpbmVzQm91bmRpbmdC
b3goKSBjb25zdDsKICAgICBJbnRSZWN0IGxpbmVzVmlzaWJsZU92ZXJmbG93Qm91bmRpbmdCb3go
KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNTQ3
NTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzYyLDYgKzE3NjIsMTEgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoUgogICAgIGlmICghbykKICAgICAgICAgcmV0dXJuOwogCisgICAgSW50U2l6ZSBjb2x1
bW5PZmZzZXQ7CisgICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHRyYW5zZm9y
bVN0YXRlLm1hcHBlZFF1YWQoKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLmxvY2F0aW9uKCkpOwor
ICAgIGlmICghY29sdW1uT2Zmc2V0LmlzWmVybygpKQorICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKGNvbHVtbk9mZnNldCk7CisKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAg
ICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSk7CiAKQEAgLTE4MjUsMTEgKzE4MzAsMTQgQEAgRmxvYXRRdWFkIFJl
bmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lcgogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5s
YXN0UGxhbmFyUXVhZCgpOwogfQogCi1JbnRTaXplIFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUNv
bnRhaW5lcihSZW5kZXJPYmplY3QqIG8pIGNvbnN0CitJbnRTaXplIFJlbmRlck9iamVjdDo6b2Zm
c2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IEludFBvaW50JiBwb2ludCkg
Y29uc3QKIHsKICAgICBBU1NFUlQobyA9PSBjb250YWluZXIoKSk7CiAKICAgICBJbnRTaXplIG9m
ZnNldDsKKworICAgIG8tPmFkanVzdEZvckNvbHVtbnMob2Zmc2V0LCBwb2ludCk7CisKICAgICBp
ZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChv
KS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKQEAgLTE4MzksNiArMTg0Nyw3
IEBAIEludFNpemUgUmVuZGVyT2JqZWN0OjpvZmZzZXRGcm9tQ29udGFpbmUKIEludFNpemUgUmVu
ZGVyT2JqZWN0OjpvZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoUmVuZGVyT2JqZWN0KiBjb250
YWluZXIpIGNvbnN0CiB7CiAgICAgSW50U2l6ZSBvZmZzZXQ7CisgICAgSW50UG9pbnQgcmVmZXJl
bmNlUG9pbnQ7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyQ29udGFpbmVyID0gdGhpczsK
ICAgICBkbyB7CiAgICAgICAgIFJlbmRlck9iamVjdCogbmV4dENvbnRhaW5lciA9IGN1cnJDb250
YWluZXItPmNvbnRhaW5lcigpOwpAQCAtMTg0Niw3ICsxODU1LDkgQEAgSW50U2l6ZSBSZW5kZXJP
YmplY3Q6Om9mZnNldEZyb21BbmNlc3RvcgogICAgICAgICBpZiAoIW5leHRDb250YWluZXIpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgQVNTRVJUKCFjdXJyQ29udGFpbmVyLT5oYXNUcmFu
c2Zvcm0oKSk7Ci0gICAgICAgIG9mZnNldCArPSBjdXJyQ29udGFpbmVyLT5vZmZzZXRGcm9tQ29u
dGFpbmVyKG5leHRDb250YWluZXIpOworICAgICAgICBJbnRTaXplIGN1cnJlbnRPZmZzZXQgPSBj
dXJyQ29udGFpbmVyLT5vZmZzZXRGcm9tQ29udGFpbmVyKG5leHRDb250YWluZXIsIHJlZmVyZW5j
ZVBvaW50KTsKKyAgICAgICAgb2Zmc2V0ICs9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgIHJlZmVy
ZW5jZVBvaW50Lm1vdmUoY3VycmVudE9mZnNldCk7CiAgICAgICAgIGN1cnJDb250YWluZXIgPSBu
ZXh0Q29udGFpbmVyOwogICAgIH0gd2hpbGUgKGN1cnJDb250YWluZXIgIT0gY29udGFpbmVyKTsK
IApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDU0NzUwKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2Myw3ICs1
NjMsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRRdWFkIGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0
IEZsb2F0UXVhZCYsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGZpeGVkID0gZmFsc2UpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0
aGUgY29udGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKQotICAgIHZpcnR1
YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCopIGNvbnN0OworICAg
IHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0
IEludFBvaW50JikgY29uc3Q7CiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSBhbiBvYmpl
Y3QgdXAgdGhlIGNvbnRhaW5lcigpIGNoYWluLiBBc3NlcnRzIHRoYXQgbm9uZSBvZiB0aGUgaW50
ZXJtZWRpYXRlIG9iamVjdHMgaGF2ZSB0cmFuc2Zvcm1zLgogICAgIEludFNpemUgb2Zmc2V0RnJv
bUFuY2VzdG9yQ29udGFpbmVyKFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgIApAQCAtNjQyLDYg
KzY0Miw4IEBAIHB1YmxpYzoKICAgICAvLyB0aGF0IHJlY3QgaW4gdGhlIGNvb3JkaW5hdGUgc3Bh
Y2Ugb2YgcmVwYWludENvbnRhaW5lci4KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JS
ZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0Jiwg
Ym9vbCBmaXhlZCA9IGZhbHNlKTsKIAorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RGb3JDb2x1bW5z
KEludFNpemUmLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IHsgfQorCiAgICAgdmlydHVhbCB1bnNp
Z25lZCBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAgICAgYm9vbCBpc0Zsb2F0
aW5nT3JQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gKGlzRmxvYXRpbmcoKSB8fCBpc1Bvc2l0
aW9uZWQoKSk7IH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAkocmV2
aXNpb24gNTQ3NTApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTQsMTEgKzE1NCwxMSBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6
c2V0T3ZlcnJpZGVTaXplKGluCiAgICAgUmVuZGVyQmxvY2s6OnNldE92ZXJyaWRlU2l6ZShzaXpl
KTsKIH0KIAotSW50U2l6ZSBSZW5kZXJUYWJsZUNlbGw6Om9mZnNldEZyb21Db250YWluZXIoUmVu
ZGVyT2JqZWN0KiBvKSBjb25zdAorSW50U2l6ZSBSZW5kZXJUYWJsZUNlbGw6Om9mZnNldEZyb21D
b250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKG8gPT0gY29udGFpbmVyKCkpOwogCi0gICAgSW50U2l6ZSBvZmZzZXQgPSBS
ZW5kZXJCbG9jazo6b2Zmc2V0RnJvbUNvbnRhaW5lcihvKTsKKyAgICBJbnRTaXplIG9mZnNldCA9
IFJlbmRlckJsb2NrOjpvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHBvaW50KTsKICAgICBpZiAocGFy
ZW50KCkpCiAgICAgICAgIG9mZnNldC5leHBhbmQoLXBhcmVudEJveCgpLT54KCksIC1wYXJlbnRC
b3goKS0+eSgpKTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgJKHJldmlz
aW9uIDU0NzUwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBw
YWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKIAotICAgIHZp
cnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCopIGNvbnN0Owor
ICAgIHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNv
bnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKTsKIApJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDU0NzUwKQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMCw0MSArMjIw
LDEyIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW4KIAogdm9pZCBS
ZW5kZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2UoVmVjdG9yPEludFJlY3Q+JiByZWN0cywg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQpCiB7
Ci0gICAgLy8gV29yayBhcm91bmQgc2lnbmVkL3Vuc2lnbmVkIGlzc3Vlcy4gVGhpcyBmdW5jdGlv
biB0YWtlcyB1bnNpZ25lZHMsIGFuZCBpcyBvZnRlbiBwYXNzZWQgVUlOVF9NQVgKLSAgICAvLyB0
byBtZWFuICJhbGwgdGhlIHdheSB0byB0aGUgZW5kIi4gSW5saW5lVGV4dEJveCBjb29yZGluYXRl
cyBhcmUgdW5zaWduZWRzLCBzbyBjaGFuZ2luZyB0aGlzIAotICAgIC8vIGZ1bmN0aW9uIHRvIHRh
a2UgaW50cyBjYXVzZXMgdmFyaW91cyBpbnRlcm5hbCBtaXNtYXRjaGVzLiBCdXQgc2VsZWN0aW9u
UmVjdCB0YWtlcyBpbnRzLCBhbmQgCi0gICAgLy8gcGFzc2luZyBVSU5UX01BWCB0byBpdCBjYXVz
ZXMgdHJvdWJsZS4gSWRlYWxseSB3ZSdkIGNoYW5nZSBzZWxlY3Rpb25SZWN0IHRvIHRha2UgdW5z
aWduZWRzLCBidXQgCi0gICAgLy8gdGhhdCB3b3VsZCBjYXVzZSBtYW55IHJpcHBsZSBlZmZlY3Rz
LCBzbyBmb3Igbm93IHdlJ2xsIGp1c3QgY2xhbXAgb3VyIHVuc2lnbmVkIHBhcmFtZXRlcnMgdG8g
SU5UX01BWC4KLSAgICBBU1NFUlQoZW5kID09IFVJTlRfTUFYIHx8IGVuZCA8PSBJTlRfTUFYKTsK
LSAgICBBU1NFUlQoc3RhcnQgPD0gSU5UX01BWCk7Ci0gICAgc3RhcnQgPSBtaW4oc3RhcnQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihJTlRfTUFYKSk7Ci0gICAgZW5kID0gbWluKGVuZCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KElOVF9NQVgpKTsKLSAgICAKLSAgICBGbG9hdFBvaW50IGFic1BvcyA9
IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpOwotCi0gICAgZm9yIChJbmxpbmVUZXh0Qm94
KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94KCkpIHsK
LSAgICAgICAgLy8gTm90ZTogYm94LT5lbmQoKSByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbGFz
dCBjaGFyYWN0ZXIsIG5vdCB0aGUgaW5kZXggcGFzdCBpdAotICAgICAgICBpZiAoc3RhcnQgPD0g
Ym94LT5zdGFydCgpICYmIGJveC0+ZW5kKCkgPCBlbmQpIHsKLSAgICAgICAgICAgIEludFJlY3Qg
ciA9IEludFJlY3QoYWJzUG9zLngoKSArIGJveC0+eCgpLCBhYnNQb3MueSgpICsgYm94LT55KCks
IGJveC0+d2lkdGgoKSwgYm94LT5oZWlnaHQoKSk7Ci0gICAgICAgICAgICBpZiAodXNlU2VsZWN0
aW9uSGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgSW50UmVjdCBzZWxlY3Rpb25SZWN0ID0gYm94
LT5zZWxlY3Rpb25SZWN0KGFic1Bvcy54KCksIGFic1Bvcy55KCksIHN0YXJ0LCBlbmQpOwotICAg
ICAgICAgICAgICAgIHIuc2V0SGVpZ2h0KHNlbGVjdGlvblJlY3QuaGVpZ2h0KCkpOwotICAgICAg
ICAgICAgICAgIHIuc2V0WShzZWxlY3Rpb25SZWN0LnkoKSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICByZWN0cy5hcHBlbmQocik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB1
bnNpZ25lZCByZWFsRW5kID0gbWluKGJveC0+ZW5kKCkgKyAxLCBlbmQpOwotICAgICAgICAgICAg
SW50UmVjdCByID0gYm94LT5zZWxlY3Rpb25SZWN0KGFic1Bvcy54KCksIGFic1Bvcy55KCksIHN0
YXJ0LCByZWFsRW5kKTsKLSAgICAgICAgICAgIGlmICghci5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIXVzZVNlbGVjdGlvbkhlaWdodCkgewotICAgICAgICAgICAgICAgICAgICAv
LyBjaGFuZ2UgdGhlIGhlaWdodCBhbmQgeSBwb3NpdGlvbiBiZWNhdXNlIHNlbGVjdGlvblJlY3Qg
dXNlcyBzZWxlY3Rpb24tc3BlY2lmaWMgdmFsdWVzCi0gICAgICAgICAgICAgICAgICAgIHIuc2V0
SGVpZ2h0KGJveC0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgICAgICAgICByLnNldFkoYWJzUG9z
LnkoKSArIGJveC0+eSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVj
dHMuYXBwZW5kKHIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIFZlY3Rv
cjxGbG9hdFF1YWQ+IHF1YWRzOworICAgIGFic29sdXRlUXVhZHNGb3JSYW5nZShxdWFkcywgc3Rh
cnQsIGVuZCwgdXNlU2VsZWN0aW9uSGVpZ2h0KTsKKyAgICBzaXplX3QgY291bnQgPSBxdWFkcy5z
aXplKCk7CisgICAgcmVjdHMucmVzZXJ2ZUNhcGFjaXR5KHJlY3RzLnNpemUoKSArIGNvdW50KTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIHJlY3RzLnVu
Y2hlY2tlZEFwcGVuZChxdWFkc1tpXS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCShyZXZpc2lvbiA1NDc1MCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MjAs
NyArNTIwLDcgQEAgRmxvYXRSZWN0IFJlbmRlclRoZW1lTWFjOjpjb252ZXJ0VG9QYWludAogICAg
IGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwYXJ0UmVuZGVyZXI7CiAgICAgd2hpbGUg
KHJlbmRlcmVyICYmIHJlbmRlcmVyICE9IGlucHV0UmVuZGVyZXIpIHsKICAgICAgICAgUmVuZGVy
T2JqZWN0KiBjb250YWluaW5nUmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFpbmVyKCk7Ci0gICAg
ICAgIG9mZnNldEZyb21JbnB1dFJlbmRlcmVyIC09IHJlbmRlcmVyLT5vZmZzZXRGcm9tQ29udGFp
bmVyKGNvbnRhaW5pbmdSZW5kZXJlcik7CisgICAgICAgIG9mZnNldEZyb21JbnB1dFJlbmRlcmVy
IC09IHJlbmRlcmVyLT5vZmZzZXRGcm9tQ29udGFpbmVyKGNvbnRhaW5pbmdSZW5kZXJlciwgSW50
UG9pbnQoKSk7CiAgICAgICAgIHJlbmRlcmVyID0gY29udGFpbmluZ1JlbmRlcmVyOwogICAgIH0K
ICAgICAvLyBJZiB0aGUgaW5wdXQgcmVuZGVyZXIgd2FzIG5vdCBhIGNvbnRhaW5lciwgc29tZXRo
aW5nIHdlbnQgd3JvbmcK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48732</attachid>
            <date>2010-02-14 13:56:27 -0800</date>
            <delta_ts>2010-02-15 10:02:07 -0800</delta_ts>
            <desc>Allow offsetFromContainer() to return the right offset for a given point in the multi-column case, and pass it the point of interest</desc>
            <filename>column-selection-rects_r3.diff</filename>
            <type>text/plain</type>
            <size>55130</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDc1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMDItMTQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzY0NzMwMD4gSW5jb3JyZWN0IGNsaWVudCByZWN0cyBmb3IgYmxvY2tzIHRo
ZSBzcGFuIG11bHRpcGxlIGNvbHVtbnMgYW5kIHRoZWlyIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDkyMworCisgICAgICAgIFRl
c3Q6IGZhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcv
U2VsZWN0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250
cm9sbGVyOjpsYXlvdXQpOiBQYXNzIHRoZSBjYXJldOKAmXMgb3JpZ2luIGFzIHRoZQorICAgICAg
ICByZWZlcmVuY2UgcG9pbnQgdG8gb2Zmc2V0RnJvbUNvbnRhaW5lcigpLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YWRqdXN0Rm9yQ29sdW1ucyk6IEFkZHMgdGhlIG9mZnNldCBiZXR3ZWVuIHRoZQorICAgICAgICBn
aXZlbiBwb2ludCBhbmQgaXRzIGltYWdlIHVuZGVyIHRoZSBjb2x1bW4gcGFpbnQtdGltZSB0cmFu
c2Zvcm0gdG8gdGhlCisgICAgICAgIGdpdmVuIG9mZnNldC4gVXNlZCBieSBvZmZzZXRGcm9tQ29u
dGFpbmVyKCkgd2hlcmUgaXQgaGFkIHByZXZpb3VzbHkgdXNlZAorICAgICAgICBhZGp1c3RSZWN0
Rm9yQ29sdW1ucygpLCB3aGljaCB0YWtlcyBhIHJlY3QgYW5kIG9wZXJhdGVzIGxlc3MgZWZmaWNp
ZW50bHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIpOiBQYXNzIHRoZSB0cmFuc2Zvcm1lZCBwb2ludCBhcworICAgICAgICB0
aGUgcmVmZXJlbmNlIHBvaW50IHRvIG9mZnNldEZyb21Db250YWluZXIoKS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQpOiBQYXNzIGEgcG9pbnQg
dG8KKyAgICAgICAgb2Zmc2V0RnJvbUNvbnRhaW5lcigpLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKTogVXNlIGFkanVzdEZvckNvbHVtbnMoKSBpbnN0
ZWFkCisgICAgICAgIG9mIGFkanVzdFJlY3RGb3JDb2x1bW5zKCksIGFuZCB1c2UgdGhlIHJlZmVy
ZW5jZSBwb2ludCB0byBnZXQgdGhlIHJpZ2h0CisgICAgICAgIGFkanVzdG1lbnQgZm9yIHRoZSBw
b2ludCBvZiBpbnRlcmVzdCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luLCBpbiBjYXNlIHRoaXMKKyAg
ICAgICAgYm94IHNwYW5zIG11bHRpcGxlIGNvbHVtbnMuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGFpbmVyKTogRGl0dG8uIEFj
dHVhbGx5IGFwcGx5IHRoZQorICAgICAgICBjb2x1bW4gb2Zmc2V0IHRvIHRoZSBjb21wdXRhdGlv
biwgd2hpY2ggcHJldmlvdXNseSB0aGlzIGZ1bmN0aW9uIGRpZG7igJl0CisgICAgICAgIGRvLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKTogUGFz
cyB0aGUgdHJhbnNmb3JtZWQgcG9pbnQKKyAgICAgICAgYXMgdGhlIHJlZmVyZW5jZSBwb2ludCB0
byBvZmZzZXRGcm9tQ29udGFpbmVyKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KTogUGFzcyBhIHBvaW50IHRvCisgICAgICAgIG9mZnNl
dEZyb21Db250YWluZXIoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOiBBcHBseSBjb2x1bW4gYWRqdXN0bWVu
dCwKKyAgICAgICAgYmFzZWQgb24gdGhlIHJlZmVyZW5jZSBwb2ludCwgdG8gdGhlIHRyYW5zZm9y
bSBpZiBuZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250
YWluZXJRdWFkKTogSW5pdGlhbGl6ZSB0aGUKKyAgICAgICAgVHJhbnNmb3JtU3RhdGUgd2l0aCB0
aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBxdWFk4oCZcyBib3VuZGluZyBib3guIEl0CisgICAg
ICAgIGlzIGxhdGVyIHVzZWQgYXMgdGhlIHJlZmVyZW5jZSBwb2ludCB3aGVuIGRlY2lkaW5nIG9u
IHdoaWNoIGNvbHVtbiB0bworICAgICAgICBiYXNlIHRoZSBjYWxjdWxhdGlvbnMuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om9mZnNldEZyb21Db250YWluZXIpOiBBZGp1c3QgZm9y
IGNvbHVtbnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om9mZnNldEZyb21BbmNl
c3RvckNvbnRhaW5lcik6IFBhc3MgdGhlIG9yaWdpbgorICAgICAgICBhcyB0aGUgcmVmZXJlbmNl
IHBvaW50IHRvIG9mZnNldEZyb21Db250YWluZXIoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFkanVzdEZvckNv
bHVtbnMpOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6
IFBhc3MgdGhlIHJlZmVyZW5jZQorICAgICAgICBwb2ludCB0aHJvdWdoLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFu
Z2UpOiBNYXAgKHRoZSBvcmlnaW4gb2YpIGVhY2gKKyAgICAgICAgcmVjdCB0byBhYnNvbHV0ZSBj
b29yZGluYXRlcyBpbmRpdmlkdWFsbHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnZlcnRUb1BhaW50
aW5nUmVjdCk6IFBhc3MgYSBwb2ludCB0bworICAgICAgICBvZmZzZXRGcm9tQ29udGFpbmVyKCku
CisKIDIwMTAtMDItMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9lZGl0
aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0MCw3ICs4
NDAsNiBAQCB2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmxheW91dCgpCiAgICAgICAgICAgICBS
ZW5kZXJPYmplY3QqIGNhcmV0UGFpbnRlciA9IGNhcmV0UmVuZGVyZXIoKTsKIAogICAgICAgICAg
ICAgLy8gQ29tcHV0ZSBhbiBvZmZzZXQgYmV0d2VlbiB0aGUgcmVuZGVyZXIgYW5kIHRoZSBjYXJl
dFBhaW50ZXIKLSAgICAgICAgICAgIEludFNpemUgb2Zmc2V0RnJvbVBhaW50ZXI7CiAgICAgICAg
ICAgICBib29sIHVucm9vdGVkID0gZmFsc2U7CiAgICAgICAgICAgICB3aGlsZSAocmVuZGVyZXIg
IT0gY2FyZXRQYWludGVyKSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBjb250YWlu
ZXJPYmplY3QgPSByZW5kZXJlci0+Y29udGFpbmVyKCk7CkBAIC04NDgsMTUgKzg0NywxMiBAQCB2
b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmxheW91dCgpCiAgICAgICAgICAgICAgICAgICAgIHVu
cm9vdGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIG9mZnNldEZyb21QYWludGVyICs9IHJlbmRlcmVyLT5vZmZz
ZXRGcm9tQ29udGFpbmVyKGNvbnRhaW5lck9iamVjdCk7CisgICAgICAgICAgICAgICAgbG9jYWxS
ZWN0Lm1vdmUocmVuZGVyZXItPm9mZnNldEZyb21Db250YWluZXIoY29udGFpbmVyT2JqZWN0LCBs
b2NhbFJlY3QubG9jYXRpb24oKSkpOwogICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gY29udGFp
bmVyT2JqZWN0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAo
IXVucm9vdGVkKSB7Ci0gICAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgY2FyZXQgcmVjdCB0byB0
aGUgY29vcmRzIG9mIHRoZSBwYWludGVyCi0gICAgICAgICAgICAgICAgbG9jYWxSZWN0Lm1vdmUo
b2Zmc2V0RnJvbVBhaW50ZXIpOworICAgICAgICAgICAgaWYgKCF1bnJvb3RlZCkKICAgICAgICAg
ICAgICAgICBtX2NhcmV0UmVjdCA9IGxvY2FsUmVjdDsKLSAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9hYnNDYXJldEJvdW5kc0RpcnR5ID0gdHJ1ZTsKICAgICAgICAg
fQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gNTQ3NTcpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NzQs
NiArMzg3NCwzMSBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RSZWN0Rm9yQ29sdW1ucyhJCiAg
ICAgciA9IHJlc3VsdDsKIH0KIAordm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQ29sdW1ucyhJ
bnRTaXplJiBvZmZzZXQsIGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBpZiAo
IWhhc0NvbHVtbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFRoaXMgaXMg
aW5jb3JyZWN0IGZvciByaWdodC10by1sZWZ0IGNvbHVtbnMuCisKKyAgICBWZWN0b3I8SW50UmVj
dD4mIGNvbHVtblJlY3RzID0gKnRoaXMtPmNvbHVtblJlY3RzKCk7CisKKyAgICBpbnQgZ2FwV2lk
dGggPSBjb2x1bW5HYXAoKTsKKyAgICBpbnQgeE9mZnNldCA9IDA7CisgICAgaW50IHlPZmZzZXQg
PSAwOworICAgIHNpemVfdCBjb2x1bW5Db3VudCA9IGNvbHVtblJlY3RzLnNpemUoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbHVtbkNvdW50OyArK2kpIHsKKyAgICAgICAgSW50UmVj
dCBjb2x1bW5SZWN0ID0gY29sdW1uUmVjdHNbaV07CisgICAgICAgIGlmIChwb2ludC55KCkgPCBj
b2x1bW5SZWN0LmJvdHRvbSgpICsgeU9mZnNldCkgeworICAgICAgICAgICAgb2Zmc2V0LmV4cGFu
ZCh4T2Zmc2V0LCAteU9mZnNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICB4T2Zmc2V0ICs9IGNvbHVtblJlY3Qud2lkdGgoKSArIGdhcFdpZHRoOworICAgICAg
ICB5T2Zmc2V0ICs9IGNvbHVtblJlY3QuaGVpZ2h0KCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRl
ckJsb2NrOjpjYWxjUHJlZldpZHRocygpCiB7CiAgICAgQVNTRVJUKHByZWZXaWR0aHNEaXJ0eSgp
KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJUcnVuY2F0aW9uKCk7CiAKICAgICB2b2lkIGFk
anVzdFJlY3RGb3JDb2x1bW5zKEludFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0Rm9yQ29sdW1ucyhJbnRTaXplJiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAogICAgIHZv
aWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NzQsNyArOTc0LDcgQEAgdm9pZCBS
ZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZAogICAgIH0gZWxzZQogICAgICAgICBm
aXhlZCB8PSBpc0ZpeGVkUG9zOwogICAgIAotICAgIEludFNpemUgY29udGFpbmVyT2Zmc2V0ID0g
b2Zmc2V0RnJvbUNvbnRhaW5lcihvKTsKKyAgICBJbnRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9m
ZnNldEZyb21Db250YWluZXIobywgcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBl
ZFBvaW50KCkpKTsKIAogICAgIGJvb2wgcHJlc2VydmUzRCA9IHVzZVRyYW5zZm9ybXMgJiYgKG8t
PnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7CiAgICAg
aWYgKHVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkg
ewpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2Nh
bFBvaW50KAogCiAgICAgby0+bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKIAotICAgIEludFNpemUgY29udGFpbmVyT2Zmc2V0ID0g
b2Zmc2V0RnJvbUNvbnRhaW5lcihvKTsKKyAgICBJbnRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9m
ZnNldEZyb21Db250YWluZXIobywgSW50UG9pbnQoKSk7CiAKICAgICBib29sIHByZXNlcnZlM0Qg
PSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCkt
PnByZXNlcnZlczNEKCkpOwogICAgIGlmICh1c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIobykpIHsKQEAgLTEwMjYsNyArMTAyNiw3IEBAIHZvaWQgUmVuZGVy
Qm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCgKICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92
ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHBy
ZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9y
bVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIH0KIAotSW50U2l6ZSBSZW5kZXJCb3g6Om9mZnNl
dEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAorSW50U2l6ZSBSZW5kZXJCb3g6
Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBJbnRQb2ludCYgcG9p
bnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG8gPT0gY29udGFpbmVyKCkpOwogCkBAIC0xMDM1LDE0
ICsxMDM1LDkgQEAgSW50U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUgogICAg
ICAgICBvZmZzZXQgKz0gcmVsYXRpdmVQb3NpdGlvbk9mZnNldCgpOwogCiAgICAgaWYgKCFpc0lu
bGluZSgpIHx8IGlzUmVwbGFjZWQoKSkgewotICAgICAgICBSZW5kZXJCbG9jayogY2I7Ci0gICAg
ICAgIGlmIChvLT5pc0Jsb2NrRmxvdygpICYmIHN0eWxlKCktPnBvc2l0aW9uKCkgIT0gQWJzb2x1
dGVQb3NpdGlvbiAmJiBzdHlsZSgpLT5wb3NpdGlvbigpICE9IEZpeGVkUG9zaXRpb24KLSAgICAg
ICAgICAgICAgICAmJiAoY2IgPSB0b1JlbmRlckJsb2NrKG8pKS0+aGFzQ29sdW1ucygpKSB7Ci0g
ICAgICAgICAgICBJbnRSZWN0IHJlY3QoeCgpLCB5KCksIDEsIDEpOwotICAgICAgICAgICAgY2It
PmFkanVzdFJlY3RGb3JDb2x1bW5zKHJlY3QpOwotICAgICAgICAgICAgb2Zmc2V0LmV4cGFuZChy
ZWN0LngoKSwgcmVjdC55KCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG9mZnNldC5l
eHBhbmQoeCgpLCB5KCkpOworICAgICAgICBpZiAoc3R5bGUoKS0+cG9zaXRpb24oKSAhPSBBYnNv
bHV0ZVBvc2l0aW9uICYmIHN0eWxlKCktPnBvc2l0aW9uKCkgIT0gRml4ZWRQb3NpdGlvbikKKyAg
ICAgICAgICAgIG8tPmFkanVzdEZvckNvbHVtbnMob2Zmc2V0LCBJbnRQb2ludChwb2ludC54KCkg
KyB4KCksIHBvaW50LnkoKSArIHkoKSkpOworICAgICAgICBvZmZzZXQuZXhwYW5kKHgoKSwgeSgp
KTsKICAgICB9CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCkluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICBpbnQg
b3ZlcnJpZGVIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3ZlcnJpZGVTaXpl
KGludCk7CiAKLSAgICB2aXJ0dWFsIEludFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJP
YmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEludFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihS
ZW5kZXJPYmplY3QqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgIAogICAgIGludCBjYWxj
Qm9yZGVyQm94V2lkdGgoaW50IHdpZHRoKSBjb25zdDsKICAgICBpbnQgY2FsY0JvcmRlckJveEhl
aWdodChpbnQgaGVpZ2h0KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNv
bXB1dGVSZWN0Rm9yUmVwYWludAogICAgIG8tPmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50
Q29udGFpbmVyLCByZWN0LCBmaXhlZCk7CiB9CiAKLUludFNpemUgUmVuZGVySW5saW5lOjpvZmZz
ZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogY29udGFpbmVyKSBjb25zdAorSW50U2l6ZSBS
ZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBjb250YWluZXIs
IGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICBBU1NFUlQoY29udGFpbmVyID09
IHRoaXMtPmNvbnRhaW5lcigpKTsKIApAQCAtNzE4LDEzICs3MTgsNyBAQCBJbnRTaXplIFJlbmRl
cklubGluZTo6b2Zmc2V0RnJvbUNvbnRhaW5lCiAgICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQog
ICAgICAgICBvZmZzZXQgKz0gcmVsYXRpdmVQb3NpdGlvbk9mZnNldCgpOwogCi0gICAgaWYgKCFp
c0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkgewotICAgICAgICBSZW5kZXJCbG9jayogY2I7Ci0g
ICAgICAgIGlmIChjb250YWluZXItPmlzQmxvY2tGbG93KCkgJiYgKGNiID0gdG9SZW5kZXJCbG9j
ayhjb250YWluZXIpKS0+aGFzQ29sdW1ucygpKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IHJlY3Qo
MCwgMCwgMSwgMSk7Ci0gICAgICAgICAgICBjYi0+YWRqdXN0UmVjdEZvckNvbHVtbnMocmVjdCk7
Ci0gICAgICAgIH0KLSAgICB9CisgICAgY29udGFpbmVyLT5hZGp1c3RGb3JDb2x1bW5zKG9mZnNl
dCwgcG9pbnQpOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAg
ICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChjb250YWluZXIpLT5sYXllcigpLT5zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKTsKQEAgLTc1Myw3ICs3NDcsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6bWFw
TG9jYWxUb0NvbnRhaW5lcihSCiAgICAgaWYgKCFvKQogICAgICAgICByZXR1cm47CiAKLSAgICBJ
bnRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobyk7CisgICAgSW50
U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRJbnRQ
b2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CiAKICAgICBib29sIHByZXNlcnZl
M0QgPSB1c2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxl
KCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmICh1c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRy
YW5zZm9ybUZyb21Db250YWluZXIobykpIHsKQEAgLTc4NSw3ICs3NzksNyBAQCB2b2lkIFJlbmRl
cklubGluZTo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pCiAKICAgICBvLT5tYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwogCi0gICAgSW50
U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8pOworICAgIEludFNp
emUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBJbnRQb2ludCgpKTsK
IAogICAgIGJvb2wgcHJlc2VydmUzRCA9IHVzZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnBy
ZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7CiAgICAgaWYgKHVzZVRyYW5z
Zm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewpJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDU0NzU3KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGludCB0
eCwgaW50IHR5KTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYpOwogCi0gICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVy
T2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIo
UmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAogICAgIEludFJlY3QgbGlu
ZXNCb3VuZGluZ0JveCgpIGNvbnN0OwogICAgIEludFJlY3QgbGluZXNWaXNpYmxlT3ZlcmZsb3dC
b3VuZGluZ0JveCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShy
ZXZpc2lvbiA1NDc1NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE3NjIsNiArMTc2MiwxMSBAQCB2b2lkIFJlbmRlck9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihSCiAgICAgaWYgKCFvKQogICAgICAgICByZXR1cm47CiAKKyAgICBJ
bnRTaXplIGNvbHVtbk9mZnNldDsKKyAgICBvLT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNl
dCwgcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKKyAgICBp
ZiAoIWNvbHVtbk9mZnNldC5pc1plcm8oKSkKKyAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShj
b2x1bW5PZmZzZXQpOworCiAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICB0
cmFuc2Zvcm1TdGF0ZS5tb3ZlKC10b1JlbmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250
ZW50T2Zmc2V0KCkpOwogCkBAIC0xODE4LDE4ICsxODIzLDIxIEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpnZXRUcmFuc2Zvcm1Gcm9tQ29udGEKIAogRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxU
b0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkKSBjb25zdAogewotICAgIFRyYW5z
Zm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURp
cmVjdGlvbiwgRmxvYXRQb2ludCgpLCAmbG9jYWxRdWFkKTsKKyAgICBUcmFuc2Zvcm1TdGF0ZSB0
cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxv
Y2FsUXVhZC5ib3VuZGluZ0JveCgpLmxvY2F0aW9uKCksICZsb2NhbFF1YWQpOwogICAgIG1hcExv
Y2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHRydWUsIHRyYW5zZm9ybVN0
YXRlKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAgICAgcmV0dXJuIHRy
YW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJRdWFkKCk7CiB9CiAKLUludFNpemUgUmVuZGVyT2JqZWN0
OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbykgY29uc3QKK0ludFNpemUgUmVu
ZGVyT2JqZWN0OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbywgY29uc3QgSW50
UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIEFTU0VSVChvID09IGNvbnRhaW5lcigpKTsKIAog
ICAgIEludFNpemUgb2Zmc2V0OworCisgICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhvZmZzZXQsIHBv
aW50KTsKKwogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKICAgICAgICAgb2Zmc2V0IC09
IHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKIApAQCAt
MTgzOSw2ICsxODQ3LDcgQEAgSW50U2l6ZSBSZW5kZXJPYmplY3Q6Om9mZnNldEZyb21Db250YWlu
ZQogSW50U2l6ZSBSZW5kZXJPYmplY3Q6Om9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihSZW5k
ZXJPYmplY3QqIGNvbnRhaW5lcikgY29uc3QKIHsKICAgICBJbnRTaXplIG9mZnNldDsKKyAgICBJ
bnRQb2ludCByZWZlcmVuY2VQb2ludDsKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIGN1cnJDb250
YWluZXIgPSB0aGlzOwogICAgIGRvIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXh0Q29udGFp
bmVyID0gY3VyckNvbnRhaW5lci0+Y29udGFpbmVyKCk7CkBAIC0xODQ2LDcgKzE4NTUsOSBAQCBJ
bnRTaXplIFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUFuY2VzdG9yCiAgICAgICAgIGlmICghbmV4
dENvbnRhaW5lcikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBBU1NFUlQoIWN1cnJDb250
YWluZXItPmhhc1RyYW5zZm9ybSgpKTsKLSAgICAgICAgb2Zmc2V0ICs9IGN1cnJDb250YWluZXIt
Pm9mZnNldEZyb21Db250YWluZXIobmV4dENvbnRhaW5lcik7CisgICAgICAgIEludFNpemUgY3Vy
cmVudE9mZnNldCA9IGN1cnJDb250YWluZXItPm9mZnNldEZyb21Db250YWluZXIobmV4dENvbnRh
aW5lciwgcmVmZXJlbmNlUG9pbnQpOworICAgICAgICBvZmZzZXQgKz0gY3VycmVudE9mZnNldDsK
KyAgICAgICAgcmVmZXJlbmNlUG9pbnQubW92ZShjdXJyZW50T2Zmc2V0KTsKICAgICAgICAgY3Vy
ckNvbnRhaW5lciA9IG5leHRDb250YWluZXI7CiAgICAgfSB3aGlsZSAoY3VyckNvbnRhaW5lciAh
PSBjb250YWluZXIpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24g
NTQ3NTcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTYzLDcgKzU2Myw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRh
aW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm4gdGhl
IG9mZnNldCBmcm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAoZXhjbHVkaW5nIHRyYW5zZm9y
bXMpCi0gICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0
KikgY29uc3Q7CisgICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVy
T2JqZWN0KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICAvLyBSZXR1cm4gdGhlIG9mZnNl
dCBmcm9tIGFuIG9iamVjdCB1cCB0aGUgY29udGFpbmVyKCkgY2hhaW4uIEFzc2VydHMgdGhhdCBu
b25lIG9mIHRoZSBpbnRlcm1lZGlhdGUgb2JqZWN0cyBoYXZlIHRyYW5zZm9ybXMuCiAgICAgSW50
U2l6ZSBvZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAg
ICAgCkBAIC02NDIsNiArNjQyLDggQEAgcHVibGljOgogICAgIC8vIHRoYXQgcmVjdCBpbiB0aGUg
Y29vcmRpbmF0ZSBzcGFjZSBvZiByZXBhaW50Q29udGFpbmVyLgogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpOwogCisgICAgdmlydHVhbCB2b2lkIGFk
anVzdEZvckNvbHVtbnMoSW50U2l6ZSYsIGNvbnN0IEludFBvaW50JikgY29uc3QgeyB9CisKICAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiAxOyB9CiAKICAg
ICBib29sIGlzRmxvYXRpbmdPclBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiAoaXNGbG9hdGlu
ZygpIHx8IGlzUG9zaXRpb25lZCgpKTsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwCShyZXZpc2lvbiA1NDc1NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSArMTU0LDExIEBAIHZvaWQgUmVu
ZGVyVGFibGVDZWxsOjpzZXRPdmVycmlkZVNpemUoaW4KICAgICBSZW5kZXJCbG9jazo6c2V0T3Zl
cnJpZGVTaXplKHNpemUpOwogfQogCi1JbnRTaXplIFJlbmRlclRhYmxlQ2VsbDo6b2Zmc2V0RnJv
bUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8pIGNvbnN0CitJbnRTaXplIFJlbmRlclRhYmxlQ2Vs
bDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IEludFBvaW50JiBw
b2ludCkgY29uc3QKIHsKICAgICBBU1NFUlQobyA9PSBjb250YWluZXIoKSk7CiAKLSAgICBJbnRT
aXplIG9mZnNldCA9IFJlbmRlckJsb2NrOjpvZmZzZXRGcm9tQ29udGFpbmVyKG8pOworICAgIElu
dFNpemUgb2Zmc2V0ID0gUmVuZGVyQmxvY2s6Om9mZnNldEZyb21Db250YWluZXIobywgcG9pbnQp
OwogICAgIGlmIChwYXJlbnQoKSkKICAgICAgICAgb2Zmc2V0LmV4cGFuZCgtcGFyZW50Qm94KCkt
PngoKSwgLXBhcmVudEJveCgpLT55KCkpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuaAkocmV2aXNpb24gNTQ3NTcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQg
dHkpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQg
dHkpOwogCi0gICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2Jq
ZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCBJbnRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFJlY3Qg
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVk
ID0gZmFsc2UpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gNTQ3
NTcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMwLDI3ICsyMzAsMzIgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFu
Z2UoVgogICAgIHN0YXJ0ID0gbWluKHN0YXJ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSU5UX01B
WCkpOwogICAgIGVuZCA9IG1pbihlbmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihJTlRfTUFYKSk7
CiAgICAgCi0gICAgRmxvYXRQb2ludCBhYnNQb3MgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2lu
dCgpKTsKLQogICAgIGZvciAoSW5saW5lVGV4dEJveCogYm94ID0gZmlyc3RUZXh0Qm94KCk7IGJv
eDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7CiAgICAgICAgIC8vIE5vdGU6IGJveC0+ZW5k
KCkgcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVyLCBub3QgdGhlIGluZGV4
IHBhc3QgaXQKICAgICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQoKSAmJiBib3gtPmVuZCgp
IDwgZW5kKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IHIgPSBJbnRSZWN0KGFic1Bvcy54KCkgKyBi
b3gtPngoKSwgYWJzUG9zLnkoKSArIGJveC0+eSgpLCBib3gtPndpZHRoKCksIGJveC0+aGVpZ2h0
KCkpOworICAgICAgICAgICAgSW50UmVjdCByID0gSW50UmVjdChib3gtPngoKSwgYm94LT55KCks
IGJveC0+d2lkdGgoKSwgYm94LT5oZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAodXNlU2VsZWN0
aW9uSGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgSW50UmVjdCBzZWxlY3Rpb25SZWN0ID0gYm94
LT5zZWxlY3Rpb25SZWN0KGFic1Bvcy54KCksIGFic1Bvcy55KCksIHN0YXJ0LCBlbmQpOworICAg
ICAgICAgICAgICAgIEludFJlY3Qgc2VsZWN0aW9uUmVjdCA9IGJveC0+c2VsZWN0aW9uUmVjdCgw
LCAwLCBzdGFydCwgZW5kKTsKICAgICAgICAgICAgICAgICByLnNldEhlaWdodChzZWxlY3Rpb25S
ZWN0LmhlaWdodCgpKTsKICAgICAgICAgICAgICAgICByLnNldFkoc2VsZWN0aW9uUmVjdC55KCkp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgRmxvYXRQb2ludCBvcmlnaW4gPSBsb2NhbFRv
QWJzb2x1dGUoci5sb2NhdGlvbigpKTsKKyAgICAgICAgICAgIHIuc2V0WChvcmlnaW4ueCgpKTsK
KyAgICAgICAgICAgIHIuc2V0WShvcmlnaW4ueSgpKTsKICAgICAgICAgICAgIHJlY3RzLmFwcGVu
ZChyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHVuc2lnbmVkIHJlYWxFbmQgPSBt
aW4oYm94LT5lbmQoKSArIDEsIGVuZCk7Ci0gICAgICAgICAgICBJbnRSZWN0IHIgPSBib3gtPnNl
bGVjdGlvblJlY3QoYWJzUG9zLngoKSwgYWJzUG9zLnkoKSwgc3RhcnQsIHJlYWxFbmQpOworICAg
ICAgICAgICAgSW50UmVjdCByID0gYm94LT5zZWxlY3Rpb25SZWN0KDAsIDAsIHN0YXJ0LCByZWFs
RW5kKTsKICAgICAgICAgICAgIGlmICghci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXVzZVNlbGVjdGlvbkhlaWdodCkgewogICAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2Ug
dGhlIGhlaWdodCBhbmQgeSBwb3NpdGlvbiBiZWNhdXNlIHNlbGVjdGlvblJlY3QgdXNlcyBzZWxl
Y3Rpb24tc3BlY2lmaWMgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgIHIuc2V0SGVpZ2h0KGJv
eC0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgICAgICAgICByLnNldFkoYWJzUG9zLnkoKSArIGJv
eC0+eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgci5zZXRZKGJveC0+eSgpKTsKICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBvcmlnaW4gPSBsb2NhbFRvQWJz
b2x1dGUoci5sb2NhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBsb2NhbFRvQWJzb2x1dGUob3Jp
Z2luKTsKKyAgICAgICAgICAgICAgICByLnNldFgob3JpZ2luLngoKSk7CisgICAgICAgICAgICAg
ICAgci5zZXRZKG9yaWdpbi55KCkpOwogICAgICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChyKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0JKHJldmlzaW9uIDU0NzU3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyMCw3ICs1MjAsNyBAQCBGbG9hdFJlY3QgUmVuZGVy
VGhlbWVNYWM6OmNvbnZlcnRUb1BhaW50CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IHBhcnRSZW5kZXJlcjsKICAgICB3aGlsZSAocmVuZGVyZXIgJiYgcmVuZGVyZXIgIT0gaW5w
dXRSZW5kZXJlcikgewogICAgICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5pbmdSZW5kZXJlciA9
IHJlbmRlcmVyLT5jb250YWluZXIoKTsKLSAgICAgICAgb2Zmc2V0RnJvbUlucHV0UmVuZGVyZXIg
LT0gcmVuZGVyZXItPm9mZnNldEZyb21Db250YWluZXIoY29udGFpbmluZ1JlbmRlcmVyKTsKKyAg
ICAgICAgb2Zmc2V0RnJvbUlucHV0UmVuZGVyZXIgLT0gcmVuZGVyZXItPm9mZnNldEZyb21Db250
YWluZXIoY29udGFpbmluZ1JlbmRlcmVyLCBJbnRQb2ludCgpKTsKICAgICAgICAgcmVuZGVyZXIg
PSBjb250YWluaW5nUmVuZGVyZXI7CiAgICAgfQogICAgIC8vIElmIHRoZSBpbnB1dCByZW5kZXJl
ciB3YXMgbm90IGEgY29udGFpbmVyLCBzb21ldGhpbmcgd2VudCB3cm9uZwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNTQ3NTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxMC0wMi0xNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83NjQ3MzAwPiBJbmNvcnJlY3QgY2xpZW50IHJlY3RzIGZvciBibG9ja3MgdGhl
IHNwYW4gbXVsdGlwbGUgY29sdW1ucyBhbmQgdGhlaXIgZGVzY2VuZGFudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTIzCisKKyAgICAgICAgKiBm
YXN0L211bHRpY29sL2NsaWVudC1yZWN0cy1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAg
ICAgICogZmFzdC9tdWx0aWNvbC9jbGllbnQtcmVjdHMtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLmh0bWw6IEFkZGVkLgorCiAyMDEw
LTAyLTE0ICBDaGFuZyBTaHUgIDxDaGFuZy5TaHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IExhc3psbyBHb21ib3MuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL2Ns
aWVudC1yZWN0cy1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L211bHRpY29sL2NsaWVudC1yZWN0cy1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis1MTU0MzdmZmU0ODIwNTg2MDZhNDQ0ZWIx
MzJkMTI1NQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODIKKyAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMTEpIHNpemUgNDIxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTEpIHdp
ZHRoIDQyMTogIlRoZSBibHVlIGJvcmRlcnMgc2hvdWxkIGNvaW5jaWRlIHdpdGggbGlnaHQgYmx1
ZSBzcXVhcmVzLCBsaWtlIHRoaXM6ICIKKyAgICAgICAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICg0
MjEsMCkgc2l6ZSAyNXgyNSBbYmdjb2xvcj0jQUREOEU2XSBbYm9yZGVyOiAoM3B4IHNvbGlkICMw
MDAwRkY3RildCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDQ2LDExKSBzaXplIDE5
NngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg0NDYsMTEpIHdpZHRoIDg6ICIuICIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNDU0LDExKSB3aWR0aCAxODg6ICJUaGVyZSBzaG91bGQgYmUgbm9u
ZSBvZiB0aGlzOiAiCisgICAgICAgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoNjQyLDApIHNpemUg
MjV4MjUgW2JnY29sb3I9I0FERDhFNl0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2
NjcsMTEpIHNpemUgNTF4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjY3LDExKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjcxLDExKSB3aWR0aCA0NzogIm9yIHRoaXM6
ICIKKyAgICAgICAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICg3MTgsMCkgc2l6ZSAyNXgyNSBbYm9y
ZGVyOiAoM3B4IHNvbGlkICMwMDAwRkY3RildCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNzQzLDExKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQzLDExKSB3aWR0
aCA0OiAiLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDQ1KSBzaXplIDEzNng3NiBb
Y29sb3I9I0FERDhFNl0gW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMTMsMTMpIHNpemUgMHgyNQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDEzLDM4KSBzaXplIDI1eDc1CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEzLDM4KSB3
aWR0aCAyNTogIngiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEzLDYzKSB3aWR0aCAyNTogInki
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEzLDg4KSB3aWR0aCAyNTogInoiCisgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwxMzEpIHNpemUgMTM2eDc2IFtjb2xvcj0jQUREOEU2XSBbYm9y
ZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgxMywx
Mykgc2l6ZSAweDI1CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAy
NXg3NQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTMsMzgpIHNpemUgMjV4NzUK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMywzOCkgd2lkdGggMjU6ICJ4IgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDEzLDYzKSB3aWR0aCAyNTogInkiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTMsODgpIHdpZHRoIDI1OiAieiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyMTcpIHNpemUg
MTM2eDc2IFtjb2xvcj0jQUREOEU2XSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMTMsMTMpIHNpemUgNTB4MjUKKyAgICAg
ICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgyNQorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMTMsMzgpIHNpemUgNTB4NzUKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAyNXg3NQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMjU6ICJ4IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjUpIHdpZHRoIDI1OiAieSIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDUwKSB3aWR0aCAyNTogInoiCisgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwzMDMpIHNpemUgMTM2eDc2IFtjb2xvcj0jQUREOEU2XSBbYm9y
ZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3Vz
KSBhdCAoMTMsMTMpIHNpemUgNTB4MjUKKyAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDAp
IHNpemUgMHgyNQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTMsMzgpIHNpemUgNTB4
NzUKKyAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgyNQorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyNSkgc2l6ZSAyNXg1MAorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMjUpIHdpZHRoIDI1OiAieSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDUwKSB3aWR0aCAyNTogInoiCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzODkpIHNp
emUgMTM2eDc2IFtjb2xvcj0jQUREOEU2XSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQor
ICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMTMsMTMpIHNpemUgNTB4MjUKKyAg
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgyNQorICAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMTMsMzgpIHNpemUgNTB4NTQKKyAgICAgICAgICBSZW5kZXJCUiB7QlJ9
IGF0ICgwLDApIHNpemUgMHgyNQorICAgICAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgy
LDI3KSBzaXplIDI1eDI1IFtjb2xvcj0jMDAwMDAwXSBbYmdjb2xvcj0jQUREOEU2XQorICAgICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEyLDEyKSBzaXplIDB4MAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNDc1KSBzaXplIDEzNng3NiBbY29sb3I9I0FERDhFNl0gW2JvcmRl
cjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykg
YXQgKDEzLDEzKSBzaXplIDUweDI1CisgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBz
aXplIDB4MjUKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEzLDM4KSBzaXplIDUweDUw
CisgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MjUKKyAgICAgICAgICBS
ZW5kZXJJbWFnZSB7SU1HfSBhdCAoMCwyNSkgc2l6ZSAyNXgyNSBbYmdjb2xvcj0jQUREOEU2XQor
bGF5ZXIgYXQgKDIxLDkxKSBzaXplIDI1eDI1CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7
RElWfSBhdCAoMjEsOTEpIHNpemUgMjV4MjUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMEZGN0Yp
XQorbGF5ZXIgYXQgKDgxLDY2KSBzaXplIDI1eDI1CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVk
KSB7RElWfSBhdCAoODEsNjYpIHNpemUgMjV4MjUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMEZG
N0YpXQorbGF5ZXIgYXQgKDgxLDkxKSBzaXplIDI1eDI1CisgIFJlbmRlckJsb2NrIChwb3NpdGlv
bmVkKSB7RElWfSBhdCAoODEsOTEpIHNpemUgMjV4MjUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAw
MEZGN0YpXQorbGF5ZXIgYXQgKDIxLDE3Nykgc2l6ZSAyNXgyNQorICBSZW5kZXJCbG9jayAocG9z
aXRpb25lZCkge0RJVn0gYXQgKDIxLDE3Nykgc2l6ZSAyNXgyNSBbYm9yZGVyOiAoM3B4IHNvbGlk
ICMwMDAwRkY3RildCitsYXllciBhdCAoODEsMTUyKSBzaXplIDI1eDI1CisgIFJlbmRlckJsb2Nr
IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoODEsMTUyKSBzaXplIDI1eDI1IFtib3JkZXI6ICgzcHgg
c29saWQgIzAwMDBGRjdGKV0KK2xheWVyIGF0ICg4MSwxNzcpIHNpemUgMjV4MjUKKyAgUmVuZGVy
QmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICg4MSwxNzcpIHNpemUgMjV4MjUgW2JvcmRlcjog
KDNweCBzb2xpZCAjMDAwMEZGN0YpXQorbGF5ZXIgYXQgKDIxLDI2Mykgc2l6ZSAyNXgyNQorICBS
ZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDIxLDI2Mykgc2l6ZSAyNXgyNSBbYm9y
ZGVyOiAoM3B4IHNvbGlkICMwMDAwRkY3RildCitsYXllciBhdCAoODEsMjM4KSBzaXplIDI1eDI1
CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoODEsMjM4KSBzaXplIDI1eDI1
IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDBGRjdGKV0KK2xheWVyIGF0ICg4MSwyNjMpIHNpemUg
MjV4MjUKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICg4MSwyNjMpIHNpemUg
MjV4MjUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMEZGN0YpXQorbGF5ZXIgYXQgKDgxLDMyNCkg
c2l6ZSAyNXgyNQorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDgxLDMyNCkg
c2l6ZSAyNXgyNSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwRkY3RildCitsYXllciBhdCAoODEs
MzQ5KSBzaXplIDI1eDI1CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoODEs
MzQ5KSBzaXplIDI1eDI1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDBGRjdGKV0KK2xheWVyIGF0
ICg4Myw0MTIpIHNpemUgMjV4MjUKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICg4Myw0MTIpIHNpemUgMjV4MjUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMEZGN0YpXQorbGF5
ZXIgYXQgKDgxLDUyMSkgc2l6ZSAyNXgyNQorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJ
Vn0gYXQgKDgxLDUyMSkgc2l6ZSAyNXgyNSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwRkY3Rild
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMyBAQAorPHN0eWxlPgorICAgIGRpdi5jb2x1bW5z
IHsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICB3aWR0aDogMTEwcHg7CisgICAgICAg
IG1hcmdpbjogMTBweCAwOworICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICBib3JkZXI6
IHNvbGlkIGJsYWNrOworICAgICAgICBmb250LWZhbWlseTogYWhlbTsKKyAgICAgICAgZm9udC1z
aXplOiAyNXB4OworICAgICAgICBjb2xvcjogbGlnaHRibHVlOworICAgICAgICAtd2Via2l0LWNv
bHVtbnM6IDI7CisgICAgICAgIC13ZWJraXQtY29sdW1uLWdhcDogMTBweDsKKyAgICB9CisKKyAg
ICBkaXYubWFya2VyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBib3Jk
ZXI6IHNvbGlkIHJnYmEoMCwgMCwgMjU1LCAwLjUpOworICAgICAgICAtd2Via2l0LWJveC1zaXpp
bmc6IGJvcmRlci1ib3g7CisgICAgfQorCisgICAgaW5wdXRbdHlwZT0icmFuZ2UiXSB7CisgICAg
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKKyAgICAgICAgd2lkdGg6IDI1cHg7CisgICAg
ICAgIGhlaWdodDogMjVweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlOwor
ICAgIH0KKworICAgIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsK
KyAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOworICAgIH0KKzwvc3R5bGU+Cis8cD4K
KyAgICBUaGUgYmx1ZSBib3JkZXJzIHNob3VsZCBjb2luY2lkZSB3aXRoIGxpZ2h0IGJsdWUgc3F1
YXJlcywgbGlrZSB0aGlzOgorICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsgYm9yZGVyOiBzb2xpZCByZ2JhKDAsIDAsIDI1
NSwgMC41KTsgd2lkdGg6IDE5cHg7IGhlaWdodDogMTlweDsiPjwvc3Bhbj4uCisgICAgVGhlcmUg
c2hvdWxkIGJlIG5vbmUgb2YgdGhpczoKKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5l
LWJsb2NrOyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7IHdpZHRoOiAyNXB4OyBoZWlnaHQ6
IDI1cHg7Ij48L3NwYW4+CisgICAgb3IgdGhpczoKKyAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTog
aW5saW5lLWJsb2NrOyBib3JkZXI6IHNvbGlkIHJnYmEoMCwgMCwgMjU1LCAwLjUpOyB3aWR0aDog
MTlweDsgaGVpZ2h0OiAxOXB4OyI+PC9zcGFuPi4KKzwvcD4KKzxkaXYgY2xhc3M9ImNvbHVtbnMi
IGlkPSJ0MSI+CisgICAgPGJyPnggeSB6Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29sdW1ucyI+
CisgICAgPGJyPjxzcGFuIGlkPSJ0MiI+eCB5IHo8L3NwYW4+Cis8L2Rpdj4KKworPGRpdiBjbGFz
cz0iY29sdW1ucyI+CisgICAgPGJyPjxkaXYgaWQ9InQzIj54IHkgejwvZGl2PgorPC9kaXY+CisK
KzxkaXYgY2xhc3M9ImNvbHVtbnMiPgorICAgIDxicj48ZGl2IGlkPSJ0NCI+PGJyPnkgejwvZGl2
PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNvbHVtbnMiPgorICAgIDxicj48ZGl2Pjxicj48aW5w
dXQgaWQ9InQ1IiB0eXBlPSJyYW5nZSI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29s
dW1ucyI+CisgICAgPGJyPjxkaXY+PGJyPjxpbWcgaWQ9InQ2IiBzdHlsZT0id2lkdGg6IDI1cHg7
IGhlaWdodDogMjVweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlOyI+PC9kaXY+Cis8L2Rp
dj4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwbGFjZU1hcmtlcihjbGllbnRSZWN0KQorICAg
IHsKKyAgICAgICAgdmFyIG1hcmtlciA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgICAgICBtYXJrZXIuY2xhc3NOYW1lID0gIm1h
cmtlciI7CisgICAgICAgIG1hcmtlci5zdHlsZS5sZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgInB4
IjsKKyAgICAgICAgbWFya2VyLnN0eWxlLnRvcCA9IGNsaWVudFJlY3QudG9wICsgInB4IjsKKyAg
ICAgICAgbWFya2VyLnN0eWxlLndpZHRoID0gY2xpZW50UmVjdC53aWR0aCArICJweCI7CisgICAg
ICAgIG1hcmtlci5zdHlsZS5oZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCArICJweCI7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcGxhY2VNYXJrZXJzRm9yUmFuZ2UocmFuZ2UsIHN0YXJ0T2Zmc2V0
KQorICAgIHsKKyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0ID09PSB1bmRlZmluZWQpCisgICAgICAg
ICAgICBzdGFydE9mZnNldCA9IDA7CisKKyAgICAgICAgdmFyIGNsaWVudFJlY3RzID0gcmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0T2Zmc2V0OyBpIDwg
Y2xpZW50UmVjdHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBwbGFjZU1hcmtlcihjbGllbnRS
ZWN0c1tpXSk7CisgICAgfQorCisgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2Uo
KTsKKworICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0MSIpLmZp
cnN0Q2hpbGQubmV4dFNpYmxpbmcubmV4dFNpYmxpbmc7CisgICAgcmFuZ2Uuc2V0U3RhcnQodGV4
dE5vZGUsIDApOworICAgIHJhbmdlLnNldEVuZCh0ZXh0Tm9kZSwgNSk7CisgICAgcGxhY2VNYXJr
ZXJzRm9yUmFuZ2UocmFuZ2UpOworCisgICAgdGV4dE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidDIiKS5maXJzdENoaWxkOworICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCAwKTsK
KyAgICByYW5nZS5zZXRFbmQodGV4dE5vZGUsIDUpOworICAgIHBsYWNlTWFya2Vyc0ZvclJhbmdl
KHJhbmdlKTsKKworICAgIHRleHROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInQzIiku
Zmlyc3RDaGlsZDsKKyAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgMCk7CisgICAgcmFuZ2Uu
c2V0RW5kKHRleHROb2RlLCA1KTsKKyAgICBwbGFjZU1hcmtlcnNGb3JSYW5nZShyYW5nZSk7CisK
KyAgICB2YXIgYmxvY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidDQiKTsKKyAgICByYW5n
ZS5zZWxlY3ROb2RlKGJsb2NrKTsKKyAgICBwbGFjZU1hcmtlcnNGb3JSYW5nZShyYW5nZSwgMSk7
CisKKyAgICB2YXIgc2xpZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInQ1Iik7CisgICAg
cmFuZ2Uuc2VsZWN0Tm9kZShzbGlkZXIpOworICAgIHBsYWNlTWFya2Vyc0ZvclJhbmdlKHJhbmdl
KTsKKworICAgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0NiIpOworICAg
IHJhbmdlLnNlbGVjdE5vZGUoaW1hZ2UpOworICAgIHBsYWNlTWFya2Vyc0ZvclJhbmdlKHJhbmdl
KTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9jbGllbnQtcmVj
dHMtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvY2xpZW50LXJl
Y3RzLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllD
QVlBQUFDYWRvSndBQUFDN21sRFExQkpRME1nVUhKdlptbHNaUUFBZUFHRgpWTTlyRTBFVS9qWnVx
ZEFpQ0ZwckRySjRrQ0pKV2F0b1JkUTIvUkZpYXd6Ykg3WkZrR1F6U2RadU51dnVKcldsaU9UaTBT
cmVSZTJoCkIvK0FIbnJ3WkM5S2hWcEZLTjZyS0dLaEZ5M3h6VzVNdHFYcXdNNSs4OTQzNzMxdmR0
OEFEWExTTlBXQUJPUU54MUtpRVdsc2ZFSnEKL0lnQWpxSUpRVFFsVmR2c1RpUUdRWU56K1h2bjJI
b1BnVnRXdzN2N2Q3SjNyWnJTdHBvSGhQMUE0RWVhMlNxdzd4ZHhDbGtTQW9nOAozNkVweDNRSTMr
UFk4dXlQT1U1NWVNRzFEeXM5eEZraWZFQTFMYzUvVGJoVHpTWFRRSU5JT0pUMWNWSStuTmVMbE5j
ZEIybHVac2JJCkVMMVBrS2E3ek82cllxR2NUdllPa0wyZDlINU9zOTQrd2lIQ0N4bXRQMGE0alo3
MWpOVS80bUhocE9iRWhqMGNHRFgwK0dBVnR4cXAKK0RYQ0ZGOFFUU2VpVkhIWkxnM3htSzc5VnZK
S2duQ1FPTXBrWVlCeldraFAxMHh1K0xxSEJYMG0xeE92NG5kV1VlRjVqeE5uM3RUZAo3MFhhQXE4
d0RoME1HZ3lhRFVoUUVFVUVZWml3VUVDR1BCb3hOTEp5UHlPckJodVRlekoxSkdxN2RHSkVzVUY3
TnR3OXQxR2szVHorCktDSnhsRU8xQ0pMOFFmNHFyOGxQNVhuNXkxeXcyRmIzbEsyYm1ycnk0RHZG
NVptNUdoN1gwOGpqYzAxZWZKWFVkcE5YUjVhc2VYcTgKbXV3YVAreFhsekhtZ2pXUHhIT3crL0V0
WDVYTWx5bU1GTVhqVmZQcVM0UjFXakUzMzU5c2Z6czk0aTdQTHJYV2M2MkppemRXbTVkbgovV3BJ
Kys2cXZKUG1WZmxQWHZYeC9HZk54R1BpS1RFbWRvcm5JWW1YeFM3eGt0aExxd3ZpWUczSENKMlZo
aW5TYlpINkpOVmdZSnE4CjlTOWRQMXQ0dlVaL0RQVlJsQm5NMGxTSjkzL0NLbVEwbmJrT2IvcVAy
OGY4RitUM2l1ZWZLQUl2Yk9ESW1icHRVM0h2RUtGbHBXNXoKcmdJWHY5Rjk4TFp1YTZOK09Qd0VX
RHlyRnExU05aOGd2QUVjZG9kNkh1Z3BtTk9XbHMwNVVvY3NuNU82NmNwaVVzeFEyME5TVXRjbAox
MlZMRnJPWlZXTHBkdGlaMHgxdUhLRTVRdmZFcDBwbGsvcXY4Ukd3L2JCUytmbXNVdGwrVGhyV2da
ZjZiOEM4L1VYQWVJdUpBQUFnCkFFbEVRVlI0QWUzZEI3RGt5RmtBWUQxWTc0RlpNQzZnd0dTVERP
d0JObUdQWU1BMk9SVmd3RXZPbVMweUZFVTZNcGdjbHVRaVU0UUYKYkRKRnRnbGx1Q1g0cXJnRm0r
Z2kyR1Jqc3hqZkdoRDZkVGV5cEoyUk5OTG9hWHIxcVdyM1NUUGRyYisvbHViTlArclJPOG1MSmJN
UQpJRUNBQUFFQ0JBZ1FJRURnRkFSZTdCVDJZUmNFQ0JBZ1FJQUFBUUlFQ0JBb0JTUWdEZ1FDQkFn
UUlFQ0FBQUVDQkU1TlFBSnlhdFIyClJJQUFBUUlFQ0JBZ1FJQ0FCTVF4UUlBQUFRSUVDQkFnUUlE
QXFRbElRRTZOMm80SUVDQkFnQUFCQWdRSUVKQ0FPQVlJRUNCQWdBQUIKQWdRSUVEZzFBUW5JcVZI
YkVRRUNCQWdRSUVDQUFBRUNaeEFRSUVDQUFJRlVCRzYvNDk0cTFQTVhibFRyVTFldVhUMWJOWEhQ
WGJkVgo2MVlJckYzZ1NjOTQ5dXdFajMzWVEyYmZ4Mm50NE5HUGZ0R2VIdldvRjYxUFhYdktVMTdV
d3BPZi9LTDFWTmRjQVVsMTVNUk5nQUFCCkFnUUlFQ0JBSUVFQkNVaUNneVprQWdRSUVDQkFnQUFC
QXFrS21JS1Y2c2lKbXdBQkFpc1VxRSs3dW5qcCtzRUVybHcrVjJ2TEZLd2EKaGxVQ0JQWVFxRSs3
dXZQT1BTcXVyS2dySUNzYmNOMGxRSUFBQVFJRUNCQWdzS1NBQkdSSmZmc21RSUFBQVFJRUNCQWdz
RElCQ2NqSwpCbHgzQ1JBZ1FJQUFBUUlFQ0N3cElBRlpVdCsrQ1JBZ1FJQUFBUUlFQ0t4TVFBS3lz
Z0hYWFFJRUNCQWdRSUFBQVFKTENraEFsdFMzCmJ3SUVDQkFnUUlBQUFRSXJFNUNBckd6QWRaY0FB
UUlFQ0JBZ1FJREFrZ0lTa0NYMTdac0FBUUlFQ0JBZ1FJREF5Z1FrSUNzYmNOMGwKUUlBQUFRSUVD
QkFnc0tUQVFST1E2OWV2WjMvM2QzOTNrUDVFVy8vd0QvK3dzNjE3NzcwM2UrcFRuN3J6K1NsUDlP
MTdTdHVidXYvNwp2LytiUGYzcFQ5OXNudnJQUTQ3VnR1RDd4bWZPL3YvYnYvMWI5aGQvOFJmYnd0
cjdzYjYyNXV4SE85aStXUFlkMC9ZWTliWGZqbWZmCi9XMnJ2OVE1M283bFZ0cnVHOWYvL3UvL3pw
NzV6R2ZPMHVXK1kyTGZZMnlXSUUrNTBUNlRVdzZuM04zY01iV1B3WFlmKzE0M0k3NnUKMTRaMmU3
ZmE5ai8vOHo5bnYvbWJ2NW45KzcvL2UyL1grc1p5amVkY0Z4cXZMcDNUZmE0M0FYblA5M3pQN01F
UGZuRDJydS82cnRuagpIdmU0N01WZi9NV3poejcwb2RuN3YvLzdaNDk4NUNQTDdSLzZvUi9LZnZS
SGZ6Ujd4VmQ4eGV5SGYvaUhKL2ZndTcvN3U3T1hlN21YCnkzN3lKMzl5YTF0MzNYVlg5dVp2L3Vi
Wll4LzcySzNQVDNtd2I5OVQydDdVL1lNLytJUHM0UTkvZVBieEgvL3htNGRPOWVjaHgycGIKNEgz
ak0zZi92L2lMdnpoN24vZDVuMjJoN2YxWVYxdHo5Nk1kYkZjcys0N3B0akhxYXI4ZHk3NzdhOWZ2
TzgrMnhkZHV3L2JOQXR2Ywo2dU42NWNxVjdKVmYrWld6Yi96R2I3eTU4c1JIaGh3VDlWZ203bTdS
Nmt2OFhqeFVoNGVNMDVSOWJUc0c2KzMxdlc3MnZUYlUyN29WCjE1L3doQ2RrUC83alA1NzkxbS85
Vm5iKy9Qa3NrcmxkeTVDeHZGWE91VjBHK3p6T2F4K3QrY3YySmlBdmZPRUxzei8rNHovT2Z2bVgK
ZnpuN2laLzRpZXpzMmJQWm94NzFxT3luZnVxbnN0LzkzZC9OdnU3cnZpNTd3UXRla0gzd0IzOXc5
aHF2OFJvSGlmZ1RQdUVUeXFSbgpWMk4zM0hGSDlwRWYrWkc3bnA3MGVOKytKelYrZitXM2VJdTNL
QTBmOElBSEhLSzV2ZHM0NUZodDIzbmYrTXpkL3kvN3NpL0xmdVpuCmZtWmJhSHMvMXRYVzNQMW9C
OXVPSlg0eFBmbkpUeTZMN1R1bTI4YW8zWDU3Ly9YdElmdXJ4MWV2Ryt0OTU5bTIrTnB0Mkw1WllK
dGIKZlZ3dlhyeFl2cW01dWVhNFIrcGpQT1NZcU1jeWJvL0hVV3VKMzR1SDZ2bVFjWnF5cjIzSFlM
Mjl2dGZOdnRlR2VsdTMydnAvL2RkLwpaWi81bVorWlhicDBLZnZTTC8zUzdJbFBmR0oyMjIyM05i
cTUxbk91Z2JESEJxODlzRTY1YUc4Q0VpZERYUEhZdGNTTFJXVHBzY1FiCjZwT1RrMTFGOTNxOHI2
MUloQTYxcjNaZ2ZmdHVsOTluKy8vKzcvL0s0bWZPbk1sZTdNVjYrWHVienZPOHQwd1VhSmViczQr
eHYxM2oKYytqK3g3N2FTMXc5ZTkzWGZkMzJ3Nk8yZDdWMUd2MW9CMXlQSmQ0QWZkaUhmVmoyTzcv
ek8xV3hmY2UwUFViMTlxdEdpNVgyc2JONQpybXQvMitMYjFOdjg3S29mWmRyeGJlb2Q4dWV1dmsz
ZHgvLzh6LzlNYmFLcXYyK01iYmYydU1ZYm1rTzhkbTRiNDc0eGJjZXk2ZVMrCmZkelVXK3JuVXI4
WHgvYTM3ZHMzVG1QM3M2blhQZ1kzanc5OTNadzd2azA4eC9ielQvN2tUN0liTjI1VTd3M2UrcTNm
dWhIaW1zKzUKQnNUQURWNERvUllxMXZzTytGM2U1VjA2UTN1cGwzcXA3RzNlNW0ycU12RUNFNWY4
WHYzVlh6MjcvZmJiczcvNW03K3BudnVuZi9xbgpNcnQvKzdkLysrek4zdXpOc3QvLy9kK3ZudHUy
OHZ6blB6Lzc3TS8rN0hKcVY1VC9zei83czIzRnNwaFc4Q3F2OGlyWnQzM2J0NVhQCngrWExoejNz
WWRrbmZ1SW5WdVVQdWUrWVF4aWZVSHpXWjMxV09kWG5Vei8xVTdPWVZ4MUxYQzJLcE93THYvQUxz
Ni84eXEvTVh1RVYKWGlHN2V2VnFGbjM1NUUvKzVPd3J2dUlyeXJqKzhBLy9zSW90Vm5iRnQ2dTk2
UE4zZnVkM1psLzd0VitidFYrazZnMTNsZXNhcTY0KwpEdkd1eHhEcmZmMXZsdy9QTC9pQ0w4Z2Uv
L2pIWi9HcDdkZC8vZGRYUmJwaWUvYXpuMTJhdk5WYnZWVlpQcTRRZk9BSGZtQjVISDN2CjkzNXY5
dHF2L2RyWjY3Lys2emVPeTEzN2FyY1ZEZmIxWTljNFZzSGZ2L0trSnoycFBEYmU5MzNmTi91UC8v
aVA3QWQrNEFmSzdYZDYKcDNmSy92SXYvN0lzRmROazN2WnQzN2E4d3RpTzVadS8rWnV6bi91NW55
dXY5SHpFUjN4RUZwK2N4ZEkxcG1XQkhmKzEyNDlpMGRjNAp6ci84eTc4OGUrZDNmdWZTTWNham52
VHMydCt1K05xN2ozMHNjWTd2T2kvaWFtN0U4elZmOHpWWmpFMmN5M0g4eERMa3VQK04zL2lOCjhw
aU5zWXZYeFh2dXVhZXN1K3M4N2pwZWRzVllOamp3djIzaldxLzZ0S2M5TFl0UHBPTzE3TzY3N3k2
ZjZvcXBYbmZYR084NkpyYkYKc3F1UGNjeEZYTWU2bk1idnhUSEhUTnRybDIrVTJ6Vk84VnpYYSt5
UTh5RGFxQzk5cjV2MXNwdjFydGVHb2Nmb2tOZi9ycjRPcVQ4MApsdWhYMTc2KzUzdStKL3VTTC9t
U0xENjgrSlJQK1pUeWRXaGpzZm01dG5PdXkydlgrYkd4aXA5cjg2cjNQWW4xNHBPUnZaYVhlSW1Y
CnlJdnBUMXZydlBFYnYzSCtKbS95SnZtdi8vcXY1OFdYMGZQaWpWNytzUi83c1dYWjRxVEszKzNk
M2kxLzN2T2VseGRmUU11TFgreDUKOGVZOGY4NXpuck8xclZkOTFWZk5peXNyZWZFbUt5KytqSlcv
NW11K1p2NWFyL1ZhZVpIUmx1Vy85VnUvTlgrbFYzcWxxbTZSZ09URgpHLzVxdTNqRGxIL0FCM3hB
dVgzb2ZiL2QyNzFkWG56dnBXeTcrTFFpdjNEaFFsN01DUzYzZisvM2ZpOHZ2ak9URjkveHlJdHBh
bVUvCi8velAvengvai9kNGo3eElqTW95MGY5aUhuWmV2Tm5zalc5YmUzLzZwMythRjkrQktldkdm
NS94R1o5Um1sWVAzTDhTVnJ2S2RZMVYKVk8vcVl6emY1UjNQdDhlbnEvOVJ2cjBVM3puS28rK3hG
TWxhWE9iSi8raVAvcWpjN29xdCtQSmVYaVNlK2N1Ly9NdVhaZi94SC84eApmNzNYZTczeVdQejVu
Ly81dlBqeWJWNGtwL25IZmR6SGxjL0hmN3YyMVc0cnluYjFZOS9qN0UzZjlFM3pqLzdvajQ1bXk2
V1kycGgvCjFFZDkxR1l6LzhWZi9NWDgrNy8vKzh2dGJiSEVPZkZWWC9WVlZmbStNYTBLM3I5U0g2
TnQ3UmNKZlY2OE1TMUxGNS9NbFdOUUpDQ2wKWVR6WXQ3OTJmUGZ2dHZxeDFEbmVkVjdFZWZ4alAv
WmpWWXl4WGJ3UnJyYTdqdnZpVW45NVhzVHJWU3pGbTRuOC9kN3YvY3IxYmVkeAo4WUhLenRmRXJo
akxCanYrNnh2WHh6em1NWG54b1VuWnduZDkxM2ZsUC9pRFAxaTF0dTh4M0I3anJtT2lmWXgxOWZI
YnYvM2I4L2QrCjcvZXU0cXF2UE83UzgvTE52eWMrL1ZuNW9mNXQyb3lmK3k1ei9GN2M5NWhweDl6
bDJ6Vk8wVTdYYTJ3ODMzVWV4UFAxWXpDMnUxNDMKNC9uMjB2WGFzTTh4T3VUMXY2dXZmZlgzaVNY
NjJMV3ZlTDZZNXA0WE15TmlkZWV5eERsM3FIT3NxNTF0SGU3eTJuWit4SHV0OXJLRQpWL0hTWDd6
KzMvZXZIYytVN1UyYjhmTldXSHF2Z095YlJjV1g4OTdoSGQ0aEsxNUFza2MvK3RIVm5aN2kreU1G
V1BucGFYeWY1Q0VQCmVVajJMLy95TDlsdi8vWnY3OXpGaDMvNGgyZnY5Vjd2VmJZVG4wais5Vi8v
ZFZZa04xdkx2K1JMdm1SaldzRURIL2pBYXZ1USs0N1kKNDdzdm0wOUY0MUp4OFNZeSs0VmYrSVdz
T0NHeXQzekx0eXcvWVgrRE4zaURySGp6a1JXLzRMTzRDOFV2L2RJdlpadFB6V0xxMWJ1LworN3RY
L2VpS2IxdDdjVlVsUHEyTU5tTXAza3lYdGxXRDk2L0VKK3RkNVhhTlZWOGZvL2t1NzNZY2NhV3Jx
Ly90OG5IM2ovaGtOdVlTCnh4Slh2OEl4dm1QVUYxdll2TkVidlZIbEVUZEdpS3NlOFZqME45b28z
b0JsejNqR004cTJ1L2JWYnF1dkgxM2pXTzZzOVYrUmJHUy8KOGl1L1VuNFNHVSs5NHp1K1kxWWtT
ZVVuWUxFZHgzcVJSTWRxZVhXazNxL3l3ZUsvOWxTYVhXTzZLYi9yWjd1dlVTNXVLQkZUWm1LSgpx
NWxSSnBiNmQ3MzY5dGVPcjJ5Zzl0OFM1L2l1OHlMTzZ6aE9pdzlLcWdqajJLa3ZYY2Q5dkJiRWpU
R0tEMkhLS21HM3VXcTc3VHlPClkzelhhK0t1R091eERGbmZOcTZiZW5GT1JZd3hCcHRsMzJNNDZy
WEhlTmN4MFk2bHE0OXh0ZmhRMytQYTlHM0puN3RNdXJ6M1BXYmEKL2V2eWpiSzdZdXA3alkyNlhl
ZEJQRjlmK2w0MzYyWHI2N3RlRzdyTTZ2Vmp2ZS8xdjYrdmZmWDNpYVZ2WCszWXU3YlhjTTcxZVcw
NwpQM1pOdlY2RFY5ZnhjcXpQSFR3QnFROTAzRDByTHFIRkVtL080NWRkekEyTmZ6RTk0ZGQrN2Rm
S041ZTdjQjcwb0FkVlQ4WEJGc3VZCjI2c2VjdDh4blNwK2tjYWJqYzFTWEFFcFYrTU5SU3p4NHJ4
NXN4YmJUM25LVThxazVHVmY5bVZqczF6T25UdFgvZUx1aTYvZFh2SHAKZnZsR0o1S3p1RlJiWlBq
bDNjZzJiVzkrOXBYYk5WWkQrcmpaeDVDZmZmMXZ0eEZKYVV3cnE4Y1hVMkhpK0JrU1c5U3IxMjF2
di9STAp2M1E1clNuMjI3V3ZlTDVldDY4ZmZlTVk3ZFdYRC9xZ0R5cVQ4TTJVcHBpdUUxT3BZaHBQ
VEFXS0tSSXh4WEd6MUdPcFA3WlpqNS8xCmZ0ZlB2M3FaWGV2dDlzTXArclJaaWl1T1ZWSzRlYXh2
Zi9Ybk4zWHFQNWM0eDNlZEYzSFhtWmllVjQrcGJWS1B2YjBlWll0UGZzc3AKZFRGVkxkcjd6Ly84
ejZwWSt6enVPbDUyeFZnMXRzZkt0ajVFb2hWVFJEY2ZpbXlhNjRwcFU2YjlzejNHOWUzMk1WaVA1
WkI5Yk1kMApiTnU3VFBxODl6bG0ybjN1ODkwVjA1RFgyUGErdXJiN1hqZDMxYTJmaC9YZi8zMW03
ZmJxeDF3OFYzLzlIOUxYcnZyN3hESmtYKzNZCmQyM1h4eTdLMUxkdmxYTnVpRmY3L0ZpejE2NitI
L1BqWjA0cnVILzkxMy9ONG92WDhTbnZtQ1UrZFkwWGp2aTM3M0xJZmNlOXlhTzkKU0t3aWlZZ2xQ
cG1Pdm0zbTRiZmorL3UvLy91eVR2dnh6WXZHbVBqaWRuSnhPODF2K1padktiOTNFcCtrdjh6THZF
eDdGK1h0a1llVQpxMWVNdWJmNzlyRmV2NzNlMS85MitaaFR1NWs3MzM3dTBMRjE3YXU5Nzc1KzdE
dU9rVkRGcDVBLzhpTS9ra1Z5R3JlV2pxdGo4UjJtCjV6NzN1UWU3bFhDN0gwTzNpNmw5NWQzbTRv
dVI4Y1hsdUtvWTM5K2Fhem5OYzN6YitmT3NaejFyMEgzM3Uvb2Z0eENOS3luZjkzM2YKbDhXYzd2
Z2x1bXZwTzE2MnhianRITi9WZnRmajhkMmlTSkErL2RNL1BZdnZSbTJXdnBnMjVRNzFjODQrSGly
R09kdloxM3ZmOG1OOApELzBhMi9lNk9jUzMvdHF3cjBGWCsxUDd1azhzVS9mVjFZOTluaHR6VE96
VC9xSEs4anFVNVBHMmMyb0p5RU9MTzJuRkwrWDRaTGVZCkwxdUt4UFNEK0NWWXpIM3ZGWW8zQi9G
cDRpTWU4WWlkWmVNVDQyM0xvZmNkZjBRcDdtVWVVOHhpS2VZMmw5Tm1ZdHJWdGlVU2dKaHUKVnN4
UHpJcnZJOXhVWk4vNGlubXA1ZFNOYi9xbWJ5cW5pOFMwajNqVDJ2NjdJa1BMdFFPS1Q0R0g5SEdY
ZDd1OXZ2NjN5OGN2bTdqUwo5VmQvOVZmbDlLbDRQbzZWbUU0Mk5MWjJtN3UydS9iVlB0YjYrckh2
T0VaTWNUdnBtR29RVndYakUrazRydUp2N01RVnRuZ3oyN2RzCmt0aStjbU9lajJtQ01iMHZMb1VY
Yzc2clcvN3UwOVkrOFozV09iN3J2SWhwb2ZIYzMvN3QzNVkzMFloK3huSFhYbllkOThWM3M4b2IK
VFVRLzZsZEkyL1UzMjEzSFN4em5zZSsrYzN6VDFyNC80NE9jbUdKWHpMRXVwNFBHZE5GWXVtTGE5
VHE5enhqWDQ5dzFEdTNYc1hxZApXTDkyOVd6MTBKWEw5MzBJVkQwd1lhWGU3b1JtOXFxNnIvYys1
Y2Y2RG4yTjNYVWV0QUg2WGpmYjViZHQxMThiNG5mRGxQY1M5ZmFICjlyVmVwNzYrejNoTTNWZDl2
NmQ5enRYM2ZWcnJLWHNWazE1bVdlcnQzbm5uTExzNDFVYjNtb0lWTHpoeGk3aGRmNTB6TXRiNHQx
bmkKN2tLYnUwTjl5SWQ4U0htbnA1aEtVM3p4dkh6VEh2ZUUzelZuTDlxSU44R2JKZWJxeHgrWDI4
eXZqamlLTDlsdG5pNnZRc1FmUUlySAo0OFVxM3J6R2R5OWlPZVMrWTA1K2ZMOGxwbzl0bHJpalZa
d3M4Y2NhWXltK21GYjFPN2JqTGs1eGhTVG1YRytXK0N2bzhlbEo5TEV2CnZuWjcwYSs0RTBrc2NY
ZWk0c3VhMWRXWVRmdnhzNnRjMTFnTjZXTmM5ZG5sSGZ1dWowOWYvNk44ZllueWthVEdkeVJpRG4z
OCs5elAKL2R6czFWN3QxY3J2UlBUNVI5L2l1TnU4ZVl4WTZyOHM0L25Oc2RXMXI0aXAzbFpmUC9y
R3NkN0h6WHA4M3lDdUxzUWYrSXdwQi9IOQpsUGlVTzk0TXQzL0oxR09KK25IVkpENWRqQ1hPcVhn
Ky9tMlcrdm0zZWF6K3N6NUc4WGk3L2JnUGZTVE1jWmUzK05zQmNibTd2dlR0CnJ4MWZ2ZTVtZlRN
T3NYMWE1L2l1ODJKei9tN08wN2gvZkZ6OTJSeEhFV1BYY1IvSGFSeG5rWWhFditMRGxmakFKZXJI
di9aNTNIVzgKN0lveFlvZ1BZcjdvaTc2b3ZQSVoyKzJsYjF3ampvZ25wamwrM3VkOVh2WXhIL014
MVhmMXVtSnE3eWUyMjJQY2QwelVqN0d1UHNhMAp4RWkrbGx4aS9JdWJQRlRuMks1WTV2eTl1TTh4
MDQ2dnk3ZHJuSlorL2QvMFk5ZHJ3NzdIYU5mci81QytkdFhmSjVZaCt5cHUwbE8rCmhzVDQ3RnB1
NVhPdTN1Y2hYdTN6bzE1L3MzNHJldzE5amRwWUhOM1A0aGZSb0tXWUVsUGUwYW5vUUY2OFVjcS80
UnUrSVMrbWlWUjEKNDQ1UGNmZUdOM3pETjh5TDcwTGt4UzNTOHVLS1FGNjg4Uzd2WkJVRmk5dkc1
c1dicmJ4NFkxWGVBZXVuZi9xbnEvcnRsVHZ2dkRNdgpmdG5ueFpmUDg2Lys2cS9PUCszVFBxMjhn
MWFVSzk3NDVzVVhrOHU3OG56SGQzeEhIbmVmS2ViTjU4V1VsdkpPV1ovek9aOVQzZ21wCitESjhl
UWV0cUhPb2ZVZGIwYmZvWi9GSEdQTmlMblZlZkNFOUw5NTh4Rk41TVowbUwrYnQ1OFVieUx4SUVz
ckhObzhYbnpxV0pzVmYKbE0rTDcyL2t4UnVBc253OHZ5dStiZTNGV0JSZmpzMkxUOGp6bi8zWm44
MkxMMnhXZHdlcmRsaXM3Q28zWkt5Nitoajc2UExlTmo3UgpqNjcrMStPTzlUZzJpdS9SbEdOY1hL
WElpMmt0VlpHdTJHTGZ4UzE0eTNyRkc1anlqbXpGQzFCNTE3Rml2bTVlWEVYSlgrZDFYcWM4CkRu
LzFWMysxYkhQWHZ0cHR4WEhXMTQ5ZDQxZ0Z2MldsdU8xclh0eDZ0M3FtZUhQWjJJNG50c1h5K1ov
LytlVzVGSGZTS3FiUjlKNS8KMVE3dWI2OStEb1Z2M1MzNldrelBLUjNqbkM4U3BMejRRbVo1ck1W
elE0NmhlbnpGVkxmNjdzdjFwYzd4WGVkRkJGWGMvclYwTEQ2MQp6VC8wUXorMHZKTmUvUzVZWGNk
OU1RV3p2UHRkTVRXenZKdFozTVdzbUxaV3RoTjNtdHIydXJEcmVPbUtNVjVmNDdXMkh0Y0d0MzN1
CnRjZTFtSDZSUjN6eCt2SFVwejQxTHo2b0tXT00xNnZMbHkrWHpleUthYk9QK3MvNkdQY2RnKzFq
T1BxeDYzVXM3dElWZHprczNtRFUKZDFldW43L3dnbnp6cjM3bnFxbnJtemJqWnl4eHQ4SDRYVlcv
UzFqNVJPMi9HS2U0bytNY3Z4ZTN2ZmJIcm9lT3o2NWphTWk1Mi9VYQpHekYwblFmdFkzREk2MmEw
V1YrNlhodWkzRkNENGtPQXZPLzF2NnV2UStvUGpTWGk3dHBYOFdYOXZKZ2FXUjVMOFRzaHpzMXR5
eExuClhOZmRxdzcxM0xhK2RubnRPai9hN1N6aFZkelFNdC84cTkrNWF1cjZwczM0R2N1UTE2ajdT
aDduL3ljUjFtbG1SZkZwUW5HTDN2Sk8KT25GVm9HK0p5OGp4WmJvaFphUHQrTlFrUHFtTnF5UHRh
UkNIM0hld3hkOXJpRG43N1R2bDdPcFR4QmFmVkVkLzZsUFJOdVdIeGhlZgp1TVYrNHk0bjBjZjZG
NVUzYmNYUG9lWHFkZXJyZlgzczg2NjNGZXQ5L1crWGovM0g5TGE0RTBsNzZZdXRYYjV2dTJ0Zjdi
cDkvUmc2CmpwdDJpMS9RamI5MjI5N2VsTnYyTTY2aXhmRTB4MUlrL3VWMHNEaFc0MVAzT043aXJp
L0ZHL1BCMytVYUV0OXBuK045NTBWOENobm4KVjN6SDY1TSs2WlBLS3czRm02cUt1Tys0anl0UG02
dEYyMTZIcW9idVg5bDJ2UFRGR044UmludmNGMi9VMnMwZFpIdGJUTHNhSGpMRwoyK3AyOVRIT3h6
anVObzdiNnAvR1l6RjF0bjVEa2JuMnVZOTN4RENrZkpmdmtINzB2Y1pHREYyL2I5djc2SHZkYkpl
UDdhN1hoaUVHCjI5cmM5bGhmWDdmVnFUKzJUeXhUOXhYN3ZaWFB1YnByclBOcWl6UzNUK3MxcXJu
WHcyeWRlZ0p5bUxDMVFvREFuQUpQZU1JVHltU2oKZmR2cnVObEJKTnpGVmFRNWQzODBiVzlMUUk0
aHVKZ0RIM2ZmaTlzald3Z1FJRUNBUUdvQ0VwRFVSa3k4QkU1QklMNzdFSCtKT203MQpISCtISlQ3
Vmp6dUd4VjI3NHQ5YWxrYys4cEhsVmJqNHV6SHQ3K1FzYVJCWFV1TjJteFlDQkFnUUlKQ2lnQVFr
eFZFVE00RlRFSWhwClB2RjNVbUlhUk56eGJTMVhQVGEweFJ6ajdKblBmR2E1R1ZjYTRtWVBGZ0lF
Q0JBZ1FHQzZnQVJrdXFFV0NCQWdRSUFBQVFJRUNCQVkKS0xEWGJYZ0h0cWtZQVFJRUNCQWdRSUFB
QVFJRXRncElRTGF5ZUpBQUFRSUVDQkFnUUlBQWdUa0VKQ0J6cUdxVEFBRUNCQWdRSUVDQQpBSUd0
QWhLUXJTd2VKRUNBQUFFQ0JBZ1FJRUJnRGdFSnlCeXEyaVJBZ0FBQkFnUUlFQ0JBWUt1QUJHUXJp
d2NKRUNCQWdBQUJBZ1FJCkVKaERRQUl5aDZvMkNSQWdRSUFBQVFJRUNCRFlLaUFCMmNyaVFRSUVD
QkFnUUlBQUFRSUU1aENRZ015aHFrMENCQWdRSUVDQUFBRUMKQkxZS1NFQzJzbmlRQUFFQ0JBZ1FJ
RUNBQUlFNUJDUWdjNmhxa3dBQkFnUUlFQ0JBZ0FDQnJRSVNrSzBzSGlSQWdBQUJBZ1FJRUNCQQpZ
QTRCQ2NnY3F0b2tRSUFBQVFJRUNCQWdRR0NyZ0FSa0s0c0hDUkFnUUlBQUFRSUVDQkNZUTBBQ01v
ZXFOZ2tRSUVDQUFBRUNCQWdRCjJDcHdadXVqdFFkUFRrNXFXMVlKTkFYeVBHOCtZSXNBQVFJRUNC
QWdRSUJBaDRBcklCMDRuaUpBZ0FBQkFnUUlFQ0JBNExBQ0VwREQKZW1xTkFBRUNCQWdRSUVDQUFJ
RU9nZDRwV1BXNnB0dlVOZGE3YmxyZWVzZGV6d2tRSUVDQUFBRUNVd1ZjQVprcXFENEJBZ1FJRUNC
QQpnQUFCQW9NRkpDQ0RxUlFrUUlBQUFRSUVDQkFnUUdDcWdBUmtxcUQ2QkFnUUlFQ0FBQUVDQkFn
TUZwQ0FES1pTa0FBQkFnUUlFQ0JBCmdBQ0JxUUlTa0ttQzZoTWdRSUFBQVFJRUNCQWdNRmhBQWpL
WVNrRUNCQWdRSUVDQUFBRUNCS1lLU0VDbUNxcFBnQUFCQWdRSUVDQkEKZ01CZ0FRbklZQ29GQ1JB
Z1FJQUFBUUlFQ0JDWUtpQUJtU3FvUGdFQ0JBZ1FJRUNBQUFFQ2d3WDIra3ZvZzF0ZFdjSGI3N2kz
NnZINQpDemVxOWFrcjE2NmVyWnE0NTY3YnFuVXJCQWdRSUVDQUFBRUNCRklWY0FVazFaRVROd0VD
QkFnUUlFQ0FBSUVFQlNRZ0NRNmFrQWtRCklFQ0FBQUVDQkFpa0ttQUsxZ0ZHcmo3dDZ1S2w2d2Rv
OGI0bXJsdytWMnZMRkt3YWhsVUNCQWdRSUVDQUFJRkVCVndCU1hUZ2hFMkEKQUFFQ0JBZ1FJRUFn
UlFFSlNJcWpKbVlDQkFnUUlFQ0FBQUVDaVFwSVFCSWRPR0VUSUVDQUFBRUNCQWdRU0ZGQUFwTGlx
SW1aQUFFQwpCQWdRSUVDQVFLSUNFcEJFQjA3WUJBZ1FJRUNBQUFFQ0JGSVVrSUNrT0dwaUprQ0FB
QUVDQkFnUUlKQ29nQVFrMFlFVE5nRUNCQWdRCklFQ0FBSUVVQlNRZ0tZNmFtQWtRSUVDQUFBRUNC
QWdrS2lBQlNYVGdoRTJBQUFFQ0JBZ1FJRUFnUlFFSlNJcWpKbVlDQkFnUUlFQ0EKQUFFQ2lRcElR
QklkT0dFVElFQ0FBQUVDQkFnUVNGRkFBcExpcUltWkFBRUNCQWdRSUVDQVFLSUNFcEJFQjA3WUJB
Z1FJRUNBQUFFQwpCRklVa0lDa09HcGlKa0NBQUFFQ0JBZ1FJSkNvZ0FRazBZRVROZ0VDQkFnUUlF
Q0FBSUVVQlNRZ0tZNmFtQWtRSUVDQUFBRUNCQWdrCktpQUJTWFRnaEUyQUFBRUNCQWdRSUVBZ1JR
RUpTSXFqSm1ZQ0JBZ1FJRUNBQUFFQ2lRcWNTVFR1b3dyNzJ0V3pWVHhYTHArcjFxZXUKMU51ZDJw
YjZCQWdRSUVDQUFBRUNCSTVCd0JXUVl4Z0ZNUkFnUUlBQUFRSUVDQkJZaVlBRVpDVURyWnNFQ0JB
Z1FJQUFBUUlFamtGZwpsaWxZdDk5eGI5VzM4eGR1Vk90VFYrcFRrdTY1NjdhcHphbFBnQUFCQWdR
SUVDQkFnTUFwQzdnQ2Nzcmdka2VBQUFFQ0JBZ1FJRUJnCnpRSVNrRFdQdnI0VElFQ0FBQUVDQkFn
UU9HV0JXYVpnMWFkZFhieDAvV0JkYXQ1aDZuaW1ZSzJ0dndjYlVBMFJJRUNBQUFFQ0JBaXMKVHNB
VmtOVU51UTRUSUVDQUFBRUNCQWdRV0U1QUFyS2N2VDBUSUVDQUFBRUNCQWdRV0oyQUJHUjFRNjdE
QkFnUUlFQ0FBQUVDQkpZVAprSUFzWjIvUEJBZ1FJRUNBQUFFQ0JGWW5JQUZaM1pEck1BRUNCQWdR
SUVDQUFJSGxCQ1FneTluYk13RUNCQWdRSUVDQUFJSFZDVWhBClZqZmtPa3lBQUFFQ0JBZ1FJRUJn
T1FFSnlITDI5a3lBQUFFQ0JBZ1FJRUJnZFFJU2tOVU51UTRUSUVDQUFBRUNCQWdRV0U1QUFyS2MK
dlQwVElFQ0FBQUVDQkFnUVdKMkFCR1IxUTY3REJBZ1FJRUNBQUFFQ0JKWVRrSUFzWjIvUEJBZ1FJ
RUNBQUFFQ0JGWW5JQUZaM1pEcgpNQUVDQkFnUUlFQ0FBSUhsQkNRZ3k5bmJNd0VDQkFnUUlFQ0FB
SUhWQ1VoQVZqZmtPa3lBQUFFQ0JBZ1FJRUJnT1FFSnlITDI5a3lBCkFBRUNCQWdRSUVCZ2RRSVNr
TlVOdVE0VElFQ0FBQUVDQkFnUVdFNUFBcktjdlQwVElFQ0FBQUVDQkFnUVdKM0FtVGw2Zk8zcTJh
cloKSzVmUFZldFRWK3J0VG0zcmtQWHJjYTJodjRlMDB4WUJBZ1FJRUNCQWdNQzZCRndCV2RkNDZ5
MEJBZ1FJRUNCQWdBQ0JSUVVrSUl2eQoyemtCQWdRSUVDQkFnQUNCZFFtYzVNWFMxZVdUazVQcTZa
NmlWVGtydDdhQVkrTFdIbCs5STBDQUFBRUNCQWpNS2VBS3lKeTYyaVpBCmdBQUJBZ1FJRUNCQW9D
RWdBV2x3MkNCQWdBQUJBZ1FJRUNCQVlFNEJDY2ljdXRvbVFJQUFBUUlFQ0JBZ1FLQWhJQUZwY05n
Z1FJQUEKQVFJRUNCQWdRR0JPQVFuSW5McmFKa0NBQUFFQ0JBZ1FJRUNnSVNBQmFYRFlJRUNBQUFF
Q0JBZ1FJRUJnVGdFSnlKeTYyaVpBZ0FBQgpBZ1FJRUNCQW9DRWdBV2x3MkNCQWdBQUJBZ1FJRUNC
QVlFNEJDY2ljdXRvbVFJQUFBUUlFQ0JBZ1FLQWhjS2F4MWJOUi93dllQVVU5ClRZQUFBUUlFQ0JB
Z1FJQUFnWnNFWEFHNWljUURCQWdRSUVDQUFBRUNCQWpNSlNBQm1VdFd1d1FJRUNCQWdBQUJBZ1FJ
M0NUUU93VXIKei9PYktubUFBQUVDQkFnUUlFQ0FBQUVDWXdSY0FSbWpwZzRCQWdRSUVDQkFnQUFC
QXFNRUpDQ2oyRlFpUUlBQUFRSUVDQkFnUUdDTQpnQVJrakpvNkJBZ1FJRUNBQUFFQ0JBaU1FcENB
akdKVGlRQUJBZ1FJRUNCQWdBQ0JNUUlTa0RGcTZoQWdRQnhjTmUwQUFDQUFTVVJCClZJQUFBUUlF
Q0JBZ01FcEFBaktLVFNVQ0JBZ1FJRUNBQUFFQ0JNWUlTRURHcUtsRGdBQUJBZ1FJRUNCQWdNQW9B
UW5JS0RhVkNCQWcKUUlBQUFRSUVDQkFZSXlBQkdhT21EZ0VDQkFnUUlFQ0FBQUVDb3dSNi94TDZ5
Y25KcUlaVldvZEFudWZyNktoZUVpQkFnQUFCQWdRSQpIRVRBRlpDRE1HcUVBQUVDQkFnUUlFQ0FB
SUVoQWhLUUlVcktFQ0JBZ0FBQkFnUUlFQ0J3RUlIZUtWajF2Wmh1VTlkWTc3cHBlZXNkCmV6MG5R
SUFBQVFJRUNFd1ZjQVZrcXFENkJBZ1FJRUNBQUFFQ0JBZ01GcENBREtaU2tBQUJBZ1FJRUNCQWdB
Q0JxUUlTa0ttQzZoTWcKUUlBQUFRSUVDQkFnTUZoQUFqS1lTa0VDQkFnUUlFQ0FBQUVDQktZS1NF
Q21DcXBQZ0FBQkFnUUlFQ0JBZ01CZ0FRbklZQ29GQ1JBZwpRSUFBQVFJRUNCQ1lLaUFCbVNxb1Bn
RUNCQWdRSUVDQUFBRUNnd1VrSUlPcEZDUkFnQUFCQWdRSUVDQkFZS3FBQkdTcW9Qb0VDQkFnClFJ
QUFBUUlFQ0F3VzJPc3ZvUTl1ZFdVRmI3L2ozcXJINXkvY3FOYW5ybHk3ZXJacTRwNjdicXZXclJB
Z1FJQUFBUUlFQ0JCSVZjQVYKa0ZSSFR0d0VDQkFnUUlBQUFRSUVFaFNRZ0NRNGFFSW1RSUFBQVFJ
RUNCQWdrS3FBS1ZnSEdMbjZ0S3VMbDY0Zm9NWDdtcmh5K1Z5dApMVk93YWhoV0NSQWdRSUFBQVFJ
RUVoVndCU1RSZ1JNMkFRSUVDQkFnUUlBQWdSUUZKQ0FwanBxWUNSQWdRSUFBQVFJRUNDUXFJQUZK
CmRPQ0VUWUFBQVFJRUNCQWdRQ0JGQVFsSWlxTW1aZ0lFQ0JBZ1FJQUFBUUtKQ2toQUVoMDRZUk1n
UUlBQUFRSUVDQkJJVVVBQ2t1S28KaVprQUFRSUVDQkFnUUlCQW9nSVNrRVFIVHRnRUNCQWdRSUFB
QVFJRVVoU1FnS1E0YW1JbVFJQUFBUUlFQ0JBZ2tLaUFCQ1RSZ1JNMgpBUUlFQ0JBZ1FJQUFnUlFG
SkNBcGpwcVlDUkFnUUlBQUFRSUVDQ1FxSUFGSmRPQ0VUWUFBQVFJRUNCQWdRQ0JGQVFsSWlxTW1a
Z0lFCkNCQWdRSUFBQVFLSkNraEFFaDA0WVJNZ1FJQUFBUUlFQ0JCSVVVQUNrdUtvaVprQUFRSUVD
QkFnUUlCQW9nSVNrRVFIVHRnRUNCQWcKUUlBQUFRSUVVaFNRZ0tRNGFtSW1RSUFBQVFJRUNCQWdr
S2lBQkNUUmdSTTJBUUlFQ0JBZ1FJQUFnUlFGSkNBcGpwcVlDUkFnUUlBQQpBUUlFQ0NRcWNDYlJ1
SThxN0d0WHoxYnhYTGw4cmxxZnVsSnZkMnBiNmhNZ1FJQUFBUUlFQ0JBNEJnRlhRSTVoRk1SQWdB
QUJBZ1FJCkVDQkFZQ1VDRXBDVkRMUnVFaUJBZ0FBQkFnUUlFRGdHZ1ZtbVlOMSt4NzFWMzg1ZnVG
R3RUMTJwVDBtNjU2N2JwamFuUGdFQ0JBZ1EKSUVDQUFBRUNweXpnQ3NncGc5c2RBUUlFQ0JBZ1FJ
QUFnVFVMU0VEV1BQcjZUb0FBQVFJRUNCQWdRT0NVQldhWmdsV2Zkblh4MHZXRApkYWw1aDZuam1Z
SzF0djRlYkVBMVJJQUFBUUlFQ0JBZ3NEb0JWMEJXTitRNlRJQUFBUUlFQ0JBZ1FHQTVBUW5JY3Zi
MlRJQUFBUUlFCkNCQWdRR0IxQWhLUTFRMjVEaE1nUUlBQUFRSUVDQkJZVGtBQ3NweTlQUk1nUUlB
QUFRSUVDQkJZbllBRVpIVkRyc01FQ0JBZ1FJQUEKQVFJRWxoT1FnQ3huYjg4RUNCQWdRSUFBQVFJ
RVZpY2dBVm5ka09zd0FRSUVDQkFnUUlBQWdlVUVKQ0RMMmRzekFRSUVDQkFnUUlBQQpnZFVKU0VC
V04rUTZUSUFBQVFJRUNCQWdRR0E1QVFuSWN2YjJUSUFBQVFJRUNCQWdRR0IxQWhLUTFRMjVEaE1n
UUlBQUFRSUVDQkJZClRrQUNzcHk5UFJNZ1FJQUFBUUlFQ0JCWW5ZQUVaSFZEcnNNRUNCQWdRSUFB
QVFJRWxoT1FnQ3huYjg4RUNCQWdRSUFBQVFJRVZpY2cKQVZuZGtPc3dBUUlFQ0JBZ1FJQUFnZVVF
SkNETDJkc3pBUUlFQ0JBZ1FJQUFnZFVKU0VCV04rUTZUSUFBQVFJRUNCQWdRR0E1QVFuSQpjdmIy
VElBQUFRSUVDQkFnUUdCMUFtZm02UEcxcTJlclpxOWNQbGV0VDEycHR6dTFyVVBXcjhlMWh2NGUw
azViQkFnUUlFQ0FBQUVDCjZ4SndCV1JkNDYyM0JBZ1FJRUNBQUFFQ0JCWVZrSUFzeW0vbkJBZ1FJ
RUNBQUFFQ0JOWWxjSklYUzFlWFQwNU9xcWQ3aWxibHJOemEKQW82SlczdDg5WTRBQVFJRUNCQWdN
S2VBS3lCejZtcWJBQUVDQkFnUUlFQ0FBSUdHZ0FTa3dXR0RBQUVDQkFnUUlFQ0FBSUU1QlNRZwpj
K3BxbXdBQkFnUUlFQ0JBZ0FDQmhvQUVwTUZoZ3dBQkFnUUlFQ0JBZ0FDQk9RVWtJSFBxYXBzQUFR
SUVDQkFnUUlBQWdZYUFCS1RCCllZTUFBUUlFQ0JBZ1FJQUFnVGtGSkNCejZtcWJBQUVDQkFnUUlF
Q0FBSUdHZ0FTa3dXR0RBQUVDQkFnUUlFQ0FBSUU1QlNRZ2MrcHEKbXdBQkFnUUlFQ0JBZ0FDQmhz
Q1p4bGJQUnYwdllQY1U5VFFCQWdRSUVDQkFnQUFCQWdSdUVuQUY1Q1lTRHhBZ1FJQUFBUUlFQ0JB
ZwpNSmVBQkdRdVdlMFNJRUNBQUFFQ0JBZ1FJSENUUU84VXJEelBiNnJrQVFJRUNCQWdRSUFBQVFJ
RUNJd1JjQVZrakpvNkJBZ1FJRUNBCkFBRUNCQWlNRXBDQWpHSlRpUUFCQWdRSUVDQkFnQUNCTVFJ
U2tERnE2aEFnUUlBQUFRSUVDQkFnTUVwQUFqS0tUU1VDQkFnUUlFQ0EKQUFFQ0JNWUlTRURHcUts
RGdBQUJBZ1FJRUNCQWdNQW9BUW5JS0RhVkNCQWdRSUFBQVFJRUNCQVlJeUFCR2FPbURnRUNCQWdR
SUVDQQpBQUVDb3dRa0lLUFlWQ0pBZ0FBQkFnUUlFQ0JBWUl5QUJHU01tam9FQ0JBZ1FJQUFBUUlF
Q0l3UzZQMUw2Q2NuSjZNYVZta2RBbm1lCnI2T2pla21BQUFFQ0JBZ1FJSEFRQVZkQURzS29FUUlF
Q0JBZ1FJQUFBUUlFaGdoSVFJWW9LVU9BQUFFQ0JBZ1FJRUNBd0VFRWVxZGcKMWZkaXVrMWRZNzNy
cHVXdGQrejFuQUFCQWdRSUVDQXdWY0FWa0ttQzZoTWdRSUFBQVFJRUNCQWdNRmhBQWpLWVNrRUNC
QWdRSUVDQQpBQUVDQktZS1NFQ21DcXBQZ0FBQkFnUUlFQ0JBZ01CZ0FRbklZQ29GQ1JBZ1FJQUFB
UUlFQ0JDWUtpQUJtU3FvUGdFQ0JBZ1FJRUNBCkFBRUNnd1VrSUlPcEZDUkFnQUFCQWdRSUVDQkFZ
S3FBQkdTcW9Qb0VDQkFnUUlBQUFRSUVDQXdXa0lBTXBsS1FBQUVDQkFnUUlFQ0EKQUlHcEFoS1Fx
WUxxRXlCQWdBQUJBZ1FJRUNBd1dHQ3Z2NFErdU5XVkZiejlqbnVySHArL2NLTmFuN3B5N2VyWnFv
bDc3cnF0V3JkQwpnQUFCQWdRSUVDQkFJRlVCVjBCU0hUbHhFeUJBZ0FBQkFnUUlFRWhRUUFLUzRL
QUptUUFCQWdRSUVDQkFnRUNxQXFaZ0hXRGs2dE91CkxsNjZmb0FXNzJ2aXl1Vnp0YlpNd2FwaFdD
VkFnQUFCQWdRSUVFaFV3QldRUkFkTzJBUUlFQ0JBZ0FBQkFnUlNGSkNBcERocVlpWkEKZ0FBQkFn
UUlFQ0NRcUlBRUpOR0JFellCQWdRSUVDQkFnQUNCRkFVa0lDbU9tcGdKRUNCQWdBQUJBZ1FJSkNv
Z0FVbDA0SVJOZ0FBQgpBZ1FJRUNCQUlFVUJDVWlLb3labUFnUUlFQ0JBZ0FBQkFva0tTRUFTSFRo
aEV5QkFnQUFCQWdRSUVFaFJRQUtTNHFpSm1RQUJBZ1FJCkVDQkFnRUNpQWhLUVJBZE8yQVFJRUNC
QWdBQUJBZ1JTRkpDQXBEaHFZaVpBZ0FBQkFnUUlFQ0NRcUlBRUpOR0JFellCQWdRSUVDQkEKZ0FD
QkZBVWtJQ21PbXBnSkVDQkFnQUFCQWdRSUpDb2dBVWwwNElSTmdBQUJBZ1FJRUNCQUlFVUJDVWlL
b3labUFnUUlFQ0JBZ0FBQgpBb2tLU0VBU0hUaGhFeUJBZ0FBQkFnUUlFRWhSUUFLUzRxaUptUUFC
QWdRSUVDQkFnRUNpQWhLUVJBZE8yQVFJRUNCQWdBQUJBZ1JTCkZKQ0FwRGhxWWlaQWdBQUJBZ1FJ
RUNDUXFNQ1pST00rcXJDdlhUMWJ4WFBsOHJscWZlcEt2ZDJwYmFsUGdBQUJBZ1FJRUNCQTRCZ0UK
WEFFNWhsRVFBd0VDQkFnUUlFQ0FBSUdWQ0VoQVZqTFF1a21BQUFFQ0JBZ1FJRURnR0FSbW1ZSjEr
eDMzVm4wN2YrRkd0VDUxcFQ0bAo2WjY3YnB2YW5Qb0VDQkFnUUlBQUFRSUVDSnl5Z0NzZ3B3eHVk
d1FJRUNCQWdBQUJBZ1RXTENBQldmUG82enNCQWdRSUVDQkFnQUNCClV4YVlaUXBXZmRyVnhVdlhE
OWFsNWgybWptY0sxdHI2ZTdBQjFSQUJBZ1FJRUNCQWdNRHFCRndCV2QyUTZ6QUJBZ1FJRUNCQWdB
Q0IKNVFRa0lNdloyek1CQWdRSUVDQkFnQUNCMVFsSVFGWTM1RHBNZ0FBQkFnUUlFQ0JBWURrQkNj
aHk5dlpNZ0FBQkFnUUlFQ0JBWUhVQwpFcERWRGJrT0V5QkFnQUFCQWdRSUVGaE9RQUt5bkwwOUV5
QkFnQUFCQWdRSUVGaWRnQVJrZFVPdXd3UUlFQ0JBZ0FBQkFnU1dFNUNBCkxHZHZ6d1FJRUNCQWdB
QUJBZ1JXSnlBQldkMlE2ekFCQWdRSUVDQkFnQUNCNVFRa0lNdloyek1CQWdRSUVDQkFnQUNCMVFs
SVFGWTMKNURwTWdBQUJBZ1FJRUNCQVlEa0JDY2h5OXZaTWdBQUJBZ1FJRUNCQVlIVUNFcERWRGJr
T0V5QkFnQUFCQWdRSUVGaE9RQUt5bkwwOQpFeUJBZ0FBQkFnUUlFRmlkZ0FSa2RVT3V3d1FJRUNC
QWdBQUJBZ1NXRTVDQUxHZHZ6d1FJRUNCQWdBQUJBZ1JXSnlBQldkMlE2ekFCCkFnUUlFQ0JBZ0FD
QjVRUWtJTXZaMnpNQkFnUUlFQ0JBZ0FDQjFRbWNtYVBIMTY2ZXJacTljdmxjdFQ1MXBkN3UxTFlP
V2I4ZTF4cjYKZTBnN2JSRWdRSUFBQVFJRUNLeEx3QldRZFkyMzNoSWdRSUFBQVFJRUNCQllWRUFD
c2lpL25STWdRSUFBQVFJRUNCQllsOEJKWGl4ZApYVDQ1T2FtZTdpbGFsYk55YXdzNEptN3Q4ZFU3
QWdRSUVDQkFnTUNjQXE2QXpLbXJiUUlFQ0JBZ1FJQUFBUUlFR2dJU2tBYUhEUUlFCkNCQWdRSUFB
QVFJRTVoU1FnTXlwcTIwQ0JBZ1FJRUNBQUFFQ0JCb0NFcEFHaHcwQ0JBZ1FJRUNBQUFFQ0JPWVVr
SURNcWF0dEFnUUkKRUNCQWdBQUJBZ1FhQWhLUUJvY05BZ1FJRUNCQWdBQUJBZ1RtRkpDQXpLbXJi
UUlFQ0JBZ1FJQUFBUUlFR2dJU2tBYUhEUUlFQ0JBZwpRSUFBQVFJRTVoU1FnTXlwcTIwQ0JBZ1FJ
RUNBQUFFQ0JCb0NaeHBiUFJ2MXY0RGRVOVRUQkFnUUlFQ0FBQUVDQkFnUXVFbkFGWkNiClNEeEFn
QUFCQWdRSUVDQkFnTUJjQWhLUXVXUzFTNEFBQVFJRUNCQWdRSURBVFFLOVU3RHlQTCtwa2djSUVD
QkFnQUFCQWdRSUVDQXcKUnNBVmtERnE2aEFnUUlBQUFRSUVDQkFnTUVwQUFqS0tUU1VDQkFnUUlF
Q0FBQUVDQk1ZSVNFREdxS2xEZ0FBQkFnUUlFQ0JBZ01BbwpBUW5JS0RhVkNCQWdRSUFBQVFJRUNC
QVlJeUFCR2FPbURnRUNCQWdRSUVDQUFBRUNvd1FrSUtQWVZDSkFnQUFCQWdRSUVDQkFZSXlBCkJH
U01tam9FQ0JBZ1FJQUFBUUlFQ0l3U2tJQ01ZbE9KQUFFQ0JBZ1FJRUNBQUlFeEFoS1FNV3JxRUNC
QWdBQUJBZ1FJRUNBd1NxRDMKTDZHZm5KeU1hbGlsZFFqa2ViNk9qdW9sQVFJRUNCQWdRSURBUVFS
Y0FUa0lvMFlJRUNCQWdBQUJBZ1FJRUJnaUlBRVpvcVFNQVFJRQpDQkFnUUlBQUFRSUhFZWlkZ2xY
ZmkrazJkWTMxcnB1V3Q5NngxM01DQkFnUUlFQ0F3RlFCVjBDbUNxcFBnQUFCQWdRSUVDQkFnTUJn
CkFRbklZQ29GQ1JBZ1FJQUFBUUlFQ0JDWUtpQUJtU3FvUGdFQ0JBZ1FJRUNBQUFFQ2d3VWtJSU9w
RkNSQWdBQUJBZ1FJRUNCQVlLcUEKQkdTcW9Qb0VDQkFnUUlBQUFRSUVDQXdXa0lBTXBsS1FBQUVD
QkFnUUlFQ0FBSUdwQWhLUXFZTHFFeUJBZ0FBQkFnUUlFQ0F3V0VBQwpNcGhLUVFJRUNCQWdRSUFB
QVFJRXBncElRS1lLcWsrQUFBRUNCQWdRSUVDQXdHQ0J2ZjRTK3VCV1YxYnc5anZ1clhwOC9zS05h
bjNxCnlyV3JaNnNtN3JucnRtcmRDZ0VDQkFnUUlFQ0FBSUZVQlZ3QlNYWGt4RTJBQUFFQ0JBZ1FJ
RUFnUVFFSlNJS0RKbVFDQkFnUUlFQ0EKQUFFQ3FRcVlnbldBa2F0UHU3cDQ2Zm9CV3J5dmlTdVh6
OVhhTWdXcmhtR1ZBQUVDQkFnUUlFQWdVUUZYUUJJZE9HRVRJRUNBQUFFQwpCQWdRU0ZGQUFwTGlx
SW1aQUFFQ0JBZ1FJRUNBUUtJQ0VwQkVCMDdZQkFnUUlFQ0FBQUVDQkZJVWtJQ2tPR3BpSmtDQUFB
RUNCQWdRCklKQ29nQVFrMFlFVE5nRUNCQWdRSUVDQUFJRVVCU1FnS1k2YW1Ba1FJRUNBQUFFQ0JB
Z2tLaUFCU1hUZ2hFMkFBQUVDQkFnUUlFQWcKUlFFSlNJcWpKbVlDQkFnUUlFQ0FBQUVDaVFwSVFC
SWRPR0VUSUVDQUFBRUNCQWdRU0ZGQUFwTGlxSW1aQUFFQ0JBZ1FJRUNBUUtJQwpFcEJFQjA3WUJB
Z1FJRUNBQUFFQ0JGSVVrSUNrT0dwaUprQ0FBQUVDQkFnUUlKQ29nQVFrMFlFVE5nRUNCQWdRSUVD
QUFJRVVCU1FnCktZNmFtQWtRSUVDQUFBRUNCQWdrS2lBQlNYVGdoRTJBQUFFQ0JBZ1FJRUFnUlFF
SlNJcWpKbVlDQkFnUUlFQ0FBQUVDaVFwSVFCSWQKT0dFVElFQ0FBQUVDQkFnUVNGRkFBcExpcUlt
WkFBRUNCQWdRSUVDQVFLSUNaeEtOKzZqQ3ZuYjFiQlhQbGN2bnF2V3BLL1YycDdhbApQZ0VDQkFn
UUlFQ0FBSUZqRUhBRjVCaEdRUXdFQ0JBZ1FJQUFBUUlFVmlJZ0FWbkpRT3NtQVFJRUNCQWdRSUFB
Z1dNUWtJQWN3eWlJCmdRQUJBZ1FJRUNCQWdNQktCQ1FnS3hsbzNTUkFnQUFCQWdRSUVDQndEQUlT
a0dNWUJURVFJRUNBQUFFQ0JBZ1FXSW1BdTJBZFlLRFAKWDdoUnRYTHgwdlZxZmVwSzg0NWF0MDF0
VG4wQ0JBZ1FJRUNBQUFFQ2l3dTRBckw0RUFpQUFBRUNCQWdRSUVDQXdIb0VKQ0RyR1dzOQpKVUNB
QUFFQ0JBZ1FJTEM0Z0FSazhTRVFBQUVDQkFnUUlFQ0FBSUgxQ0VoQTFqUFdla3FBQUFFQ0JBZ1FJ
RUJnY1FFSnlPSkRJQUFDCkJBZ1FJRUNBQUFFQzZ4R1FnS3huclBXVUFBRUNCQWdRSUVDQXdPSUNF
cERGaDBBQUJBZ1FJRUNBQUFFQ0JOWWpJQUZaejFqcktRRUMKQkFnUUlFQ0FBSUhGQlNRZ2l3K0JB
QWdRSUVDQUFBRUNCQWlzUjBBQ3NwNngxbE1DQkFnUUlFQ0FBQUVDaXd0SVFCWWZBZ0VRSUVDQQpB
QUVDQkFnUVdJK0FCR1E5WTYybkJBZ1FJRUNBQUFFQ0JCWVhrSUFzUGdRQ0lFQ0FBQUVDQkFnUUlM
QWVBUW5JZXNaYVR3a1FJRUNBCkFBRUNCQWdzTGlBQldYd0lCRUNBQUFFQ0JBZ1FJRUJnUFFJU2tQ
V010WjRTSUVDQUFBRUNCQWdRV0Z4QUFyTDRFQWlBQUFFQ0JBZ1EKSUVDQXdIb0VKQ0RyR1dzOUpV
Q0FBQUVDQkFnUUlMQzR3Sm5GSTdnRkFyaDI5V3pWaXl1WHoxWHJVMWZxN1U1dFMzMENCQWdRSUVD
QQpBQUVDeHlEZ0NzZ3hqSUlZQ0JBZ1FJQUFBUUlFQ0t4RVFBS3lrb0hXVFFJRUNCQWdRSUFBQVFM
SElIQ1NGMHRYSUNjbko5WFRQVVdyCmNsWnViUUhIeEswOXZucEhnQUFCQWdRSUVKaFR3QldRT1hX
MVRZQUFBUUlFQ0JBZ1FJQkFRMEFDMHVDd1FZQUFBUUlFQ0JBZ1FJREEKbkFJU2tEbDF0VTJBQUFF
Q0JBZ1FJRUNBUUVOQUF0TGdzRUdBQUFFQ0JBZ1FJRUNBd0p3Q0VwQTVkYlZOZ0FBQkFnUUlFQ0JB
Z0VCRApRQUxTNExCQmdBQUJBZ1FJRUNCQWdNQ2NBaEtRT1hXMVRZQUFBUUlFQ0JBZ1FJQkFRMEFD
MHVDd1FZQUFBUUlFQ0JBZ1FJREFuQUlTCmtEbDF0VTJBQUFFQ0JBZ1FJRUNBUUVQZ1RHT3JaNlAr
RjdCN2lucWFBQUVDQkFnUUlFQ0FBQUVDTndtNEFuSVRpUWNJRUNCQWdBQUIKQWdRSUVKaExRQUl5
bDZ4MkNSQWdRSUFBQVFJRUNCQzRTYUIzQ2xhZTV6ZFY4Z0FCQWdRSUVDQkFnQUFCQWdUR0NMZ0NN
a1pOSFFJRQpDQkFnUUlBQUFRSUVSZ2xJUUVheHFVU0FBQUVDQkFnUUlFQ0F3QmdCQ2NnWU5YVUlF
Q0JBZ0FBQkFnUUlFQmdsSUFFWnhhWVNBUUlFCkNCQWdRSUFBQVFKakJDUWdZOVRVSVVDQUFBRUNC
QWdRSUVCZ2xJQUVaQlNiU2dRSUVDQkFnQUFCQWdRSWpCR1FnSXhSVTRjQUFRSUUKQ0JBZ1FJQUFn
VkVDRXBCUmJDb1JJRUNBQUFFQ0JBZ1FJREJHUUFJeVJrMGRBZ1FJRUNCQWdBQUJBZ1JHQ2ZUK0pm
U1RrNU5SRGF1MApEb0U4ejlmUlViMGtRSUFBQVFJRUNCQTRpSUFySUFkaDFBZ0JBZ1FJRUNCQWdB
QUJBa01FSkNCRGxKUWhRSUFBQVFJRUNCQWdRT0FnCkFyMVRzT3A3TWQybXJySGVkZFB5MWp2MmVr
NkFBQUVDQkFnUW1DcmdDc2hVUWZVSkVDQkFnQUFCQWdRSUVCZ3NJQUVaVEtVZ0FRSUUKQ0JBZ1FJ
QUFBUUpUQlNRZ1V3WFZKMENBQUFFQ0JBZ1FJRUJnc0lBRVpEQ1ZnZ1FJRUNCQWdBQUJBZ1FJVEJX
UWdFd1ZWSjhBQVFJRQpDQkFnUUlBQWdjRUNFcERCVkFvU0lFQ0FBQUVDQkFnUUlEQlZRQUl5VlZC
OUFnUUlFQ0JBZ0FBQkFnUUdDMGhBQmxNcFNJQUFBUUlFCkNCQWdRSURBVkFFSnlGUkI5UWtRSUVD
QUFBRUNCQWdRR0N3Z0FSbE1wU0FCQWdRSUVDQkFnQUFCQWxNRkpDQlRCZFVuUUlBQUFRSUUKQ0JB
Z1FHQ3d3Sm5CSlJYc0ZiajlqbnVyTXVjdjNLaldwNjVjdTNxMmF1S2V1MjZyMXEwUUlFQ0FBQUVD
QkFnUVNFM0FGWkRVUmt5OApCQWdRSUVDQUFBRUNCQklXa0lBa1BIaENKMENBQUFFQ0JBZ1FJSkNh
Z0NsWUJ4eXgrclNyaTVldUg2emxLNWZQMWRveUJhdUdZWlVBCkFRSUVDQkFnUUNBeEFWZEFFaHN3
NFJJZ1FJQUFBUUlFQ0JCSVdVQUNrdkxvaVowQUFRSUVDQkFnUUlCQVlnSVNrTVFHVExnRUNCQWcK
UUlBQUFRSUVVaGFRZ0tROGVtSW5RSUFBQVFJRUNCQWdrSmlBQkNTeEFSTXVBUUlFQ0JBZ1FJQUFn
WlFGSkNBcGo1N1lDUkFnUUlBQQpBUUlFQ0NRbUlBRkpiTUNFUzRBQUFRSUVDQkFnUUNCbEFRbEl5
cU1uZGdJRUNCQWdRSUFBQVFLSkNVaEFFaHN3NFJJZ1FJQUFBUUlFCkNCQklXVUFDa3ZMb2laMEFB
UUlFQ0JBZ1FJQkFZZ0lTa01RR1RMZ0VDQkFnUUlBQUFRSUVVaGFRZ0tROGVtSW5RSUFBQVFJRUNC
QWcKa0ppQUJDU3hBUk11QVFJRUNCQWdRSUFBZ1pRRkpDQXBqNTdZQ1JBZ1FJQUFBUUlFQ0NRbUlB
RkpiTUNFUzRBQUFRSUVDQkFnUUNCbApBUWxJeXFNbmRnSUVDQkFnUUlBQUFRS0pDVWhBRWhzdzRS
SWdRSUFBQVFJRUNCQklXVUFDa3ZMb2laMEFBUUlFQ0JBZ1FJQkFZZ0puCkVvdjNxTU85ZHZWc0Zk
K1Z5K2VxOWFrcjlYYW50cVUrQVFJRUNCQWdRSUFBZ1NVRlhBRlpVdCsrQ1JBZ1FJQUFBUUlFQ0t4
TVFBS3kKc2dIWFhRSUVDQkFnUUlBQUFRSkxDcHpreGRJVndNbkpTZlYwVDlHcW5KVmJXOEF4Y1d1
UHI5NFJJRUNBQUFFQ0JPWVVjQVZrVGwxdApFeUJBZ0FBQkFnUUlFQ0RRRUpDQU5EaHNFQ0JBZ0FB
QkFnUUlFQ0F3cDRBRVpFNWRiUk1nUUlBQUFRSUVDQkFnMEJDUWdEUTRiQkFnClFJQUFBUUlFQ0JB
Z01LZUFCR1JPWFcwVElFQ0FBQUVDQkFnUUlOQVFrSUEwT0d3UUlFQ0FBQUVDQkFnUUlEQ25nQVJr
VGwxdEV5QkEKZ0FBQkFnUUlFQ0RRRUpDQU5EaHNFQ0JBZ0FBQkFnUUlFQ0F3cDRBRVpFNWRiUk1n
UUlBQUFRSUVDQkFnMEJDUWdEUTRiQkFnUUlBQQpBUUlFQ0JBZ01LZUFCR1JPWFcwVElFQ0FBQUVD
QkFnUUlOQVFrSUEwT0d3UUlFQ0FBQUVDQkFnUUlEQ25nQVJrVGwxdEV5QkFnQUFCCkFnUUlFQ0RR
RUpDQU5EaHNFQ0JBZ0FBQkFnUUlFQ0F3cDRBRVpFNWRiUk1nUUlBQUFRSUVDQkFnMEJDUWdEUTRi
QkFnUUlBQUFRSUUKQ0JBZ01LZUFCR1JPWFcwVElFQ0FBQUVDQkFnUUlOQVFrSUEwT0d3UUlFQ0FB
QUVDQkFnUUlEQ25nQVJrVGwxdEV5QkFnQUFCQWdRSQpFQ0RRRUpDQU5EaHNFQ0JBZ0FBQkFnUUlF
Q0F3cDRBRVpFNWRiUk1nUUlBQUFRSUVDQkFnMEJDUWdEUTRiQkFnUUlBQUFRSUVDQkFnCk1LZUFC
R1JPWFcwVElFQ0FBQUVDQkFnUUlOQVFrSUEwT0d3UUlFQ0FBQUVDQkFnUUlEQ25nQVJrVGwxdEV5
QkFnQUFCQWdRSUVDRFEKRUpDQU5EaHNFQ0JBZ0FBQkFnUUlFQ0F3cDRBRVpFNWRiUk1nUUlBQUFR
SUVDQkFnMEJDUWdEUTRiQkFnUUlBQUFRSUVDQkFnTUtlQQpCR1JPWFcwVElFQ0FBQUVDQkFnUUlO
QVFrSUEwT0d3UUlFQ0FBQUVDQkFnUUlEQ25nQVJrVGwxdEV5QkFnQUFCQWdRSUVDRFFFSkNBCk5E
aHNFQ0JBZ0FBQkFnUUlFQ0F3cDhDWmZSby9PVG5acDdpeUJBZ1FJRUNBQUFFQ0JBZ1FhQWk0QXRM
Z3NFR0FBQUVDQkFnUUlFQ0EKd0p3Q0VwQTVkYlZOZ0FBQkFnUUlFQ0JBZ0VCRG9IY0tWcDdualFv
MkNCQWdRSUFBQVFJRUNCQWdNRmJBRlpDeGN1b1JJRUNBQUFFQwpCQWdRSUxDM2dBUmtieklWQ0JB
Z1FJQUFBUUlFQ0JBWUt5QUJHU3VuSGdFQ0JBZ1FJRUNBQUFFQ2V3dElRUFltVTRFQUFRSUVDQkFn
ClFJQUFnYkVDRXBDeGN1b1JJRUNBQUFFQ0JBZ1FJTEMzZ0FSa2J6SVZDQkFnUUlBQUFRSUVDQkFZ
S3lBQkdTdW5IZ0VDQkFnUUlFQ0EKQUFFQ2V3dElRUFltVTRFQUFRSUVDQkFnUUlBQWdiRUNFcEN4
Y3VvUklFQ0FBQUVDQkFnUUlMQzNRTzlmUWo4NU9kbTdVUlhXSTVEbgorWG82cTZjRUNCQWdRSUFB
QVFLVEJWd0JtVXlvQVFJRUNCQWdRSUFBQVFJRWhncElRSVpLS1VlQUFBRUNCQWdRSUVDQXdHU0Iz
aWxZCjlUMllibFBYV08rNmFYbnJIWHM5SjBDQUFBRUNCQWhNRlhBRlpLcWcrZ1FJRUNCQWdBQUJB
Z1FJREJhUWdBeW1VcEFBQVFJRUNCQWcKUUlBQWdha0NFcENwZ3VvVElFQ0FBQUVDQkFnUUlEQllR
QUl5bUVwQkFnUUlFQ0JBZ0FBQkFnU21Da2hBcGdxcVQ0QUFBUUlFQ0JBZwpRSURBWUFFSnlHQXFC
UWtRSUVDQUFBRUNCQWdRbUNvZ0Faa3FxRDRCQWdRSUVDQkFnQUFCQW9NRkpDQ0RxUlFrUUlBQUFR
SUVDQkFnClFHQ3FnQVJrcXFENkJBZ1FJRUNBQUFFQ0JBZ01GcENBREtaU2tBQUJBZ1FJRUNCQWdB
Q0JxUUlTa0ttQzZoTWdRSUFBQVFJRUNCQWcKTUZoQUFqS1lTa0VDQkFnUUlFQ0FBQUVDQktZS1NF
Q21DcXBQZ0FBQkFnUUlFQ0JBZ01CZ0FRbklZQ29GQ1JBZ1FJQUFBUUlFQ0JDWQpLaUFCbVNxb1Bn
RUNCQWdRSUVDQUFBRUNnd1VrSUlPcEZDUkFnQUFCQWdRSUVDQkFZS3FBQkdTcW9Qb0VDQkFnUUlB
QUFRSUVDQXdXCmtJQU1wbEtRQUFFQ0JBZ1FJRUNBQUlHcEFoS1FxWUxxRXlCQWdBQUJBZ1FJRUNB
d1dFQUNNcGhLUVFJRUNCQWdRSUFBQVFJRXBncEkKUUtZS3FrK0FBQUVDQkFnUUlFQ0F3R0FCQ2No
Z0tnVUpFQ0JBZ0FBQkFnUUlFSmdxSUFHWktxZytBUUlFQ0JBZ1FJQUFBUUtEQlNRZwpnNmtVSkVD
QUFBRUNCQWdRSUVCZ3FvQUVaS3FnK2dRSUVDQkFnQUFCQWdRSURCYVFnQXltVXBBQUFRSUVDQkFn
UUlBQWdha0NFcENwCmd1b1RJRUNBQUFFQ0JBZ1FJREJZUUFJeW1FcEJBZ1FJRUNCQWdBQUJBZ1Nt
Q2toQXBncXFUNEFBQVFJRUNCQWdRSURBWUFFSnlHQXEKQlFrUUlFQ0FBQUVDQkFnUW1Db2dBWmtx
cUQ0QkFnUUlFQ0JBZ0FBQkFvTUZKQ0NEcVJRa1FJQUFBUUlFQ0JBZ1FHQ3FnQVJrcXFENgpCQWdR
SUVDQUFBRUNCQWdNRnBDQURLWlNrQUFCQWdRSUVDQkFnQUNCcVFKbnBqYWdmcFk5NGhIUHFSZ2Uv
dkRuVnV0VFYrNisrMEZWCkUwOTcyb09yZFNzRUNCQWdRSUFBQVFJRVVoV1FnQnhvNUY1NDlvRmxT
ODgvZHpqU0Y1NDlXN2I1Z0J2UFAxQ1VtaUZBZ0FBQkFnUUkKRUNDd3JJQXBXTXY2MnpzQkFnUUlF
Q0JBZ0FDQlZRa2M3dVA2VmJFMU94dlRyalpYUGk1ZXV0NThjc0xXbGN2bnl0b1B2QjdUdWt6Qgpt
a0NwS2dFQ0JBZ1FJRUNBd0pFSXVBSnlKQU1oREFJRUNCQWdRSUFBQVFKckVKQ0FyR0dVOVpFQUFR
SUVDQkFnUUlEQWtRaElRSTVrCklJUkJnQUFCQWdRSUVDQkFZQTBDRXBBMWpMSStFaUJBZ0FBQkFn
UUlFRGdTQVFuSWtReUVNQWdRSUVDQUFBRUNCQWlzUVVBQ3NvWlIKMWtjQ0JBZ1FJRUNBQUFFQ1J5
SWdBVG1TZ1JBR0FRSUVDQkFnUUlBQWdUVUlTRURXTU1yNlNJQUFBUUlFQ0JBZ1FPQklCQ1FnUnpJ
UQp3aUJBZ0FBQkFnUUlFQ0N3QmdFSnlCcEdXUjhKRUNCQWdBQUJBZ1FJSEltQUJPUklCa0lZQkFn
UU4rbURTZ0FBQlFaSlJFRlVJRUNBCkFBRUNCTllnSUFGWnd5anJJd0VDQkFnUUlFQ0FBSUVqRVpD
QUhNbEFDSU1BQVFJRUNCQWdRSURBR2dRa0lHc1laWDBrUUlBQUFRSUUKQ0JBZ2NDUUNFcEFqR1Fo
aEVDQkFnQUFCQWdRSUVGaURnQVJrRGFPc2p3UUlFQ0JBZ0FBQkFnU09SRUFDY2lRRElRd0NCQWdR
SUVDQQpBQUVDYXhDUWdLeGhsUFdSQUFFQ0JBZ1FJRUNBd0pFSW5EbVNPSklPNCs2N0g1Uzk4T3pa
c2c5WExwODdXRit1WGIydnpRZmNlTkRCCjJ0UVFBUUlFQ0JBZ1FJQUFnU1VGWEFGWlV0KytDUkFn
UUlBQUFRSUVDS3hNd0JXUUF3MzRBMjQ4djJ6cGdkZWZlNkFXczh5Vmo0TlIKYW9nQUFRSUVDQkFn
UU9CSUJFN3lZdW1LNWVUa3BIcTZwMmhWenNxdExlQ1l1TFhIVis4SUVDQkFnQUFCQW5NS21JSTFw
NjYyQ1JBZwpRSUFBQVFJRUNCQm9DRWhBR2h3MkNCQWdRSUFBQVFJRUNCQ1lVMEFDTXFldXRna1FJ
RUNBQUFFQ0JBZ1FhQWhJUUJvY05nZ1FJRUNBCkFBRUNCQWdRbUZOQUFqS25ycllKRUNCQWdBQUJB
Z1FJRUdnSVNFQWFIRFlJRUNCQWdBQUJBZ1FJRUpoVFFBSXlwNjYyQ1JBZ1FJQUEKQVFJRUNCQm9D
RWhBR2h3MkNCQWdRSUFBQVFJRUNCQ1lVMEFDTXFldXRna1FJRUNBQUFFQ0JBZ1FhQWljYVd6MWJO
VC9BblpQVVU4VApJRUNBQUFFQ0JBZ1FJRURnSmdGWFFHNGk4UUFCQWdRSUVDQkFnQUFCQW5NSlNF
RG1rdFV1QVFJRUNCQWdRSUFBQVFJM0NmUk93Y3J6Ci9LWktIaUJBZ0FBQkFnUUlFQ0JBZ01BWUFW
ZEF4cWlwUTRBQUFRSUVDQkFnUUlEQUtBRUp5Q2cybFFnUUlFQ0FBQUVDQkFnUUdDTWcKQVJtanBn
NEJBZ1FJRUNCQWdBQUJBcU1FSkNDajJGUWlRSUFBQVFJRUNCQWdRR0NNZ0FSa2pKbzZCQWdRSUVD
QUFBRUNCQWlNRXBDQQpqR0pUaVFBQkFnUUlFQ0JBZ0FDQk1RSVNrREZxNmhBZ1FJQUFBUUlFQ0JB
Z01FcEFBaktLVFNVQ0JBZ1FJRUNBQUFFQ0JNWUlTRURHCnFLbERnQUFCQWdRSUVDQkFnTUFvQVFu
SUtEYVZDQkFnUUlBQUFRSUVDQkFZSXlBQkdhT21EZ0VDQkFnUUlFQ0FBQUVDb3dRa0lLUFkKVkNK
QWdBQUJBZ1FJRUNCQVlJeUFCR1NNbWpvRUNCQWdRSUFBQVFJRUNJd1NrSUNNWWxPSkFBRUNCQWdR
SUVDQUFJRXhBaEtRTVdycQpFQ0JBZ0FBQkFnUUlFQ0F3U2tBQ01vcE5KUUlFQ0JBZ1FJQUFBUUlF
eGdoSVFNYW9xVU9BQUFFQ0JBZ1FJRUNBd0NnQkNjZ29OcFVJCkVDQkFnQUFCQWdRSUVCZ2pJQUVa
bzZZT0FRSUVDQkFnUUlBQUFRS2pCQ1FnbzloVUlrQ0FBQUVDQkFnUUlFQmdqSUFFWkl5YU9nUUkK
RUNCQWdBQUJBZ1FJakJLUWdJeGlVNGtBQVFJRUNCQWdRSUFBZ1RFQ0VwQXhhdW9RSUVDQUFBRUNC
QWdRSURCS1FBSXlpazBsQWdRSQpFQ0JBZ0FBQkFnVEdDRWhBeHFpcFE0QUFBUUlFQ0JBZ1FJREFL
QUVKeUNnMmxRZ1FJRUNBQUFFQ0JBZ1FHQ01nQVJtanBnNEJBZ1FJCkVDQkFnQUFCQXFNRUpDQ2oy
RlFpUUlBQUFRSUVDQkFnUUdDTWdBUmtqSm82QkFnUUlFQ0FBQUVDQkFpTUVwQ0FqR0pUaVFBQkFn
UUkKRUNCQWdBQ0JNUUlTa0RGcTZoQWdRSUFBQVFJRUNCQWdNRXBBQWpLS1RTVUNCQWdRSUVDQUFB
RUNCTVlJU0VER3FLbERnQUFCQWdRSQpFQ0JBZ01Bb0FRbklLRGFWQ0JBZ1FJQUFBUUlFQ0JBWUl5
QUJHYU9tRGdFQ0JBZ1FJRUNBQUFFQ293UWtJS1BZVkNKQWdBQUJBZ1FJCkVDQkFZSXlBQkdTTW1q
b0VDQkFnUUlBQUFRSUVDSXdTa0lDTVlsT0pBQUVDQkFnUUlFQ0FBSUV4QWhLUU1XcnFFQ0JBZ0FB
QkFnUUkKRUNBd1NrQUNNb3BOSlFJRUNCQWdRSUFBQVFJRXhnajhQd1FPYWVuRzFvQkZBQUFBQUVs
RlRrU3VRbUNDCgo=
</data>
<flag name="review"
          id="31456"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>