<?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>40996</bug_id>
          
          <creation_ts>2010-06-22 10:50:19 -0700</creation_ts>
          <short_desc>Progress event should not be fired during synchronous XMLHttpRequest</short_desc>
          <delta_ts>2010-08-03 06:09:12 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stuart Ng">sng</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>jchaffraix</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>241331</commentid>
    <comment_count>0</comment_count>
    <who name="Stuart Ng">sng</who>
    <bug_when>2010-06-22 10:50:19 -0700</bug_when>
    <thetext>OnProgress Event was fired once during a synchronous XHR request

Event.Total is some garbage value, while Event.lengthComputable and Event.loaded is correct.

OnProgress should never be fired according to w3C spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241903</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-23 09:59:27 -0700</bug_when>
    <thetext>This also means that having progress event handlers installed probably shouldn&apos;t force preflight for sync requests, since they will be ignored anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253298</commentid>
    <comment_count>2</comment_count>
      <attachid>61970</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-19 11:27:24 -0700</bug_when>
    <thetext>Created attachment 61970
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253307</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-19 11:47:13 -0700</bug_when>
    <thetext>*** Bug 17502 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253309</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-19 11:48:07 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/63680&gt;.

Anne, any comments you may have about this change would be highly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255935</commentid>
    <comment_count>5</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-07-26 01:23:35 -0700</bug_when>
    <thetext>What you are saying in comment 2 is addressed by step 5 of the send() algorithm.

The way the specification is meant to be written (and I think it is) is that for synchronous requests no tasks are added to the task queue as defined by HTML5. So nothing can happen during a synchronous request, no events, no timeouts, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258735</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-01 23:42:22 -0700</bug_when>
    <thetext>I think that we&apos;ll have/want to continue sending events that aren&apos;t async in nature, such as readystatechange for states UNSENT, OPENED and DONE. There doesn&apos;t seem to be any harm in that.

These aren&apos;t added to task queue, they are dispatched right away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259411</commentid>
    <comment_count>7</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2010-08-03 06:09:12 -0700</bug_when>
    <thetext>Yes. But they are not dispatched during a request. But you are right. Those will be always dispatched (and their definition also does not depend on the asynchronous flag like the events under discussion here).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61970</attachid>
            <date>2010-07-19 11:27:24 -0700</date>
            <delta_ts>2010-07-19 11:34:22 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>SyncProgress.txt</filename>
            <type>text/plain</type>
            <size>19137</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzY3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMTkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwOTk2CisgICAgICAgIFBy
b2dyZXNzIGV2ZW50IHNob3VsZCBub3QgYmUgZmlyZWQgZHVyaW5nIHN5bmNocm9ub3VzIFhNTEh0
dHBSZXF1ZXN0CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTAyCisgICAgICAgIEFzc2VydGlvbiBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIHJlc3Rh
cnQgYSBzeW5jIFhNTEh0dHBSZXF1ZXN0IGFzIGFuIGFzeW5jIG9uZSBmcm9tIG9ucmVhZHlzdGF0
ZWNoYW5nZQorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0
dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy12cy1hc3luYy1hc3Nl
cnRpb24tZmFpbHVyZS5odG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNhbGxSZWFkeVN0YXRlQ2hhbmdlTGlz
dGVuZXIpOiBXZSBub3cgb25seSBkaXNwYXRjaCByZWFkeXN0YXRlY2hhbmdlCisgICAgICAgIGV2
ZW50IGZvciBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiBzdGF0ZXMgVU5TRU5ULCBPUEVORUQgYW5k
IERPTkUuIEknbSBub3Qgc3VyZSB3aGF0IGV4YWN0bHkKKyAgICAgICAgdGhlIHNwZWMgZHJhZnQg
c2F5cyBhYm91dCByZWFkeXN0YXRlY2hhbmdlIGZvciBzeW5jIHJlcXVlc3RzLCBidXQgdGhpcyBz
ZWVtcyB0byBiZSB0aGUgbW9zdAorICAgICAgICBsb2dpY2FsIGFuZCBiYWNrd2FyZHMgY29tcGF0
aWJsZSBiZWhhdmlvci4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWNl
aXZlRGF0YSk6IERvbid0IGRpc3BhdGNoIHByb2dyZXNzIGV2ZW50cyBmb3Igc3luYyByZXF1ZXN0
cy4KKyAgICAgICAgTm90ZSB0aGF0IHdlIGFscmVhZHkgZG9uJ3QgZGlzcGF0Y2ggdXBsb2FkIHBy
b2dyZXNzIGV2ZW50cyBmb3IgdGhvc2UuCisKIDIwMTAtMDctMTkgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4
OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA2MzU2MSkKKysrIFdlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgzLDcgKzI4Myw4IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmNhbGxSZWFkeVN0YXRlQ2hhbmcKICAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUobV91cmwuc3RyaW5nKCksIG1fc3RhdGUpOwogI2Vu
ZGlmCiAKLSAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaEV2ZW50KFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hhbmdl
RXZlbnQpLCBtX3N0YXRlID09IERPTkUgPyBGbHVzaFByb2dyZXNzRXZlbnQgOiBEb05vdEZsdXNo
UHJvZ3Jlc3NFdmVudCk7CisgICAgaWYgKG1fYXN5bmMgfHwgKG1fc3RhdGUgPD0gT1BFTkVEIHx8
IG1fc3RhdGUgPT0gRE9ORSkpCisgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3Bh
dGNoRXZlbnQoWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnJlYWR5c3RhdGVjaGFuZ2VFdmVudCksIG1fc3RhdGUgPT0gRE9ORSA/IEZsdXNoUHJvZ3Jlc3NF
dmVudCA6IERvTm90Rmx1c2hQcm9ncmVzc0V2ZW50KTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgaWYgKGNhbGxUaW1lbGluZUFnZW50T25SZWFkeVN0YXRlQ2hhbmdlICYmICh0aW1lbGlu
ZUFnZW50ID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmV0cmlldmUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSkpCkBAIC05NzgsOCArOTc5LDEwIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRp
ZFJlY2VpdmVEYXRhKGNvbnMKICAgICAgICAgbG9uZyBsb25nIGV4cGVjdGVkTGVuZ3RoID0gbV9y
ZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKTsKICAgICAgICAgbV9yZWNlaXZlZExlbmd0
aCArPSBsZW47CiAKLSAgICAgICAgYm9vbCBsZW5ndGhDb21wdXRhYmxlID0gZXhwZWN0ZWRMZW5n
dGggJiYgbV9yZWNlaXZlZExlbmd0aCA8PSBleHBlY3RlZExlbmd0aDsKLSAgICAgICAgbV9wcm9n
cmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGxlbmd0aENvbXB1dGFibGUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3JlY2VpdmVkTGVuZ3RoKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGV4cGVjdGVkTGVuZ3RoKSk7CisgICAgICAgIGlmIChtX2FzeW5jKSB7CisgICAgICAg
ICAgICBib29sIGxlbmd0aENvbXB1dGFibGUgPSBleHBlY3RlZExlbmd0aCAmJiBtX3JlY2VpdmVk
TGVuZ3RoIDw9IGV4cGVjdGVkTGVuZ3RoOworICAgICAgICAgICAgbV9wcm9ncmVzc0V2ZW50VGhy
b3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGxlbmd0aENvbXB1dGFibGUsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihtX3JlY2VpdmVkTGVuZ3RoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGV4cGVj
dGVkTGVuZ3RoKSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAobV9zdGF0ZSAhPSBMT0FESU5H
KQogICAgICAgICAgICAgY2hhbmdlU3RhdGUoTE9BRElORyk7CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2
MzY3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM3IEBACisyMDEwLTA3LTE5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDk5NgorICAgICAgICBQcm9ncmVzcyBl
dmVudCBzaG91bGQgbm90IGJlIGZpcmVkIGR1cmluZyBzeW5jaHJvbm91cyBYTUxIdHRwUmVxdWVz
dAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
MgorICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSB3aGVuIHRyeWluZyB0byByZXN0YXJ0IGEgc3lu
YyBYTUxIdHRwUmVxdWVzdCBhcyBhbiBhc3luYyBvbmUgZnJvbSBvbnJlYWR5c3RhdGVjaGFuZ2UK
KworICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVjdXJzaXZl
LXN5bmMtZXZlbnQtZXhwZWN0ZWQudHh0OiBUaGVyZSBpcyBvbmUgbGVzcworICAgICAgICBldmVu
dCBkaXNwYXRjaGVkIG5vdy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
aW5mb09uUHJvZ3Jlc3NFdmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9pbmZvT25Qcm9ncmVzc0V2ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1uby1jb250ZW50LWxlbmd0aC1vblBy
b2dyZXNzLmh0bWw6CisgICAgICAgIENoYW5nZWQgdG8gdXNlIGFzeW5jIHJlcXVlc3RzLCBzaW5j
ZSBzeW5jIG9uZXMgbm8gbG9uZ2VyIGNhdXNlIHByb2dyZXNzIGV2ZW50IGRpc3BhdGNoLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRy
b2wtYmFzaWMtcG9zdC1mYWlsLW5vbi1zaW1wbGUuY2dpOiBBZGRlZC4KKyAgICAgICAgQSBzY3Jp
cHQgdGhhdCBvbmx5IGFsbG93cyBzaW1wbGUgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1hZGRFdmVudExp
c3RlbmVyLW9uUHJvZ3Jlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWRkRXZlbnRMaXN0ZW5lci1vblByb2dyZXNzLmh0
bWw6CisgICAgICAgIFJlbW92ZWQgc3luY2hyb25vdXMgY2FzZSAoaW5jb3JyZWN0bHkgY2FsbGVk
IGFzeW5jaHJvbm91cyBpbiB0ZXN0IGNvbW1lbnRzKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAg
ICBBZGRlZCBhIHRlc3QgdGhhdCBsb2dzIHByb2dyZXNzIGFuZCByZWFkeXN0YXRlY2hhbmdlIGV2
ZW50cy4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3Qtc3luYy12cy1hc3luYy1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy12
cy1hc3luYy1hc3NlcnRpb24tZmFpbHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRlZCBhIHRl
c3QgZm9yIGFzc2VydGlvbiBmYWlsdXJlLiBUaGUgcHJvYmxlbSBubyBsb25nZXIgb2NjdXJzIHNp
bmNlIHdlIGRvbid0IGZpcmUgZXZlbnRzCisgICAgICAgIGluIGludGVybWVkaWF0ZSBzdGF0ZXMu
CisKIDIwMTAtMDctMTkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1y
ZWN1cnNpdmUtc3luYy1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYzNTYxKQorKysgTGF5
b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3lu
Yy1ldmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw1IEBACiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMDogCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMDogCiBUaGlzIHRlc3RzIHRoYXQgaGF2aW5nIGluZmluaXRlIHJlY3Vy
c2lvbiBpbiBYTUxIdHRwUmVxdWVzdCBldmVudCBoYW5kbGVyIGRvZXMgbm90IGNyYXNoLiAKIFBB
U1MKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9pbmZvT25Q
cm9ncmVzc0V2ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2luZm9PblByb2dyZXNzRXZlbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA2MzU2MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
aW5mb09uUHJvZ3Jlc3NFdmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYg
KzEsNyBAQAogVGVzdCBjYXNlIGZvciBidWcgMTM1OTY6IEltcGxlbWVudCAub25wcm9ncmVzcyBo
YW5kbGVyIG9uIFhNTEh0dHBSZXF1ZXN0IG9iamVjdHMgdG8gc3VwcG9ydCBwcm9ncmVzc2l2ZSBk
b3dubG9hZCBjb250ZW50IGxlbmd0aCBpbmZvcm1hdGlvbgogCi1Zb3Ugc2hvdWxkIHNlZSB0eXBl
LCBidWJibGUsIGNhbmNlbGFibGUsIGV2ZW50UGhhc2UsIHRhcmdldCBhbmQgY3VycmVudCB0YXJn
ZXQgZm9yIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgY2FzZXMKK1lvdSBzaG91bGQgc2Vl
IHR5cGUsIGJ1YmJsZSwgY2FuY2VsYWJsZSwgZXZlbnRQaGFzZSwgdGFyZ2V0IGFuZCBjdXJyZW50
IHRhcmdldC4KIAotU3luY2hyb25vdXMgY2FzZToKLVR5cGU6IHByb2dyZXNzCi1CdWJibGU6IGZh
bHNlCi1DYW5jZWxhYmxlOiB0cnVlCi1FdmVudFBoYXNlOiAyCi1UYXJnZXQ6IFtvYmplY3QgWE1M
SHR0cFJlcXVlc3RdCi1DdXJyZW50IHRhcmdldDogW29iamVjdCBYTUxIdHRwUmVxdWVzdF0KLQot
QXN5bmNocm9ub3VzIGNhc2U6CiBUeXBlOiBwcm9ncmVzcwogQnViYmxlOiBmYWxzZQogQ2FuY2Vs
YWJsZTogdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9p
bmZvT25Qcm9ncmVzc0V2ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9pbmZvT25Qcm9ncmVzc0V2ZW50Lmh0bWwJKHJldmlzaW9uIDYz
NTYxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9pbmZvT25Qcm9n
cmVzc0V2ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aGVhZC8+CiA8
Ym9keT4KIDxwPiBUZXN0IGNhc2UgZm9yIGJ1ZyAxMzU5NjogSW1wbGVtZW50IC5vbnByb2dyZXNz
IGhhbmRsZXIgb24gWE1MSHR0cFJlcXVlc3Qgb2JqZWN0cyB0byBzdXBwb3J0IHByb2dyZXNzaXZl
IGRvd25sb2FkIGNvbnRlbnQgbGVuZ3RoIGluZm9ybWF0aW9uIDwvcD4KLTxwPiBZb3Ugc2hvdWxk
IHNlZSB0eXBlLCBidWJibGUsIGNhbmNlbGFibGUsIGV2ZW50UGhhc2UsIHRhcmdldCBhbmQgY3Vy
cmVudCB0YXJnZXQgZm9yIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgY2FzZXMgPC9wPgor
PHA+IFlvdSBzaG91bGQgc2VlIHR5cGUsIGJ1YmJsZSwgY2FuY2VsYWJsZSwgZXZlbnRQaGFzZSwg
dGFyZ2V0IGFuZCBjdXJyZW50IHRhcmdldC48L3A+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiBmdW5jdGlvbiBsb2cgKG1zZykKIHsKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24g
b25Qcm9ncmVzcyhlKSB7CiAgICAgbG9nKCJUYXJnZXQ6ICIgKyBlLnRhcmdldCk7CiAgICAgbG9n
KCJDdXJyZW50IHRhcmdldDogIiArIGUuY3VycmVudFRhcmdldCk7CiAgICAgZS5jdXJyZW50VGFy
Z2V0Lm9ucHJvZ3Jlc3MgPSBudWxsOwotICAgIGlmIChzaG91bGROb3RpZnkgJiYgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KIApAQCAtMzgs
MjMgKzM4LDEwIEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAKLWxvZygiU3luY2hyb25vdXMg
Y2FzZToiKTsKLQotLy8gVGVzdCBzeW5jaHJvbm91cwogdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwogcmVxLm9ucHJvZ3Jlc3MgPSBvblByb2dyZXNzOwotcmVxLm9wZW4oIkdFVCIsICJy
ZXNvdXJjZXMvMTI1MS5odG1sIiwgZmFsc2UpOworcmVxLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMv
MTI1MS5odG1sIiwgdHJ1ZSk7CiByZXEuc2VuZChudWxsKTsKLQotaW5zZXJ0TmV3TGluZSgpOwot
bG9nKCJBc3luY2hyb25vdXMgY2FzZToiKTsKLQotLy8gVGVzdCBhc3luY2hyb25vdXMKLXZhciBy
ZXEyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci1yZXEyLm9ucHJvZ3Jlc3MgPSBvblByb2dyZXNz
OwotcmVxMi5vcGVuKCJHRVQiLCAicmVzb3VyY2VzLzEyNTEuaHRtbCIsIHRydWUpOwotc2hvdWxk
Tm90aWZ5ID0gdHJ1ZTsKLXJlcTIuc2VuZChudWxsKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1hZGRFdmVudExpc3RlbmVyLW9uUHJvZ3Jlc3MtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtYWRkRXZlbnRMaXN0ZW5lci1vblByb2dyZXNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjM1
NjEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LWFkZEV2ZW50TGlzdGVuZXItb25Qcm9ncmVzcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTIsMTAgKzIsOCBAQCBUZXN0IGNhc2UgZm9yIEJ1ZyAxODY1NTogW1hIUl0gT25Qcm9n
cmVzCiAKIFRoaXMgdGVzdCB2ZXJpZnkgdGhhdCBhZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIs
IFhYWCwgWFhYKSB3b3JrcyBhcyBleHBlY3RlZC4KIAotWW91IHNob3VsZCBzZWUgUEFTU0VEIDQg
dGltZXMuCitZb3Ugc2hvdWxkIHNlZSBQQVNTRUQgMiB0aW1lcy4KIAogUEFTU0VEICgxKQogUEFT
U0VEICgyKQotUEFTU0VEICgzKQotUEFTU0VEICg0KQogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFkZEV2ZW50TGlzdGVuZXItb25Q
cm9ncmVzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWRkRXZlbnRMaXN0ZW5lci1vblByb2dyZXNzLmh0bWwJ
KHJldmlzaW9uIDYzNTYxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1hZGRFdmVudExpc3RlbmVyLW9uUHJvZ3Jlc3MuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIDxib2R5PgogPHA+IFRlc3QgY2FzZSBmb3IgQnVnIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY1NSI+MTg2
NTU8L2E+OiBbWEhSXSBPblByb2dyZXNzIG5lZWRzIG1vcmUgdGVzdCBjYXNlIDwvcD4KIDxwPiBU
aGlzIHRlc3QgdmVyaWZ5IHRoYXQgYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLCBYWFgsIFhY
WCkgd29ya3MgYXMgZXhwZWN0ZWQuIDwvcD4KLTxwPiBZb3Ugc2hvdWxkIHNlZSBQQVNTRUQgNCB0
aW1lcy4gPC9wPgorPHA+IFlvdSBzaG91bGQgc2VlIFBBU1NFRCAyIHRpbWVzLiA8L3A+CiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiB2YXIgY291bnQgPSAxOwogCkBAIC0xNyw3ICsx
Nyw3IEBAIGZ1bmN0aW9uIGxvZyhtc2cpCiAKIGZ1bmN0aW9uIG9uUHJvZ3Jlc3MoZSkgewogICAg
IGxvZygiUEFTU0VEICgiICsgY291bnQgKyAiKSIpOwotICAgIGlmICgrK2NvdW50ID4gNCAmJiB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCsrY291bnQgPiAyICYmIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogfQogCkBAIC0yNiwyMiArMjYsNiBAQCBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogfQog
Ci0vLyBBc3luY2hyb25vdXMgY2FzZQotCi0vLyBUZXN0IGZvciBjYXB0dXJlIHBoYXNlIAotdmFy
IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotcmVxLmFkZEV2ZW50TGlzdGVuZXIoInByb2dy
ZXNzIiwgb25Qcm9ncmVzcywgdHJ1ZSk7Ci1yZXEub3BlbigiR0VUIiwgInJlc291cmNlcy8xMjUx
Lmh0bWwiLCBmYWxzZSk7Ci1yZXEuc2VuZChudWxsKTsKLQotLy8gVGVzdCBmb3IgYnViYmxlIHBo
YXNlIAotdmFyIHJlcTIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLXJlcTIuYWRkRXZlbnRMaXN0
ZW5lcigicHJvZ3Jlc3MiLCBvblByb2dyZXNzLCBmYWxzZSk7Ci1yZXEyLm9wZW4oIkdFVCIsICJy
ZXNvdXJjZXMvMTI1MS5odG1sIiwgZmFsc2UpOwotcmVxMi5zZW5kKG51bGwpOwotCi0vLyBTeW5j
aHJvbm91cyBjYXNlCi0KIC8vIFRlc3QgZm9yIGNhcHR1cmUgcGhhc2UgCiB2YXIgcmVxMyA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOwogcmVxMy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsIG9u
UHJvZ3Jlc3MsIHRydWUpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1uby1jb250ZW50LWxlbmd0aC1vblByb2dyZXNzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1uby1jb250ZW50LWxlbmd0aC1vblByb2dyZXNzLmh0bWwJKHJldmlzaW9uIDYzNTYx
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1uby1jb250ZW50LWxlbmd0aC1vblByb2dyZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEw
LDYgKzEwLDE3IEBACiA8cCBpZD0ic2hvdWxkQmVDYWxsZWQiPiBGQUlMRUQgPC9wPgogPHAgaWQ9
InNob3VsZE5vdEJlQ2FsbGVkIj4gUEFTU0VEIDwvcD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCit2YXIgY291bnQgPSAwOworZnVuY3Rpb24gY2hlY2tEb25lKCkg
eworICAgIGlmICgrK2NvdW50ID09IDIgJiYgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKIGZ1bmN0aW9u
IG9uUHJvZ3Jlc3NQYXNzZWQoZSkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG91
bGRCZUNhbGxlZCIpLmlubmVySFRNTCA9ICJQQVNTRUQiOwogfQpAQCAtMTgsMjQgKzI5LDE5IEBA
IGZ1bmN0aW9uIG9uUHJvZ3Jlc3NGYWlsZWQoZSkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzaG91bGROb3RCZUNhbGxlZCIpLmlubmVySFRNTCA9ICJGQUlMRUQiOwogfQogCi1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LX0KLQogdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogcmVxLm9ucHJvZ3Jlc3MgPSBv
blByb2dyZXNzUGFzc2VkOworcmVxLm9ubG9hZCA9IGNoZWNrRG9uZTsKIC8vIFRlc3QgdGhhdCBv
blByb2dyZXNzIGlzIGNhbGxlZCBvbiBhIG5vcm1hbCBmaWxlCi1yZXEub3BlbigiR0VUIiwgInJl
c291cmNlLzEyNTEuaHRtbCIsIGZhbHNlKTsKK3JlcS5vcGVuKCJHRVQiLCAicmVzb3VyY2UvMTI1
MS5odG1sIiwgdHJ1ZSk7CiByZXEuc2VuZChudWxsKTsKIAogLy8gSWYgY29udGVudCBsZW5ndGgg
aXMgbm90IGdpdmVuLCBpdCBzaG91bGQgbm90IGJlIGNhbGxlZAotcmVxLm9ucHJvZ3Jlc3MgPSBv
blByb2dyZXNzRmFpbGVkOwotcmVxLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvbm9Db250ZW50TGVu
Z3RoLmFzaXMiLCBmYWxzZSk7Ci1yZXEuc2VuZChudWxsKTsKLQotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit2
YXIgcmVxMiA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworcmVxMi5vbnByb2dyZXNzID0gb25Qcm9n
cmVzc0ZhaWxlZDsKK3JlcTIub25sb2FkID0gY2hlY2tEb25lOworcmVxMi5vcGVuKCJHRVQiLCAi
cmVzb3VyY2VzL25vQ29udGVudExlbmd0aC5hc2lzIiwgdHJ1ZSk7CityZXEyLnNlbmQobnVsbCk7
CiAKIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0
dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1
ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1zeW5jLXZzLWFzeW5jLWFzc2VydGlvbi1mYWlsdXJlLmh0bWwuIE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgorVGVzdCBmb3I6CisKK2J1ZyA0MDk5NjogUHJvZ3Jlc3MgZXZlbnQgc2hvdWxk
IG5vdCBiZSBmaXJlZCBkdXJpbmcgc3luY2hyb25vdXMgWE1MSHR0cFJlcXVlc3Q7CitidWcgMTc1
MDI6IEFzc2VydGlvbiBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIHJlc3RhcnQgYSBzeW5jIFhNTEh0
dHBSZXF1ZXN0IGFzIGFuIGFzeW5jIG9uZSBmcm9tIG9ucmVhZHlzdGF0ZWNoYW5nZS4KKyBTdGVw
IDE6IFNhbWUgb3JpZ2luIHJlcXVlc3QKK3JlYWR5c3RhdGVjaGFuZ2UgNAorbG9hZAorCitTdGVw
IDI6IENyb3NzIG9yaWdpbiByZXF1ZXN0LCBkaXNhbGxvd2VkCityZWFkeXN0YXRlY2hhbmdlIDQK
K2Vycm9yCitFcnJvcjogTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1ZXN0IEV4Y2VwdGlvbiAxMDEK
KworU3RlcCAzOiBDcm9zcyBvcmlnaW4gcmVxdWVzdCwgYWxsb3dlZAorcmVhZHlzdGF0ZWNoYW5n
ZSA0Citsb2FkCisKK1N0ZXAgNDogQ3Jvc3Mgb3JpZ2luIHJlcXVlc3QsIGNoZWNrIHRoYXQgcHJl
ZmxpZ2h0IGlzbid0IGF0dGVtcHRlZAorcmVhZHlzdGF0ZWNoYW5nZSA0Citsb2FkCisKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3lu
Yy1uby1wcm9ncmVzcy1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZl
bnRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKzxwPiBUZXN0IGZvcjogPHVsPjxsaT48YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA5OTYiPmJ1ZyA0MDk5Njxh
PjogUHJvZ3Jlc3MgZXZlbnQgc2hvdWxkIG5vdCBiZSBmaXJlZCBkdXJpbmcgc3luY2hyb25vdXMg
WE1MSHR0cFJlcXVlc3Q7PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc1MDIiPmJ1ZyAxNzUwMjxhPjogQXNzZXJ0aW9uIGZhaWx1cmUg
d2hlbiB0cnlpbmcgdG8gcmVzdGFydCBhIHN5bmMgWE1MSHR0cFJlcXVlc3QgYXMgYW4gYXN5bmMg
b25lIGZyb20gb25yZWFkeXN0YXRlY2hhbmdlLjwvbGk+PC91bD4KKzxwcmUgaWQ9bG9nPjwvcHJl
PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
ZyIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIlxuIjsKK30KKworZnVuY3Rpb24gdGVzdCh1cmwp
Cit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
ICAgICAgICB4aHIub3BlbigiUE9TVCIsIHVybCwgZmFsc2UpOworICAgICAgICB4aHIuc2V0UmVx
dWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZCIpOworCisgICAgICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJsb2Fkc3RhcnQiLCBmdW5j
dGlvbiAoKSB7IGxvZygibG9hZHN0YXJ0Iik7IH0sIHRydWUpOworICAgICAgICB4aHIuYWRkRXZl
bnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsIGZ1bmN0aW9uICgpIHsgbG9nKCJyZWFkeXN0
YXRlY2hhbmdlICIgKyB4aHIucmVhZHlTdGF0ZSk7IH0sIHRydWUpOworICAgICAgICB4aHIuYWRk
RXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLCBmdW5jdGlvbiAoKSB7IGxvZygicHJvZ3Jlc3MiKTsg
fSwgdHJ1ZSk7CisgICAgICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24g
KCkgeyBsb2coImxvYWQiKTsgfSwgdHJ1ZSk7CisgICAgICAgIHhoci5hZGRFdmVudExpc3RlbmVy
KCJlcnJvciIsIGZ1bmN0aW9uICgpIHsgbG9nKCJlcnJvciIpOyB9LCB0cnVlKTsKKyAgICAgICAg
eGhyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLCBmdW5jdGlvbiAoKSB7IGxvZygibG9hZGVu
ZCIpOyB9LCB0cnVlKTsKKworICAgICAgICB4aHIudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxv
YWRzdGFydCIsIGZ1bmN0aW9uICgpIHsgbG9nKCJ1cGxvYWQubG9hZHN0YXJ0Iik7IH0sIHRydWUp
OworICAgICAgICB4aHIudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2Ui
LCBmdW5jdGlvbiAoKSB7IGxvZygidXBsb2FkLnJlYWR5c3RhdGVjaGFuZ2UiKTsgfSwgdHJ1ZSk7
IC8vIG5vIHN1Y2ggZXZlbnQgb24gdXBsb2FkIG9iamVjdAorICAgICAgICB4aHIudXBsb2FkLmFk
ZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIiwgZnVuY3Rpb24gKCkgeyBsb2coInVwbG9hZC5wcm9n
cmVzcyIpOyB9LCB0cnVlKTsKKyAgICAgICAgeGhyLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgZnVuY3Rpb24gKCkgeyBsb2coInVwbG9hZC5sb2FkIik7IH0sIHRydWUpOworICAgICAg
ICB4aHIudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24gKCkgeyBsb2co
InVwbG9hZC5lcnJvciIpOyB9LCB0cnVlKTsKKyAgICAgICAgeGhyLnVwbG9hZC5hZGRFdmVudExp
c3RlbmVyKCJsb2FkZW5kIiwgZnVuY3Rpb24gKCkgeyBsb2coInVwbG9hZC5sb2FkZW5kIik7IH0s
IHRydWUpOworCisgICAgICAgIHhoci5zZW5kKCJmb29iYXIiKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgICAgICBsb2coZXgpOworICAgIH0KK30KKworCitsb2coIlN0ZXAgMTogU2FtZSBvcmln
aW4gcmVxdWVzdCIpOwordGVzdCgieG1saHR0cHJlcXVlc3Qtc3luYy12cy1hc3luYy1hc3NlcnRp
b24tZmFpbHVyZS5odG1sIik7CisKK2xvZygiXG5TdGVwIDI6IENyb3NzIG9yaWdpbiByZXF1ZXN0
LCBkaXNhbGxvd2VkIik7Cit0ZXN0KCJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3Qtc3luYy12cy1hc3luYy1hc3NlcnRpb24tZmFpbHVyZS5odG1sIik7
CisKK2xvZygiXG5TdGVwIDM6IENyb3NzIG9yaWdpbiByZXF1ZXN0LCBhbGxvd2VkIik7Cit0ZXN0
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1j
b250cm9sLWJhc2ljLWFsbG93LmNnaSIpOworCitsb2coIlxuU3RlcCA0OiBDcm9zcyBvcmlnaW4g
cmVxdWVzdCwgY2hlY2sgdGhhdCBwcmVmbGlnaHQgaXNuJ3QgYXR0ZW1wdGVkIik7Cit0ZXN0KCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250
cm9sLWJhc2ljLXBvc3QtZmFpbC1ub24tc2ltcGxlLmNnaSIpOworPC9zY3JpcHQ+CisKKzwvYm9k
eT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXN5bmMtdnMtYXN5bmMtYXNzZXJ0aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3Qtc3luYy12cy1hc3luYy1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXN5bmMtdnMtYXN5bmMtYXNzZXJ0aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1lvdSBzaG91bGQgc2VlICJQQVNTIiBvbmNl
OgorCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LXN5bmMtdnMtYXN5bmMtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXN5bmMtdnMtYXN5bmMtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3lu
Yy12cy1hc3luYy1hc3NlcnRpb24tZmFpbHVyZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDM2IEBACis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+CisKKzxwPllvdSBzaG91bGQgc2VlICJQ
QVNTIiBvbmNlOjwvcD4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKK3ZhciB4aHI7CisKK2lmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIHsKKyAg
ICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKK30gZWxzZSB7CisgICAgdHJ5IHsKKyAgICAg
ICAgeGhyID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CisgICAgfSBjYXRj
aCAoZXgpIHsKKyAgICAgICAgeGhyID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxI
VFRQIik7CisgICAgfQorfQorCit4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy8xMjUxLmh0bWwi
LCBmYWxzZSk7Cit4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgeworICAgIHRy
eSB7CisgICAgICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzLzEyNTEuaHRtbCIsIHRydWUp
OworICAgICAgICB4aHIuc2VuZChudWxsKTsKKyAgICB9IGNhdGNoIChleCkgeworICAgIH0KK30K
KworeGhyLnNlbmQobnVsbCk7CisKK2RvY3VtZW50LndyaXRlKCJQQVNTIik7CisKKzwvc2NyaXB0
PgorCis8L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtcG9zdC1mYWlsLW5vbi1zaW1w
bGUuY2dpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2ljLXBvc3QtZmFpbC1ub24tc2ltcGxlLmNn
aQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2ljLXBvc3QtZmFpbC1ub24tc2ltcGxlLmNnaQko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0
cmljdDsKKworbXkgJHJlcXVlc3Q7CisKK2lmICgkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQ
T1NUIikgeworICAgIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cbiI7CisgICAgcHJp
bnQgIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzOiB0cnVlXG4iOworICAgIHByaW50
ICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMFxuXG4i
OworICAgIHByaW50ICJGQUlMOiBDcm9zcy1kb21haW4gYWNjZXNzIGFsbG93ZWQuXG4iOworfQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtcG9zdC1mYWlsLW5vbi1zaW1wbGUuY2dp
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>
<flag name="review"
          id="50076"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>