<?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>147761</bug_id>
          
          <creation_ts>2015-08-06 18:08:04 -0700</creation_ts>
          <short_desc>Add MacroAssembler::patchableBranch64 and fix ARM64&apos;s patchableBranchPtr</short_desc>
          <delta_ts>2015-08-07 10:32:00 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115576</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-06 18:08:04 -0700</bug_when>
    <thetext>Yup. Currently, there&apos;s no patchableBranch64 helper function in MacroAssembler; it can reduce the following

cmp some condition
jump_ok pass
patchable jump
pass:

to

cmp some condition
patchable jump_ng

There&apos;s patchableBranchPtr in MacroAssembler under 64bit environments.
However, the current MacroAssemblerARM64&apos;s patchableBranchPtr seems wrong.

2344     PatchableJump patchableBranchPtr(RelationalCondition cond, Address left, TrustedImmPtr right = TrustedImmPtr(0))
2345     {
2346         m_makeJumpPatchable = true;
2347         Jump result = branch32(cond, left, TrustedImm32(right));
2348         m_makeJumpPatchable = false;
2349         return PatchableJump(result);
2350     }

It truncate the pointer to imm32. (And there&apos;s no patchableBranchPtr user in WebKit currently)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115609</commentid>
    <comment_count>1</comment_count>
      <attachid>258437</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-06 20:17:53 -0700</bug_when>
    <thetext>Created attachment 258437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115611</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-06 20:22:59 -0700</bug_when>
    <thetext>The fix becomes pretty small :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115769</commentid>
    <comment_count>3</comment_count>
      <attachid>258437</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-08-07 09:08:55 -0700</bug_when>
    <thetext>Comment on attachment 258437
Patch

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

r=me

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:760
&gt; +    PatchableJump patchableBranch64(RelationalCondition cond, RegisterID reg, TrustedImm64 imm = TrustedImm64(0))

I think the TrustedImm64 arg should not have a default value.  This conditional branch requires a comparison between 2 values.  It would read weird at the call site if of the values being compared is not specified.  Note: I see that compare64(), branch64(), and branchPtr() emitters all do not allow a default value for the argument as well.  The ARM64 version of this patchableBranch64() also do not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115797</commentid>
    <comment_count>4</comment_count>
      <attachid>258437</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-07 10:28:16 -0700</bug_when>
    <thetext>Comment on attachment 258437
Patch

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

Thank you for your review.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:760
&gt;&gt; +    PatchableJump patchableBranch64(RelationalCondition cond, RegisterID reg, TrustedImm64 imm = TrustedImm64(0))
&gt; 
&gt; I think the TrustedImm64 arg should not have a default value.  This conditional branch requires a comparison between 2 values.  It would read weird at the call site if of the values being compared is not specified.  Note: I see that compare64(), branch64(), and branchPtr() emitters all do not allow a default value for the argument as well.  The ARM64 version of this patchableBranch64() also do not.

Make sense. I&apos;ve dropped it. And I&apos;ve dropped the default arg in ARM64 patchableBranchPtr as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115798</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-07 10:32:00 -0700</bug_when>
    <thetext>Committed r188135: &lt;http://trac.webkit.org/changeset/188135&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258437</attachid>
            <date>2015-08-06 20:17:53 -0700</date>
            <delta_ts>2015-08-07 10:28:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147761-20150806201743.patch</filename>
            <type>text/plain</type>
            <size>7178</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MDIzNTc0ODhkZTYwM2ZiMDdlODRiMzAyZTNmYjNhZWZjMjBjZGJiLi45YjdjMmJhYzM2ODM3NTli
N2Y3MjRhYzk3NDc4ZDQ1ODIwYTQzNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyOCBAQAorMjAxNS0wOC0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgTWFjcm9Bc3NlbWJsZXI6OnBhdGNoYWJsZUJyYW5jaDY0IGFu
ZCBmaXggQVJNNjQncyBwYXRjaGFibGVCcmFuY2hQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBNYWNyb0Fzc2Vt
Ymxlcjo6cGF0Y2hhYmxlQnJhbmNoNjQgaW4gNjRiaXQgZW52aXJvbm1lbnRzLgorICAgICAgICBB
bmQgZml4IHRoZSBleGlzdGluZyBNYWNyb0Fzc2VtYmxlckFSTTY0OjpwYXRjaGFibGVCcmFuY2hQ
dHIsIGJlZm9yZSB0aGlzIHBhdGNoLAorICAgICAgICBpdCB0cnVuY2F0ZXMgdGhlIGltbWVkaWF0
ZSBwb2ludGVyIGludG8gdGhlIDMyYml0IGltbWVkaWF0ZS4KKyAgICAgICAgQW5kIHVzZSBwYXRj
aGFibGVCcmFuY2g2NCBpbiB0aGUgYmFzZWxpbmUgSklUIHVuZGVyIHRoZSBKU1ZBTFVFNjQgY29u
ZmlndXJhdGlvbi4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnBhdGNoYWJsZUJyYW5jaFB0cik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnBhdGNoYWJsZUJyYW5jaDY0KToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnBhdGNoYWJsZUJyYW5jaDY0KToKKyAgICAgICAgKiBq
aXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcik6CisgICAgICAgICogaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9i
eV92YWwpOgorCiAyMDE1LTA4LTA2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIEludHJvZHVjZSBnZXRfYnlfaWQgbGlrZSBJQyBpbnRvIGdldF9ieV92
YWwgd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBTdHJpbmcgb3IgU3ltYm9sCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0ODAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRl
eCA2NjFmYzBhZDhmZDBlN2U3NjFiYjI2OGRhYmZkNGE4NGNjODQwY2MzLi41ZmMyYzQzNmY4YWU0
ZjM5OWI3YjE3MTkzZGZkNTFjNmVmZDJhYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjM0NCw3ICsyMzQ0
LDcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJBUk02NCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPEFSTTY0QXNzZW1ibGVyLCBNYWNyb0EKICAgICBQYXRjaGFibGVKdW1wIHBhdGNoYWJs
ZUJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFkZHJlc3MgbGVmdCwgVHJ1c3Rl
ZEltbVB0ciByaWdodCA9IFRydXN0ZWRJbW1QdHIoMCkpCiAgICAgewogICAgICAgICBtX21ha2VK
dW1wUGF0Y2hhYmxlID0gdHJ1ZTsKLSAgICAgICAgSnVtcCByZXN1bHQgPSBicmFuY2gzMihjb25k
LCBsZWZ0LCBUcnVzdGVkSW1tMzIocmlnaHQpKTsKKyAgICAgICAgSnVtcCByZXN1bHQgPSBicmFu
Y2g2NChjb25kLCBsZWZ0LCBUcnVzdGVkSW1tNjQocmlnaHQpKTsKICAgICAgICAgbV9tYWtlSnVt
cFBhdGNoYWJsZSA9IGZhbHNlOwogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQp
OwogICAgIH0KQEAgLTIzNjUsNiArMjM2NSwyMiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTTY0
IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QVJNNjRBc3NlbWJsZXIsIE1hY3JvQQog
ICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAorICAgIFBhdGNo
YWJsZUp1bXAgcGF0Y2hhYmxlQnJhbmNoNjQoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdp
c3RlcklEIHJlZywgVHJ1c3RlZEltbTY0IGltbSkKKyAgICB7CisgICAgICAgIG1fbWFrZUp1bXBQ
YXRjaGFibGUgPSB0cnVlOworICAgICAgICBKdW1wIHJlc3VsdCA9IGJyYW5jaDY0KGNvbmQsIHJl
ZywgaW1tKTsKKyAgICAgICAgbV9tYWtlSnVtcFBhdGNoYWJsZSA9IGZhbHNlOworICAgICAgICBy
ZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOworICAgIH0KKworICAgIFBhdGNoYWJsZUp1bXAg
cGF0Y2hhYmxlQnJhbmNoNjQoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxl
ZnQsIFJlZ2lzdGVySUQgcmlnaHQpCisgICAgeworICAgICAgICBtX21ha2VKdW1wUGF0Y2hhYmxl
ID0gdHJ1ZTsKKyAgICAgICAgSnVtcCByZXN1bHQgPSBicmFuY2g2NChjb25kLCBsZWZ0LCByaWdo
dCk7CisgICAgICAgIG1fbWFrZUp1bXBQYXRjaGFibGUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IFBhdGNoYWJsZUp1bXAocmVzdWx0KTsKKyAgICB9CisKICAgICBQYXRjaGFibGVKdW1wIHBhdGNo
YWJsZUJyYW5jaFB0cldpdGhQYXRjaChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFkZHJlc3Mg
bGVmdCwgRGF0YUxhYmVsUHRyJiBkYXRhTGFiZWwsIFRydXN0ZWRJbW1QdHIgaW5pdGlhbFJpZ2h0
VmFsdWUgPSBUcnVzdGVkSW1tUHRyKDApKQogICAgIHsKICAgICAgICAgbV9tYWtlSnVtcFBhdGNo
YWJsZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggOTIwZGU3NGNiY2E3ZTE5YzBlOWE3NjZiNDIz
NWIyYWY2NTgzZDdkMi4uYmQ3MTE4YmRmN2RlODNiOWVkOGZkMGY2ZTFhMmU5NGQ1ODJhNzNkOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaApAQCAtNzU2LDYgKzc1NiwxNiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4
Nl82NCA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAgICAgICAgIHN0b3JlNjQo
c2NyYXRjaFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0K
KworICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hhYmxlQnJhbmNoNjQoUmVsYXRpb25hbENvbmRpdGlv
biBjb25kLCBSZWdpc3RlcklEIHJlZywgVHJ1c3RlZEltbTY0IGltbSA9IFRydXN0ZWRJbW02NCgw
KSkKKyAgICB7CisgICAgICAgIHJldHVybiBQYXRjaGFibGVKdW1wKGJyYW5jaDY0KGNvbmQsIHJl
ZywgaW1tKSk7CisgICAgfQorCisgICAgUGF0Y2hhYmxlSnVtcCBwYXRjaGFibGVCcmFuY2g2NChS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdo
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBQYXRjaGFibGVKdW1wKGJyYW5jaDY0KGNvbmQsIGxl
ZnQsIHJpZ2h0KSk7CisgICAgfQogICAgIAogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpicmFuY2g4OwogICAgIEp1bXAgYnJhbmNoOChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQs
IEFic29sdXRlQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1tMzIgcmlnaHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAppbmRleCA4Y2EwODU3ZWE3ZmMyMTM2OTFiNjdiZTM2MWVjNzE2MDgzOGFiYzc0Li45
MDEwOGFmMTVkZWI3ZDA2YTNiNGI3NWMzZWY5ZTFmMWJhOWQ1YTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKQEAgLTQ1MCw2ICs0NTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVt
cCBlbWl0SnVtcElmSW1tZWRpYXRlSW50ZWdlcihSZWdpc3RlcklEKTsKICAgICAgICAgSnVtcCBl
bWl0SnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihSZWdpc3RlcklEKTsKICAgICAgICAgSnVtcCBl
bWl0SnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcnMoUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CisgICAgICAgIFBhdGNoYWJsZUp1bXAgZW1pdFBhdGNoYWJsZUp1bXBJZk5vdElt
bWVkaWF0ZUludGVnZXIoUmVnaXN0ZXJJRCk7CiAgICAgICAgIHZvaWQgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SW1tZWRpYXRlSW50ZWdlcihSZWdpc3RlcklEKTsKICAgICAgICAgdm9pZCBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVOdW1iZXIoUmVnaXN0ZXJJRCk7CiAgICAgICAgIHZvaWQg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcnMoUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmlu
ZGV4IGFjZDhjODk1ZmVkZGNmMGFjMjM1NDRjNjY2YzVkYjkxMzMxYzZlNDcuLjVkNjg2OTAwODFj
OTk2ZDdlMzNiZjNiZDI1ZGNjNThiMDMwZjdkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCkBAIC0xMjA4LDYgKzEyMDgsMTEgQEAgQUxXQVlTX0lOTElORSBKSVQ6Okp1
bXAgSklUOjplbWl0SnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihSZWdpc3RlcklEIHJlZykKICAg
ICByZXR1cm4gYnJhbmNoNjQoQmVsb3csIHJlZywgdGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKIH0K
IAorQUxXQVlTX0lOTElORSBKSVQ6OlBhdGNoYWJsZUp1bXAgSklUOjplbWl0UGF0Y2hhYmxlSnVt
cElmTm90SW1tZWRpYXRlSW50ZWdlcihSZWdpc3RlcklEIHJlZykKK3sKKyAgICByZXR1cm4gcGF0
Y2hhYmxlQnJhbmNoNjQoQmVsb3csIHJlZywgdGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKK30KKwog
QUxXQVlTX0lOTElORSBKSVQ6Okp1bXAgSklUOjplbWl0SnVtcElmTm90SW1tZWRpYXRlSW50ZWdl
cnMoUmVnaXN0ZXJJRCByZWcxLCBSZWdpc3RlcklEIHJlZzIsIFJlZ2lzdGVySUQgc2NyYXRjaCkK
IHsKICAgICBtb3ZlKHJlZzEsIHNjcmF0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCA3M2RlYjk2YjAwMjhkMzJlZmI3YWMxNzky
NjliNTUxZWQyY2FiOWMxLi5hMDBjY2IyNWU1Mjk3ODc5ZDI2MzQ1M2I2NDZiYjBlMzdkNTk2YmVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cApAQCAtMTA0LDE4ICsxMDQsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwocmVnVDAsIGJhc2UpOwogCi0gICAgLy8gRklYTUU6IHBhdGNoYWJsZUJyYW5jaDY0IGNv
dWxkIHJlZHVjZSB0aGUgZm9sbG93aW5nIDIganVtcHMgaW50byAxLiBMaWtlLAotICAgIC8vCi0g
ICAgLy8gUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IGVtaXRKdW1wSWZOb3RJbW1lZGlhdGVJbnRl
Z2VyKHJlZ1QxKTsKLSAgICAvLwotICAgIC8vIFRvIHVzZSBwYXRjaGFibGVCcmFuY2g2NCwgd2Ug
bmVlZCB0byBmaXggdGhlIGV4aXN0aW5nIHBhdGNoYWJsZUJyYW5jaFB0ciBpbiBBUk02NAotICAg
IC8vIGFuZCBpbnRyb2R1Y2UgcGF0Y2hhYmxlQnJhbmNoNjQgaGVscGVyIGZ1bmN0aW9uIGZvciA2
NGJpdCBlbnZpcm9ubWVudHMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Nzc2MQotICAgIEp1bXAgaXNJbmRleCA9IGVtaXRKdW1wSWZJbW1lZGlhdGVJ
bnRlZ2VyKHJlZ1QxKTsKLSAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlSnVt
cCgpOworICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBlbWl0UGF0Y2hhYmxlSnVtcElmTm90
SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogCi0g
ICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgaW5jb3Jy
ZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0aGUgaG90IHBhdGggdGhp
cyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYgaXQgd2Fz
IGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBhbHdheXMg
ZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1fdmVjdG9yTGVuZ3RoIGlz
IGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwgYWxsb2NhdGlvbgo=
</data>
<flag name="review"
          id="283613"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>