<?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>66025</bug_id>
          
          <creation_ts>2011-08-10 17:50:14 -0700</creation_ts>
          <short_desc>DFG non-speculative JIT does not inline the double case of ValueAdd</short_desc>
          <delta_ts>2011-10-13 02:23:53 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>449529</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-10 17:50:14 -0700</bug_when>
    <thetext>The DFG non-speculative JIT always performs a C call for ValueAdd if the operands are doubles.  It should inline the double case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449535</commentid>
    <comment_count>1</comment_count>
      <attachid>103564</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-10 17:57:58 -0700</bug_when>
    <thetext>Created attachment 103564
the patch

1.3% win on Kraken overall with &gt;=8% speed-ups on three benchmarks.  Neutral on SunSpider, V8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452322</commentid>
    <comment_count>2</comment_count>
      <attachid>103564</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-08-17 10:14:42 -0700</bug_when>
    <thetext>Comment on attachment 103564
the patch

done2 is a kinda weak name.  A full name would be something like valueAddDidConvertDoubleToInteger? - maybe that&apos;s a little long. ;-)  But something more descriptive than done2 might me nice.  Otherwise looks great, r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452546</commentid>
    <comment_count>3</comment_count>
      <attachid>104234</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-17 14:00:49 -0700</bug_when>
    <thetext>Created attachment 104234
the patch (fix review)

I went with doneCaseConvertedToInt and doneCaseWasNumber.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452915</commentid>
    <comment_count>4</comment_count>
      <attachid>104234</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 02:14:07 -0700</bug_when>
    <thetext>Comment on attachment 104234
the patch (fix review)

Rejecting attachment 104234 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-02&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
rce/WebCore/ChangeLog
Auto-merging Source/WebCore/editing/InsertTextCommand.cpp
Failed to merge in the changes.
Patch failed at 0001 Remove arguments from CloseEvent::create().

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 146.

Full output: http://queues.webkit.org/results/9421491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453509</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-08-18 17:19:36 -0700</bug_when>
    <thetext>Landed manually in r93375: 
http://trac.webkit.org/changeset/93375</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462910</commentid>
    <comment_count>6</comment_count>
      <attachid>103564</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-06 15:28:43 -0700</bug_when>
    <thetext>Comment on attachment 103564
the patch

Cleared Gavin Barraclough&apos;s review+ from obsolete attachment 103564 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483079</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-10-13 02:23:53 -0700</bug_when>
    <thetext>The DFG non-speculative JIT has been removed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103564</attachid>
            <date>2011-08-10 17:57:58 -0700</date>
            <delta_ts>2011-09-06 15:28:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>valueadd_patch_3.diff</filename>
            <type>text/plain</type>
            <size>14188</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTI4MDYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDgtMTAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgbm9uLXNwZWN1bGF0aXZlIEpJVCBkb2VzIG5vdCBpbmxpbmUgdGhlIGRvdWJsZSBjYXNlIG9m
IFZhbHVlQWRkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjAyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBpcyBhIDEuMyUgd2luIG9uIEtyYWtlbiBvdmVyYWxsLCB3aXRoID49OCUg
c3BlZWQtdXBzIG9uIGEgZmV3CisgICAgICAgIGJlbmNobWFya3MgKGltYWdpbmctZGFya3Jvb20s
IHN0YW5mb3JkLWNyeXB0by1wYmtkZjIsCisgICAgICAgIHN0YW5mb3JkLWNyeXB0by1zaGEyNTYt
aXRlcmF0aXZlKS4gIEl0IGxvb2tzIGxpa2UgaXQgbWlnaHQgaGF2ZQorICAgICAgICBhIHNwZWVk
LXVwIGluIFN1blNwaWRlciAodGhvdWdoIG5vdCBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50IG9y
CisgICAgICAgIHBhcnRpY3VsYXJseSByZXByb2R1Y2libGUpIGFuZCBhIHNsaWdodCBzbG93LWRv
d24gaW4gVjggKDAuMTQlLAorICAgICAgICBub3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCku
ICBJdCBkb2VzIHNsb3cgZG93biB2OC1jcnlwdG8gYnkKKyAgICAgICAgMS41JS4KKworICAgICAg
ICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRD
b2RlR2VuZXJhdG9yOjppc0tub3duSW50ZWdlcik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29k
ZUdlbmVyYXRvcjo6aXNLbm93bk51bWVyaWMpOgorICAgICAgICAqIGRmZy9ERkdOb25TcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6Omtub3du
Q29uc3RhbnRBcml0aE9wKToKKyAgICAgICAgKEpTQzo6REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6
YmFzaWNBcml0aE9wKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisKIDIwMTEt
MDgtMTAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHI5MjY3MC1yOTI3NDQpOiBXZWJLaXQgY3Jhc2hlcyB3aGVuIG9wZW5pbmcgR21haWwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9y
LmNwcAkocmV2aXNpb24gOTI3NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsNyArMzMwLDEyIEBAIGJv
b2wgSklUQ29kZUdlbmVyYXRvcjo6aXNLbm93bkludGVnZXIoTm8KICAgICBpZiAoaXNJbnQzMkNv
bnN0YW50KG5vZGVJbmRleCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgR2VuZXJhdGlv
bkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW21faml0LmdyYXBoKClbbm9kZUluZGV4XS52
aXJ0dWFsUmVnaXN0ZXIoKV07CisgICAgTm9kZSYgbm9kZSA9IG1faml0LmdyYXBoKClbbm9kZUlu
ZGV4XTsKKyAgICAKKyAgICBpZiAobm9kZS5oYXNJbnQzMlJlc3VsdCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IG1fZ2VuZXJhdGlvbklu
Zm9bbm9kZS52aXJ0dWFsUmVnaXN0ZXIoKV07CiAKICAgICBEYXRhRm9ybWF0IHJlZ2lzdGVyRm9y
bWF0ID0gaW5mby5yZWdpc3RlckZvcm1hdCgpOwogICAgIGlmIChyZWdpc3RlckZvcm1hdCAhPSBE
YXRhRm9ybWF0Tm9uZSkKQEAgLTM0OSw3ICszNTQsMTIgQEAgYm9vbCBKSVRDb2RlR2VuZXJhdG9y
Ojppc0tub3duTnVtZXJpYyhObwogICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZUluZGV4KSB8
fCBpc0RvdWJsZUNvbnN0YW50KG5vZGVJbmRleCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW21faml0LmdyYXBoKClb
bm9kZUluZGV4XS52aXJ0dWFsUmVnaXN0ZXIoKV07CisgICAgTm9kZSYgbm9kZSA9IG1faml0Lmdy
YXBoKClbbm9kZUluZGV4XTsKKyAgICAKKyAgICBpZiAobm9kZS5oYXNOdW1lcmljUmVzdWx0KCkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0g
bV9nZW5lcmF0aW9uSW5mb1tub2RlLnZpcnR1YWxSZWdpc3RlcigpXTsKIAogICAgIERhdGFGb3Jt
YXQgcmVnaXN0ZXJGb3JtYXQgPSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7CiAgICAgaWYgKHJlZ2lz
dGVyRm9ybWF0ICE9IERhdGFGb3JtYXROb25lKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkyNzYwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2OSwxMiArMTY5LDY4IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6
Omtub3duQ29uc3RhbnRBcmkKICAgICAKICAgICBvdmVyZmxvdy5saW5rKCZtX2ppdCk7CiAgICAg
CisgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90TnVtYmVyOworICAgIAorICAgIC8vIGZpcnN0IGRl
YWwgd2l0aCBvdmVyZmxvdyBjYXNlCisgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUocmVn
QXJnR1BSLCB0bXAyRlBSKTsKKyAgICAKKyAgICAvLyBub3cgZGVhbCB3aXRoIG5vdC1pbnQgY2Fz
ZSwgaWYgYXBwbGljYWJsZQorICAgIGlmICghaXNLbm93bkludGVnZXIocmVnQ2hpbGQpKSB7Cisg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVWYWx1ZSA9IG1faml0Lmp1bXAoKTsKKyAgICAg
ICAgCisgICAgICAgIG5vdEludC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICBpZiAo
IWlzS25vd25OdW1lcmljKHJlZ0NoaWxkKSkgeworICAgICAgICAgICAgQVNTRVJUKG9wID09IFZh
bHVlQWRkKTsKKyAgICAgICAgICAgIG5vdE51bWJlciA9IG1faml0LmJyYW5jaFRlc3RQdHIoTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIHJlZ0FyZ0dQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9qaXQubW92ZShyZWdBcmdHUFIs
IHJlc3VsdEdQUik7CisgICAgICAgIG1faml0LmFkZFB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVy
UmVnaXN0ZXIsIHJlc3VsdEdQUik7CisgICAgICAgIG1faml0Lm1vdmVQdHJUb0RvdWJsZShyZXN1
bHRHUFIsIHRtcDJGUFIpOworICAgICAgICAKKyAgICAgICAgaGF2ZVZhbHVlLmxpbmsoJm1faml0
KTsKKyAgICB9CisgICAgCisgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0RG91YmxlVG9JbnRwdHIodmFsdWVPZkRv
dWJsZUNvbnN0YW50KGltbUNoaWxkKSkpKSwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5tb3ZlUHRy
VG9Eb3VibGUocmVzdWx0R1BSLCB0bXAxRlBSKTsKICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgY2Fz
ZSBWYWx1ZUFkZDoKLSAgICAgICAgLy8gb3ZlcmZsb3cgYW5kIG5vdC1pbnQgYXJlIHRoZSBzYW1l
Ci0gICAgICAgIGlmICghaXNLbm93bkludGVnZXIocmVnQ2hpbGQpKQotICAgICAgICAgICAgbm90
SW50LmxpbmsoJm1faml0KTsKKyAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICBtX2ppdC5hZGRE
b3VibGUodG1wMUZQUiwgdG1wMkZQUik7CisgICAgICAgIGJyZWFrOwogICAgICAgICAKKyAgICBj
YXNlIEFyaXRoU3ViOgorICAgICAgICBtX2ppdC5zdWJEb3VibGUodG1wMUZQUiwgdG1wMkZQUik7
CisgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIAorICAgIEpJVENvbXBpbGVyOjpKdW1wIGRv
bmUyOworICAgIAorICAgIGlmIChvcCA9PSBWYWx1ZUFkZCkgeworICAgICAgICBKSVRDb21waWxl
cjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOworICAgICAgICBtX2ppdC5icmFuY2hDb252ZXJ0RG91
YmxlVG9JbnQzMih0bXAyRlBSLCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywgdG1wMUZQUik7Cisg
ICAgICAgIG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcmVzdWx0
R1BSKTsKKyAgICAgICAgCisgICAgICAgIGRvbmUyID0gbV9qaXQuanVtcCgpOworICAgICAgICAK
KyAgICAgICAgZmFpbHVyZUNhc2VzLmxpbmsoJm1faml0KTsKKyAgICB9CisgICAgCisgICAgbV9q
aXQubW92ZURvdWJsZVRvUHRyKHRtcDJGUFIsIHJlc3VsdEdQUik7CisgICAgbV9qaXQuc3ViUHRy
KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcmVzdWx0R1BSKTsKKyAgICAgICAgCisg
ICAgaWYgKCFpc0tub3duTnVtZXJpYyhyZWdDaGlsZCkpIHsKKyAgICAgICAgQVNTRVJUKG5vdE51
bWJlci5pc1NldCgpKTsKKyAgICAgICAgQVNTRVJUKG9wID09IFZhbHVlQWRkKTsKKyAgICAgICAg
ICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lMyA9IG1faml0Lmp1bXAoKTsKKyAg
ICAgICAgICAgIAorICAgICAgICBub3ROdW1iZXIubGluaygmbV9qaXQpOworICAgICAgICAgICAg
CiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIGlm
IChjb21tdXRlKSB7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKHJlZ0FyZ0dQUiwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKTsKQEAgLTE4Nyw0MSArMjQzLDEzIEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVK
SVQ6Omtub3duQ29uc3RhbnRBcmkKICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb25WYWx1ZUFkZCk7CiAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVz
dWx0R1BSKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEFyaXRoQWRkOgotICAgIGNhc2Ug
QXJpdGhTdWI6Ci0gICAgICAgIC8vIGZpcnN0IGRlYWwgd2l0aCBvdmVyZmxvdyBjYXNlCi0gICAg
ICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHJlZ0FyZ0dQUiwgdG1wMkZQUik7Ci0gICAg
ICAgIAotICAgICAgICAvLyBub3cgZGVhbCB3aXRoIG5vdC1pbnQgY2FzZSwgaWYgYXBwbGljYWJs
ZQotICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKHJlZ0NoaWxkKSkgewotICAgICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgaGF2ZVZhbHVlID0gbV9qaXQuanVtcCgpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBub3RJbnQubGluaygmbV9qaXQpOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBtX2ppdC5tb3ZlKHJlZ0FyZ0dQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIG1faml0
LmFkZFB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJlc3VsdEdQUik7Ci0gICAg
ICAgICAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUocmVzdWx0R1BSLCB0bXAyRlBSKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaGF2ZVZhbHVlLmxpbmsoJm1faml0KTsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0RG91YmxlVG9JbnRwdHIodmFsdWVPZkRvdWJs
ZUNvbnN0YW50KGltbUNoaWxkKSkpKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZVB0
clRvRG91YmxlKHJlc3VsdEdQUiwgdG1wMUZQUik7Ci0gICAgICAgIGlmIChvcCA9PSBBcml0aEFk
ZCkKLSAgICAgICAgICAgIG1faml0LmFkZERvdWJsZSh0bXAxRlBSLCB0bXAyRlBSKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbV9qaXQuc3ViRG91YmxlKHRtcDFGUFIsIHRtcDJGUFIpOwot
ICAgICAgICBtX2ppdC5tb3ZlRG91YmxlVG9QdHIodG1wMkZQUiwgcmVzdWx0R1BSKTsKLSAgICAg
ICAgbV9qaXQuc3ViUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcmVzdWx0R1BS
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBkb25lMy5saW5rKCZtX2ppdCk7CiAgICAgfQogICAg
IAogICAgIGRvbmUubGluaygmbV9qaXQpOworICAgIGlmIChkb25lMi5pc1NldCgpKQorICAgICAg
ICBkb25lMi5saW5rKCZtX2ppdCk7CiAgICAgICAgIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0
R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKIH0KQEAg
LTI4MSw4NiArMzA5LDEyNSBAQCB2b2lkIE5vblNwZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3Ao
Tm9kCiAgICAgICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7
CiAgICAgCi0gICAgaWYgKG9wID09IFZhbHVlQWRkKSB7Ci0gICAgICAgIGlmIChjaGlsZDFOb3RJ
bnQuaXNTZXQoKSkKLSAgICAgICAgICAgIGNoaWxkMU5vdEludC5saW5rKCZtX2ppdCk7Ci0gICAg
ICAgIGlmIChjaGlsZDJOb3RJbnQuaXNTZXQoKSkKLSAgICAgICAgICAgIGNoaWxkMk5vdEludC5s
aW5rKCZtX2ppdCk7Ci0gICAgICAgIG92ZXJmbG93LmxpbmsoJm1faml0KTsKLSAgICAgICAgCi0g
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAgIHNldHVw
U3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAg
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25WYWx1ZUFkZCk7Ci0gICAgICAg
IG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAg
IHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBKSVRDb21waWxlcjo6SnVtcExpc3QgaGF2ZUZQUkFyZ3VtZW50czsKKyAgICBKSVRDb21waWxl
cjo6SnVtcExpc3QgaGF2ZUZQUkFyZ3VtZW50czsKIAotICAgICAgICBvdmVyZmxvdy5saW5rKCZt
X2ppdCk7CisgICAgb3ZlcmZsb3cubGluaygmbV9qaXQpOwogICAgICAgICAKLSAgICAgICAgLy8g
Ym90aCBhcmd1bWVudHMgYXJlIGludGVnZXJzCi0gICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRv
RG91YmxlKGFyZzFHUFIsIHRtcDFGUFIpOwotICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0Rv
dWJsZShhcmcyR1BSLCB0bXAyRlBSKTsKKyAgICAvLyBib3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdl
cnMKKyAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcxR1BSLCB0bXAxRlBSKTsKKyAg
ICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BSLCB0bXAyRlBSKTsKICAgICAgICAg
Ci0gICAgICAgIGhhdmVGUFJBcmd1bWVudHMuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgaGF2
ZUZQUkFyZ3VtZW50cy5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgCi0gICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIGNoaWxkMk5vdEludDI7CisgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0
IG5vdE51bWJlcnM7CiAgICAgICAgIAotICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUu
Y2hpbGQxKCkpKSB7Ci0gICAgICAgICAgICBjaGlsZDFOb3RJbnQubGluaygmbV9qaXQpOworICAg
IEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMk5vdEludDI7CisgICAgICAgIAorICAgIGlmICghaXNL
bm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkpIHsKKyAgICAgICAgY2hpbGQxTm90SW50Lmxpbmso
Jm1faml0KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgbV9qaXQubW92ZShhcmcxR1BSLCBy
ZXN1bHRHUFIpOwotICAgICAgICAgICAgdW5ib3hEb3VibGUocmVzdWx0R1BSLCB0bXAxRlBSKTsK
KyAgICAgICAgaWYgKCFpc0tub3duTnVtZXJpYyhub2RlLmNoaWxkMSgpKSkgeworICAgICAgICAg
ICAgQVNTRVJUKG9wID09IFZhbHVlQWRkKTsKKyAgICAgICAgICAgIG5vdE51bWJlcnMuYXBwZW5k
KG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIGFyZzFHUFIsIEdQUklu
Zm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAgICB9CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIC8vIGNoaWxkMSBpcyBjb252ZXJ0ZWQgdG8gYSBkb3VibGU7IGNoaWxkMiBtYXkg
ZWl0aGVyIGJlIGFuIGludCBvcgotICAgICAgICAgICAgLy8gYSBib3hlZCBkb3VibGUKKyAgICAg
ICAgbV9qaXQubW92ZShhcmcxR1BSLCByZXN1bHRHUFIpOworICAgICAgICB1bmJveERvdWJsZShy
ZXN1bHRHUFIsIHRtcDFGUFIpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWlzS25v
d25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQorICAgICAgICAvLyBjaGlsZDEgaXMgY29udmVydGVk
IHRvIGEgZG91YmxlOyBjaGlsZDIgbWF5IGVpdGhlciBiZSBhbiBpbnQgb3IKKyAgICAgICAgLy8g
YSBib3hlZCBkb3VibGUKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2Vy
KG5vZGUuY2hpbGQyKCkpKSB7CisgICAgICAgICAgICBpZiAoaXNLbm93bk51bWVyaWMobm9kZS5j
aGlsZDIoKSkpCiAgICAgICAgICAgICAgICAgY2hpbGQyTm90SW50MiA9IG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3Rlcik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQob3Ag
PT0gVmFsdWVBZGQpOworICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMklz
SW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGFyZzJH
UFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbm90
TnVtYmVycy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywg
YXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgICAgICAg
ICAgY2hpbGQyTm90SW50MiA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgICAgICAgICBjaGlsZDJJ
c0ludC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgICAg
IAotICAgICAgICAgICAgLy8gY2hpbGQgMiBpcyBkZWZpbml0ZWx5IGFuIGludGVnZXIKLSAgICAg
ICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzJHUFIsIHRtcDJGUFIpOworICAg
ICAgICAvLyBjaGlsZCAyIGlzIGRlZmluaXRlbHkgYW4gaW50ZWdlcgorICAgICAgICBtX2ppdC5j
b252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BSLCB0bXAyRlBSKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5hcHBlbmQobV9qaXQuanVtcCgpKTsKLSAgICAgICAg
fQorICAgICAgICBoYXZlRlBSQXJndW1lbnRzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgIH0K
ICAgICAgICAgCi0gICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsK
LSAgICAgICAgICAgIGNoaWxkMk5vdEludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAvLyBj
aGlsZDEgaXMgZGVmaW5pdGVseSBhbiBpbnRlZ2VyLCBhbmQgY2hpbGQgMiBpcyBkZWZpbml0ZWx5
IG5vdAorICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAgICAg
Y2hpbGQyTm90SW50LmxpbmsoJm1faml0KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgbV9q
aXQuY29udmVydEludDMyVG9Eb3VibGUoYXJnMUdQUiwgdG1wMUZQUik7CisgICAgICAgIGlmICgh
aXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChvcCA9
PSBWYWx1ZUFkZCk7CisgICAgICAgICAgICBub3ROdW1iZXJzLmFwcGVuZChtX2ppdC5icmFuY2hU
ZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBhcmcyR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAo
Y2hpbGQyTm90SW50Mi5pc1NldCgpKQotICAgICAgICAgICAgICAgIGNoaWxkMk5vdEludDIubGlu
aygmbV9qaXQpOworICAgICAgICAvLyBjaGlsZDEgaXMgZGVmaW5pdGVseSBhbiBpbnRlZ2VyLCBh
bmQgY2hpbGQgMiBpcyBkZWZpbml0ZWx5IG5vdAogICAgICAgICAgICAgCi0gICAgICAgICAgICBt
X2ppdC5tb3ZlKGFyZzJHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAgICAgICB1bmJveERvdWJsZShy
ZXN1bHRHUFIsIHRtcDJGUFIpOwotICAgICAgICB9CisgICAgICAgIG1faml0LmNvbnZlcnRJbnQz
MlRvRG91YmxlKGFyZzFHUFIsIHRtcDFGUFIpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChj
aGlsZDJOb3RJbnQyLmlzU2V0KCkpCisgICAgICAgICAgICBjaGlsZDJOb3RJbnQyLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgICAgIAorICAgICAgICBtX2ppdC5tb3ZlKGFyZzJHUFIsIHJlc3VsdEdQ
Uik7CisgICAgICAgIHVuYm94RG91YmxlKHJlc3VsdEdQUiwgdG1wMkZQUik7CisgICAgfQogICAg
ICAgICAKLSAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5saW5rKCZtX2ppdCk7CisgICAgaGF2ZUZQ
UkFyZ3VtZW50cy5saW5rKCZtX2ppdCk7CiAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKG9wKSB7
Ci0gICAgICAgIGNhc2UgQXJpdGhBZGQ6Ci0gICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodG1w
MkZQUiwgdG1wMUZQUik7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBzd2l0Y2ggKG9wKSB7Cisg
ICAgY2FzZSBWYWx1ZUFkZDoKKyAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICBtX2ppdC5hZGRE
b3VibGUodG1wMkZQUiwgdG1wMUZQUik7CisgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0g
ICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgICAgICBtX2ppdC5zdWJEb3VibGUodG1wMkZQ
UiwgdG1wMUZQUik7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEFyaXRoU3ViOgorICAg
ICAgICBtX2ppdC5zdWJEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7CisgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhNdWw6Ci0gICAgICAgICAgICBtX2ppdC5t
dWxEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFyaXRoTXVsOgorICAgICAgICBtX2ppdC5tdWxEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Cisg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAKKyAgICBKSVRDb21waWxlcjo6SnVt
cCBkb25lMjsKKyAgICAKKyAgICBpZiAob3AgPT0gVmFsdWVBZGQpIHsKKyAgICAgICAgSklUQ29t
cGlsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKKyAgICAgICAgbV9qaXQuYnJhbmNoQ29udmVy
dERvdWJsZVRvSW50MzIodG1wMUZQUiwgcmVzdWx0R1BSLCBmYWlsdXJlQ2FzZXMsIHRtcDJGUFIp
OworICAgICAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJl
c3VsdEdQUik7CisgICAgICAgIAorICAgICAgICBkb25lMiA9IG1faml0Lmp1bXAoKTsKICAgICAg
ICAgCi0gICAgICAgIGJveERvdWJsZSh0bXAxRlBSLCByZXN1bHRHUFIpOworICAgICAgICBmYWls
dXJlQ2FzZXMubGluaygmbV9qaXQpOworICAgIH0KKyAgICAgICAgCisgICAgYm94RG91YmxlKHRt
cDFGUFIsIHJlc3VsdEdQUik7CisgICAgICAgIAorICAgIGlmICghbm90TnVtYmVycy5lbXB0eSgp
KSB7CisgICAgICAgIEFTU0VSVChvcCA9PSBWYWx1ZUFkZCk7CisgICAgICAgICAgICAKKyAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZTMgPSBtX2ppdC5qdW1wKCk7CisgICAgICAgICAgICAK
KyAgICAgICAgbm90TnVtYmVycy5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICAKKyAgICAgICAg
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgc2V0dXBTdHViQXJn
dW1lbnRzKGFyZzFHUFIsIGFyZzJHUFIpOworICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBhcHBlbmRD
YWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAgbV9qaXQu
bW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgc2lsZW50
RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworCisgICAgICAgIGRvbmUzLmxpbmsoJm1faml0
KTsKICAgICB9CiAgICAgCiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgaWYgKGRvbmUyLmlz
U2V0KCkpCisgICAgICAgIGRvbmUyLmxpbmsoJm1faml0KTsKICAgICAgICAgCiAgICAganNWYWx1
ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGlsZUluZGV4LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCShyZXZpc2lvbiA5Mjc2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMywxOSArMTIzLDggQEAgRW5jb2Rl
ZEpTVmFsdWUgb3BlcmF0aW9uVmFsdWVBZGQoRXhlY1N0YQogewogICAgIEpTVmFsdWUgb3AxID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwogICAgIEpTVmFsdWUgb3AyID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDIpOwotCi0gICAgaWYgKG9wMS5pc0ludDMyKCkgJiYgb3AyLmlzSW50
MzIoKSkgewotICAgICAgICBpbnQ2NF90IHJlc3VsdDY0ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4o
b3AxLmFzSW50MzIoKSkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihvcDIuYXNJbnQzMigpKTsKLSAg
ICAgICAgaW50MzJfdCByZXN1bHQzMiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KHJlc3VsdDY0KTsK
LSAgICAgICAgaWYgKExJS0VMWShyZXN1bHQzMiA9PSByZXN1bHQ2NCkpCi0gICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdDMyKSk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoKGRvdWJsZSlyZXN1bHQ2NCkpOwotICAgIH0KICAg
ICAKLSAgICBkb3VibGUgbnVtYmVyMTsKLSAgICBkb3VibGUgbnVtYmVyMjsKLSAgICBpZiAob3Ax
LmdldE51bWJlcihudW1iZXIxKSAmJiBvcDIuZ2V0TnVtYmVyKG51bWJlcjIpKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG51bWJlcjEgKyBudW1iZXIyKSk7CisgICAg
QVNTRVJUKCFvcDEuaXNOdW1iZXIoKSB8fCAhb3AyLmlzTnVtYmVyKCkpOwogCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0FkZFNsb3dDYXNlKGV4ZWMsIG9wMSwgb3AyKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104234</attachid>
            <date>2011-08-17 14:00:49 -0700</date>
            <delta_ts>2011-08-18 02:14:07 -0700</delta_ts>
            <desc>the patch (fix review)</desc>
            <filename>valueadd_patch_4.diff</filename>
            <type>text/plain</type>
            <size>14253</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTMyMzMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDgtMTAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgbm9uLXNwZWN1bGF0aXZlIEpJVCBkb2VzIG5vdCBpbmxpbmUgdGhlIGRvdWJsZSBjYXNlIG9m
IFZhbHVlQWRkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjAyNQorCisgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBpcyBhIDEuMyUgd2luIG9uIEtyYWtlbiBvdmVyYWxsLCB3aXRoID49
OCUgc3BlZWQtdXBzIG9uIGEgZmV3CisgICAgICAgIGJlbmNobWFya3MgKGltYWdpbmctZGFya3Jv
b20sIHN0YW5mb3JkLWNyeXB0by1wYmtkZjIsCisgICAgICAgIHN0YW5mb3JkLWNyeXB0by1zaGEy
NTYtaXRlcmF0aXZlKS4gIEl0IGxvb2tzIGxpa2UgaXQgbWlnaHQgaGF2ZQorICAgICAgICBhIHNw
ZWVkLXVwIGluIFN1blNwaWRlciAodGhvdWdoIG5vdCBzdGF0aXN0aWNhbGx5IHNpZ25pZmljYW50
IG9yCisgICAgICAgIHBhcnRpY3VsYXJseSByZXByb2R1Y2libGUpIGFuZCBhIHNsaWdodCBzbG93
LWRvd24gaW4gVjggKDAuMTQlLAorICAgICAgICBub3Qgc3RhdGlzdGljYWxseSBzaWduaWZpY2Fu
dCkuICBJdCBkb2VzIHNsb3cgZG93biB2OC1jcnlwdG8gYnkKKyAgICAgICAgMS41JS4KKworICAg
ICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpK
SVRDb2RlR2VuZXJhdG9yOjppc0tub3duSW50ZWdlcik6CisgICAgICAgIChKU0M6OkRGRzo6SklU
Q29kZUdlbmVyYXRvcjo6aXNLbm93bk51bWVyaWMpOgorICAgICAgICAqIGRmZy9ERkdOb25TcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6Omtu
b3duQ29uc3RhbnRBcml0aE9wKToKKyAgICAgICAgKEpTQzo6REZHOjpOb25TcGVjdWxhdGl2ZUpJ
VDo6YmFzaWNBcml0aE9wKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisKIDIw
MTEtMDgtMTYgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3Jhc2ggaW4gU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuIHJ1bm5pbmcgaUFkLmpzIHJlZ3Jlc3Np
b24gdGVzdCBzdWl0ZSB1bmRlciBtZW1vcnkgcHJlc3N1cmUKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gOTMy
MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsNyArMzMwLDEyIEBAIGJvb2wgSklUQ29kZUdlbmVyYXRv
cjo6aXNLbm93bkludGVnZXIoTm8KICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBtX2dl
bmVyYXRpb25JbmZvW21faml0LmdyYXBoKClbbm9kZUluZGV4XS52aXJ0dWFsUmVnaXN0ZXIoKV07
CisgICAgTm9kZSYgbm9kZSA9IG1faml0LmdyYXBoKClbbm9kZUluZGV4XTsKKyAgICAKKyAgICBp
ZiAobm9kZS5oYXNJbnQzMlJlc3VsdCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAg
ICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IG1fZ2VuZXJhdGlvbkluZm9bbm9kZS52aXJ0dWFsUmVn
aXN0ZXIoKV07CiAKICAgICBEYXRhRm9ybWF0IHJlZ2lzdGVyRm9ybWF0ID0gaW5mby5yZWdpc3Rl
ckZvcm1hdCgpOwogICAgIGlmIChyZWdpc3RlckZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSkKQEAg
LTM0OSw3ICszNTQsMTIgQEAgYm9vbCBKSVRDb2RlR2VuZXJhdG9yOjppc0tub3duTnVtZXJpYyhO
bwogICAgIGlmIChpc0ludDMyQ29uc3RhbnQobm9kZUluZGV4KSB8fCBpc0RvdWJsZUNvbnN0YW50
KG5vZGVJbmRleCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgR2VuZXJhdGlvbkluZm8m
IGluZm8gPSBtX2dlbmVyYXRpb25JbmZvW21faml0LmdyYXBoKClbbm9kZUluZGV4XS52aXJ0dWFs
UmVnaXN0ZXIoKV07CisgICAgTm9kZSYgbm9kZSA9IG1faml0LmdyYXBoKClbbm9kZUluZGV4XTsK
KyAgICAKKyAgICBpZiAobm9kZS5oYXNOdW1lcmljUmVzdWx0KCkpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIAorICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tu
b2RlLnZpcnR1YWxSZWdpc3RlcigpXTsKIAogICAgIERhdGFGb3JtYXQgcmVnaXN0ZXJGb3JtYXQg
PSBpbmZvLnJlZ2lzdGVyRm9ybWF0KCk7CiAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ICE9IERhdGFG
b3JtYXROb25lKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxh
dGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b25TcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkzMjMzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2
OSwxMiArMTY5LDY4IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6Omtub3duQ29uc3RhbnRBcmkK
ICAgICAKICAgICBvdmVyZmxvdy5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgSklUQ29tcGlsZXI6
Okp1bXAgbm90TnVtYmVyOworICAgIAorICAgIC8vIGZpcnN0IGRlYWwgd2l0aCBvdmVyZmxvdyBj
YXNlCisgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUocmVnQXJnR1BSLCB0bXAyRlBSKTsK
KyAgICAKKyAgICAvLyBub3cgZGVhbCB3aXRoIG5vdC1pbnQgY2FzZSwgaWYgYXBwbGljYWJsZQor
ICAgIGlmICghaXNLbm93bkludGVnZXIocmVnQ2hpbGQpKSB7CisgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wIGhhdmVWYWx1ZSA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgCisgICAgICAgIG5vdElu
dC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICBpZiAoIWlzS25vd25OdW1lcmljKHJl
Z0NoaWxkKSkgeworICAgICAgICAgICAgQVNTRVJUKG9wID09IFZhbHVlQWRkKTsKKyAgICAgICAg
ICAgIG5vdE51bWJlciA9IG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IHJlZ0FyZ0dQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgbV9qaXQubW92ZShyZWdBcmdHUFIsIHJlc3VsdEdQUik7CisgICAg
ICAgIG1faml0LmFkZFB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJlc3VsdEdQ
Uik7CisgICAgICAgIG1faml0Lm1vdmVQdHJUb0RvdWJsZShyZXN1bHRHUFIsIHRtcDJGUFIpOwor
ICAgICAgICAKKyAgICAgICAgaGF2ZVZhbHVlLmxpbmsoJm1faml0KTsKKyAgICB9CisgICAgCisg
ICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KHJlaW50ZXJwcmV0RG91YmxlVG9JbnRwdHIodmFsdWVPZkRvdWJsZUNvbnN0YW50KGltbUNo
aWxkKSkpKSwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUocmVzdWx0R1BS
LCB0bXAxRlBSKTsKICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgY2FzZSBWYWx1ZUFkZDoKLSAgICAg
ICAgLy8gb3ZlcmZsb3cgYW5kIG5vdC1pbnQgYXJlIHRoZSBzYW1lCi0gICAgICAgIGlmICghaXNL
bm93bkludGVnZXIocmVnQ2hpbGQpKQotICAgICAgICAgICAgbm90SW50LmxpbmsoJm1faml0KTsK
KyAgICBjYXNlIEFyaXRoQWRkOgorICAgICAgICBtX2ppdC5hZGREb3VibGUodG1wMUZQUiwgdG1w
MkZQUik7CisgICAgICAgIGJyZWFrOwogICAgICAgICAKKyAgICBjYXNlIEFyaXRoU3ViOgorICAg
ICAgICBtX2ppdC5zdWJEb3VibGUodG1wMUZQUiwgdG1wMkZQUik7CisgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorICAgIAorICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmVDYXNlQ29udmVydGVkVG9J
bnQ7CisgICAgCisgICAgaWYgKG9wID09IFZhbHVlQWRkKSB7CisgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7CisgICAgICAgIG1faml0LmJyYW5jaENvbnZlcnREb3Vi
bGVUb0ludDMyKHRtcDJGUFIsIHJlc3VsdEdQUiwgZmFpbHVyZUNhc2VzLCB0bXAxRlBSKTsKKyAg
ICAgICAgbV9qaXQub3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCByZXN1bHRH
UFIpOworICAgICAgICAKKyAgICAgICAgZG9uZUNhc2VDb252ZXJ0ZWRUb0ludCA9IG1faml0Lmp1
bXAoKTsKKyAgICAgICAgCisgICAgICAgIGZhaWx1cmVDYXNlcy5saW5rKCZtX2ppdCk7CisgICAg
fQorICAgIAorICAgIG1faml0Lm1vdmVEb3VibGVUb1B0cih0bXAyRlBSLCByZXN1bHRHUFIpOwor
ICAgIG1faml0LnN1YlB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHJlc3VsdEdQ
Uik7CisgICAgICAgIAorICAgIGlmICghaXNLbm93bk51bWVyaWMocmVnQ2hpbGQpKSB7CisgICAg
ICAgIEFTU0VSVChub3ROdW1iZXIuaXNTZXQoKSk7CisgICAgICAgIEFTU0VSVChvcCA9PSBWYWx1
ZUFkZCk7CisgICAgICAgICAgICAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZUNhc2VX
YXNOdW1iZXIgPSBtX2ppdC5qdW1wKCk7CisgICAgICAgICAgICAKKyAgICAgICAgbm90TnVtYmVy
LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIAogICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRHUFIpOwogICAgICAgICBpZiAoY29tbXV0ZSkgewogICAgICAgICAgICAgbV9q
aXQubW92ZShyZWdBcmdHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CkBAIC0xODcsMzkgKzI0
MywxMyBAQCB2b2lkIE5vblNwZWN1bGF0aXZlSklUOjprbm93bkNvbnN0YW50QXJpCiAgICAgICAg
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVmFsdWVBZGQpOwogICAgICAg
ICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwogICAgICAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAgIGJyZWFrOwotCi0g
ICAgY2FzZSBBcml0aEFkZDoKLSAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICAvLyBmaXJzdCBk
ZWFsIHdpdGggb3ZlcmZsb3cgY2FzZQotICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJs
ZShyZWdBcmdHUFIsIHRtcDJGUFIpOwotICAgICAgICAKLSAgICAgICAgLy8gbm93IGRlYWwgd2l0
aCBub3QtaW50IGNhc2UsIGlmIGFwcGxpY2FibGUKLSAgICAgICAgaWYgKCFpc0tub3duSW50ZWdl
cihyZWdDaGlsZCkpIHsKLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVWYWx1ZSA9
IG1faml0Lmp1bXAoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbm90SW50LmxpbmsoJm1f
aml0KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgbV9qaXQubW92ZShyZWdBcmdHUFIsIHJl
c3VsdEdQUik7Ci0gICAgICAgICAgICB1bmJveERvdWJsZShyZXN1bHRHUFIsIHRtcDJGUFIpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBoYXZlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIo
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXREb3VibGVUb0ludHB0cih2YWx1ZU9m
RG91YmxlQ29uc3RhbnQoaW1tQ2hpbGQpKSkpLCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5t
b3ZlUHRyVG9Eb3VibGUocmVzdWx0R1BSLCB0bXAxRlBSKTsKLSAgICAgICAgaWYgKG9wID09IEFy
aXRoQWRkKQotICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHRtcDFGUFIsIHRtcDJGUFIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2ppdC5zdWJEb3VibGUodG1wMUZQUiwgdG1wMkZQ
Uik7Ci0gICAgICAgIGJveERvdWJsZSh0bXAyRlBSLCByZXN1bHRHUFIpOwotICAgICAgICBicmVh
azsKLSAgICAgICAgCi0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGRvbmVDYXNlV2FzTnVtYmVyLmxpbmsoJm1faml0KTsKICAgICB9CiAgICAgCiAg
ICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgaWYgKGRvbmVDYXNlQ29udmVydGVkVG9JbnQuaXNT
ZXQoKSkKKyAgICAgICAgZG9uZUNhc2VDb252ZXJ0ZWRUb0ludC5saW5rKCZtX2ppdCk7CiAgICAg
ICAgIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hp
bGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKIH0KQEAgLTI3OSw4NiArMzA5LDEyNSBAQCB2b2lkIE5v
blNwZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3AoTm9kCiAgICAgICAgIAogICAgIEpJVENvbXBp
bGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CiAgICAgCi0gICAgaWYgKG9wID09IFZhbHVl
QWRkKSB7Ci0gICAgICAgIGlmIChjaGlsZDFOb3RJbnQuaXNTZXQoKSkKLSAgICAgICAgICAgIGNo
aWxkMU5vdEludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgIGlmIChjaGlsZDJOb3RJbnQuaXNTZXQo
KSkKLSAgICAgICAgICAgIGNoaWxkMk5vdEludC5saW5rKCZtX2ppdCk7Ci0gICAgICAgIG92ZXJm
bG93LmxpbmsoJm1faml0KTsKLSAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdEdQUik7Ci0gICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcy
R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb25WYWx1ZUFkZCk7Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVz
dWx0R1BSKTsKLSAgICB9IGVsc2UgewotICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgaGF2
ZUZQUkFyZ3VtZW50czsKKyAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgaGF2ZUZQUkFyZ3VtZW50
czsKIAotICAgICAgICBvdmVyZmxvdy5saW5rKCZtX2ppdCk7CisgICAgb3ZlcmZsb3cubGluaygm
bV9qaXQpOwogICAgICAgICAKLSAgICAgICAgLy8gYm90aCBhcmd1bWVudHMgYXJlIGludGVnZXJz
Ci0gICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzFHUFIsIHRtcDFGUFIpOwot
ICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BSLCB0bXAyRlBSKTsKKyAg
ICAvLyBib3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMKKyAgICBtX2ppdC5jb252ZXJ0SW50MzJU
b0RvdWJsZShhcmcxR1BSLCB0bXAxRlBSKTsKKyAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJs
ZShhcmcyR1BSLCB0bXAyRlBSKTsKICAgICAgICAgCi0gICAgICAgIGhhdmVGUFJBcmd1bWVudHMu
YXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgaGF2ZUZQUkFyZ3VtZW50cy5hcHBlbmQobV9qaXQu
anVtcCgpKTsKICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMk5vdElu
dDI7CisgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IG5vdE51bWJlcnM7CiAgICAgICAgIAotICAg
ICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpKSB7Ci0gICAgICAgICAgICBj
aGlsZDFOb3RJbnQubGluaygmbV9qaXQpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMk5v
dEludDI7CisgICAgICAgIAorICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkp
IHsKKyAgICAgICAgY2hpbGQxTm90SW50LmxpbmsoJm1faml0KTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgbV9qaXQubW92ZShhcmcxR1BSLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgdW5i
b3hEb3VibGUocmVzdWx0R1BSLCB0bXAxRlBSKTsKKyAgICAgICAgaWYgKCFpc0tub3duTnVtZXJp
Yyhub2RlLmNoaWxkMSgpKSkgeworICAgICAgICAgICAgQVNTRVJUKG9wID09IFZhbHVlQWRkKTsK
KyAgICAgICAgICAgIG5vdE51bWJlcnMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9B
c3NlbWJsZXI6Olplcm8sIGFyZzFHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcikp
OworICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIGNoaWxkMSBpcyBjb252
ZXJ0ZWQgdG8gYSBkb3VibGU7IGNoaWxkMiBtYXkgZWl0aGVyIGJlIGFuIGludCBvcgotICAgICAg
ICAgICAgLy8gYSBib3hlZCBkb3VibGUKKyAgICAgICAgbV9qaXQubW92ZShhcmcxR1BSLCByZXN1
bHRHUFIpOworICAgICAgICB1bmJveERvdWJsZShyZXN1bHRHUFIsIHRtcDFGUFIpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQor
ICAgICAgICAvLyBjaGlsZDEgaXMgY29udmVydGVkIHRvIGEgZG91YmxlOyBjaGlsZDIgbWF5IGVp
dGhlciBiZSBhbiBpbnQgb3IKKyAgICAgICAgLy8gYSBib3hlZCBkb3VibGUKKyAgICAgICAgICAg
IAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKSB7CisgICAgICAg
ICAgICBpZiAoaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIoKSkpCiAgICAgICAgICAgICAgICAg
Y2hpbGQyTm90SW50MiA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFy
ZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQob3AgPT0gVmFsdWVBZGQpOworICAgICAgICAgICAg
ICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMklzSW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbm90TnVtYmVycy5hcHBlbmQobV9qaXQuYnJhbmNo
VGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyKSk7CisgICAgICAgICAgICAgICAgY2hpbGQyTm90SW50MiA9IG1faml0Lmp1
bXAoKTsKKyAgICAgICAgICAgICAgICBjaGlsZDJJc0ludC5saW5rKCZtX2ppdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gY2hpbGQgMiBp
cyBkZWZpbml0ZWx5IGFuIGludGVnZXIKLSAgICAgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRv
RG91YmxlKGFyZzJHUFIsIHRtcDJGUFIpOworICAgICAgICAvLyBjaGlsZCAyIGlzIGRlZmluaXRl
bHkgYW4gaW50ZWdlcgorICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BS
LCB0bXAyRlBSKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5h
cHBlbmQobV9qaXQuanVtcCgpKTsKLSAgICAgICAgfQorICAgICAgICBoYXZlRlBSQXJndW1lbnRz
LmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmICghaXNL
bm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgICAgIGNoaWxkMk5vdEludC5s
aW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAvLyBjaGlsZDEgaXMgZGVmaW5pdGVseSBhbiBpbnRl
Z2VyLCBhbmQgY2hpbGQgMiBpcyBkZWZpbml0ZWx5IG5vdAorICAgIGlmICghaXNLbm93bkludGVn
ZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAgICAgY2hpbGQyTm90SW50LmxpbmsoJm1faml0KTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUoYXJn
MUdQUiwgdG1wMUZQUik7CisgICAgICAgIGlmICghaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIo
KSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChvcCA9PSBWYWx1ZUFkZCk7CisgICAgICAgICAgICBu
b3ROdW1iZXJzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJv
LCBhcmcyR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgfQog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoY2hpbGQyTm90SW50Mi5pc1NldCgpKQotICAg
ICAgICAgICAgICAgIGNoaWxkMk5vdEludDIubGluaygmbV9qaXQpOworICAgICAgICAvLyBjaGls
ZDEgaXMgZGVmaW5pdGVseSBhbiBpbnRlZ2VyLCBhbmQgY2hpbGQgMiBpcyBkZWZpbml0ZWx5IG5v
dAogICAgICAgICAgICAgCi0gICAgICAgICAgICBtX2ppdC5tb3ZlKGFyZzJHUFIsIHJlc3VsdEdQ
Uik7Ci0gICAgICAgICAgICB1bmJveERvdWJsZShyZXN1bHRHUFIsIHRtcDJGUFIpOwotICAgICAg
ICB9CisgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzFHUFIsIHRtcDFGUFIp
OworICAgICAgICAgICAgCisgICAgICAgIGlmIChjaGlsZDJOb3RJbnQyLmlzU2V0KCkpCisgICAg
ICAgICAgICBjaGlsZDJOb3RJbnQyLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIAorICAgICAg
ICBtX2ppdC5tb3ZlKGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIHVuYm94RG91YmxlKHJl
c3VsdEdQUiwgdG1wMkZQUik7CisgICAgfQogICAgICAgICAKLSAgICAgICAgaGF2ZUZQUkFyZ3Vt
ZW50cy5saW5rKCZtX2ppdCk7CisgICAgaGF2ZUZQUkFyZ3VtZW50cy5saW5rKCZtX2ppdCk7CiAg
ICAgICAgIAotICAgICAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgICAgIGNhc2UgQXJpdGhBZGQ6Ci0g
ICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBWYWx1ZUFkZDoKKyAgICBjYXNl
IEFyaXRoQWRkOgorICAgICAgICBtX2ppdC5hZGREb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Cisg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAg
ICAgICAgICBtX2ppdC5zdWJEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFyaXRoU3ViOgorICAgICAgICBtX2ppdC5zdWJEb3VibGUodG1wMkZQ
UiwgdG1wMUZQUik7CisgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
QXJpdGhNdWw6Ci0gICAgICAgICAgICBtX2ppdC5tdWxEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEFyaXRoTXVsOgorICAgICAgICBtX2ppdC5t
dWxEb3VibGUodG1wMkZQUiwgdG1wMUZQUik7CisgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKyAgICAKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lQ2FzZUNvbnZlcnRlZFRvSW50Owor
ICAgIAorICAgIGlmIChvcCA9PSBWYWx1ZUFkZCkgeworICAgICAgICBKSVRDb21waWxlcjo6SnVt
cExpc3QgZmFpbHVyZUNhc2VzOworICAgICAgICBtX2ppdC5icmFuY2hDb252ZXJ0RG91YmxlVG9J
bnQzMih0bXAxRlBSLCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywgdG1wMkZQUik7CisgICAgICAg
IG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcmVzdWx0R1BSKTsK
KyAgICAgICAgCisgICAgICAgIGRvbmVDYXNlQ29udmVydGVkVG9JbnQgPSBtX2ppdC5qdW1wKCk7
CiAgICAgICAgIAotICAgICAgICBib3hEb3VibGUodG1wMUZQUiwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgZmFpbHVyZUNhc2VzLmxpbmsoJm1faml0KTsKKyAgICB9CisgICAgICAgIAorICAgIGJveERv
dWJsZSh0bXAxRlBSLCByZXN1bHRHUFIpOworICAgICAgICAKKyAgICBpZiAoIW5vdE51bWJlcnMu
ZW1wdHkoKSkgeworICAgICAgICBBU1NFUlQob3AgPT0gVmFsdWVBZGQpOworICAgICAgICAgICAg
CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmVDYXNlV2FzTnVtYmVyID0gbV9qaXQuanVt
cCgpOworICAgICAgICAgICAgCisgICAgICAgIG5vdE51bWJlcnMubGluaygmbV9qaXQpOworICAg
ICAgICAgICAgCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Cisg
ICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgbV9q
aXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKKyAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25WYWx1ZUFk
ZCk7CisgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQ
Uik7CisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKworICAgICAg
ICBkb25lQ2FzZVdhc051bWJlci5saW5rKCZtX2ppdCk7CiAgICAgfQogICAgIAogICAgIGRvbmUu
bGluaygmbV9qaXQpOworICAgIGlmIChkb25lQ2FzZUNvbnZlcnRlZFRvSW50LmlzU2V0KCkpCisg
ICAgICAgIGRvbmVDYXNlQ29udmVydGVkVG9JbnQubGluaygmbV9qaXQpOwogICAgICAgICAKICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgsIFVzZUNoaWxkcmVuQ2Fs
bGVkRXhwbGljaXRseSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDkzMjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDE5ICsxMjMsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhCiB7CiAgICAgSlNWYWx1
ZSBvcDEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CiAgICAgSlNWYWx1ZSBvcDIgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7Ci0KLSAgICBpZiAob3AxLmlzSW50MzIoKSAmJiBv
cDIuaXNJbnQzMigpKSB7Ci0gICAgICAgIGludDY0X3QgcmVzdWx0NjQgPSBzdGF0aWNfY2FzdDxp
bnQ2NF90PihvcDEuYXNJbnQzMigpKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wMi5hc0ludDMy
KCkpOwotICAgICAgICBpbnQzMl90IHJlc3VsdDMyID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ocmVz
dWx0NjQpOwotICAgICAgICBpZiAoTElLRUxZKHJlc3VsdDMyID09IHJlc3VsdDY0KSkKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0MzIpKTsKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigoZG91YmxlKXJlc3VsdDY0KSk7Ci0g
ICAgfQogICAgIAotICAgIGRvdWJsZSBudW1iZXIxOwotICAgIGRvdWJsZSBudW1iZXIyOwotICAg
IGlmIChvcDEuZ2V0TnVtYmVyKG51bWJlcjEpICYmIG9wMi5nZXROdW1iZXIobnVtYmVyMikpCi0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobnVtYmVyMSArIG51bWJlcjIp
KTsKKyAgICBBU1NFUlQoIW9wMS5pc051bWJlcigpIHx8ICFvcDIuaXNOdW1iZXIoKSk7CiAKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkU2xvd0Nhc2UoZXhlYywgb3AxLCBvcDIpKTsK
IH0K
</data>
<flag name="commit-queue"
          id="100005"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>