<?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>150712</bug_id>
          
          <creation_ts>2015-10-29 22:20:37 -0700</creation_ts>
          <short_desc>The BinarySnippetRegisterContext needs to copy the result back from the scratch register.</short_desc>
          <delta_ts>2015-11-11 23:18:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>150936</dependson>
          <blocked>150562</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137808</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-29 22:20:37 -0700</bug_when>
    <thetext>If the BinarySnippetRegisterContext had re-assigned the result register to a scratch before emitting the snippet, it needs to copy the result back from the scratch after the snippet is done.

This fixes the cdjs-tests.yaml/main.js.ftl failure reported in https://bugs.webkit.org/show_bug.cgi?id=150687.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138487</commentid>
    <comment_count>1</comment_count>
      <attachid>264565</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-02 00:23:58 -0800</bug_when>
    <thetext>Created attachment 264565
the patch.

Still need to run some tests on ARM64 but I think this patch should be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138595</commentid>
    <comment_count>2</comment_count>
      <attachid>264565</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-02 10:13:49 -0800</bug_when>
    <thetext>Comment on attachment 264565
the patch.

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

I&apos;ll say r=me because I think this code is an improvement, but I have some concerns.

&gt; Source/JavaScriptCore/ftl/FTLCompile.cpp:350
&gt;          if (!inputRegisters.get(m_result) &amp;&amp; reservedRegisters.get(m_result))
&gt;              m_result = m_allocator.allocateScratchGPR();

Please revert whitespace change.

I think I see a small bug or two here: If m_result *is* an input register and *is* reserved (add rNumberTag, rNumberTag, r0), we will not change it to a scratch register. Therefore, our snippet code will trample a reserved register (rNumberTag) when it writes the result.

Perhaps it is harmless to trample a reserved register when writing the result because, after writing the result, we will not execute any more MacroAssembler code that might depend on a reserved register. But if that is so, then we should never allocate a scratch register for the result.

So, either this code needs to be removed, or it needs to change to remove the inputRegisters condition.

Relatedly, if m_left is *equal to* m_right and *is* reserved (add r0, rNumberTag, rNumberTag), we will unnecessarily copy it twice. In both cases, I think we want code that says &quot;If you have copied this register already, please set me to the copy&quot;. Something like:

if (reservedRegisters.get(m_right)) {
    if (m_right == m_origLeft)
        m_right = m_left;
    else
        m_right = m_allocator.allocateScratchGPR();
}

if (reservedRegisters.get(m_result)) {
    if (m_result == m_origLeft)
        m_result = m_left;
    else if (m_result == m_origRight)
        m_result = m_right;
    else
        m_result = m_allocator.allocateScratchGPR();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138706</commentid>
    <comment_count>3</comment_count>
      <attachid>264565</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-02 14:38:04 -0800</bug_when>
    <thetext>Comment on attachment 264565
the patch.

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

&gt;&gt; Source/JavaScriptCore/ftl/FTLCompile.cpp:350
&gt;&gt;              m_result = m_allocator.allocateScratchGPR();
&gt; 
&gt; Please revert whitespace change.
&gt; 
&gt; I think I see a small bug or two here: If m_result *is* an input register and *is* reserved (add rNumberTag, rNumberTag, r0), we will not change it to a scratch register. Therefore, our snippet code will trample a reserved register (rNumberTag) when it writes the result.
&gt; 
&gt; Perhaps it is harmless to trample a reserved register when writing the result because, after writing the result, we will not execute any more MacroAssembler code that might depend on a reserved register. But if that is so, then we should never allocate a scratch register for the result.
&gt; 
&gt; So, either this code needs to be removed, or it needs to change to remove the inputRegisters condition.
&gt; 
&gt; Relatedly, if m_left is *equal to* m_right and *is* reserved (add r0, rNumberTag, rNumberTag), we will unnecessarily copy it twice. In both cases, I think we want code that says &quot;If you have copied this register already, please set me to the copy&quot;. Something like:
&gt; 
&gt; if (reservedRegisters.get(m_right)) {
&gt;     if (m_right == m_origLeft)
&gt;         m_right = m_left;
&gt;     else
&gt;         m_right = m_allocator.allocateScratchGPR();
&gt; }
&gt; 
&gt; if (reservedRegisters.get(m_result)) {
&gt;     if (m_result == m_origLeft)
&gt;         m_result = m_left;
&gt;     else if (m_result == m_origRight)
&gt;         m_result = m_right;
&gt;     else
&gt;         m_result = m_allocator.allocateScratchGPR();
&gt; }

The last thing the snippets will do is to box the result.  Boxing may require the use of the TagTypeNumber register.  So, I&apos;ll stick with keeping the result separate from the reserved registers.

I&apos;ll update the BinarySnippetRegisterContext to handle cases where the operands and result may be aliases of the same register(s).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138734</commentid>
    <comment_count>4</comment_count>
      <attachid>264639</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-02 15:35:05 -0800</bug_when>
    <thetext>Created attachment 264639
patch 2: added optimization to support aliased operands and result registers.

This patch has passed the JSC tests on X86_64.  However, on ARM64, I&apos;m seeing some failures.  Now in the process of checking if those are pre-existing failures or if they are due to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138736</commentid>
    <comment_count>5</comment_count>
      <attachid>264641</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-02 15:37:38 -0800</bug_when>
    <thetext>Created attachment 264641
svn up&apos;ed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139636</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-11-05 09:45:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/23413682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139641</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-05 10:06:31 -0800</bug_when>
    <thetext>The failure on ARM64 is due to a latent bug which I&apos;ll investigate here: https://bugs.webkit.org/show_bug.cgi?id=150936.  I don&apos;t think that bug is related to the op_sub implementation at all, but rather due to the fact that we can now FTL compile a certain function. 

Hence, this patch is ready for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140121</commentid>
    <comment_count>8</comment_count>
      <attachid>264641</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-06 17:23:01 -0800</bug_when>
    <thetext>Comment on attachment 264641
svn up&apos;ed

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141397</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-11-11 23:18:04 -0800</bug_when>
    <thetext>Thanks.  Landed in r192353: &lt;http://trac.webkit.org/r192353&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264565</attachid>
            <date>2015-11-02 00:23:58 -0800</date>
            <delta_ts>2015-11-02 15:35:05 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-150712.patch</filename>
            <type>text/plain</type>
            <size>8219</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxODc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTExLTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCBuZWVkcyB0byBjb3B5IHRoZSByZXN1bHQg
YmFjayBmcm9tIHRoZSBzY3JhdGNoIHJlZ2lzdGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNvbnRl
eHQgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNoCisgICAg
ICAgIGJlZm9yZSBlbWl0dGluZyB0aGUgc25pcHBldCwgaXQgbmVlZHMgdG8gY29weSB0aGUgcmVz
dWx0IGJhY2sgZnJvbSB0aGUgc2NyYXRjaCBhZnRlcgorICAgICAgICB0aGUgc25pcHBldCBpcyBk
b25lLgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhlIGNkanMtdGVzdHMueWFtbC9tYWluLmpzLmZ0
bCBmYWlsdXJlIHJlcG9ydGVkIGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTA2ODcuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgIC0gQWRkZWQgSklUU3Vi
R2VuZXJhdG9yLmggdG8gdGhlc2UgcHJvamVjdCBmaWxlcyBmb3IgY29tcGxldGVuZXNzLgorCisg
ICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2Fu
Q29tcGlsZSk6CisgICAgICAgIC0gUmUtZW5hYmxlIEFyaXRoU3ViIGhhbmRsaW5nIG9mIFVudHlw
ZWRVc2Ugb3BlcmFuZHMuCisKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisKKyAgICAg
ICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXpl
T2ZBcml0aFN1Yik6CisgICAgICAgIC0gQWRqdXN0ZWQgSUMgc2l6ZXMgdG8gYWNjb3VudCBmb3Ig
dGhlIHNuaXBwZXQgY2hhbmdlcy4KKwogMjAxNS0xMS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBTdXBwb3J0IEdlbmVyYXRvciBTeW50
YXgKQEAgLTM0NjIsNyArMzQ5MCw2IEBACiAgICAgICAgIChKU0M6OkdDQXdhcmVKSVRTdHViUm91
dGluZVdpdGhFeGNlcHRpb25IYW5kbGVyOjp+R0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4Y2Vw
dGlvbkhhbmRsZXIpOiBEZWxldGVkLgogICAgICAgICAqIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRp
bmUuaDoKIAotPj4+Pj4+PiAucjE5MTM1MQogMjAxNS0xMC0yMCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBidWlsZCBieSBk
aXNhYmxpbmcgTUFDX0dFU1RVUkVfRVZFTlRTIG9uIDEwLjkgYW5kIDEwLjEwCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE5MTg1MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0NjMsNiArMTQ2Myw3IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUSW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caml0XEpJVE9wZXJhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGppdFxKSVRTdHViUm91dGluZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aml0XEpJVFN1YkdlbmVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0
XEpJVFRodW5rcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0XEpJVFRvREZH
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxqaXRcSklUV3JpdGVCYXJyaWVyLmgiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxOTE4NTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTI1MTAsNiArMjUxMCw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YlJvdXRpbmUuaCI+CiAgICAgICA8
RmlsdGVyPmppdDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caml0XEpJVFN1YkdlbmVyYXRvci5oIj4KKyAgICAgIDxGaWx0ZXI+aml0PC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklU
VGh1bmtzLmgiPgogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJ
KHJldmlzaW9uIDE5MTg1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBTdHJDYXQ6CiAgICAgY2FzZSBB
cml0aEFkZDoKICAgICBjYXNlIEFyaXRoQ2x6MzI6CisgICAgY2FzZSBBcml0aFN1YjoKICAgICBj
YXNlIEFyaXRoTXVsOgogICAgIGNhc2UgQXJpdGhEaXY6CiAgICAgY2FzZSBBcml0aE1vZDoKQEAg
LTIxMSwxMCArMjEyLDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUq
IAogICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgaWYgKG5vZGUtPnJlc3Vs
dCgpID09IE5vZGVSZXN1bHRKUykKLSAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwot
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSWRlbnRpdHk6CiAgICAgICAgIC8vIE5vIGJhY2tl
bmQgaGFuZGxlcyB0aGlzIGJlY2F1c2UgaXQgd2lsbCBiZSBvcHRpbWl6ZWQgb3V0LiBCdXQgd2Ug
bWF5IGNoZWNrCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHJldmlzaW9uIDE5MTg1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGls
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwOSwxMyArMzA5LDE3IEBAIHN0YXRpYyB2b2lkIGdl
bmVyYXRlQ2hlY2tJbklDRmFzdFBhdGgoCiBjbGFzcyBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250
ZXh0IHsKICAgICAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHNodWZmbGUgcmVn
aXN0ZXJzIHRvIGdldCB0aGVtIGludG8gdGhlIHN0YXRlCiAgICAgLy8gdGhhdCBiYXNlbGluZSBj
b2RlIGV4cGVjdHMgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBiYXNlbGluZSBzbmlwcGV0IGdlbmVy
YXRvcnMgaS5lLgotICAgIC8vICAgIDEuIGVuc3VyZSB0aGF0IHRoZSBpbnB1dHMgYW5kIG91dHB1
dHMgYXJlIG5vdCBpbiB0YWcgb3Igc2NyYXRjaCByZWdpc3RlcnMuCi0gICAgLy8gICAgMi4gdGFn
IHJlZ2lzdGVycyBhcmUgbG9hZGVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlcy4KKyAgICAvLyAg
ICAxLiBFbnN1cmUgdGhhdCB0aGUgaW5wdXRzIGFuZCBvdXRwdXQgYXJlIG5vdCBpbiByZXNlcnZl
ZCByZWdpc3RlcnMgKHdoaWNoCisgICAgLy8gICAgICAgaW5jbHVkZSB0aGUgdGFnIHJlZ2lzdGVy
cykuIFRoZSBzbmlwcGV0IHdpbGwgdXNlIHRoZXNlIHJlc2VydmVkIHJlZ2lzdGVycy4KKyAgICAv
LyAgICAgICBIZW5jZSwgd2UgbmVlZCB0byBwdXQgdGhlIGlucHV0cyBhbmQgb3V0cHV0IGluIG90
aGVyIHNjcmF0Y2ggcmVnaXN0ZXJzLgorICAgIC8vICAgIDIuIFRhZyByZWdpc3RlcnMgYXJlIGxv
YWRlZCB3aXRoIHRoZSBleHBlY3RlZCB2YWx1ZXMuCiAgICAgLy8KLSAgICAvLyBXZSBhbHNvIG5l
ZWQgdG86Ci0gICAgLy8gICAgMS4gcmVzdG9yZSB0aGUgaW5wdXQgYW5kIHRhZyByZWdpc3RlcnMg
dG8gdGhlIHZhbHVlcyB0aGF0IExMVk0gcHV0IHRoZXJlIG9yaWdpbmFsbHkuCi0gICAgLy8gICAg
Mi4gdGhhdCBpcyBleGNlcHQgd2hlbiBvbmUgb2YgdGhlIGlucHV0IHJlZ2lzdGVycyBpcyBhbHNv
IHRoZSByZXN1bHQgcmVnaXN0ZXIuCi0gICAgLy8gICAgICAgSW4gdGhpcyBjYXNlLCB3ZSBkb24n
dCB3YW50IHRvIHRyYXNoIHRoZSByZXN1bHQsIGFuZCBoZW5jZSwgc2hvdWxkIG5vdCByZXN0b3Jl
IGludG8gaXQuCisgICAgLy8gV2hlbiB0aGUgc25pcHBldCBpcyBkb25lOgorICAgIC8vICAgIDEu
IElmIHdlIGhhZCByZS1hc3NpZ25lZCB0aGUgcmVzdWx0IHJlZ2lzdGVyIHRvIGEgc2NyYXRjaCwg
d2UgbmVlZCB0byBjb3B5IHRoZQorICAgIC8vICAgICAgIHJlc3VsdCBiYWNrIGZyb20gdGhlIHNj
cmF0Y2guCisgICAgLy8gICAgMi4gUmVzdG9yZSB0aGUgaW5wdXQgYW5kIHRhZyByZWdpc3RlcnMg
dG8gdGhlIHZhbHVlcyB0aGF0IExMVk0gcHV0IHRoZXJlIG9yaWdpbmFsbHkuCisgICAgLy8gICAg
ICAgVGhhdCBpcyB1bmxlc3Mgd2hlbiBvbmUgb2YgdGhlbSBpcyBhbHNvIHRoZSByZXN1bHQgcmVn
aXN0ZXIuIEluIHRoYXQgY2FzZSwgd2UKKyAgICAvLyAgICAgICBkb24ndCB3YW50IHRvIHRyYXNo
IHRoZSByZXN1bHQsIGFuZCBoZW5jZSwgc2hvdWxkIG5vdCByZXN0b3JlIGludG8gaXQuCiAKIHB1
YmxpYzoKICAgICBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250ZXh0KFNjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvciYgYWxsb2NhdG9yLCBHUFJSZWcmIHJlc3VsdCwgR1BSUmVnJiBsZWZ0LCBHUFJSZWcm
IHJpZ2h0KQpAQCAtMzQ0LDcgKzM0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fcmlnaHQg
PSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAgICAgICAgaWYgKCFpbnB1dFJl
Z2lzdGVycy5nZXQobV9yZXN1bHQpICYmIHJlc2VydmVkUmVnaXN0ZXJzLmdldChtX3Jlc3VsdCkp
CiAgICAgICAgICAgICBtX3Jlc3VsdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigp
OwotICAgICAgICAKKwogICAgICAgICBpZiAoIWlucHV0QW5kT3V0cHV0UmVnaXN0ZXJzLmdldChH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKQogICAgICAgICAgICAgbV9zYXZlZFRhZ01hc2tSZWdp
c3RlciA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwogICAgICAgICBpZiAoIWlu
cHV0QW5kT3V0cHV0UmVnaXN0ZXJzLmdldChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIp
KQpAQCAtMzY4LDE1ICszNzIsMjYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXN0b3JlUmVnaXN0
ZXJzKENDYWxsSGVscGVycyYgaml0KQogICAgIHsKKyAgICAgICAgaWYgKG1fb3JpZ1Jlc3VsdCAh
PSBtX3Jlc3VsdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1fcmVzdWx0LCBtX29yaWdSZXN1bHQp
OworCiAgICAgICAgIGlmIChtX29yaWdMZWZ0ICE9IG1fbGVmdCAmJiBtX29yaWdMZWZ0ICE9IG1f
b3JpZ1Jlc3VsdCkKICAgICAgICAgICAgIGppdC5tb3ZlKG1fbGVmdCwgbV9vcmlnTGVmdCk7CiAg
ICAgICAgIGlmIChtX29yaWdSaWdodCAhPSBtX3JpZ2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1fb3Jp
Z1Jlc3VsdCkKICAgICAgICAgICAgIGppdC5tb3ZlKG1fcmlnaHQsIG1fb3JpZ1JpZ2h0KTsKLSAg
ICAgICAgCi0gICAgICAgIGlmIChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRHUFJS
ZWcpCisKKyAgICAgICAgLy8gV2UgYXJlIGd1YXJhbnRlZWQgdGhhdCB0aGUgdGFnIHJlZ2lzdGVy
cyBhcmUgbm90IHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbAorICAgICAgICAvLyByZXN1bHQgcmVn
aXN0ZXIuIE90aGVyd2lzZSwgd2Ugd291bGQgbm90IGhhdmUgYWxsb2NhdGVkIGEgc2NyYXRjaCBm
b3IgdGhlbS4KKyAgICAgICAgLy8gSGVuY2UsIHdlIGRvbid0IG5lZWQgdG8gbmVlZCB0byBjaGVj
ayBmb3IgdGhhdCBsaWtlIHdlIGRvIGZvciB0aGUgaW5wdXQKKyAgICAgICAgLy8gcmVnaXN0ZXJz
LgorICAgICAgICBpZiAobV9zYXZlZFRhZ01hc2tSZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKSB7
CisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyICE9IG1fb3JpZ1Jl
c3VsdCk7CiAgICAgICAgICAgICBqaXQubW92ZShtX3NhdmVkVGFnTWFza1JlZ2lzdGVyLCBHUFJJ
bmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwotICAgICAgICBpZiAobV9zYXZlZFRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICB9CisgICAgICAgIGlmIChtX3NhdmVk
VGFnVHlwZU51bWJlclJlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpIHsKKyAgICAgICAgICAgIEFT
U0VSVChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmlnUmVzdWx0KTsKICAg
ICAgICAgICAgIGppdC5tb3ZlKG1fc2F2ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86
OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgICAgIH0KICAgICB9CiAKIHByaXZhdGU6Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUu
Y3BwCShyZXZpc2lvbiAxOTE4NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
bGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMiwxNSArMTMyLDE1IEBAIHNp
emVfdCBzaXplT2ZBcml0aFN1YigpCiB7CiAjaWYgQ1BVKEFSTTY0KQogI2lmZGVmIE5ERUJVRwot
ICAgIHJldHVybiAxOTI7IC8vIEFSTTY0IHJlbGVhc2UuCisgICAgcmV0dXJuIDIxNjsgLy8gQVJN
NjQgcmVsZWFzZS4KICNlbHNlCi0gICAgcmV0dXJuIDI4ODsgLy8gQVJNNjQgZGVidWcuCisgICAg
cmV0dXJuIDMxMjsgLy8gQVJNNjQgZGVidWcuCiAjZW5kaWYKICNlbHNlIC8vIENQVShYODZfNjQp
CiAjaWZkZWYgTkRFQlVHCi0gICAgcmV0dXJuIDE4NDsgLy8gWDg2XzY0IHJlbGVhc2UuCisgICAg
cmV0dXJuIDIyMzsgLy8gWDg2XzY0IHJlbGVhc2UuCiAjZWxzZQotICAgIHJldHVybiAyNTk7IC8v
IFg4Nl82NCBkZWJ1Zy4KKyAgICByZXR1cm4gMjk4OyAvLyBYODZfNjQgZGVidWcuCiAjZW5kaWYK
ICNlbmRpZgogfQo=
</data>
<flag name="review"
          id="289672"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264639</attachid>
            <date>2015-11-02 15:35:05 -0800</date>
            <delta_ts>2015-11-02 15:38:11 -0800</delta_ts>
            <desc>patch 2: added optimization to support aliased operands and result registers.</desc>
            <filename>bug-150712.patch</filename>
            <type>text/plain</type>
            <size>10304</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxOTAzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE1LTExLTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCBuZWVkcyB0byBjb3B5IHRoZSByZXN1bHQg
YmFjayBmcm9tIHRoZSBzY3JhdGNoIHJlZ2lzdGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNvbnRl
eHQgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNoCisgICAg
ICAgIGJlZm9yZSBlbWl0dGluZyB0aGUgc25pcHBldCwgaXQgbmVlZHMgdG8gY29weSB0aGUgcmVz
dWx0IGJhY2sgZnJvbSB0aGUgc2NyYXRjaCBhZnRlcgorICAgICAgICB0aGUgc25pcHBldCBpcyBk
b25lLgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhlIGNkanMtdGVzdHMueWFtbC9tYWluLmpzLmZ0
bCBmYWlsdXJlIHJlcG9ydGVkIGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTA2ODcuCisKKyAgICAgICAgQWxzbyBhZGRlZCBhbiBvcHRpbWl6YXRp
b24gdG8gY2hlY2sgZm9yIHRoZSBjYXNlIHdoZXJlIGFueSBvZiB0aGUgbGVmdCwgcmlnaHQsCisg
ICAgICAgIG9yIHJlc3VsdCByZWdpc3RlcnMgYXJlIGFsaWFzZWQgdG9nZXRoZXIsIGFuZCB0byBt
YXAgdGhlbSB0byB0aGUgY29ycmVzcG9uZGluZworICAgICAgICBhbGxvY2F0ZWQgc2NyYXRjaCBy
ZWdpc3RlciBmb3IgdGhlaXIgYWxpYXMgaW5zdGVhZCBvZiBhbGxvY2F0aW5nIHNlcGFyYXRlIG9u
ZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgIC0gQWRkZWQgSklUU3ViR2VuZXJhdG9yLmggdG8gdGhl
c2UgcHJvamVjdCBmaWxlcyBmb3IgY29tcGxldGVuZXNzLgorCisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
IC0gUmUtZW5hYmxlIEFyaXRoU3ViIGhhbmRsaW5nIG9mIFVudHlwZWRVc2Ugb3BlcmFuZHMuCisK
KyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXplT2ZBcml0aFN1Yik6CisgICAg
ICAgIC0gQWRqdXN0ZWQgSUMgc2l6ZXMgdG8gYWNjb3VudCBmb3IgdGhlIHNuaXBwZXQgY2hhbmdl
cy4KKwogMjAxNS0xMS0wMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSdW4gc29ydC1YY29kZS1wcm9qZWN0LWZpbGUgZm9yIHRoZSBKYXZhU2NyaXB0Q29yZSBwcm9q
ZWN0LgpAQCAtMzUxOCw3ICszNTUwLDYgQEAKICAgICAgICAgKEpTQzo6R0NBd2FyZUpJVFN0dWJS
b3V0aW5lV2l0aEV4Y2VwdGlvbkhhbmRsZXI6On5HQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoRXhj
ZXB0aW9uSGFuZGxlcik6IERlbGV0ZWQuCiAgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91
dGluZS5oOgogCi0+Pj4+Pj4+IC5yMTkxMzUxCiAyMDE1LTEwLTIwICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggdGhlIGJ1aWxkIGJ5
IGRpc2FibGluZyBNQUNfR0VTVFVSRV9FVkVOVFMgb24gMTAuOSBhbmQgMTAuMTAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTkxOTAzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQ2Myw2ICsxNDYzLDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxKSVRJbmxpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxqaXRcSklUT3BlcmF0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caml0XEpJVFN0dWJSb3V0aW5lLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxqaXRcSklUU3ViR2VuZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxq
aXRcSklUVGh1bmtzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUVG9E
RkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGppdFxKSVRXcml0ZUJhcnJpZXIuaCIgLz4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE5MTkwMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMjUxMCw2ICsyNTEwLDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxKSVRTdHViUm91dGluZS5oIj4KICAgICAg
IDxGaWx0ZXI+aml0PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxqaXRcSklUU3ViR2VuZXJhdG9yLmgiPgorICAgICAgPEZpbHRlcj5qaXQ8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxK
SVRUaHVua3MuaCI+CiAgICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cAkocmV2aXNpb24gMTkxOTAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBAIGlubGluZSBDYXBh
YmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICBjYXNlIFN0ckNhdDoKICAgICBjYXNl
IEFyaXRoQWRkOgogICAgIGNhc2UgQXJpdGhDbHozMjoKKyAgICBjYXNlIEFyaXRoU3ViOgogICAg
IGNhc2UgQXJpdGhNdWw6CiAgICAgY2FzZSBBcml0aERpdjoKICAgICBjYXNlIEFyaXRoTW9kOgpA
QCAtMjExLDEwICsyMTIsNiBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogCiAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFyaXRoU3ViOgotICAgICAgICBpZiAobm9kZS0+cmVz
dWx0KCkgPT0gTm9kZVJlc3VsdEpTKQotICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7
Ci0gICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBJZGVudGl0eToKICAgICAgICAgLy8gTm8gYmFj
a2VuZCBoYW5kbGVzIHRoaXMgYmVjYXVzZSBpdCB3aWxsIGJlIG9wdGltaXplZCBvdXQuIEJ1dCB3
ZSBtYXkgY2hlY2sKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNw
cAkocmV2aXNpb24gMTkxOTAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA5LDEzICszMDksMTcgQEAgc3RhdGljIHZvaWQg
Z2VuZXJhdGVDaGVja0luSUNGYXN0UGF0aCgKIGNsYXNzIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNv
bnRleHQgewogICAgIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2xhc3MgaXMgdG8gc2h1ZmZsZSBy
ZWdpc3RlcnMgdG8gZ2V0IHRoZW0gaW50byB0aGUgc3RhdGUKICAgICAvLyB0aGF0IGJhc2VsaW5l
IGNvZGUgZXhwZWN0cyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIGJhc2VsaW5lIHNuaXBwZXQgZ2Vu
ZXJhdG9ycyBpLmUuCi0gICAgLy8gICAgMS4gZW5zdXJlIHRoYXQgdGhlIGlucHV0cyBhbmQgb3V0
cHV0cyBhcmUgbm90IGluIHRhZyBvciBzY3JhdGNoIHJlZ2lzdGVycy4KLSAgICAvLyAgICAyLiB0
YWcgcmVnaXN0ZXJzIGFyZSBsb2FkZWQgd2l0aCB0aGUgZXhwZWN0ZWQgdmFsdWVzLgorICAgIC8v
ICAgIDEuIEVuc3VyZSB0aGF0IHRoZSBpbnB1dHMgYW5kIG91dHB1dCBhcmUgbm90IGluIHJlc2Vy
dmVkIHJlZ2lzdGVycyAod2hpY2gKKyAgICAvLyAgICAgICBpbmNsdWRlIHRoZSB0YWcgcmVnaXN0
ZXJzKS4gVGhlIHNuaXBwZXQgd2lsbCB1c2UgdGhlc2UgcmVzZXJ2ZWQgcmVnaXN0ZXJzLgorICAg
IC8vICAgICAgIEhlbmNlLCB3ZSBuZWVkIHRvIHB1dCB0aGUgaW5wdXRzIGFuZCBvdXRwdXQgaW4g
b3RoZXIgc2NyYXRjaCByZWdpc3RlcnMuCisgICAgLy8gICAgMi4gVGFnIHJlZ2lzdGVycyBhcmUg
bG9hZGVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlcy4KICAgICAvLwotICAgIC8vIFdlIGFsc28g
bmVlZCB0bzoKLSAgICAvLyAgICAxLiByZXN0b3JlIHRoZSBpbnB1dCBhbmQgdGFnIHJlZ2lzdGVy
cyB0byB0aGUgdmFsdWVzIHRoYXQgTExWTSBwdXQgdGhlcmUgb3JpZ2luYWxseS4KLSAgICAvLyAg
ICAyLiB0aGF0IGlzIGV4Y2VwdCB3aGVuIG9uZSBvZiB0aGUgaW5wdXQgcmVnaXN0ZXJzIGlzIGFs
c28gdGhlIHJlc3VsdCByZWdpc3Rlci4KLSAgICAvLyAgICAgICBJbiB0aGlzIGNhc2UsIHdlIGRv
bid0IHdhbnQgdG8gdHJhc2ggdGhlIHJlc3VsdCwgYW5kIGhlbmNlLCBzaG91bGQgbm90IHJlc3Rv
cmUgaW50byBpdC4KKyAgICAvLyBXaGVuIHRoZSBzbmlwcGV0IGlzIGRvbmU6CisgICAgLy8gICAg
MS4gSWYgd2UgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNo
LCB3ZSBuZWVkIHRvIGNvcHkgdGhlCisgICAgLy8gICAgICAgcmVzdWx0IGJhY2sgZnJvbSB0aGUg
c2NyYXRjaC4KKyAgICAvLyAgICAyLiBSZXN0b3JlIHRoZSBpbnB1dCBhbmQgdGFnIHJlZ2lzdGVy
cyB0byB0aGUgdmFsdWVzIHRoYXQgTExWTSBwdXQgdGhlcmUgb3JpZ2luYWxseS4KKyAgICAvLyAg
ICAgICBUaGF0IGlzIHVubGVzcyB3aGVuIG9uZSBvZiB0aGVtIGlzIGFsc28gdGhlIHJlc3VsdCBy
ZWdpc3Rlci4gSW4gdGhhdCBjYXNlLCB3ZQorICAgIC8vICAgICAgIGRvbid0IHdhbnQgdG8gdHJh
c2ggdGhlIHJlc3VsdCwgYW5kIGhlbmNlLCBzaG91bGQgbm90IHJlc3RvcmUgaW50byBpdC4KIAog
cHVibGljOgogICAgIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNvbnRleHQoU2NyYXRjaFJlZ2lzdGVy
QWxsb2NhdG9yJiBhbGxvY2F0b3IsIEdQUlJlZyYgcmVzdWx0LCBHUFJSZWcmIGxlZnQsIEdQUlJl
ZyYgcmlnaHQpCkBAIC0zMzEsMjAgKzMzNSwyOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYWxsb2Nh
dG9yLmxvY2sobV9sZWZ0KTsKICAgICAgICAgbV9hbGxvY2F0b3IubG9jayhtX3JpZ2h0KTsKIAot
ICAgICAgICBSZWdpc3RlclNldCBpbnB1dFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KG1fbGVmdCwg
bV9yaWdodCk7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGlucHV0QW5kT3V0cHV0UmVnaXN0ZXJzID0g
UmVnaXN0ZXJTZXQoaW5wdXRSZWdpc3RlcnMsIG1fcmVzdWx0KTsKLQorICAgICAgICBSZWdpc3Rl
clNldCBpbnB1dEFuZE91dHB1dFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KG1fbGVmdCwgbV9yaWdo
dCwgbV9yZXN1bHQpOwogICAgICAgICBSZWdpc3RlclNldCByZXNlcnZlZFJlZ2lzdGVyczsKICAg
ICAgICAgZm9yIChHUFJSZWcgcmVnIDogR1BSSW5mbzo6cmVzZXJ2ZWRSZWdpc3RlcnMoKSkKICAg
ICAgICAgICAgIHJlc2VydmVkUmVnaXN0ZXJzLnNldChyZWcpOwogCiAgICAgICAgIGlmIChyZXNl
cnZlZFJlZ2lzdGVycy5nZXQobV9sZWZ0KSkKICAgICAgICAgICAgIG1fbGVmdCA9IG1fYWxsb2Nh
dG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAgICAgICBpZiAocmVzZXJ2ZWRSZWdpc3RlcnMu
Z2V0KG1fcmlnaHQpKQotICAgICAgICAgICAgbV9yaWdodCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRl
U2NyYXRjaEdQUigpOwotICAgICAgICBpZiAoIWlucHV0UmVnaXN0ZXJzLmdldChtX3Jlc3VsdCkg
JiYgcmVzZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmVzdWx0KSkKLSAgICAgICAgICAgIG1fcmVzdWx0
ID0gbV9hbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7Ci0gICAgICAgIAorICAgICAgICBp
ZiAocmVzZXJ2ZWRSZWdpc3RlcnMuZ2V0KG1fcmlnaHQpKSB7CisgICAgICAgICAgICBpZiAobV9v
cmlnUmlnaHQgPT0gbV9vcmlnTGVmdCkKKyAgICAgICAgICAgICAgICBtX3JpZ2h0ID0gbV9sZWZ0
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fcmlnaHQgPSBtX2FsbG9jYXRv
ci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzZXJ2ZWRS
ZWdpc3RlcnMuZ2V0KG1fcmVzdWx0KSkgeworICAgICAgICAgICAgaWYgKG1fb3JpZ1Jlc3VsdCA9
PSBtX29yaWdMZWZ0KQorICAgICAgICAgICAgICAgIG1fcmVzdWx0ID0gbV9sZWZ0OworICAgICAg
ICAgICAgZWxzZSBpZiAobV9vcmlnUmVzdWx0ID09IG1fb3JpZ1JpZ2h0KQorICAgICAgICAgICAg
ICAgIG1fcmVzdWx0ID0gbV9yaWdodDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBtX3Jlc3VsdCA9IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworICAgICAgICB9
CisKICAgICAgICAgaWYgKCFpbnB1dEFuZE91dHB1dFJlZ2lzdGVycy5nZXQoR1BSSW5mbzo6dGFn
TWFza1JlZ2lzdGVyKSkKICAgICAgICAgICAgIG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIgPSBtX2Fs
bG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAgICAgICAgaWYgKCFpbnB1dEFuZE91dHB1
dFJlZ2lzdGVycy5nZXQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSkKQEAgLTM1NSw3
ICszNjcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAobV9sZWZ0ICE9IG1fb3JpZ0xl
ZnQpCiAgICAgICAgICAgICBqaXQubW92ZShtX29yaWdMZWZ0LCBtX2xlZnQpOwotICAgICAgICBp
ZiAobV9yaWdodCAhPSBtX29yaWdSaWdodCkKKyAgICAgICAgaWYgKG1fcmlnaHQgIT0gbV9vcmln
UmlnaHQgJiYgbV9vcmlnUmlnaHQgIT0gbV9vcmlnTGVmdCkKICAgICAgICAgICAgIGppdC5tb3Zl
KG1fb3JpZ1JpZ2h0LCBtX3JpZ2h0KTsKIAogICAgICAgICBpZiAobV9zYXZlZFRhZ01hc2tSZWdp
c3RlciAhPSBJbnZhbGlkR1BSUmVnKQpAQCAtMzY4LDE1ICszODAsMjggQEAgcHVibGljOgogCiAg
ICAgdm9pZCByZXN0b3JlUmVnaXN0ZXJzKENDYWxsSGVscGVycyYgaml0KQogICAgIHsKKyAgICAg
ICAgaWYgKG1fb3JpZ1Jlc3VsdCAhPSBtX3Jlc3VsdCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1f
cmVzdWx0LCBtX29yaWdSZXN1bHQpOwogICAgICAgICBpZiAobV9vcmlnTGVmdCAhPSBtX2xlZnQg
JiYgbV9vcmlnTGVmdCAhPSBtX29yaWdSZXN1bHQpCiAgICAgICAgICAgICBqaXQubW92ZShtX2xl
ZnQsIG1fb3JpZ0xlZnQpOwotICAgICAgICBpZiAobV9vcmlnUmlnaHQgIT0gbV9yaWdodCAmJiBt
X29yaWdSaWdodCAhPSBtX29yaWdSZXN1bHQpCisgICAgICAgIGlmIChtX29yaWdSaWdodCAhPSBt
X3JpZ2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1fb3JpZ1Jlc3VsdCAmJiBtX29yaWdSaWdodCAhPSBt
X29yaWdMZWZ0KQogICAgICAgICAgICAgaml0Lm1vdmUobV9yaWdodCwgbV9vcmlnUmlnaHQpOwot
ICAgICAgICAKLSAgICAgICAgaWYgKG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIgIT0gSW52YWxpZEdQ
UlJlZykKKworICAgICAgICAvLyBXZSBhcmUgZ3VhcmFudGVlZCB0aGF0IHRoZSB0YWcgcmVnaXN0
ZXJzIGFyZSBub3QgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIGlucHV0CisgICAgICAgIC8vIG9y
IG91dHB1dCByZWdpc3RlcnMuIE90aGVyd2lzZSwgd2Ugd291bGQgbm90IGhhdmUgYWxsb2NhdGVk
IGEgc2NyYXRjaCBmb3IgdGhlbS4KKyAgICAgICAgLy8gSGVuY2UsIHdlIGRvbid0IG5lZWQgdG8g
bmVlZCB0byBjaGVjayBmb3Igb3ZlcmxhcCBsaWtlIHdlIGRvIGZvciB0aGUgaW5wdXQgcmVnaXN0
ZXJzLgorICAgICAgICBpZiAobV9zYXZlZFRhZ01hc2tSZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVn
KSB7CisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyICE9IG1fb3Jp
Z0xlZnQpOworICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciAhPSBt
X29yaWdSaWdodCk7CisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVy
ICE9IG1fb3JpZ1Jlc3VsdCk7CiAgICAgICAgICAgICBqaXQubW92ZShtX3NhdmVkVGFnTWFza1Jl
Z2lzdGVyLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwotICAgICAgICBpZiAobV9zYXZlZFRh
Z1R5cGVOdW1iZXJSZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICB9CisgICAgICAg
IGlmIChtX3NhdmVkVGFnVHlwZU51bWJlclJlZ2lzdGVyICE9IEludmFsaWRHUFJSZWcpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgIT0gbV9vcmln
TGVmdCk7CisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
ICE9IG1fb3JpZ1JpZ2h0KTsKKyAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIgIT0gbV9vcmlnUmVzdWx0KTsKICAgICAgICAgICAgIGppdC5tb3ZlKG1fc2F2
ZWRUYWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7
CisgICAgICAgIH0KICAgICB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCShyZXZpc2lvbiAxOTE5MDMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzMiwxNSArMTMyLDE1IEBAIHNpemVfdCBzaXplT2ZBcml0aFN1YigpCiB7
CiAjaWYgQ1BVKEFSTTY0KQogI2lmZGVmIE5ERUJVRwotICAgIHJldHVybiAxOTI7IC8vIEFSTTY0
IHJlbGVhc2UuCisgICAgcmV0dXJuIDIxNjsgLy8gQVJNNjQgcmVsZWFzZS4KICNlbHNlCi0gICAg
cmV0dXJuIDI4ODsgLy8gQVJNNjQgZGVidWcuCisgICAgcmV0dXJuIDMxMjsgLy8gQVJNNjQgZGVi
dWcuCiAjZW5kaWYKICNlbHNlIC8vIENQVShYODZfNjQpCiAjaWZkZWYgTkRFQlVHCi0gICAgcmV0
dXJuIDE4NDsgLy8gWDg2XzY0IHJlbGVhc2UuCisgICAgcmV0dXJuIDIyMzsgLy8gWDg2XzY0IHJl
bGVhc2UuCiAjZWxzZQotICAgIHJldHVybiAyNTk7IC8vIFg4Nl82NCBkZWJ1Zy4KKyAgICByZXR1
cm4gMjk4OyAvLyBYODZfNjQgZGVidWcuCiAjZW5kaWYKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264641</attachid>
            <date>2015-11-02 15:37:38 -0800</date>
            <delta_ts>2015-11-06 17:23:01 -0800</delta_ts>
            <desc>svn up&apos;ed</desc>
            <filename>bug-150712.patch</filename>
            <type>text/plain</type>
            <size>9960</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxOTE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE1LTExLTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgQmluYXJ5U25pcHBldFJlZ2lzdGVyQ29udGV4dCBuZWVkcyB0byBjb3B5IHRoZSByZXN1bHQg
YmFjayBmcm9tIHRoZSBzY3JhdGNoIHJlZ2lzdGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIEJpbmFyeVNuaXBwZXRSZWdpc3RlckNvbnRl
eHQgaGFkIHJlLWFzc2lnbmVkIHRoZSByZXN1bHQgcmVnaXN0ZXIgdG8gYSBzY3JhdGNoCisgICAg
ICAgIGJlZm9yZSBlbWl0dGluZyB0aGUgc25pcHBldCwgaXQgbmVlZHMgdG8gY29weSB0aGUgcmVz
dWx0IGJhY2sgZnJvbSB0aGUgc2NyYXRjaCBhZnRlcgorICAgICAgICB0aGUgc25pcHBldCBpcyBk
b25lLgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhlIGNkanMtdGVzdHMueWFtbC9tYWluLmpzLmZ0
bCBmYWlsdXJlIHJlcG9ydGVkIGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTA2ODcuCisKKyAgICAgICAgQWxzbyBhZGRlZCBhbiBvcHRpbWl6YXRp
b24gdG8gY2hlY2sgZm9yIHRoZSBjYXNlIHdoZXJlIGFueSBvZiB0aGUgbGVmdCwgcmlnaHQsCisg
ICAgICAgIG9yIHJlc3VsdCByZWdpc3RlcnMgYXJlIGFsaWFzZWQgdG9nZXRoZXIsIGFuZCB0byBt
YXAgdGhlbSB0byB0aGUgY29ycmVzcG9uZGluZworICAgICAgICBhbGxvY2F0ZWQgc2NyYXRjaCBy
ZWdpc3RlciBmb3IgdGhlaXIgYWxpYXMgaW5zdGVhZCBvZiBhbGxvY2F0aW5nIHNlcGFyYXRlIG9u
ZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgIC0gQWRkZWQgSklUU3ViR2VuZXJhdG9yLmggdG8gdGhl
c2UgcHJvamVjdCBmaWxlcyBmb3IgY29tcGxldGVuZXNzLgorCisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
IC0gUmUtZW5hYmxlIEFyaXRoU3ViIGhhbmRsaW5nIG9mIFVudHlwZWRVc2Ugb3BlcmFuZHMuCisK
KyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisKKyAgICAgICAgKiBmdGwvRlRMSW5saW5l
Q2FjaGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXplT2ZBcml0aFN1Yik6CisgICAg
ICAgIC0gQWRqdXN0ZWQgSUMgc2l6ZXMgdG8gYWNjb3VudCBmb3IgdGhlIHNuaXBwZXQgY2hhbmdl
cy4KKwogMjAxNS0xMS0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEIzIHNob3VsZCBiZSBhYmxlIHRvIGNvbXBpbGUgYSBQYXRjaHBvaW50CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE5MTkxNikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0NjUsNiArMTQ2NSw3IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUSW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caml0XEpJVE9wZXJhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGppdFxKSVRTdHViUm91dGluZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aml0XEpJVFN1YkdlbmVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0
XEpJVFRodW5rcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caml0XEpJVFRvREZH
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxqaXRcSklUV3JpdGVCYXJyaWVyLmgiIC8+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxOTE5MTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTI1MTYsNiArMjUxNiw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YlJvdXRpbmUuaCI+CiAgICAgICA8
RmlsdGVyPmppdDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caml0XEpJVFN1YkdlbmVyYXRvci5oIj4KKyAgICAgIDxGaWx0ZXI+aml0PC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcSklU
VGh1bmtzLmgiPgogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJ
KHJldmlzaW9uIDE5MTkxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBTdHJDYXQ6CiAgICAgY2FzZSBB
cml0aEFkZDoKICAgICBjYXNlIEFyaXRoQ2x6MzI6CisgICAgY2FzZSBBcml0aFN1YjoKICAgICBj
YXNlIEFyaXRoTXVsOgogICAgIGNhc2UgQXJpdGhEaXY6CiAgICAgY2FzZSBBcml0aE1vZDoKQEAg
LTIxMSwxMCArMjEyLDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUq
IAogICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBcml0aFN1YjoKLSAgICAgICAgaWYgKG5vZGUtPnJlc3Vs
dCgpID09IE5vZGVSZXN1bHRKUykKLSAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwot
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSWRlbnRpdHk6CiAgICAgICAgIC8vIE5vIGJhY2tl
bmQgaGFuZGxlcyB0aGlzIGJlY2F1c2UgaXQgd2lsbCBiZSBvcHRpbWl6ZWQgb3V0LiBCdXQgd2Ug
bWF5IGNoZWNrCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJ
KHJldmlzaW9uIDE5MTkxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGls
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwOSwxMyArMzA5LDE3IEBAIHN0YXRpYyB2b2lkIGdl
bmVyYXRlQ2hlY2tJbklDRmFzdFBhdGgoCiBjbGFzcyBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250
ZXh0IHsKICAgICAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIHNodWZmbGUgcmVn
aXN0ZXJzIHRvIGdldCB0aGVtIGludG8gdGhlIHN0YXRlCiAgICAgLy8gdGhhdCBiYXNlbGluZSBj
b2RlIGV4cGVjdHMgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBiYXNlbGluZSBzbmlwcGV0IGdlbmVy
YXRvcnMgaS5lLgotICAgIC8vICAgIDEuIGVuc3VyZSB0aGF0IHRoZSBpbnB1dHMgYW5kIG91dHB1
dHMgYXJlIG5vdCBpbiB0YWcgb3Igc2NyYXRjaCByZWdpc3RlcnMuCi0gICAgLy8gICAgMi4gdGFn
IHJlZ2lzdGVycyBhcmUgbG9hZGVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlcy4KKyAgICAvLyAg
ICAxLiBFbnN1cmUgdGhhdCB0aGUgaW5wdXRzIGFuZCBvdXRwdXQgYXJlIG5vdCBpbiByZXNlcnZl
ZCByZWdpc3RlcnMgKHdoaWNoCisgICAgLy8gICAgICAgaW5jbHVkZSB0aGUgdGFnIHJlZ2lzdGVy
cykuIFRoZSBzbmlwcGV0IHdpbGwgdXNlIHRoZXNlIHJlc2VydmVkIHJlZ2lzdGVycy4KKyAgICAv
LyAgICAgICBIZW5jZSwgd2UgbmVlZCB0byBwdXQgdGhlIGlucHV0cyBhbmQgb3V0cHV0IGluIG90
aGVyIHNjcmF0Y2ggcmVnaXN0ZXJzLgorICAgIC8vICAgIDIuIFRhZyByZWdpc3RlcnMgYXJlIGxv
YWRlZCB3aXRoIHRoZSBleHBlY3RlZCB2YWx1ZXMuCiAgICAgLy8KLSAgICAvLyBXZSBhbHNvIG5l
ZWQgdG86Ci0gICAgLy8gICAgMS4gcmVzdG9yZSB0aGUgaW5wdXQgYW5kIHRhZyByZWdpc3RlcnMg
dG8gdGhlIHZhbHVlcyB0aGF0IExMVk0gcHV0IHRoZXJlIG9yaWdpbmFsbHkuCi0gICAgLy8gICAg
Mi4gdGhhdCBpcyBleGNlcHQgd2hlbiBvbmUgb2YgdGhlIGlucHV0IHJlZ2lzdGVycyBpcyBhbHNv
IHRoZSByZXN1bHQgcmVnaXN0ZXIuCi0gICAgLy8gICAgICAgSW4gdGhpcyBjYXNlLCB3ZSBkb24n
dCB3YW50IHRvIHRyYXNoIHRoZSByZXN1bHQsIGFuZCBoZW5jZSwgc2hvdWxkIG5vdCByZXN0b3Jl
IGludG8gaXQuCisgICAgLy8gV2hlbiB0aGUgc25pcHBldCBpcyBkb25lOgorICAgIC8vICAgIDEu
IElmIHdlIGhhZCByZS1hc3NpZ25lZCB0aGUgcmVzdWx0IHJlZ2lzdGVyIHRvIGEgc2NyYXRjaCwg
d2UgbmVlZCB0byBjb3B5IHRoZQorICAgIC8vICAgICAgIHJlc3VsdCBiYWNrIGZyb20gdGhlIHNj
cmF0Y2guCisgICAgLy8gICAgMi4gUmVzdG9yZSB0aGUgaW5wdXQgYW5kIHRhZyByZWdpc3RlcnMg
dG8gdGhlIHZhbHVlcyB0aGF0IExMVk0gcHV0IHRoZXJlIG9yaWdpbmFsbHkuCisgICAgLy8gICAg
ICAgVGhhdCBpcyB1bmxlc3Mgd2hlbiBvbmUgb2YgdGhlbSBpcyBhbHNvIHRoZSByZXN1bHQgcmVn
aXN0ZXIuIEluIHRoYXQgY2FzZSwgd2UKKyAgICAvLyAgICAgICBkb24ndCB3YW50IHRvIHRyYXNo
IHRoZSByZXN1bHQsIGFuZCBoZW5jZSwgc2hvdWxkIG5vdCByZXN0b3JlIGludG8gaXQuCiAKIHB1
YmxpYzoKICAgICBCaW5hcnlTbmlwcGV0UmVnaXN0ZXJDb250ZXh0KFNjcmF0Y2hSZWdpc3RlckFs
bG9jYXRvciYgYWxsb2NhdG9yLCBHUFJSZWcmIHJlc3VsdCwgR1BSUmVnJiBsZWZ0LCBHUFJSZWcm
IHJpZ2h0KQpAQCAtMzMxLDIwICszMzUsMjggQEAgcHVibGljOgogICAgICAgICBtX2FsbG9jYXRv
ci5sb2NrKG1fbGVmdCk7CiAgICAgICAgIG1fYWxsb2NhdG9yLmxvY2sobV9yaWdodCk7CiAKLSAg
ICAgICAgUmVnaXN0ZXJTZXQgaW5wdXRSZWdpc3RlcnMgPSBSZWdpc3RlclNldChtX2xlZnQsIG1f
cmlnaHQpOwotICAgICAgICBSZWdpc3RlclNldCBpbnB1dEFuZE91dHB1dFJlZ2lzdGVycyA9IFJl
Z2lzdGVyU2V0KGlucHV0UmVnaXN0ZXJzLCBtX3Jlc3VsdCk7Ci0KKyAgICAgICAgUmVnaXN0ZXJT
ZXQgaW5wdXRBbmRPdXRwdXRSZWdpc3RlcnMgPSBSZWdpc3RlclNldChtX2xlZnQsIG1fcmlnaHQs
IG1fcmVzdWx0KTsKICAgICAgICAgUmVnaXN0ZXJTZXQgcmVzZXJ2ZWRSZWdpc3RlcnM7CiAgICAg
ICAgIGZvciAoR1BSUmVnIHJlZyA6IEdQUkluZm86OnJlc2VydmVkUmVnaXN0ZXJzKCkpCiAgICAg
ICAgICAgICByZXNlcnZlZFJlZ2lzdGVycy5zZXQocmVnKTsKIAogICAgICAgICBpZiAocmVzZXJ2
ZWRSZWdpc3RlcnMuZ2V0KG1fbGVmdCkpCiAgICAgICAgICAgICBtX2xlZnQgPSBtX2FsbG9jYXRv
ci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKLSAgICAgICAgaWYgKHJlc2VydmVkUmVnaXN0ZXJzLmdl
dChtX3JpZ2h0KSkKLSAgICAgICAgICAgIG1fcmlnaHQgPSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNj
cmF0Y2hHUFIoKTsKLSAgICAgICAgaWYgKCFpbnB1dFJlZ2lzdGVycy5nZXQobV9yZXN1bHQpICYm
IHJlc2VydmVkUmVnaXN0ZXJzLmdldChtX3Jlc3VsdCkpCi0gICAgICAgICAgICBtX3Jlc3VsdCA9
IG1fYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwotICAgICAgICAKKyAgICAgICAgaWYg
KHJlc2VydmVkUmVnaXN0ZXJzLmdldChtX3JpZ2h0KSkgeworICAgICAgICAgICAgaWYgKG1fb3Jp
Z1JpZ2h0ID09IG1fb3JpZ0xlZnQpCisgICAgICAgICAgICAgICAgbV9yaWdodCA9IG1fbGVmdDsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3JpZ2h0ID0gbV9hbGxvY2F0b3Iu
YWxsb2NhdGVTY3JhdGNoR1BSKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc2VydmVkUmVn
aXN0ZXJzLmdldChtX3Jlc3VsdCkpIHsKKyAgICAgICAgICAgIGlmIChtX29yaWdSZXN1bHQgPT0g
bV9vcmlnTGVmdCkKKyAgICAgICAgICAgICAgICBtX3Jlc3VsdCA9IG1fbGVmdDsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKG1fb3JpZ1Jlc3VsdCA9PSBtX29yaWdSaWdodCkKKyAgICAgICAgICAgICAg
ICBtX3Jlc3VsdCA9IG1fcmlnaHQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bV9yZXN1bHQgPSBtX2FsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGlmICghaW5wdXRBbmRPdXRwdXRSZWdpc3RlcnMuZ2V0KEdQUkluZm86OnRhZ01h
c2tSZWdpc3RlcikpCiAgICAgICAgICAgICBtX3NhdmVkVGFnTWFza1JlZ2lzdGVyID0gbV9hbGxv
Y2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAgICAgICAgIGlmICghaW5wdXRBbmRPdXRwdXRS
ZWdpc3RlcnMuZ2V0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpCkBAIC0zNTUsNyAr
MzY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKG1fbGVmdCAhPSBtX29yaWdMZWZ0
KQogICAgICAgICAgICAgaml0Lm1vdmUobV9vcmlnTGVmdCwgbV9sZWZ0KTsKLSAgICAgICAgaWYg
KG1fcmlnaHQgIT0gbV9vcmlnUmlnaHQpCisgICAgICAgIGlmIChtX3JpZ2h0ICE9IG1fb3JpZ1Jp
Z2h0ICYmIG1fb3JpZ1JpZ2h0ICE9IG1fb3JpZ0xlZnQpCiAgICAgICAgICAgICBqaXQubW92ZSht
X29yaWdSaWdodCwgbV9yaWdodCk7CiAKICAgICAgICAgaWYgKG1fc2F2ZWRUYWdNYXNrUmVnaXN0
ZXIgIT0gSW52YWxpZEdQUlJlZykKQEAgLTM2OCwxNSArMzgwLDI4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcmVzdG9yZVJlZ2lzdGVycyhDQ2FsbEhlbHBlcnMmIGppdCkKICAgICB7CisgICAgICAg
IGlmIChtX29yaWdSZXN1bHQgIT0gbV9yZXN1bHQpCisgICAgICAgICAgICBqaXQubW92ZShtX3Jl
c3VsdCwgbV9vcmlnUmVzdWx0KTsKICAgICAgICAgaWYgKG1fb3JpZ0xlZnQgIT0gbV9sZWZ0ICYm
IG1fb3JpZ0xlZnQgIT0gbV9vcmlnUmVzdWx0KQogICAgICAgICAgICAgaml0Lm1vdmUobV9sZWZ0
LCBtX29yaWdMZWZ0KTsKLSAgICAgICAgaWYgKG1fb3JpZ1JpZ2h0ICE9IG1fcmlnaHQgJiYgbV9v
cmlnUmlnaHQgIT0gbV9vcmlnUmVzdWx0KQorICAgICAgICBpZiAobV9vcmlnUmlnaHQgIT0gbV9y
aWdodCAmJiBtX29yaWdSaWdodCAhPSBtX29yaWdSZXN1bHQgJiYgbV9vcmlnUmlnaHQgIT0gbV9v
cmlnTGVmdCkKICAgICAgICAgICAgIGppdC5tb3ZlKG1fcmlnaHQsIG1fb3JpZ1JpZ2h0KTsKLSAg
ICAgICAgCi0gICAgICAgIGlmIChtX3NhdmVkVGFnTWFza1JlZ2lzdGVyICE9IEludmFsaWRHUFJS
ZWcpCisKKyAgICAgICAgLy8gV2UgYXJlIGd1YXJhbnRlZWQgdGhhdCB0aGUgdGFnIHJlZ2lzdGVy
cyBhcmUgbm90IHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBpbnB1dAorICAgICAgICAvLyBvciBv
dXRwdXQgcmVnaXN0ZXJzLiBPdGhlcndpc2UsIHdlIHdvdWxkIG5vdCBoYXZlIGFsbG9jYXRlZCBh
IHNjcmF0Y2ggZm9yIHRoZW0uCisgICAgICAgIC8vIEhlbmNlLCB3ZSBkb24ndCBuZWVkIHRvIG5l
ZWQgdG8gY2hlY2sgZm9yIG92ZXJsYXAgbGlrZSB3ZSBkbyBmb3IgdGhlIGlucHV0IHJlZ2lzdGVy
cy4KKyAgICAgICAgaWYgKG1fc2F2ZWRUYWdNYXNrUmVnaXN0ZXIgIT0gSW52YWxpZEdQUlJlZykg
eworICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciAhPSBtX29yaWdM
ZWZ0KTsKKyAgICAgICAgICAgIEFTU0VSVChHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIgIT0gbV9v
cmlnUmlnaHQpOworICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciAh
PSBtX29yaWdSZXN1bHQpOwogICAgICAgICAgICAgaml0Lm1vdmUobV9zYXZlZFRhZ01hc2tSZWdp
c3RlciwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKLSAgICAgICAgaWYgKG1fc2F2ZWRUYWdU
eXBlTnVtYmVyUmVnaXN0ZXIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAgfQorICAgICAgICBp
ZiAobV9zYXZlZFRhZ1R5cGVOdW1iZXJSZWdpc3RlciAhPSBJbnZhbGlkR1BSUmVnKSB7CisgICAg
ICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyICE9IG1fb3JpZ0xl
ZnQpOworICAgICAgICAgICAgQVNTRVJUKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciAh
PSBtX29yaWdSaWdodCk7CisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyICE9IG1fb3JpZ1Jlc3VsdCk7CiAgICAgICAgICAgICBqaXQubW92ZShtX3NhdmVk
VGFnVHlwZU51bWJlclJlZ2lzdGVyLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwor
ICAgICAgICB9CiAgICAgfQogCiBwcml2YXRlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAkocmV2aXNpb24gMTkxOTE2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzIsMTUgKzEzMiwxNSBAQCBzaXplX3Qgc2l6ZU9mQXJpdGhTdWIoKQogewog
I2lmIENQVShBUk02NCkKICNpZmRlZiBOREVCVUcKLSAgICByZXR1cm4gMTkyOyAvLyBBUk02NCBy
ZWxlYXNlLgorICAgIHJldHVybiAyMTY7IC8vIEFSTTY0IHJlbGVhc2UuCiAjZWxzZQotICAgIHJl
dHVybiAyODg7IC8vIEFSTTY0IGRlYnVnLgorICAgIHJldHVybiAzMTI7IC8vIEFSTTY0IGRlYnVn
LgogI2VuZGlmCiAjZWxzZSAvLyBDUFUoWDg2XzY0KQogI2lmZGVmIE5ERUJVRwotICAgIHJldHVy
biAxODQ7IC8vIFg4Nl82NCByZWxlYXNlLgorICAgIHJldHVybiAyMjM7IC8vIFg4Nl82NCByZWxl
YXNlLgogI2Vsc2UKLSAgICByZXR1cm4gMjU5OyAvLyBYODZfNjQgZGVidWcuCisgICAgcmV0dXJu
IDI5ODsgLy8gWDg2XzY0IGRlYnVnLgogI2VuZGlmCiAjZW5kaWYKIH0K
</data>
<flag name="review"
          id="289734"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>