<?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>45616</bug_id>
          
          <creation_ts>2010-09-12 10:27:50 -0700</creation_ts>
          <short_desc>applyInlineStyleToNodeRange does not extend a run properly</short_desc>
          <delta_ts>2010-09-14 13:29:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45746</dependson>
          <blocked>45568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277868</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-12 10:27:50 -0700</bug_when>
    <thetext>In the current implementation of applyInlineStyleToNodeRange, we do not start a run from a node that contains child nodes.
We also fail to remove redundant styled elements in a run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277875</commentid>
    <comment_count>1</comment_count>
      <attachid>67338</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-12 10:54:02 -0700</bug_when>
    <thetext>Created attachment 67338
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278364</commentid>
    <comment_count>2</comment_count>
      <attachid>67338</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-13 11:59:09 -0700</bug_when>
    <thetext>Comment on attachment 67338
fixes the bug

View in context: https://bugs.webkit.org/attachment.cgi?id=67338&amp;action=prettypatch

&gt; WebCore/editing/ApplyStyleCommand.cpp:1170
&gt; -        if (mode == RemoveAttributesAndElements)
&gt; +        if (mode == RemoveIfNeeded)
&gt;              removeNodePreservingChildren(element);
Should mode == RemoveAlways also cause us to removeNodePreservingChildren?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278444</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-13 13:39:41 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 67338 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67338&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/editing/ApplyStyleCommand.cpp:1170
&gt; &gt; -        if (mode == RemoveAttributesAndElements)
&gt; &gt; +        if (mode == RemoveIfNeeded)
&gt; &gt;              removeNodePreservingChildren(element);
&gt; Should mode == RemoveAlways also cause us to removeNodePreservingChildren?

That&apos;s a very valid point.  Let me fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278477</commentid>
    <comment_count>4</comment_count>
      <attachid>67471</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-13 14:24:42 -0700</bug_when>
    <thetext>Created attachment 67471
fixed per Tony&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278750</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-14 00:12:13 -0700</bug_when>
    <thetext>Committed r67449: &lt;http://trac.webkit.org/changeset/67449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278761</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 01:01:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67449 might have broken Qt Linux Release minimal
The following changes are on the blame list:
http://trac.webkit.org/changeset/67449
http://trac.webkit.org/changeset/67450
http://trac.webkit.org/changeset/67451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278886</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-14 07:39:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67459 rolled out this patch due the failure of /fast/events/event-input-contentEditable.html

Will rebaseline this patch and commit again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279113</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 13:04:25 -0700</bug_when>
    <thetext>I can&apos;t tell who was to blame, I thought bug 45071 was what caused that test to regress?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279134</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-14 13:29:15 -0700</bug_when>
    <thetext>Committed r67490: &lt;http://trac.webkit.org/changeset/67490&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67338</attachid>
            <date>2010-09-12 10:54:02 -0700</date>
            <delta_ts>2010-09-13 14:24:38 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-45616-20100912105359.patch</filename>
            <type>text/plain</type>
            <size>22131</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzMyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDktMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYXBw
bHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlIGRvZXMgbm90IGV4dGVuZCBydW4gcHJvcGVybHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjE2CisKKyAg
ICAgICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IGFwcGx5SW5saW5lU3R5bGVUb05vZGVSYW5nZSdz
IHNraXBwaW5nIGEgbm9kZSB3aGVuZXZlciBpdCBoYXMgY2hpbGRyZW4uCisgICAgICAgIEZpeGVk
IHRoZSBidWcgYnkgb25seSBza2lwcGluZyBhIG5vZGUgdGhhdCBjb250YWlucyB0aGUgcGFzdCBl
bmQgbm9kZSwgY29udGFpbnMgbm9uLWVkaXRhYmxlIHJlZ2lvbiwKKyAgICAgICAgb3IgaGFzIGEg
bm9uLWVkaXRhYmxlIHBhcmVudCBub2RlLiBBbHNvIGZpeGVkIGEgYnVnIHRoYXQgYXBwbHlJbmxp
bmVTdHlsZVRvTm9kZVJhbmdlIGRvZXMgbm90IHJlbW92ZQorICAgICAgICBzdHlsZWQgZWxlbWVu
dHMgaW4gYSBydW4gdGhhdCBhcmUgaWRlbnRpY2FsIHRvIHRoZSBvbmUgYWRkZWQuIGFkZElubGlu
ZVN0eWxlSWZOZWVkZWQgbm93IHJlbW92ZXMKKyAgICAgICAgYWxsIHN0eWxlZCBlbGVtZW50cyBp
biBhIHJ1biB1c2luZyByZW1vdmVTdHlsZUZyb21SdW5CZWZvcmVBcHBseWluZ1N0eWxlIGJlZm9y
ZSBjYWxsaW5nIGFkZElubGluZVN0eWxlSWZOZWVkZWQuCisKKyAgICAgICAgVGVzdDogZWRpdGlu
Zy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi5odG1sCisKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zTm9uRWRp
dGFibGVSZWdpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5k
OjphcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2UpOiBTZWUgYWJvdmUuCisgICAgICAgIChXZWJD
b3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlU3R5bGVGcm9tUnVuQmVmb3JlQXBwbHlpbmdT
dHlsZSk6IEFkZGVkLCBzZWUgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29t
bWFuZDo6cmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudCk6IEFkZGVkIHN1cHBvcnQgZm9yIFJl
bW92ZUFsd2F5cy4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJ
bXBsaWNpdGx5U3R5bGVkRWxlbWVudCk6IFJlcGxhY2VkIFJlbW92ZUF0dHJpYnV0ZXNBbmRFbGVt
ZW50cyBieSBSZW1vdmVJZk5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21t
YW5kOjpleHRyYWN0SW5saW5lU3R5bGVUb1B1c2hEb3duKTogUmVwbGFjZWQgUmVtb3ZlQXR0cmli
dXRlc0FuZEVsZW1lbnRzIGJ5IFJlbW92ZUlmTmVlZGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuaDoKKwogMjAxMC0wOS0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5o
YXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gNjcyMzkp
CisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcxLDYgKzEwNzEsMjAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6Zml4UmFuZ2VB
bmRBcHBseQogICAgIGFwcGx5SW5saW5lU3R5bGVUb05vZGVSYW5nZShzdHlsZSwgc3RhcnROb2Rl
LCBwYXN0RW5kTm9kZSk7CiB9CiAKK3N0YXRpYyBib29sIGNvbnRhaW5zTm9uRWRpdGFibGVSZWdp
b24oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgTm9kZSogc2libGluZyA9IG5vZGUtPnRyYXZlcnNl
TmV4dFNpYmxpbmcoKTsKKyAgICBmb3IgKE5vZGUqIGRlc2NlbmRlbnQgPSBub2RlLT5maXJzdENo
aWxkKCk7IGRlc2NlbmRlbnQgJiYgZGVzY2VuZGVudCAhPSBzaWJsaW5nOyBkZXNjZW5kZW50ID0g
ZGVzY2VuZGVudC0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgICAgIGlmICghZGVzY2VuZGVu
dC0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJ
bmxpbmVTdHlsZVRvTm9kZVJhbmdlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwg
Tm9kZSogbm9kZSwgTm9kZSogcGFzdEVuZE5vZGUpCiB7CiAgICAgZm9yIChOb2RlKiBuZXh0OyBu
b2RlICYmIG5vZGUgIT0gcGFzdEVuZE5vZGU7IG5vZGUgPSBuZXh0KSB7CkBAIC0xMDk4LDMyICsx
MTEyLDYxIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkTm9kZUNv
dW50KCkpIHsKLSAgICAgICAgICAgIGlmIChlZGl0aW5nSWdub3Jlc0NvbnRlbnQobm9kZSkpCisg
ICAgICAgICAgICBpZiAobm9kZS0+Y29udGFpbnMocGFzdEVuZE5vZGUpIHx8IGNvbnRhaW5zTm9u
RWRpdGFibGVSZWdpb24obm9kZSkgfHwgIW5vZGUtPnBhcmVudE5vZGUoKS0+aXNDb250ZW50RWRp
dGFibGUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChlZGl0
aW5nSWdub3Jlc0NvbnRlbnQobm9kZSkpIHsKICAgICAgICAgICAgICAgICBuZXh0ID0gbm9kZS0+
dHJhdmVyc2VOZXh0U2libGluZygpOwotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBOb2Rl
KiBydW5FbmQgPSBub2RlOwogICAgICAgICBOb2RlKiBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxp
bmcoKTsKLSAgICAgICAgU3R5bGVDaGFuZ2Ugc3RhcnRDaGFuZ2Uoc3R5bGUsIFBvc2l0aW9uKG5v
ZGUsIDApKTsKICAgICAgICAgd2hpbGUgKHNpYmxpbmcgJiYgc2libGluZyAhPSBwYXN0RW5kTm9k
ZSAmJiAhc2libGluZy0+Y29udGFpbnMocGFzdEVuZE5vZGUpCiAgICAgICAgICAgICAgICAmJiAo
IWlzQmxvY2soc2libGluZykgfHwgc2libGluZy0+aGFzVGFnTmFtZShiclRhZykpCi0gICAgICAg
ICAgICAgICAmJiBTdHlsZUNoYW5nZShzdHlsZSwgUG9zaXRpb24oc2libGluZywgMCkpID09IHN0
YXJ0Q2hhbmdlKSB7CisgICAgICAgICAgICAgICAmJiAhY29udGFpbnNOb25FZGl0YWJsZVJlZ2lv
bihzaWJsaW5nKSkgewogICAgICAgICAgICAgcnVuRW5kID0gc2libGluZzsKICAgICAgICAgICAg
IHNpYmxpbmcgPSBydW5FbmQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAgbmV4
dCA9IHJ1bkVuZC0+dHJhdmVyc2VOZXh0U2libGluZygpOworCisgICAgICAgIGlmICghcmVtb3Zl
U3R5bGVGcm9tUnVuQmVmb3JlQXBwbHlpbmdTdHlsZShzdHlsZSwgbm9kZSwgcnVuRW5kKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhZGRJbmxpbmVTdHlsZUlmTmVlZGVkKHN0eWxl
LCBub2RlLCBydW5FbmQsIG1fcmVtb3ZlT25seSA/IERvTm90QWRkU3R5bGVkRWxlbWVudCA6IEFk
ZFN0eWxlZEVsZW1lbnQpOwogICAgIH0KIH0KIAorYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6cmVt
b3ZlU3R5bGVGcm9tUnVuQmVmb3JlQXBwbHlpbmdTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGUsIE5vZGUqJiBydW5TdGFydCwgTm9kZSomIHJ1bkVuZCkKK3sKKyAgICBOb2Rl
KiBwYXN0RW5kTm9kZSA9IHJ1bkVuZC0+dHJhdmVyc2VOZXh0U2libGluZygpOworICAgIE5vZGUq
IG5leHQ7CisgICAgZm9yIChOb2RlKiBub2RlID0gcnVuU3RhcnQ7IG5vZGUgJiYgbm9kZSAhPSBw
YXN0RW5kTm9kZTsgbm9kZSA9IG5leHQpIHsKKyAgICAgICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNl
TmV4dE5vZGUoKTsKKyAgICAgICAgaWYgKCFub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIE5vZGUqIHByZXZpb3VzU2libGluZyA9
IG5vZGUtPnByZXZpb3VzU2libGluZygpOworICAgICAgICBOb2RlKiBuZXh0U2libGluZyA9IG5v
ZGUtPm5leHRTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKKyAgICAgICAgcmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudChzdHlsZSwgc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSwgUmVtb3ZlQWx3YXlzKTsKKyAgICAgICAgaWYgKCFu
b2RlLT5pbkRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChydW5TdGFydCA9PSBub2RlKQor
ICAgICAgICAgICAgICAgIHJ1blN0YXJ0ID0gcHJldmlvdXNTaWJsaW5nID8gcHJldmlvdXNTaWJs
aW5nLT5uZXh0U2libGluZygpIDogcGFyZW50LT5maXJzdENoaWxkKCk7CisgICAgICAgICAgICBp
ZiAocnVuRW5kID09IG5vZGUpCisgICAgICAgICAgICAgICAgcnVuRW5kID0gbmV4dFNpYmxpbmcg
PyBuZXh0U2libGluZy0+cHJldmlvdXNTaWJsaW5nKCkgOiBwYXJlbnQtPmxhc3RDaGlsZCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQXBwbHlTdHls
ZUNvbW1hbmQ6OnJlbW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIHN0eWxlLCBIVE1MRWxlbWVudCogZWxlbWVudCwgSW5saW5lU3R5bGVSZW1vdmFs
TW9kZSBtb2RlKQogewogICAgIEFTU0VSVChzdHlsZSk7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwog
CiAgICAgaWYgKG1fc3R5bGVkSW5saW5lRWxlbWVudCAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKG1f
c3R5bGVkSW5saW5lRWxlbWVudC0+dGFnUU5hbWUoKSkpIHsKLSAgICAgICAgaWYgKG1vZGUgPT0g
UmVtb3ZlQXR0cmlidXRlc0FuZEVsZW1lbnRzKQorICAgICAgICBpZiAobW9kZSA9PSBSZW1vdmVJ
Zk5lZWRlZCkKICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVu
dCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTEyMjAsMTAgKzEyNjMsMTIgQEAg
Ym9vbCBBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlSW1wbGljaXRseQogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBtYXBWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVy
KGVxdWl2YWxlbnQucHJpbWl0aXZlSWQpLmdldCgpOwogCi0gICAgICAgIGlmIChlcXVpdmFsZW50
LmlzVmFsdWVMaXN0ICYmIHN0eWxlVmFsdWUtPmlzVmFsdWVMaXN0KCkgJiYgc3RhdGljX2Nhc3Q8
Q1NTVmFsdWVMaXN0Kj4oc3R5bGVWYWx1ZS5nZXQoKSktPmhhc1ZhbHVlKG1hcFZhbHVlLmdldCgp
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBJZiBDU1MgdmFsdWUgYXNzdW1lcyBDU1NWYWx1
ZUxpc3QsIHRoZW4gb25seSBza2lwIGlmIHRoZSB2YWx1ZSB3YXMgcHJlc2VudCBpbiBzdHlsZSB0
byBhcHBseS4KLSAgICAgICAgZWxzZSBpZiAobWFwVmFsdWUgJiYgc3R5bGVWYWx1ZS0+Y3NzVGV4
dCgpID09IG1hcFZhbHVlLT5jc3NUZXh0KCkpCi0gICAgICAgICAgICBjb250aW51ZTsgLy8gSWYg
Q1NTIHZhbHVlIGlzIHByaW1pdGl2ZSwgdGhlbiBza2lwIGlmIHRoZXkgYXJlIGVxdWFsLgorICAg
ICAgICBpZiAobW9kZSAhPSBSZW1vdmVBbHdheXMpIHsKKyAgICAgICAgICAgIGlmIChlcXVpdmFs
ZW50LmlzVmFsdWVMaXN0ICYmIHN0eWxlVmFsdWUtPmlzVmFsdWVMaXN0KCkgJiYgc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4oc3R5bGVWYWx1ZS5nZXQoKSktPmhhc1ZhbHVlKG1hcFZhbHVlLmdl
dCgpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gSWYgQ1NTIHZhbHVlIGFzc3VtZXMg
Q1NTVmFsdWVMaXN0LCB0aGVuIG9ubHkgc2tpcCBpZiB0aGUgdmFsdWUgd2FzIHByZXNlbnQgaW4g
c3R5bGUgdG8gYXBwbHkuCisgICAgICAgICAgICBlbHNlIGlmIChtYXBWYWx1ZSAmJiBzdHlsZVZh
bHVlLT5jc3NUZXh0KCkgPT0gbWFwVmFsdWUtPmNzc1RleHQoKSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsgLy8gSWYgQ1NTIHZhbHVlIGlzIHByaW1pdGl2ZSwgdGhlbiBza2lwIGlmIHRoZXkg
YXJlIGVxdWFsLgorICAgICAgICB9CiAKICAgICAgICAgaWYgKGV4dHJhY3RlZFN0eWxlKQogICAg
ICAgICAgICAgZXh0cmFjdGVkU3R5bGUtPnNldFByb3BlcnR5KGVxdWl2YWxlbnQucHJvcGVydHlJ
RCwgbWFwVmFsdWUtPmNzc1RleHQoKSk7CkBAIC0xMzQyLDcgKzEzODcsNyBAQCBQYXNzUmVmUHRy
PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBBCiAKICAgICBpZiAoIXN0eWxlKSB7CiAgICAg
ICAgIHN0eWxlID0gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOwotICAgICAg
ICByZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVudChzdHlsZVRvQXBwbHksIGVsZW1lbnQsIFJl
bW92ZUF0dHJpYnV0ZXNBbmRFbGVtZW50cywgc3R5bGUuZ2V0KCkpOworICAgICAgICByZW1vdmVJ
bXBsaWNpdGx5U3R5bGVkRWxlbWVudChzdHlsZVRvQXBwbHksIGVsZW1lbnQsIFJlbW92ZUlmTmVl
ZGVkLCBzdHlsZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiBzdHlsZS5yZWxlYXNlKCk7CiAgICAg
fQogCkBAIC0xMzY0LDcgKzE0MDksNyBAQCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uPiBBCiAgICAgaWYgKGlzU3BhbldpdGhvdXRBdHRyaWJ1dGVzT3JVbnN0eWxlU3R5bGVT
cGFuKGVsZW1lbnQpKQogICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKGVsZW1l
bnQpOwogCi0gICAgcmVtb3ZlSW1wbGljaXRseVN0eWxlZEVsZW1lbnQoc3R5bGVUb0FwcGx5LCBl
bGVtZW50LCBSZW1vdmVBdHRyaWJ1dGVzQW5kRWxlbWVudHMsIHN0eWxlLmdldCgpKTsKKyAgICBy
ZW1vdmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVudChzdHlsZVRvQXBwbHksIGVsZW1lbnQsIFJlbW92
ZUlmTmVlZGVkLCBzdHlsZS5nZXQoKSk7CiAKICAgICByZXR1cm4gc3R5bGUucmVsZWFzZSgpOwog
fQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHJldmlzaW9uIDY3MjM5KQor
KysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDcgQEAgZW51bSBTaG91bGRJbmNsdWRlVHlwaW5nU3R5bGUgewogY2xhc3MgQXBw
bHlTdHlsZUNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgog
ICAgIGVudW0gRVByb3BlcnR5TGV2ZWwgeyBQcm9wZXJ0eURlZmF1bHQsIEZvcmNlQmxvY2tQcm9w
ZXJ0aWVzIH07Ci0gICAgZW51bSBJbmxpbmVTdHlsZVJlbW92YWxNb2RlIHsgUmVtb3ZlQXR0cmli
dXRlc0FuZEVsZW1lbnRzLCBSZW1vdmVOb25lIH07CisgICAgZW51bSBJbmxpbmVTdHlsZVJlbW92
YWxNb2RlIHsgUmVtb3ZlSWZOZWVkZWQsIFJlbW92ZUFsd2F5cywgUmVtb3ZlTm9uZSB9OwogICAg
IGVudW0gRUFkZFN0eWxlZEVsZW1lbnQgeyBBZGRTdHlsZWRFbGVtZW50LCBEb05vdEFkZFN0eWxl
ZEVsZW1lbnQgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFwcGx5U3R5bGVDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRWRp
dEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uQ2hhbmdlQXR0cmlidXRlcywgRVByb3BlcnR5TGV2
ZWwgbGV2ZWwgPSBQcm9wZXJ0eURlZmF1bHQpCkBAIC03MSwxMSArNzEsMTIgQEAgcHJpdmF0ZToK
ICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKSBjb25zdCB7IHJldHVybiBt
X3N0eWxlLmdldCgpOyB9CiAKICAgICAvLyBzdHlsZS1yZW1vdmFsIGhlbHBlcnMKLSAgICBib29s
IHJlbW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
LCBIVE1MRWxlbWVudCosIElubGluZVN0eWxlUmVtb3ZhbE1vZGUgPSBSZW1vdmVBdHRyaWJ1dGVz
QW5kRWxlbWVudHMpOworICAgIGJvb2wgcmVtb3ZlU3R5bGVGcm9tUnVuQmVmb3JlQXBwbHlpbmdT
dHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIE5vZGUqJiBydW5TdGFydCwg
Tm9kZSomIHJ1bkVuZCk7CisgICAgYm9vbCByZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVtZW50KENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgSFRNTEVsZW1lbnQqLCBJbmxpbmVTdHlsZVJlbW92
YWxNb2RlID0gUmVtb3ZlSWZOZWVkZWQpOwogICAgIGlubGluZSBib29sIHNob3VsZFJlbW92ZUlu
bGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBI
VE1MRWxlbWVudCogZWxlbWVudCkge3JldHVybiByZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVtZW50
KHN0eWxlLCBlbGVtZW50LCBSZW1vdmVOb25lKTt9CiAgICAgYm9vbCByZW1vdmVJbXBsaWNpdGx5
U3R5bGVkRWxlbWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50Kiwg
SW5saW5lU3R5bGVSZW1vdmFsTW9kZSwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGV4dHJh
Y3RlZFN0eWxlID0gMCk7CiAgICAgdm9pZCByZXBsYWNlV2l0aFNwYW5PclJlbW92ZUlmV2l0aG91
dEF0dHJpYnV0ZXMoSFRNTEVsZW1lbnQqJik7Ci0gICAgYm9vbCByZW1vdmVDU1NTdHlsZShDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50KiwgSW5saW5lU3R5bGVSZW1vdmFs
TW9kZSA9IFJlbW92ZUF0dHJpYnV0ZXNBbmRFbGVtZW50cyk7CisgICAgYm9vbCByZW1vdmVDU1NT
dHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50KiwgSW5saW5lU3R5
bGVSZW1vdmFsTW9kZSA9IFJlbW92ZUlmTmVlZGVkKTsKICAgICBIVE1MRWxlbWVudCogaGlnaGVz
dEFuY2VzdG9yV2l0aENvbmZsaWN0aW5nSW5saW5lU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qLCBOb2RlKik7CiAgICAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gZXh0cmFjdElubGluZVN0eWxlVG9QdXNoRG93bihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biosIE5vZGUqLCBib29sIGlzU3R5bGVkRWxlbWVudCk7CiAgICAgdm9pZCBhcHBseUlubGluZVN0
eWxlVG9QdXNoRG93bihOb2RlKiwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxlKTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY3MzI5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDktMTIgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgYXBwbHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlIGRvZXMgbm90IGV4dGVuZCBhIHJ1
biBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDU2MTYKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIFdlYktpdCBhZGRzIGp1
c3Qgb25lIGVsZW1lbnQgd2hlbiBhcHBseWluZyBpbmxpbmUgc3R5bGUgYW5kIHJlbW92ZXMgcmVk
dW5kYW50IHN0eWxlZCBlbGVtZW50cy4KKyAgICAgICAgUmViYXNlbGluZSBvZiBvdGhlciB0ZXN0
cyBhcmUgcmVxdWlyZWQgYmVjYXVzZSBXZWJLaXQgbm93IGdlbmVyYXRlcyBsZXNzIGVsZW1lbnRz
LgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvdG9nZ2xlLXN0
eWxlLTMuanM6IE1lcmdlZCB0d28gYiBlbGVtZW50cy4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL3RvZ2dsZS1zdHlsZS0zLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9leGVjQ29tbWFuZC91bmxpbmstZXhwZWN0ZWQudHh0OiBDaGFuZ2VkIHRoZSBvcmRlciBp
biB3aGljaCBzcGFuIGFuZCBhbmNob3IgYXBwZWFyLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUv
aW5saW5lLXN0eWxlLWV4dGVuZC1ydW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL3N0eWxlL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc3R5bGUvc2NyaXB0LXRlc3RzL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3RTaW5nbGVUb2dnbGUpOgorICAgICAgICAqIGVkaXRpbmcv
c3R5bGUvc2NyaXB0LXRlc3RzL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUuanM6
IE1lcmdlZCB0d28gc3BhbnMuCisKIDIwMTAtMDktMTIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFp
cEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGUtMy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90
b2dnbGUtc3R5bGUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY3MjM5KQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGUtMy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMsNyArMyw3IEBAIFRlc3QgdG8gbWFrZSBzdXJlIHdlIHJlbW92ZSBzcGFu
IHRhZ3Mgd2kKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIG9uZSBib2xkIGNv
bW1hbmQgY29udmVydGVkIGhlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPiB0byA8Yj5oZWxsbzwv
Yj48YiBpZD0idGVzdCI+d29ybGQ8L2I+CitQQVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVk
IGhlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPiB0byA8Yj5oZWxsbzxzcGFuIGlkPSJ0ZXN0Ij53
b3JsZDwvc3Bhbj48L2I+CiBQQVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkIGhlbGxvPGI+
PGk+d29ybGQ8L2k+PC9iPiB0byA8Yj5oZWxsbzxpPndvcmxkPC9pPjwvYj4KIFBBU1Mgb25lIGl0
YWxpYyBjb21tYW5kIGNvbnZlcnRlZCBoZWxsbyA8aT53b3JsZDwvaT4gPGI+d2Via2l0PC9iPiB0
byA8aT5oZWxsbyB3b3JsZCA8Yj53ZWJraXQ8L2I+PC9pPgogUEFTUyBvbmUgaXRhbGljIGNvbW1h
bmQgY29udmVydGVkIGhlbGxvIDxpPndvcmxkPC9pPiB3ZWJraXQgdG8gPGk+aGVsbG8gd29ybGQg
d2Via2l0PC9pPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmst
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvdW5saW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjcyMzkpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDQgKzY1LDQgQEAgVGhlIGlubmVySFRNTCBvZiBlZGl0YWJsZSByZWdpb25zIGFmdGVyIAog
VGhpcyBwYXJhZ3JhcGggc2hvdWxkIHNob3VsZCBlbmQgdXAgdW5saW5rZWQuCiA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS8iPlRoZTwvYT4gc2Vjb25kPGEgaHJlZj0iaHR0cDovL3d3dy5h
cHBsZS5jb20vIj4gd29yZCBpbiB0aGlzIHBhcmFncmFwaCBzaG91bGQgZW5kIHVwIGJlaW5nIHVu
bGlua2VkLCBldmVyeXRoaW5nIGVsc2Ugc2hvdWxkIGJlIGEgbGluay48L2E+CiBUaGlzIHBhcmFn
cmFwaCBzdGFydHMgd2l0aCA8aT48YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20iPmE8L2E+
PC9pPjxzcGFuIGlkPSJ0ZXN0M3N0YXJ0Ij4gbGluazwvc3Bhbj4gaW4gdGhlIG1pZGRsZS4gT25s
eSB0aGUgJ2EnIGluIHRoZSBwcmV2aW91cyBzZW50ZW5jZSBzaG91bGQgYmUgbGlua2VkIGFmdGVy
IHRoZSB0ZXN0LgotPHA+VGhpcyA8aT5lZGl0YWJsZSByZWdpb248L2k+IGNvbnRhaW5zIGxpc3Rz
LCB0YWJsZXMsIHN0eWxlZCB0ZXh0LCBhbmQgaW1hZ2VzLiBFdmVyeXRoaW5nIGluIHRoaXMgcmVn
aW9uIHRoYXQgaXMgbm90IHNlbGVjdGVkIHNob3VsZCBiZSBhIGxpbmssIG5vdGhpbmcgdGhhdCBp
cyBzZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLjwvcD4gPHVsPiA8bGk+SXRlbSAxPC9saT4gPGxp
Pkl0ZW0gMjwvbGk+IDwvdWw+IDx0YWJsZSBib3JkZXI9IjEiPjx0Ym9keT48dHI+PHRkPjE8L3Rk
Pjx0ZD4yPC90ZD48dGQ+PHNwYW4gaWQ9InRlc3Q0ZW5kIj48YSBocmVmPSJodHRwOi8vd3d3Lmdv
b2dsZS5jb20vIj4zPC9hPjwvc3Bhbj48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPiA8YSBocmVm
PSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIj48YnI+IFRoaXMgPGI+bGluZTwvYj4gY29udGFpbnMg
PGltZyBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIj4gYW4gaW1hZ2UuIDwvYT4KKzxwPlRoaXMg
PGk+ZWRpdGFibGUgcmVnaW9uPC9pPiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4
dCwgYW5kIGltYWdlcy4gRXZlcnl0aGluZyBpbiB0aGlzIHJlZ2lvbiB0aGF0IGlzIG5vdCBzZWxl
Y3RlZCBzaG91bGQgYmUgYSBsaW5rLCBub3RoaW5nIHRoYXQgaXMgc2VsZWN0ZWQgc2hvdWxkIGJl
IGEgbGluay48L3A+IDx1bD4gPGxpPkl0ZW0gMTwvbGk+IDxsaT5JdGVtIDI8L2xpPiA8L3VsPiA8
dGFibGUgYm9yZGVyPSIxIj48dGJvZHk+PHRyPjx0ZD4xPC90ZD48dGQ+MjwvdGQ+PHRkPjxhIGhy
ZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iPjxzcGFuIGlkPSJ0ZXN0NGVuZCI+Mzwvc3Bhbj48
L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4gPGEgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUu
Y29tLyI+PGJyPiBUaGlzIDxiPmxpbmU8L2I+IGNvbnRhaW5zIDxpbWcgc3JjPSIuLi9yZXNvdXJj
ZXMvYWJlLnBuZyI+IGFuIGltYWdlLiA8L2E+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUt
My5qcwkocmV2aXNpb24gNjcyMzkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTYsNyAr
MTYsNyBAQCBmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsCiAgICAgfQog
fQogCi10ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgJ2hlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9i
PicsICc8Yj5oZWxsbzwvYj48YiBpZD0idGVzdCI+d29ybGQ8L2I+Jyk7Cit0ZXN0U2luZ2xlVG9n
Z2xlKCJib2xkIiwgJ2hlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPicsICc8Yj5oZWxsbzxzcGFu
IGlkPSJ0ZXN0Ij53b3JsZDwvc3Bhbj48L2I+Jyk7CiB0ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwg
J2hlbGxvPGI+PGk+d29ybGQ8L2k+PC9iPicsICc8Yj5oZWxsbzxpPndvcmxkPC9pPjwvYj4nKTsK
IHRlc3RTaW5nbGVUb2dnbGUoIml0YWxpYyIsICdoZWxsbyA8aT53b3JsZDwvaT4gPGI+d2Via2l0
PC9iPicsICc8aT5oZWxsbyB3b3JsZCA8Yj53ZWJraXQ8L2I+PC9pPicpOwogdGVzdFNpbmdsZVRv
Z2dsZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndvcmxkPC9pPiB3ZWJraXQnLCAnPGk+aGVsbG8gd29y
bGQgd2Via2l0PC9pPicpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pbmxpbmUt
c3R5bGUtZXh0ZW5kLXJ1bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2lubGluZS1zdHlsZS1leHRlbmQt
cnVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorVGVzdCB0byBt
YWtlIHN1cmUgV2ViS2l0IGFkZHMganVzdCBvbmUgZWxlbWVudCB3aGVuIGFwcGx5aW5nIGlubGlu
ZSBzdHlsZSBhbmQgcmVtb3ZlcyByZWR1bmRhbnQgc3R5bGVkIGVsZW1lbnRzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBmb250U2l6ZSg0KSBvbiBhbGwgb2YgImhlbGxv
IDxmb250IHNpemU9IjQiPndvcmxkPC9mb250PiBXZWJLaXQiIHlpZWxkcyAiPGZvbnQgY2xhc3M9
IkFwcGxlLXN0eWxlLXNwYW4iIHNpemU9IjQiPmhlbGxvIHdvcmxkIFdlYktpdDwvZm9udD4iCitQ
QVNTIGZvbnROYW1lKEFyaWFsKSBvbiBhbGwgb2YgImhlbGxvIDxiPjxmb250IGZhY2U9IkFyaWFs
Ij53b3JsZDwvZm9udD48L2I+IFdlYktpdCIgeWllbGRzICI8Zm9udCBjbGFzcz0iQXBwbGUtc3R5
bGUtc3BhbiIgZmFjZT0iQXJpYWwiPmhlbGxvIDxiPndvcmxkPC9iPiBXZWJLaXQ8L2ZvbnQ+Igor
UEFTUyBpdGFsaWMobnVsbCkgb24gYWxsIG9mICJoZWxsbyA8dT48aSB0aXRsZT0ibWVzc2FnZSI+
d29ybGQgPC9pPjxpPldlYktpdDwvaT48L3U+IiB5aWVsZHMgIjxpPmhlbGxvIDx1PjxzcGFuIHRp
dGxlPSJtZXNzYWdlIj53b3JsZCA8L3NwYW4+V2ViS2l0PC91PjwvaT4iCitQQVNTIGJvbGQobnVs
bCkgb24gYWxsIG9mICJoZWxsbyA8aT48Yj53b3JsZDwvYj4gV2ViS2l0PC9pPiIgeWllbGRzICI8
Yj5oZWxsbyA8aT53b3JsZCBXZWJLaXQ8L2k+PC9iPiIKK1BBU1MgYm9sZChudWxsKSBvbiBhbGwg
b2YgImhlbGxvIDxpPjxiIGNsYXNzPSJ0ZXN0Ij53b3JsZDwvYj4gV2ViS2l0PC9pPiIgeWllbGRz
ICI8Yj5oZWxsbyA8aT48c3BhbiBjbGFzcz0idGVzdCI+d29ybGQ8L3NwYW4+IFdlYktpdDwvaT48
L2I+IgorUEFTUyBib2xkKG51bGwpIG9uIGFsbCBvZiAiaGVsbG8gPGIgY29udGVudGVkaXRhYmxl
PSJmYWxzZSI+d29ybGQ8L2I+IDxiPldlYktpdCA8L2I+PHU+PGI+cm9ja3M8L2I+PC91PiIgeWll
bGRzICI8Yj5oZWxsbyA8L2I+PGIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+d29ybGQ8L2I+PGI+
IFdlYktpdCA8dT5yb2NrczwvdT48L2I+IgorUEFTUyBzdHJpa2VUaHJvdWdoKG51bGwpIG9uIGFs
bCBvZiAiaGVsbG8gPGI+d29ybGQgPHM+V2ViS2l0PC9zPjwvYj4iIHlpZWxkcyAiPHM+aGVsbG8g
PGI+d29ybGQgV2ViS2l0PC9iPjwvcz4iCitQQVNTIHN0cmlrZVRocm91Z2gobnVsbCkgb24gYWxs
IG9mICJoZWxsbyA8aT48cz53b3JsZDwvcz48L2k+PGI+PHM+V2ViS2l0PC9zPjwvYj4gcm9ja3Mi
IHlpZWxkcyAiPHM+aGVsbG8gPGk+d29ybGQ8L2k+PGI+V2ViS2l0PC9iPiByb2Nrczwvcz4iCitQ
QVNTIHN0cmlrZVRocm91Z2gobnVsbCkgb24gYWxsIG9mICJoZWxsbyA8aT48cz53b3JsZDwvcz48
L2k+IFdlYktpdCA8Yj48cz5yb2Nrczwvcz48L2I+IiB5aWVsZHMgIjxzPmhlbGxvIDxpPndvcmxk
PC9pPiBXZWJLaXQgPGI+cm9ja3M8L2I+PC9zPiIKK1BBU1MgYm9sZChudWxsKSBvbiBhbGwgb2Yg
ImhlbGxvPGRpdj48aT53b3JsZDwvaT4gPGI+V2ViS2l0PC9iPjwvZGl2PjxkaXY+cm9ja3M8L2Rp
dj4iIHlpZWxkcyAiPGI+aGVsbG88L2I+PGRpdj48Yj48aT53b3JsZDwvaT4gV2ViS2l0PC9iPjwv
ZGl2PjxkaXY+PGI+cm9ja3M8L2I+PC9kaXY+IgorUEFTUyBib2xkKG51bGwpIG9uIGFsbCBvZiAi
aGVsbG88YnIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+PGk+PGI+d29ybGQ8L2I+PC9pPjxicj48
Yj5XZWJLaXQ8L2I+IiB5aWVsZHMgIjxiPmhlbGxvPGJyIHN0eWxlPSJkaXNwbGF5OiBibG9jazsi
PjxpPndvcmxkPC9pPjxicj5XZWJLaXQ8L2I+IgorUEFTUyBib2xkKG51bGwpIG9uIGFsbCBvZiAi
aGVsbG88cD48Yj53b3JsZDwvYj4gPGk+PGI+VzwvYj5lYktpdDwvaT48L3A+PGI+cm9ja3M8L2I+
IiB5aWVsZHMgIjxiPmhlbGxvPC9iPjxwPjxiPndvcmxkIDxpPldlYktpdDwvaT48L2I+PC9wPjxi
PnJvY2tzPC9iPiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL2lubGluZS1zdHlsZS1leHRl
bmQtcnVuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pbmxp
bmUtc3R5bGUtZXh0ZW5kLXJ1bi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvc2NyaXB0LXRlc3RzL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2NyaXB0LXRlc3RzL2lubGluZS1zdHls
ZS1leHRlbmQtcnVuLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9zY3JpcHQtdGVzdHMvaW5saW5lLXN0eWxlLWV4dGVuZC1ydW4uanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzYgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHRvIG1ha2Ugc3VyZSBXZWJLaXQgYWRk
cyBqdXN0IG9uZSBlbGVtZW50IHdoZW4gYXBwbHlpbmcgaW5saW5lIHN0eWxlIGFuZCByZW1vdmVz
IHJlZHVuZGFudCBzdHlsZWQgZWxlbWVudHMuJyk7CisKK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJs
ZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWluZXIpOworCitm
dW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsIHZhbHVlLCBpbml0aWFsQ29u
dGVudHMsIGV4cGVjdGVkQ29udGVudHMpCit7CisgICAgdGVzdENvbnRhaW5lci5pbm5lckhUTUwg
PSBpbml0aWFsQ29udGVudHM7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENo
aWxkcmVuKHRlc3RDb250YWluZXIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdzdHlsZVdp
dGhDU1MnLCBmYWxzZSwgJ2ZhbHNlJyk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xl
Q29tbWFuZCwgZmFsc2UsIHZhbHVlKTsKKyAgICB2YXIgYWN0aW9uID0gdG9nZ2xlQ29tbWFuZCAr
ICcoJyArIHZhbHVlICsgJykgb24gYWxsIG9mICInICsgaW5pdGlhbENvbnRlbnRzICsgJyIgeWll
bGRzICInICsgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgKyAnIic7CisgICAgaWYgKHRlc3RDb250
YWluZXIuaW5uZXJIVE1MID09IGV4cGVjdGVkQ29udGVudHMpCisgICAgICAgIHRlc3RQYXNzZWQo
YWN0aW9uKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgJywgZXhwZWN0
ZWQgIicgKyBleHBlY3RlZENvbnRlbnRzICsgJyInKTsKK30KKwordGVzdFNpbmdsZVRvZ2dsZSgi
Zm9udFNpemUiLCA0LCAnaGVsbG8gPGZvbnQgc2l6ZT0iNCI+d29ybGQ8L2ZvbnQ+IFdlYktpdCcs
ICc8Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc2l6ZT0iNCI+aGVsbG8gd29ybGQgV2Vi
S2l0PC9mb250PicpOwordGVzdFNpbmdsZVRvZ2dsZSgiZm9udE5hbWUiLCAiQXJpYWwiLCAnaGVs
bG8gPGI+PGZvbnQgZmFjZT0iQXJpYWwiPndvcmxkPC9mb250PjwvYj4gV2ViS2l0JywgJzxmb250
IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJBcmlhbCI+aGVsbG8gPGI+d29ybGQ8L2I+
IFdlYktpdDwvZm9udD4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoIml0YWxpYyIsIG51bGwsICdoZWxs
byA8dT48aSB0aXRsZT0ibWVzc2FnZSI+d29ybGQgPC9pPjxpPldlYktpdDwvaT48L3U+JywgJzxp
PmhlbGxvIDx1PjxzcGFuIHRpdGxlPSJtZXNzYWdlIj53b3JsZCA8L3NwYW4+V2ViS2l0PC91Pjwv
aT4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVsbG8gPGk+PGI+d29ybGQ8
L2I+IFdlYktpdDwvaT4nLCAnPGI+aGVsbG8gPGk+d29ybGQgV2ViS2l0PC9pPjwvYj4nKTsKK3Rl
c3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVsbG8gPGk+PGIgY2xhc3M9InRlc3QiPndv
cmxkPC9iPiBXZWJLaXQ8L2k+JywgJzxiPmhlbGxvIDxpPjxzcGFuIGNsYXNzPSJ0ZXN0Ij53b3Js
ZDwvc3Bhbj4gV2ViS2l0PC9pPjwvYj4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxs
LCAnaGVsbG8gPGIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+d29ybGQ8L2I+IDxiPldlYktpdCA8
L2I+PHU+PGI+cm9ja3M8L2I+PC91PicsICc8Yj5oZWxsbyA8L2I+PGIgY29udGVudGVkaXRhYmxl
PSJmYWxzZSI+d29ybGQ8L2I+PGI+IFdlYktpdCA8dT5yb2NrczwvdT48L2I+Jyk7Cit0ZXN0U2lu
Z2xlVG9nZ2xlKCJzdHJpa2VUaHJvdWdoIiwgbnVsbCwgJ2hlbGxvIDxiPndvcmxkIDxzPldlYktp
dDwvcz48L2I+JywgJzxzPmhlbGxvIDxiPndvcmxkIFdlYktpdDwvYj48L3M+Jyk7Cit0ZXN0U2lu
Z2xlVG9nZ2xlKCJzdHJpa2VUaHJvdWdoIiwgbnVsbCwgJ2hlbGxvIDxpPjxzPndvcmxkPC9zPjwv
aT48Yj48cz5XZWJLaXQ8L3M+PC9iPiByb2NrcycsICc8cz5oZWxsbyA8aT53b3JsZDwvaT48Yj5X
ZWJLaXQ8L2I+IHJvY2tzPC9zPicpOwordGVzdFNpbmdsZVRvZ2dsZSgic3RyaWtlVGhyb3VnaCIs
IG51bGwsICdoZWxsbyA8aT48cz53b3JsZDwvcz48L2k+IFdlYktpdCA8Yj48cz5yb2Nrczwvcz48
L2I+JywgJzxzPmhlbGxvIDxpPndvcmxkPC9pPiBXZWJLaXQgPGI+cm9ja3M8L2I+PC9zPicpOwor
CisvLyBibG9jayBub2RlcyBhbmQgYnIgdGVzdHMKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBu
dWxsLCAnaGVsbG88ZGl2PjxpPndvcmxkPC9pPiA8Yj5XZWJLaXQ8L2I+PC9kaXY+PGRpdj5yb2Nr
czwvZGl2PicsICc8Yj5oZWxsbzwvYj48ZGl2PjxiPjxpPndvcmxkPC9pPiBXZWJLaXQ8L2I+PC9k
aXY+PGRpdj48Yj5yb2NrczwvYj48L2Rpdj4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBu
dWxsLCAnaGVsbG88YnIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+PGk+PGI+d29ybGQ8L2I+PC9p
Pjxicj48Yj5XZWJLaXQ8L2I+JywgJzxiPmhlbGxvPGJyIHN0eWxlPSJkaXNwbGF5OiBibG9jazsi
PjxpPndvcmxkPC9pPjxicj5XZWJLaXQ8L2I+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwg
bnVsbCwgJ2hlbGxvPHA+PGI+d29ybGQ8L2I+IDxpPjxiPlc8L2I+ZWJLaXQ8L2k+PC9wPjxiPnJv
Y2tzPC9iPicsICc8Yj5oZWxsbzwvYj48cD48Yj53b3JsZCA8aT5XZWJLaXQ8L2k+PC9iPjwvcD48
Yj5yb2NrczwvYj4nKTsKKworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVy
KTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGlu
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3NjcmlwdC10ZXN0
cy9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLmpzCShyZXZpc2lvbiA2NzIzOSkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2NyaXB0LXRlc3RzL21ha2UtdGV4dC13cml0
aW5nLWRpcmVjdGlvbi1pbmxpbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAg
bW9kaWZ5V3JpdGluZ0RpcmVjdGlvbignPGRpdiBkaXI9InJ0bCI+PAogbW9kaWZ5V3JpdGluZ0Rp
cmVjdGlvbignPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDY
p9mE2YbYtSDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jywgc2VsZWN0VGhpcmRXb3JkLCAnTmF0
dXJhbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGRpcj0icnRsIj7Zh9mG2KcgPHNw
YW4gZGlyPSJsdHIiPtmK2YPYqtioPC9zcGFuPiDYp9mE2YbYtTxzcGFuIGRpcj0ibHRyIj4g2KfZ
hNi52LHYqNmKPC9zcGFuPjwvZGl2PicpOwogbW9kaWZ5V3JpdGluZ0RpcmVjdGlvbignPGRpdiBk
aXI9InJ0bCI+2YfZhtinIDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDYp9mE2YbYtSDYp9mE2LnY
sdio2Yo8L3NwYW4+PC9kaXY+Jywgc2VsZWN0VGhpcmRXb3JkLCAnTGVmdFRvUmlnaHQnLAotICAg
ICAgICAgICAgICAgICAgICAgICAnPGRpdiBkaXI9InJ0bCI+PHNwYW4gc3R5bGU9ImRpcmVjdGlv
bjogbHRyOyI+2YfZhtinIDwvc3Bhbj48c3BhbiBkaXI9Imx0ciI+2YrZg9iq2Kgg2KfZhNmG2LUg
2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PicpOworICAgICAgICAgICAgICAgICAgICAgICAnPGRp
diBkaXI9InJ0bCI+PHNwYW4gc3R5bGU9ImRpcmVjdGlvbjogbHRyOyI+2YfZhtinINmK2YPYqtio
INin2YTZhti1INin2YTYudix2KjZijwvc3Bhbj48L2Rpdj4nKTsKIG1vZGlmeVdyaXRpbmdEaXJl
Y3Rpb24oJzxkaXYgZGlyPSJydGwiPtmH2YbYpyA8c3BhbiBkaXI9Imx0ciI+2YrZg9iq2Kgg2KfZ
hNmG2LUg2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PicsIHNlbGVjdFRoaXJkV29yZCwgJ1JpZ2h0
VG9MZWZ0JywKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgZGlyPSJydGwiPtmH2YbYpyA8
c3BhbiBkaXI9Imx0ciI+2YrZg9iq2Kg8L3NwYW4+PHNwYW4gc3R5bGU9InVuaWNvZGUtYmlkaTog
ZW1iZWQ7Ij4g2KfZhNmG2LU8L3NwYW4+PHNwYW4gZGlyPSJsdHIiPiDYp9mE2LnYsdio2Yo8L3Nw
YW4+PC9kaXY+Jyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67471</attachid>
            <date>2010-09-13 14:24:42 -0700</date>
            <delta_ts>2010-09-13 21:45:14 -0700</delta_ts>
            <desc>fixed per Tony&apos;s comment</desc>
            <filename>bug-45616-20100913142440.patch</filename>
            <type>text/plain</type>
            <size>22269</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDktMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYXBw
bHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlIGRvZXMgbm90IGV4dGVuZCBydW4gcHJvcGVybHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjE2CisKKyAg
ICAgICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IGFwcGx5SW5saW5lU3R5bGVUb05vZGVSYW5nZSdz
IHNraXBwaW5nIGEgbm9kZSB3aGVuZXZlciBpdCBoYXMgY2hpbGRyZW4uCisgICAgICAgIEZpeGVk
IHRoZSBidWcgYnkgb25seSBza2lwcGluZyBhIG5vZGUgdGhhdCBjb250YWlucyB0aGUgcGFzdCBl
bmQgbm9kZSwgY29udGFpbnMgbm9uLWVkaXRhYmxlIHJlZ2lvbiwKKyAgICAgICAgb3IgaGFzIGEg
bm9uLWVkaXRhYmxlIHBhcmVudCBub2RlLiBBbHNvIGZpeGVkIGEgYnVnIHRoYXQgYXBwbHlJbmxp
bmVTdHlsZVRvTm9kZVJhbmdlIGRvZXMgbm90IHJlbW92ZQorICAgICAgICBzdHlsZWQgZWxlbWVu
dHMgaW4gYSBydW4gdGhhdCBhcmUgaWRlbnRpY2FsIHRvIHRoZSBvbmUgYWRkZWQuIGFkZElubGlu
ZVN0eWxlSWZOZWVkZWQgbm93IHJlbW92ZXMKKyAgICAgICAgYWxsIHN0eWxlZCBlbGVtZW50cyBp
biBhIHJ1biB1c2luZyByZW1vdmVTdHlsZUZyb21SdW5CZWZvcmVBcHBseWluZ1N0eWxlIGJlZm9y
ZSBjYWxsaW5nIGFkZElubGluZVN0eWxlSWZOZWVkZWQuCisKKyAgICAgICAgVGVzdDogZWRpdGlu
Zy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi5odG1sCisKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zTm9uRWRp
dGFibGVSZWdpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5k
OjphcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2UpOiBTZWUgYWJvdmUuCisgICAgICAgIChXZWJD
b3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlU3R5bGVGcm9tUnVuQmVmb3JlQXBwbHlpbmdT
dHlsZSk6IEFkZGVkLCBzZWUgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29t
bWFuZDo6cmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudCk6IEFkZGVkIHN1cHBvcnQgZm9yIFJl
bW92ZUFsd2F5cy4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJ
bXBsaWNpdGx5U3R5bGVkRWxlbWVudCk6IFJlcGxhY2VkIFJlbW92ZUF0dHJpYnV0ZXNBbmRFbGVt
ZW50cyBieSBSZW1vdmVJZk5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21t
YW5kOjpleHRyYWN0SW5saW5lU3R5bGVUb1B1c2hEb3duKTogUmVwbGFjZWQgUmVtb3ZlQXR0cmli
dXRlc0FuZEVsZW1lbnRzIGJ5IFJlbW92ZUlmTmVlZGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuaDoKKwogMjAxMC0wOS0xMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaW5nLgpJbmRleDogV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NzQwNCkKKysrIFdlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzEs
NiArMTA3MSwyMCBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpmaXhSYW5nZUFuZEFwcGx5CiAg
ICAgYXBwbHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlKHN0eWxlLCBzdGFydE5vZGUsIHBhc3RFbmRO
b2RlKTsKIH0KIAorc3RhdGljIGJvb2wgY29udGFpbnNOb25FZGl0YWJsZVJlZ2lvbihOb2RlKiBu
b2RlKQoreworICAgIGlmICghbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBOb2RlKiBzaWJsaW5nID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGlu
ZygpOworICAgIGZvciAoTm9kZSogZGVzY2VuZGVudCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgZGVz
Y2VuZGVudCAmJiBkZXNjZW5kZW50ICE9IHNpYmxpbmc7IGRlc2NlbmRlbnQgPSBkZXNjZW5kZW50
LT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgaWYgKCFkZXNjZW5kZW50LT5pc0NvbnRl
bnRFZGl0YWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxl
VG9Ob2RlUmFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBOb2RlKiBub2Rl
LCBOb2RlKiBwYXN0RW5kTm9kZSkKIHsKICAgICBmb3IgKE5vZGUqIG5leHQ7IG5vZGUgJiYgbm9k
ZSAhPSBwYXN0RW5kTm9kZTsgbm9kZSA9IG5leHQpIHsKQEAgLTEwOTgsMzIgKzExMTIsNjIgQEAg
dm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIAogICAgICAgICBpZiAobm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgewot
ICAgICAgICAgICAgaWYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChub2RlKSkKKyAgICAgICAgICAg
IGlmIChub2RlLT5jb250YWlucyhwYXN0RW5kTm9kZSkgfHwgY29udGFpbnNOb25FZGl0YWJsZVJl
Z2lvbihub2RlKSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGVkaXRpbmdJZ25vcmVz
Q29udGVudChub2RlKSkgewogICAgICAgICAgICAgICAgIG5leHQgPSBub2RlLT50cmF2ZXJzZU5l
eHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIE5vZGUqIHJ1bkVuZCA9
IG5vZGU7CiAgICAgICAgIE5vZGUqIHNpYmxpbmcgPSBub2RlLT5uZXh0U2libGluZygpOwotICAg
ICAgICBTdHlsZUNoYW5nZSBzdGFydENoYW5nZShzdHlsZSwgUG9zaXRpb24obm9kZSwgMCkpOwog
ICAgICAgICB3aGlsZSAoc2libGluZyAmJiBzaWJsaW5nICE9IHBhc3RFbmROb2RlICYmICFzaWJs
aW5nLT5jb250YWlucyhwYXN0RW5kTm9kZSkKICAgICAgICAgICAgICAgICYmICghaXNCbG9jayhz
aWJsaW5nKSB8fCBzaWJsaW5nLT5oYXNUYWdOYW1lKGJyVGFnKSkKLSAgICAgICAgICAgICAgICYm
IFN0eWxlQ2hhbmdlKHN0eWxlLCBQb3NpdGlvbihzaWJsaW5nLCAwKSkgPT0gc3RhcnRDaGFuZ2Up
IHsKKyAgICAgICAgICAgICAgICYmICFjb250YWluc05vbkVkaXRhYmxlUmVnaW9uKHNpYmxpbmcp
KSB7CiAgICAgICAgICAgICBydW5FbmQgPSBzaWJsaW5nOwogICAgICAgICAgICAgc2libGluZyA9
IHJ1bkVuZC0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgfQogICAgICAgICBuZXh0ID0gcnVuRW5k
LT50cmF2ZXJzZU5leHRTaWJsaW5nKCk7CisKKyAgICAgICAgaWYgKCFyZW1vdmVTdHlsZUZyb21S
dW5CZWZvcmVBcHBseWluZ1N0eWxlKHN0eWxlLCBub2RlLCBydW5FbmQpKQorICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIGFkZElubGluZVN0eWxlSWZOZWVkZWQoc3R5bGUsIG5vZGUsIHJ1
bkVuZCwgbV9yZW1vdmVPbmx5ID8gRG9Ob3RBZGRTdHlsZWRFbGVtZW50IDogQWRkU3R5bGVkRWxl
bWVudCk7CiAgICAgfQogfQogCitib29sIEFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVTdHlsZUZy
b21SdW5CZWZvcmVBcHBseWluZ1N0eWxlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHls
ZSwgTm9kZSomIHJ1blN0YXJ0LCBOb2RlKiYgcnVuRW5kKQoreworICAgIE5vZGUqIHBhc3RFbmRO
b2RlID0gcnVuRW5kLT50cmF2ZXJzZU5leHRTaWJsaW5nKCk7CisgICAgTm9kZSogbmV4dDsKKyAg
ICBmb3IgKE5vZGUqIG5vZGUgPSBydW5TdGFydDsgbm9kZSAmJiBub2RlICE9IHBhc3RFbmROb2Rl
OyBub2RlID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSgp
OworICAgICAgICBpZiAoIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAKKyAgICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nID0gbm9kZS0+cHJl
dmlvdXNTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIG5leHRTaWJsaW5nID0gbm9kZS0+bmV4dFNp
YmxpbmcoKTsKKyAgICAgICAgTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAg
ICAgICByZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVtZW50KHN0eWxlLCBzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KG5vZGUpLCBSZW1vdmVBbHdheXMpOworICAgICAgICBpZiAoIW5vZGUtPmluRG9j
dW1lbnQoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFdlIG1pZ2h0IG5lZWQgdG8gdXBkYXRl
IHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiBjdXJyZW50IHNlbGVjdGlvbiBoZXJlIGJ1dCBuZWVk
IGEgdGVzdC4KKyAgICAgICAgICAgIGlmIChydW5TdGFydCA9PSBub2RlKQorICAgICAgICAgICAg
ICAgIHJ1blN0YXJ0ID0gcHJldmlvdXNTaWJsaW5nID8gcHJldmlvdXNTaWJsaW5nLT5uZXh0U2li
bGluZygpIDogcGFyZW50LT5maXJzdENoaWxkKCk7CisgICAgICAgICAgICBpZiAocnVuRW5kID09
IG5vZGUpCisgICAgICAgICAgICAgICAgcnVuRW5kID0gbmV4dFNpYmxpbmcgPyBuZXh0U2libGlu
Zy0+cHJldmlvdXNTaWJsaW5nKCkgOiBwYXJlbnQtPmxhc3RDaGlsZCgpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJl
bW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0
eWxlLCBIVE1MRWxlbWVudCogZWxlbWVudCwgSW5saW5lU3R5bGVSZW1vdmFsTW9kZSBtb2RlKQog
ewogICAgIEFTU0VSVChzdHlsZSk7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogCiAgICAgaWYgKG1f
c3R5bGVkSW5saW5lRWxlbWVudCAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKG1fc3R5bGVkSW5saW5l
RWxlbWVudC0+dGFnUU5hbWUoKSkpIHsKLSAgICAgICAgaWYgKG1vZGUgPT0gUmVtb3ZlQXR0cmli
dXRlc0FuZEVsZW1lbnRzKQorICAgICAgICBpZiAobW9kZSAhPSBSZW1vdmVOb25lKQogICAgICAg
ICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihlbGVtZW50KTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpAQCAtMTIyMCwxMCArMTI2NCwxMiBAQCBib29sIEFwcGx5U3R5bGVD
b21tYW5kOjpyZW1vdmVJbXBsaWNpdGx5CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1hcFZh
bHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoZXF1aXZhbGVudC5wcmlt
aXRpdmVJZCkuZ2V0KCk7CiAKLSAgICAgICAgaWYgKGVxdWl2YWxlbnQuaXNWYWx1ZUxpc3QgJiYg
c3R5bGVWYWx1ZS0+aXNWYWx1ZUxpc3QoKSAmJiBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihz
dHlsZVZhbHVlLmdldCgpKS0+aGFzVmFsdWUobWFwVmFsdWUuZ2V0KCkpKQotICAgICAgICAgICAg
Y29udGludWU7IC8vIElmIENTUyB2YWx1ZSBhc3N1bWVzIENTU1ZhbHVlTGlzdCwgdGhlbiBvbmx5
IHNraXAgaWYgdGhlIHZhbHVlIHdhcyBwcmVzZW50IGluIHN0eWxlIHRvIGFwcGx5LgotICAgICAg
ICBlbHNlIGlmIChtYXBWYWx1ZSAmJiBzdHlsZVZhbHVlLT5jc3NUZXh0KCkgPT0gbWFwVmFsdWUt
PmNzc1RleHQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBJZiBDU1MgdmFsdWUgaXMgcHJp
bWl0aXZlLCB0aGVuIHNraXAgaWYgdGhleSBhcmUgZXF1YWwuCisgICAgICAgIGlmIChtb2RlICE9
IFJlbW92ZUFsd2F5cykgeworICAgICAgICAgICAgaWYgKGVxdWl2YWxlbnQuaXNWYWx1ZUxpc3Qg
JiYgc3R5bGVWYWx1ZS0+aXNWYWx1ZUxpc3QoKSAmJiBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
PihzdHlsZVZhbHVlLmdldCgpKS0+aGFzVmFsdWUobWFwVmFsdWUuZ2V0KCkpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOyAvLyBJZiBDU1MgdmFsdWUgYXNzdW1lcyBDU1NWYWx1ZUxpc3QsIHRo
ZW4gb25seSBza2lwIGlmIHRoZSB2YWx1ZSB3YXMgcHJlc2VudCBpbiBzdHlsZSB0byBhcHBseS4K
KyAgICAgICAgICAgIGVsc2UgaWYgKG1hcFZhbHVlICYmIHN0eWxlVmFsdWUtPmNzc1RleHQoKSA9
PSBtYXBWYWx1ZS0+Y3NzVGV4dCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBJZiBD
U1MgdmFsdWUgaXMgcHJpbWl0aXZlLCB0aGVuIHNraXAgaWYgdGhleSBhcmUgZXF1YWwuCisgICAg
ICAgIH0KIAogICAgICAgICBpZiAoZXh0cmFjdGVkU3R5bGUpCiAgICAgICAgICAgICBleHRyYWN0
ZWRTdHlsZS0+c2V0UHJvcGVydHkoZXF1aXZhbGVudC5wcm9wZXJ0eUlELCBtYXBWYWx1ZS0+Y3Nz
VGV4dCgpKTsKQEAgLTEzNDIsNyArMTM4OCw3IEBAIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IEEKIAogICAgIGlmICghc3R5bGUpIHsKICAgICAgICAgc3R5bGUgPSBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7Ci0gICAgICAgIHJlbW92ZUltcGxpY2l0
bHlTdHlsZWRFbGVtZW50KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlQXR0cmlidXRlc0Fu
ZEVsZW1lbnRzLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIHJlbW92ZUltcGxpY2l0bHlTdHlsZWRF
bGVtZW50KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlSWZOZWVkZWQsIHN0eWxlLmdldCgp
KTsKICAgICAgICAgcmV0dXJuIHN0eWxlLnJlbGVhc2UoKTsKICAgICB9CiAKQEAgLTEzNjQsNyAr
MTQxMCw3IEBAIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IEEKICAgICBp
ZiAoaXNTcGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVTdHlsZVNwYW4oZWxlbWVudCkpCiAg
ICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CiAKLSAgICByZW1v
dmVJbXBsaWNpdGx5U3R5bGVkRWxlbWVudChzdHlsZVRvQXBwbHksIGVsZW1lbnQsIFJlbW92ZUF0
dHJpYnV0ZXNBbmRFbGVtZW50cywgc3R5bGUuZ2V0KCkpOworICAgIHJlbW92ZUltcGxpY2l0bHlT
dHlsZWRFbGVtZW50KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlSWZOZWVkZWQsIHN0eWxl
LmdldCgpKTsKIAogICAgIHJldHVybiBzdHlsZS5yZWxlYXNlKCk7CiB9CkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuaAkocmV2aXNpb24gNjc0MDQpCisrKyBXZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBl
bnVtIFNob3VsZEluY2x1ZGVUeXBpbmdTdHlsZSB7CiBjbGFzcyBBcHBseVN0eWxlQ29tbWFuZCA6
IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6CiAgICAgZW51bSBFUHJvcGVy
dHlMZXZlbCB7IFByb3BlcnR5RGVmYXVsdCwgRm9yY2VCbG9ja1Byb3BlcnRpZXMgfTsKLSAgICBl
bnVtIElubGluZVN0eWxlUmVtb3ZhbE1vZGUgeyBSZW1vdmVBdHRyaWJ1dGVzQW5kRWxlbWVudHMs
IFJlbW92ZU5vbmUgfTsKKyAgICBlbnVtIElubGluZVN0eWxlUmVtb3ZhbE1vZGUgeyBSZW1vdmVJ
Zk5lZWRlZCwgUmVtb3ZlQWx3YXlzLCBSZW1vdmVOb25lIH07CiAgICAgZW51bSBFQWRkU3R5bGVk
RWxlbWVudCB7IEFkZFN0eWxlZEVsZW1lbnQsIERvTm90QWRkU3R5bGVkRWxlbWVudCB9OwogCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGFjdGlvbiA9
IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzLCBFUHJvcGVydHlMZXZlbCBsZXZlbCA9IFByb3Bl
cnR5RGVmYXVsdCkKQEAgLTcxLDExICs3MSwxMiBAQCBwcml2YXRlOgogICAgIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0K
IAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVscGVycwotICAgIGJvb2wgcmVtb3ZlSW5saW5lU3R5
bGVGcm9tRWxlbWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50Kiwg
SW5saW5lU3R5bGVSZW1vdmFsTW9kZSA9IFJlbW92ZUF0dHJpYnV0ZXNBbmRFbGVtZW50cyk7Cisg
ICAgYm9vbCByZW1vdmVTdHlsZUZyb21SdW5CZWZvcmVBcHBseWluZ1N0eWxlKENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgTm9kZSomIHJ1blN0YXJ0LCBOb2RlKiYgcnVuRW5kKTsK
KyAgICBib29sIHJlbW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qLCBIVE1MRWxlbWVudCosIElubGluZVN0eWxlUmVtb3ZhbE1vZGUgPSBSZW1vdmVJ
Zk5lZWRlZCk7CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkUmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxl
bWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIEhUTUxFbGVtZW50KiBlbGVt
ZW50KSB7cmV0dXJuIHJlbW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoc3R5bGUsIGVsZW1lbnQs
IFJlbW92ZU5vbmUpO30KICAgICBib29sIHJlbW92ZUltcGxpY2l0bHlTdHlsZWRFbGVtZW50KENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgSFRNTEVsZW1lbnQqLCBJbmxpbmVTdHlsZVJlbW92
YWxNb2RlLCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZXh0cmFjdGVkU3R5bGUgPSAwKTsK
ICAgICB2b2lkIHJlcGxhY2VXaXRoU3Bhbk9yUmVtb3ZlSWZXaXRob3V0QXR0cmlidXRlcyhIVE1M
RWxlbWVudComKTsKLSAgICBib29sIHJlbW92ZUNTU1N0eWxlKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgSFRNTEVsZW1lbnQqLCBJbmxpbmVTdHlsZVJlbW92YWxNb2RlID0gUmVtb3ZlQXR0
cmlidXRlc0FuZEVsZW1lbnRzKTsKKyAgICBib29sIHJlbW92ZUNTU1N0eWxlKENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiwgSFRNTEVsZW1lbnQqLCBJbmxpbmVTdHlsZVJlbW92YWxNb2RlID0g
UmVtb3ZlSWZOZWVkZWQpOwogICAgIEhUTUxFbGVtZW50KiBoaWdoZXN0QW5jZXN0b3JXaXRoQ29u
ZmxpY3RpbmdJbmxpbmVTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIE5vZGUqKTsK
ICAgICBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBleHRyYWN0SW5saW5l
U3R5bGVUb1B1c2hEb3duKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgTm9kZSosIGJvb2wg
aXNTdHlsZWRFbGVtZW50KTsKICAgICB2b2lkIGFwcGx5SW5saW5lU3R5bGVUb1B1c2hEb3duKE5v
ZGUqLCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUpOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjc0MDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMiBAQAorMjAxMC0wOS0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhcHBseUlu
bGluZVN0eWxlVG9Ob2RlUmFuZ2UgZG9lcyBub3QgZXh0ZW5kIGEgcnVuIHByb3Blcmx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTYxNgorCisgICAg
ICAgIEFkZGVkIGEgdGVzdCB0byBlbnN1cmUgV2ViS2l0IGFkZHMganVzdCBvbmUgZWxlbWVudCB3
aGVuIGFwcGx5aW5nIGlubGluZSBzdHlsZSBhbmQgcmVtb3ZlcyByZWR1bmRhbnQgc3R5bGVkIGVs
ZW1lbnRzLgorICAgICAgICBSZWJhc2VsaW5lIG9mIG90aGVyIHRlc3RzIGFyZSByZXF1aXJlZCBi
ZWNhdXNlIFdlYktpdCBub3cgZ2VuZXJhdGVzIGxlc3MgZWxlbWVudHMuCisKKyAgICAgICAgKiBl
ZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMy5qczogTWVyZ2Vk
IHR3byBiIGVsZW1lbnRzLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXN0
eWxlLTMtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L3VubGluay1leHBlY3RlZC50eHQ6IENoYW5nZWQgdGhlIG9yZGVyIGluIHdoaWNoIHNwYW4gYW5k
IGFuY2hvciBhcHBlYXIuCisgICAgICAgICogZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0
ZW5kLXJ1bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvaW5s
aW5lLXN0eWxlLWV4dGVuZC1ydW4uaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zdHls
ZS9zY3JpcHQtdGVzdHMvaW5saW5lLXN0eWxlLWV4dGVuZC1ydW4uanM6IEFkZGVkLgorICAgICAg
ICAodGVzdFNpbmdsZVRvZ2dsZSk6CisgICAgICAgICogZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVz
dHMvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS5qczogTWVyZ2VkIHR3byBzcGFu
cy4KKwogMjAxMC0wOS0xMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJlbW92aW5nIGNocm9taXVtLWxpbnV4IHJlc3VsdHMgdGhhdCBkZWR1
cGxpY2F0ZS10ZXN0cyBzYXlzIGFyZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC90b2dnbGUtc3R5bGUtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGUtMy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDY3NDA0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5
bGUtMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBAIFRlc3QgdG8g
bWFrZSBzdXJlIHdlIHJlbW92ZSBzcGFuIHRhZ3Mgd2kKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1QQVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkIGhlbGxvPGIgaWQ9InRlc3Qi
PndvcmxkPC9iPiB0byA8Yj5oZWxsbzwvYj48YiBpZD0idGVzdCI+d29ybGQ8L2I+CitQQVNTIG9u
ZSBib2xkIGNvbW1hbmQgY29udmVydGVkIGhlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPiB0byA8
Yj5oZWxsbzxzcGFuIGlkPSJ0ZXN0Ij53b3JsZDwvc3Bhbj48L2I+CiBQQVNTIG9uZSBib2xkIGNv
bW1hbmQgY29udmVydGVkIGhlbGxvPGI+PGk+d29ybGQ8L2k+PC9iPiB0byA8Yj5oZWxsbzxpPndv
cmxkPC9pPjwvYj4KIFBBU1Mgb25lIGl0YWxpYyBjb21tYW5kIGNvbnZlcnRlZCBoZWxsbyA8aT53
b3JsZDwvaT4gPGI+d2Via2l0PC9iPiB0byA8aT5oZWxsbyB3b3JsZCA8Yj53ZWJraXQ8L2I+PC9p
PgogUEFTUyBvbmUgaXRhbGljIGNvbW1hbmQgY29udmVydGVkIGhlbGxvIDxpPndvcmxkPC9pPiB3
ZWJraXQgdG8gPGk+aGVsbG8gd29ybGQgd2Via2l0PC9pPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC91bmxpbmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
Njc0MDQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY1LDQgKzY1LDQgQEAgVGhlIGlubmVySFRNTCBvZiBl
ZGl0YWJsZSByZWdpb25zIGFmdGVyIAogVGhpcyBwYXJhZ3JhcGggc2hvdWxkIHNob3VsZCBlbmQg
dXAgdW5saW5rZWQuCiA8YSBocmVmPSJodHRwOi8vd3d3LmFwcGxlLmNvbS8iPlRoZTwvYT4gc2Vj
b25kPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBsZS5jb20vIj4gd29yZCBpbiB0aGlzIHBhcmFncmFw
aCBzaG91bGQgZW5kIHVwIGJlaW5nIHVubGlua2VkLCBldmVyeXRoaW5nIGVsc2Ugc2hvdWxkIGJl
IGEgbGluay48L2E+CiBUaGlzIHBhcmFncmFwaCBzdGFydHMgd2l0aCA8aT48YSBocmVmPSJodHRw
Oi8vd3d3Lmdvb2dsZS5jb20iPmE8L2E+PC9pPjxzcGFuIGlkPSJ0ZXN0M3N0YXJ0Ij4gbGluazwv
c3Bhbj4gaW4gdGhlIG1pZGRsZS4gT25seSB0aGUgJ2EnIGluIHRoZSBwcmV2aW91cyBzZW50ZW5j
ZSBzaG91bGQgYmUgbGlua2VkIGFmdGVyIHRoZSB0ZXN0LgotPHA+VGhpcyA8aT5lZGl0YWJsZSBy
ZWdpb248L2k+IGNvbnRhaW5zIGxpc3RzLCB0YWJsZXMsIHN0eWxlZCB0ZXh0LCBhbmQgaW1hZ2Vz
LiBFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9uIHRoYXQgaXMgbm90IHNlbGVjdGVkIHNob3VsZCBi
ZSBhIGxpbmssIG5vdGhpbmcgdGhhdCBpcyBzZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLjwvcD4g
PHVsPiA8bGk+SXRlbSAxPC9saT4gPGxpPkl0ZW0gMjwvbGk+IDwvdWw+IDx0YWJsZSBib3JkZXI9
IjEiPjx0Ym9keT48dHI+PHRkPjE8L3RkPjx0ZD4yPC90ZD48dGQ+PHNwYW4gaWQ9InRlc3Q0ZW5k
Ij48YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIj4zPC9hPjwvc3Bhbj48L3RkPjwvdHI+
PC90Ym9keT48L3RhYmxlPiA8YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIj48YnI+IFRo
aXMgPGI+bGluZTwvYj4gY29udGFpbnMgPGltZyBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIj4g
YW4gaW1hZ2UuIDwvYT4KKzxwPlRoaXMgPGk+ZWRpdGFibGUgcmVnaW9uPC9pPiBjb250YWlucyBs
aXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwgYW5kIGltYWdlcy4gRXZlcnl0aGluZyBpbiB0aGlz
IHJlZ2lvbiB0aGF0IGlzIG5vdCBzZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLCBub3RoaW5nIHRo
YXQgaXMgc2VsZWN0ZWQgc2hvdWxkIGJlIGEgbGluay48L3A+IDx1bD4gPGxpPkl0ZW0gMTwvbGk+
IDxsaT5JdGVtIDI8L2xpPiA8L3VsPiA8dGFibGUgYm9yZGVyPSIxIj48dGJvZHk+PHRyPjx0ZD4x
PC90ZD48dGQ+MjwvdGQ+PHRkPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iPjxzcGFu
IGlkPSJ0ZXN0NGVuZCI+Mzwvc3Bhbj48L2E+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4gPGEg
aHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tLyI+PGJyPiBUaGlzIDxiPmxpbmU8L2I+IGNvbnRh
aW5zIDxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvYWJlLnBuZyI+IGFuIGltYWdlLiA8L2E+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5
bGUtMy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Nj
cmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMy5qcwkocmV2aXNpb24gNjc0MDQpCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xl
KHRvZ2dsZUNvbW1hbmQsCiAgICAgfQogfQogCi10ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgJ2hl
bGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPicsICc8Yj5oZWxsbzwvYj48YiBpZD0idGVzdCI+d29y
bGQ8L2I+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgJ2hlbGxvPGIgaWQ9InRlc3QiPndv
cmxkPC9iPicsICc8Yj5oZWxsbzxzcGFuIGlkPSJ0ZXN0Ij53b3JsZDwvc3Bhbj48L2I+Jyk7CiB0
ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgJ2hlbGxvPGI+PGk+d29ybGQ8L2k+PC9iPicsICc8Yj5o
ZWxsbzxpPndvcmxkPC9pPjwvYj4nKTsKIHRlc3RTaW5nbGVUb2dnbGUoIml0YWxpYyIsICdoZWxs
byA8aT53b3JsZDwvaT4gPGI+d2Via2l0PC9iPicsICc8aT5oZWxsbyB3b3JsZCA8Yj53ZWJraXQ8
L2I+PC9pPicpOwogdGVzdFNpbmdsZVRvZ2dsZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndvcmxkPC9p
PiB3ZWJraXQnLCAnPGk+aGVsbG8gd29ybGQgd2Via2l0PC9pPicpOwpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5k
LXJ1bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMSBAQAorVGVzdCB0byBtYWtlIHN1cmUgV2ViS2l0IGFkZHMganVzdCBvbmUgZWxl
bWVudCB3aGVuIGFwcGx5aW5nIGlubGluZSBzdHlsZSBhbmQgcmVtb3ZlcyByZWR1bmRhbnQgc3R5
bGVkIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBmb250
U2l6ZSg0KSBvbiBhbGwgb2YgImhlbGxvIDxmb250IHNpemU9IjQiPndvcmxkPC9mb250PiBXZWJL
aXQiIHlpZWxkcyAiPGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHNpemU9IjQiPmhlbGxv
IHdvcmxkIFdlYktpdDwvZm9udD4iCitQQVNTIGZvbnROYW1lKEFyaWFsKSBvbiBhbGwgb2YgImhl
bGxvIDxiPjxmb250IGZhY2U9IkFyaWFsIj53b3JsZDwvZm9udD48L2I+IFdlYktpdCIgeWllbGRz
ICI8Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iQXJpYWwiPmhlbGxvIDxiPndv
cmxkPC9iPiBXZWJLaXQ8L2ZvbnQ+IgorUEFTUyBpdGFsaWMobnVsbCkgb24gYWxsIG9mICJoZWxs
byA8dT48aSB0aXRsZT0ibWVzc2FnZSI+d29ybGQgPC9pPjxpPldlYktpdDwvaT48L3U+IiB5aWVs
ZHMgIjxpPmhlbGxvIDx1PjxzcGFuIHRpdGxlPSJtZXNzYWdlIj53b3JsZCA8L3NwYW4+V2ViS2l0
PC91PjwvaT4iCitQQVNTIGJvbGQobnVsbCkgb24gYWxsIG9mICJoZWxsbyA8aT48Yj53b3JsZDwv
Yj4gV2ViS2l0PC9pPiIgeWllbGRzICI8Yj5oZWxsbyA8aT53b3JsZCBXZWJLaXQ8L2k+PC9iPiIK
K1BBU1MgYm9sZChudWxsKSBvbiBhbGwgb2YgImhlbGxvIDxpPjxiIGNsYXNzPSJ0ZXN0Ij53b3Js
ZDwvYj4gV2ViS2l0PC9pPiIgeWllbGRzICI8Yj5oZWxsbyA8aT48c3BhbiBjbGFzcz0idGVzdCI+
d29ybGQ8L3NwYW4+IFdlYktpdDwvaT48L2I+IgorUEFTUyBib2xkKG51bGwpIG9uIGFsbCBvZiAi
aGVsbG8gPGIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+d29ybGQ8L2I+IDxiPldlYktpdCA8L2I+
PHU+PGI+cm9ja3M8L2I+PC91PiIgeWllbGRzICI8Yj5oZWxsbyA8L2I+PGIgY29udGVudGVkaXRh
YmxlPSJmYWxzZSI+d29ybGQ8L2I+PGI+IFdlYktpdCA8dT5yb2NrczwvdT48L2I+IgorUEFTUyBz
dHJpa2VUaHJvdWdoKG51bGwpIG9uIGFsbCBvZiAiaGVsbG8gPGI+d29ybGQgPHM+V2ViS2l0PC9z
PjwvYj4iIHlpZWxkcyAiPHM+aGVsbG8gPGI+d29ybGQgV2ViS2l0PC9iPjwvcz4iCitQQVNTIHN0
cmlrZVRocm91Z2gobnVsbCkgb24gYWxsIG9mICJoZWxsbyA8aT48cz53b3JsZDwvcz48L2k+PGI+
PHM+V2ViS2l0PC9zPjwvYj4gcm9ja3MiIHlpZWxkcyAiPHM+aGVsbG8gPGk+d29ybGQ8L2k+PGI+
V2ViS2l0PC9iPiByb2Nrczwvcz4iCitQQVNTIHN0cmlrZVRocm91Z2gobnVsbCkgb24gYWxsIG9m
ICJoZWxsbyA8aT48cz53b3JsZDwvcz48L2k+IFdlYktpdCA8Yj48cz5yb2Nrczwvcz48L2I+IiB5
aWVsZHMgIjxzPmhlbGxvIDxpPndvcmxkPC9pPiBXZWJLaXQgPGI+cm9ja3M8L2I+PC9zPiIKK1BB
U1MgYm9sZChudWxsKSBvbiBhbGwgb2YgImhlbGxvPGRpdj48aT53b3JsZDwvaT4gPGI+V2ViS2l0
PC9iPjwvZGl2PjxkaXY+cm9ja3M8L2Rpdj4iIHlpZWxkcyAiPGI+aGVsbG88L2I+PGRpdj48Yj48
aT53b3JsZDwvaT4gV2ViS2l0PC9iPjwvZGl2PjxkaXY+PGI+cm9ja3M8L2I+PC9kaXY+IgorUEFT
UyBib2xkKG51bGwpIG9uIGFsbCBvZiAiaGVsbG88YnIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+
PGk+PGI+d29ybGQ8L2I+PC9pPjxicj48Yj5XZWJLaXQ8L2I+IiB5aWVsZHMgIjxiPmhlbGxvPGJy
IHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPjxpPndvcmxkPC9pPjxicj5XZWJLaXQ8L2I+IgorUEFT
UyBib2xkKG51bGwpIG9uIGFsbCBvZiAiaGVsbG88cD48Yj53b3JsZDwvYj4gPGk+PGI+VzwvYj5l
YktpdDwvaT48L3A+PGI+cm9ja3M8L2I+IiB5aWVsZHMgIjxiPmhlbGxvPC9iPjxwPjxiPndvcmxk
IDxpPldlYktpdDwvaT48L2I+PC9wPjxiPnJvY2tzPC9iPiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3N0eWxlL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1bi5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9pbmxpbmUtc3R5bGUtZXh0ZW5kLXJ1
bi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbmxpbmUt
c3R5bGUtZXh0ZW5kLXJ1bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2NyaXB0LXRlc3RzL2lubGluZS1zdHls
ZS1leHRlbmQtcnVuLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUv
c2NyaXB0LXRlc3RzL2lubGluZS1zdHlsZS1leHRlbmQtcnVuLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvaW5saW5lLXN0eWxlLWV4dGVu
ZC1ydW4uanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0
IHRvIG1ha2Ugc3VyZSBXZWJLaXQgYWRkcyBqdXN0IG9uZSBlbGVtZW50IHdoZW4gYXBwbHlpbmcg
aW5saW5lIHN0eWxlIGFuZCByZW1vdmVzIHJlZHVuZGFudCBzdHlsZWQgZWxlbWVudHMuJyk7CisK
K3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0
Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHRlc3RDb250YWluZXIpOworCitmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNv
bW1hbmQsIHZhbHVlLCBpbml0aWFsQ29udGVudHMsIGV4cGVjdGVkQ29udGVudHMpCit7CisgICAg
dGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVudHM7CisgICAgd2luZG93Lmdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRlc3RDb250YWluZXIpOworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdzdHlsZVdpdGhDU1MnLCBmYWxzZSwgJ2ZhbHNlJyk7CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xlQ29tbWFuZCwgZmFsc2UsIHZhbHVlKTsKKyAgICB2YXIg
YWN0aW9uID0gdG9nZ2xlQ29tbWFuZCArICcoJyArIHZhbHVlICsgJykgb24gYWxsIG9mICInICsg
aW5pdGlhbENvbnRlbnRzICsgJyIgeWllbGRzICInICsgdGVzdENvbnRhaW5lci5pbm5lckhUTUwg
KyAnIic7CisgICAgaWYgKHRlc3RDb250YWluZXIuaW5uZXJIVE1MID09IGV4cGVjdGVkQ29udGVu
dHMpCisgICAgICAgIHRlc3RQYXNzZWQoYWN0aW9uKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RG
YWlsZWQoYWN0aW9uICsgJywgZXhwZWN0ZWQgIicgKyBleHBlY3RlZENvbnRlbnRzICsgJyInKTsK
K30KKwordGVzdFNpbmdsZVRvZ2dsZSgiZm9udFNpemUiLCA0LCAnaGVsbG8gPGZvbnQgc2l6ZT0i
NCI+d29ybGQ8L2ZvbnQ+IFdlYktpdCcsICc8Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg
c2l6ZT0iNCI+aGVsbG8gd29ybGQgV2ViS2l0PC9mb250PicpOwordGVzdFNpbmdsZVRvZ2dsZSgi
Zm9udE5hbWUiLCAiQXJpYWwiLCAnaGVsbG8gPGI+PGZvbnQgZmFjZT0iQXJpYWwiPndvcmxkPC9m
b250PjwvYj4gV2ViS2l0JywgJzxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJB
cmlhbCI+aGVsbG8gPGI+d29ybGQ8L2I+IFdlYktpdDwvZm9udD4nKTsKK3Rlc3RTaW5nbGVUb2dn
bGUoIml0YWxpYyIsIG51bGwsICdoZWxsbyA8dT48aSB0aXRsZT0ibWVzc2FnZSI+d29ybGQgPC9p
PjxpPldlYktpdDwvaT48L3U+JywgJzxpPmhlbGxvIDx1PjxzcGFuIHRpdGxlPSJtZXNzYWdlIj53
b3JsZCA8L3NwYW4+V2ViS2l0PC91PjwvaT4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBu
dWxsLCAnaGVsbG8gPGk+PGI+d29ybGQ8L2I+IFdlYktpdDwvaT4nLCAnPGI+aGVsbG8gPGk+d29y
bGQgV2ViS2l0PC9pPjwvYj4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVs
bG8gPGk+PGIgY2xhc3M9InRlc3QiPndvcmxkPC9iPiBXZWJLaXQ8L2k+JywgJzxiPmhlbGxvIDxp
PjxzcGFuIGNsYXNzPSJ0ZXN0Ij53b3JsZDwvc3Bhbj4gV2ViS2l0PC9pPjwvYj4nKTsKK3Rlc3RT
aW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVsbG8gPGIgY29udGVudGVkaXRhYmxlPSJmYWxz
ZSI+d29ybGQ8L2I+IDxiPldlYktpdCA8L2I+PHU+PGI+cm9ja3M8L2I+PC91PicsICc8Yj5oZWxs
byA8L2I+PGIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+d29ybGQ8L2I+PGI+IFdlYktpdCA8dT5y
b2NrczwvdT48L2I+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJzdHJpa2VUaHJvdWdoIiwgbnVsbCwg
J2hlbGxvIDxiPndvcmxkIDxzPldlYktpdDwvcz48L2I+JywgJzxzPmhlbGxvIDxiPndvcmxkIFdl
YktpdDwvYj48L3M+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJzdHJpa2VUaHJvdWdoIiwgbnVsbCwg
J2hlbGxvIDxpPjxzPndvcmxkPC9zPjwvaT48Yj48cz5XZWJLaXQ8L3M+PC9iPiByb2NrcycsICc8
cz5oZWxsbyA8aT53b3JsZDwvaT48Yj5XZWJLaXQ8L2I+IHJvY2tzPC9zPicpOwordGVzdFNpbmds
ZVRvZ2dsZSgic3RyaWtlVGhyb3VnaCIsIG51bGwsICdoZWxsbyA8aT48cz53b3JsZDwvcz48L2k+
IFdlYktpdCA8Yj48cz5yb2Nrczwvcz48L2I+JywgJzxzPmhlbGxvIDxpPndvcmxkPC9pPiBXZWJL
aXQgPGI+cm9ja3M8L2I+PC9zPicpOworCisvLyBibG9jayBub2RlcyBhbmQgYnIgdGVzdHMKK3Rl
c3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVsbG88ZGl2PjxpPndvcmxkPC9pPiA8Yj5X
ZWJLaXQ8L2I+PC9kaXY+PGRpdj5yb2NrczwvZGl2PicsICc8Yj5oZWxsbzwvYj48ZGl2PjxiPjxp
PndvcmxkPC9pPiBXZWJLaXQ8L2I+PC9kaXY+PGRpdj48Yj5yb2NrczwvYj48L2Rpdj4nKTsKK3Rl
c3RTaW5nbGVUb2dnbGUoImJvbGQiLCBudWxsLCAnaGVsbG88YnIgc3R5bGU9ImRpc3BsYXk6IGJs
b2NrOyI+PGk+PGI+d29ybGQ8L2I+PC9pPjxicj48Yj5XZWJLaXQ8L2I+JywgJzxiPmhlbGxvPGJy
IHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPjxpPndvcmxkPC9pPjxicj5XZWJLaXQ8L2I+Jyk7Cit0
ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgbnVsbCwgJ2hlbGxvPHA+PGI+d29ybGQ8L2I+IDxpPjxi
Plc8L2I+ZWJLaXQ8L2k+PC9wPjxiPnJvY2tzPC9iPicsICc8Yj5oZWxsbzwvYj48cD48Yj53b3Js
ZCA8aT5XZWJLaXQ8L2k+PC9iPjwvcD48Yj5yb2NrczwvYj4nKTsKKworZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvbWFrZS10ZXh0
LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL3NjcmlwdC10ZXN0cy9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5s
aW5lLmpzCShyZXZpc2lvbiA2NzQwNCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2Ny
aXB0LXRlc3RzL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTk3LDcgKzk3LDcgQEAgbW9kaWZ5V3JpdGluZ0RpcmVjdGlvbignPGRpdiBkaXI9
InJ0bCI+PAogbW9kaWZ5V3JpdGluZ0RpcmVjdGlvbignPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxz
cGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDYp9mE2YbYtSDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+
Jywgc2VsZWN0VGhpcmRXb3JkLCAnTmF0dXJhbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICc8
ZGl2IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioPC9zcGFuPiDYp9mE
2YbYtTxzcGFuIGRpcj0ibHRyIj4g2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PicpOwogbW9kaWZ5
V3JpdGluZ0RpcmVjdGlvbignPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxzcGFuIGRpcj0ibHRyIj7Z
itmD2KrYqCDYp9mE2YbYtSDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jywgc2VsZWN0VGhpcmRX
b3JkLCAnTGVmdFRvUmlnaHQnLAotICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBkaXI9InJ0
bCI+PHNwYW4gc3R5bGU9ImRpcmVjdGlvbjogbHRyOyI+2YfZhtinIDwvc3Bhbj48c3BhbiBkaXI9
Imx0ciI+2YrZg9iq2Kgg2KfZhNmG2LUg2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PicpOworICAg
ICAgICAgICAgICAgICAgICAgICAnPGRpdiBkaXI9InJ0bCI+PHNwYW4gc3R5bGU9ImRpcmVjdGlv
bjogbHRyOyI+2YfZhtinINmK2YPYqtioINin2YTZhti1INin2YTYudix2KjZijwvc3Bhbj48L2Rp
dj4nKTsKIG1vZGlmeVdyaXRpbmdEaXJlY3Rpb24oJzxkaXYgZGlyPSJydGwiPtmH2YbYpyA8c3Bh
biBkaXI9Imx0ciI+2YrZg9iq2Kgg2KfZhNmG2LUg2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2Pics
IHNlbGVjdFRoaXJkV29yZCwgJ1JpZ2h0VG9MZWZ0JywKICAgICAgICAgICAgICAgICAgICAgICAg
JzxkaXYgZGlyPSJydGwiPtmH2YbYpyA8c3BhbiBkaXI9Imx0ciI+2YrZg9iq2Kg8L3NwYW4+PHNw
YW4gc3R5bGU9InVuaWNvZGUtYmlkaTogZW1iZWQ7Ij4g2KfZhNmG2LU8L3NwYW4+PHNwYW4gZGly
PSJsdHIiPiDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jyk7CiAK
</data>
<flag name="review"
          id="56780"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>