<?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>122205</bug_id>
          
          <creation_ts>2013-10-01 22:54:45 -0700</creation_ts>
          <short_desc>FTL: Refactor compileArithDiv and compileArithMod into one function.</short_desc>
          <delta_ts>2013-10-02 11:51:04 -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>New Bugs</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>0</everconfirmed>
          <reporter name="Nadav Rotem">nrotem</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>935354</commentid>
    <comment_count>0</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-01 22:54:45 -0700</bug_when>
    <thetext>FTL: Refactor compileArithDiv and compileArithMod into one function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935355</commentid>
    <comment_count>1</comment_count>
      <attachid>213153</attachid>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-01 22:55:10 -0700</bug_when>
    <thetext>Created attachment 213153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935411</commentid>
    <comment_count>2</comment_count>
      <attachid>213153</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-02 09:14:33 -0700</bug_when>
    <thetext>Comment on attachment 213153
Patch

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:657
&gt; -    enum AddOrSubKind {Add, Sub};
&gt; -    void compileAddSub(AddOrSubKind opKind)
&gt; +    enum ArithKind {Add, Sub, Div, Mod};

Doesn’t seem helpful to share a single enum for these four kinds of arithmetic. Why not a second enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935414</commentid>
    <comment_count>3</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-02 09:30:29 -0700</bug_when>
    <thetext>Darin, I will split the enums and resubmit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935416</commentid>
    <comment_count>4</comment_count>
      <attachid>213169</attachid>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-02 09:33:57 -0700</bug_when>
    <thetext>Created attachment 213169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935418</commentid>
    <comment_count>5</comment_count>
      <attachid>213169</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-02 09:36:13 -0700</bug_when>
    <thetext>Comment on attachment 213169
Patch

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:783
&gt; +    enum DivOrModKind {Div, Mod};

Formatting error. We use spaces inside the braces.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:787
&gt; +        bool isDiv = opKind == Div;

Seems like we could say &quot;opKind == Div&quot; at the two sites where this is used. The boolean doesn’t add significant clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935423</commentid>
    <comment_count>6</comment_count>
      <attachid>213172</attachid>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-02 10:03:15 -0700</bug_when>
    <thetext>Created attachment 213172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935431</commentid>
    <comment_count>7</comment_count>
      <attachid>213172</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-02 10:24:31 -0700</bug_when>
    <thetext>Comment on attachment 213172
Patch

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:294
&gt; -            compileArithDiv();
&gt; +            compileArithDivMod(Div);
&gt;              break;
&gt;          case ArithMod:
&gt; -            compileArithMod();
&gt; +            compileArithDivMod(Mod);

General comment: is there a reason why we even have an enum that we pass to these?

For example, compileArithMinOrMax() doesn&apos;t take any arguments; it figures out what it should do by looking at m_node-&gt;op() - either it&apos;s ArithMin or ArithMax.  Hence no need for an argument or a separate enum.

What do you think about that for DivOrMod() and AddOrSub()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935438</commentid>
    <comment_count>8</comment_count>
      <attachid>213175</attachid>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-02 10:52:09 -0700</bug_when>
    <thetext>Created attachment 213175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935462</commentid>
    <comment_count>9</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-10-02 11:34:38 -0700</bug_when>
    <thetext>Filip and Darin, thanks for the code review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935473</commentid>
    <comment_count>10</comment_count>
      <attachid>213175</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 11:51:02 -0700</bug_when>
    <thetext>Comment on attachment 213175
Patch

Clearing flags on attachment: 213175

Committed r156784: &lt;http://trac.webkit.org/changeset/156784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935474</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 11:51:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213153</attachid>
            <date>2013-10-01 22:55:10 -0700</date>
            <delta_ts>2013-10-02 09:33:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122205-20131001225510.patch</filename>
            <type>text/plain</type>
            <size>10136</size>
            <attacher name="Nadav Rotem">nrotem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjcwMzdmOWMxNGJhMzlhMGI0YjE2NmY1NjQ2ZDBiMjQ0ZjAwZWE1Li5hZWZkZjdiMTA2ZWIyODBi
NDVhYmYzNDFlMjA5ZmEyNDdkZWNjMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0xMC0wMSAgTmFkYXYgUm90ZW0gIDxucm90ZW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZUTDogUmVmYWN0b3IgY29tcGlsZUFyaXRoRGl2IGFuZCBjb21waWxlQXJpdGhN
b2QgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjIyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUFkZFN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdk1vZCk6CisKIDIwMTMtMTAtMDEgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGVEwgc2hvdWxkIHVzZSB0aGUgbmV3IHZl
cnNpb24gb2YgTExWTSBNQ0pJVCBtZW1vcnkgbWFuYWdlciBBUElzIHRoYXQgdGFrZSBhIFNlY3Rp
b25OYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCmluZGV4IDhmMTg3N2ViNjUzYmQ1ZjM0Zjg5NTdjNTg3YzI4ZDg5OTA1NWUwYWEuLmVhZmY2
ZDYxOTVjY2FjMzgyMzkwYWMzMGNiZGEwMTVmMDMyYjU3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0yODgsMTAgKzI4OCwxMCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTXVsKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aERp
digpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKERpdik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aE1v
ZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKE1vZCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBBcml0aE1heDoKQEAg
LTY1NCw5ICs2NTQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERS
RU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOwogICAgIH0KICAgICAKLSAgICBlbnVtIEFk
ZE9yU3ViS2luZCB7QWRkLCBTdWJ9OwotICAgIHZvaWQgY29tcGlsZUFkZFN1YihBZGRPclN1Yktp
bmQgb3BLaW5kKQorICAgIGVudW0gQXJpdGhLaW5kIHtBZGQsIFN1YiwgRGl2LCBNb2R9OworICAg
IHZvaWQgY29tcGlsZUFkZFN1YihBcml0aEtpbmQgb3BLaW5kKQogICAgIHsKKyAgICAgICAgQVNT
RVJUKG9wS2luZCA9PSBTdWIgfHwgb3BLaW5kID09IEFkZCk7CiAgICAgICAgIGJvb2wgaXNTdWIg
PSBvcEtpbmQgPT0gU3ViOwogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgp
KSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsKQEAgLTc3OSwxNiArNzgwLDE4IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBjb21waWxlQXJpdGhEaXYoKQor
ICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2TW9kKEFyaXRoS2luZCBvcEtpbmQpCiAgICAgeworICAg
ICAgICBBU1NFUlQob3BLaW5kID09IERpdiB8fCBvcEtpbmQgPT0gTW9kKTsKKyAgICAgICAgYm9v
bCBpc0RpdiA9IG9wS2luZCA9PSBEaXY7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlV
c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVl
IG51bWVyYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZh
bHVlIGRlbm9taW5hdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJBcml0aERpdiB1bnNhZmUgZGVub21pbmF0b3IiKSk7Ci0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
RGl2IGNvbnRpbnVhdGlvbiIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IGRvbmUiKSk7CisgICAgICAgICAgICBMQmFzaWNC
bG9jayB1bnNhZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZN
b2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBjb250aW51YXRpb24i
KSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aERpdk1vZCBkb25lIikpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8
VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7CiAgICAgICAgICAgICAKQEAgLTgwNiw3ICs4MDks
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2Fz
ZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4gaW50IGFmdGVyIHdlJ3JlIGRvbmUu
IFNvLAotICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJvLCB0aGVu
IHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQgYmUgemVyby4KKyAgICAgICAgICAg
ICAgICAvLyBpZiB0aGUgZGVub21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3Vs
ZCBiZSB6ZXJvLgogICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkZW5vbWluYXRvciBpcyBub3Qg
emVybyAoaS5lLiBpdCdzIC0xIGJlY2F1c2Ugd2UncmUgZ3VhcmRlZCBieSB0aGUKICAgICAgICAg
ICAgICAgICAvLyBjaGVjayBhYm92ZSkgYW5kIHRoZSBudW1lcmF0b3IgaXMgLTJeMzEgdGhlbiB0
aGUgcmVzdWx0IHNob3VsZCBiZSAtMl4zMS4KICAgICAgICAgICAgICAgICAKQEAgLTgzMSw4ICs4
MzQsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFieXRlY29kZUNhbklnbm9y
ZU5lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXYgemVybyBudW1lcmF0b3IiKSk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVt
ZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBudW1l
cmF0b3IgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHplcm9O
dW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIHplcm8gbnVtZXJh
dG9yIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlv
biA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgbnVtZXJhdG9yIGNvbnRpbnVh
dGlvbiIpKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2go
bV9vdXQuaXNaZXJvMzIobnVtZXJhdG9yKSwgemVyb051bWVyYXRvciwgbnVtZXJhdG9yQ29udGlu
dWF0aW9uKTsKICAgICAgICAgICAgICAgICAKQEAgLTg0NiwxNSArODQ5LDE1IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGludWF0aW9uLCBp
bm5lckxhc3ROZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAg
TFZhbHVlIGRpdmlzaW9uUmVzdWx0ID0gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3Ip
OworICAgICAgICAgICAgTFZhbHVlIGRpdk1vZFJlc3VsdCA9IGlzRGl2ID8gbV9vdXQuZGl2KG51
bWVyYXRvciwgZGVub21pbmF0b3IpIDogbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3Ip
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoYnl0ZWNvZGVVc2VzQXNOdW1iZXIobV9u
b2RlLT5hcml0aE5vZGVGbGFncygpKSkgewogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAg
ICAgICAgICAgICAgICAgICAgT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgICAg
ICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKGRpdmlzaW9uUmVzdWx0LCBkZW5vbWluYXRv
ciksIG51bWVyYXRvcikpOworICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291
dC5tdWwoZGl2TW9kUmVzdWx0LCBkZW5vbWluYXRvciksIG51bWVyYXRvcikpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNo
b3IoZGl2aXNpb25SZXN1bHQpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFu
Y2hvcihkaXZNb2RSZXN1bHQpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKQEAg
LTg2NCw4ICs4NjcsOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAg
ICAgY2FzZSBOdW1iZXJVc2U6IHsKLSAgICAgICAgICAgIHNldERvdWJsZSgKLSAgICAgICAgICAg
ICAgICBtX291dC5kb3VibGVEaXYobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dEb3Vi
bGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgICAgIExWYWx1ZSBDMSA9IGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBDMiA9IGxvd0RvdWJsZSht
X25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIHNldERvdWJsZShpc0RpdiA/IG1fb3V0LmRv
dWJsZURpdihDMSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMxLCBDMikpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtODc1LDk5ICs4NzksNiBAQCBwcml2
YXRlOgogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHZvaWQgY29tcGlsZUFyaXRoTW9kKCkK
LSAgICB7Ci0gICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKLSAgICAg
ICAgY2FzZSBJbnQzMlVzZTogewotICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExC
YXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aE1vZCB1bnNhZmUgZGVub21pbmF0b3IiKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIGNvbnRpbnVhdGlvbiIp
KTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIGRvbmUiKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFZlY3RvcjxWYWx1
ZUZyb21CbG9jaywgMz4gcmVzdWx0czsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVl
IGFkanVzdGVkRGVub21pbmF0b3IgPSBtX291dC5hZGQoZGVub21pbmF0b3IsIG1fb3V0LmludDMy
T25lKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmFib3Zl
KGFkanVzdGVkRGVub21pbmF0b3IsIG1fb3V0LmludDMyT25lKSwgY29udGludWF0aW9uLCB1bnNh
ZmVEZW5vbWluYXRvcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8odW5zYWZlRGVub21pbmF0b3IsIGNvbnRpbnVhdGlvbik7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBuZWcyVG9UaGUzMSA9IG1fb3V0LmNv
bnN0SW50MzIoLTIxNDc0ODM2NDctMSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiAtMl4zMSAvIC0xIHdpbGwgYWN0dWFsbHkgeWllbGQgbmVnYXRpdmUgemVybywgc28gd2Ug
Y291bGQgaGF2ZSBhCi0gICAgICAgICAgICAvLyBzZXBhcmF0ZSBjYXNlIGZvciB0aGF0LiBCdXQg
aXQgcHJvYmFibHkgZG9lc24ndCBtYXR0ZXIgc28gbXVjaC4KLSAgICAgICAgICAgIGlmIChieXRl
Y29kZVVzZXNBc051bWJlcihtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7Ci0gICAgICAgICAg
ICAgICAgTFZhbHVlIGNvbmQgPSBtX291dC5iaXRPcihtX291dC5pc1plcm8zMihkZW5vbWluYXRv
ciksIG1fb3V0LmVxdWFsKG51bWVyYXRvciwgbmVnMlRvVGhlMzEpKTsKLSAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgY29uZCk7Ci0gICAgICAgICAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNvbnZlcnQgdGhlIHJlc3Vs
dCB0byBhbiBpbnQgYWZ0ZXIgd2UncmUgZG9uZS4gU28sCi0gICAgICAgICAgICAgICAgLy8gaWYg
dGhlIGRlbm9taW5hdG9yIGlzIHplcm8sIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcmVzdWx0
IHNob3VsZCBiZSB6ZXJvLgotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkZW5vbWluYXRvciBp
cyBub3QgemVybyAoaS5lLiBpdCdzIC0xIGJlY2F1c2Ugd2UncmUgZ3VhcmRlZCBieSB0aGUKLSAg
ICAgICAgICAgICAgICAvLyBjaGVjayBhYm92ZSkgYW5kIHRoZSBudW1lcmF0b3IgaXMgLTJeMzEg
dGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSAtMl4zMS4KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBtb2RCeVplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIG1vZHVsbyBieSB6ZXJvIikpOwotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IG5vdE1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qgbm90IG1vZHVs
byBieSB6ZXJvIikpOwotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5lZzJUb1RoZTMxQnlO
ZWcxID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCAtMl4zMS8tMSIpKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvMzIo
ZGVub21pbmF0b3IpLCBtb2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obW9kQnlaZXJvLCBub3RNb2RCeVplcm8p
OwotICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5pbnQz
Mlplcm8pKTsKLSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdE1vZEJ5WmVybywgbmVnMlRv
VGhlMzFCeU5lZzEpOwotICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5lcXVhbChu
dW1lcmF0b3IsIG5lZzJUb1RoZTMxKSwgbmVnMlRvVGhlMzFCeU5lZzEsIGNvbnRpbnVhdGlvbik7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obmVnMlRv
VGhlMzFCeU5lZzEsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBl
bmQobV9vdXQuYW5jaG9yKG1fb3V0LmludDMyWmVybykpOwotICAgICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoZG9uZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIExWYWx1ZSByZW1haW5kZXIgPSBtX291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghYnl0ZWNvZGVDYW5JZ25vcmVOZWdhdGl2
ZVplcm8obV9ub2RlLT5hcml0aE5vZGVGbGFncygpKSkgewotICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIG5lZ2F0aXZlTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1v
ZCBuZWdhdGl2ZSBudW1lcmF0b3IiKSk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVt
ZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBudW1l
cmF0b3IgY29udGludWF0aW9uIikpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQubGVzc1RoYW4obnVtZXJh
dG9yLCBtX291dC5pbnQzMlplcm8pLAotICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZU51bWVy
YXRvciwgbnVtZXJhdG9yQ29udGludWF0aW9uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBpbm5lckxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obmVnYXRp
dmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291
dC5pc1plcm8zMihyZW1haW5kZXIpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBtX291dC5qdW1wKG51bWVyYXRvckNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGludWF0aW9uLCBpbm5l
ckxhc3ROZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgcmVz
dWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJlbWFpbmRlcikpOwotICAgICAgICAgICAgbV9vdXQu
anVtcChkb25lKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG9u
ZSwgbGFzdE5leHQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5w
aGkobV9vdXQuaW50MzIsIHJlc3VsdHMpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKLSAgICAgICAgICAgIHNl
dERvdWJsZSgKLSAgICAgICAgICAgICAgICBtX291dC5kb3VibGVSZW0obG93RG91YmxlKG1fbm9k
ZS0+Y2hpbGQxKCkpLCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgIH0KLQogICAgIHZvaWQgY29tcGlsZUFyaXRoTWluT3JNYXgoKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213169</attachid>
            <date>2013-10-02 09:33:57 -0700</date>
            <delta_ts>2013-10-02 10:03:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122205-20131002093357.patch</filename>
            <type>text/plain</type>
            <size>10036</size>
            <attacher name="Nadav Rotem">nrotem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjcwMzdmOWMxNGJhMzlhMGI0YjE2NmY1NjQ2ZDBiMjQ0ZjAwZWE1Li5hZWZkZjdiMTA2ZWIyODBi
NDVhYmYzNDFlMjA5ZmEyNDdkZWNjMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0xMC0wMSAgTmFkYXYgUm90ZW0gIDxucm90ZW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZUTDogUmVmYWN0b3IgY29tcGlsZUFyaXRoRGl2IGFuZCBjb21waWxlQXJpdGhN
b2QgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjIyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUFkZFN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdk1vZCk6CisKIDIwMTMtMTAtMDEgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGVEwgc2hvdWxkIHVzZSB0aGUgbmV3IHZl
cnNpb24gb2YgTExWTSBNQ0pJVCBtZW1vcnkgbWFuYWdlciBBUElzIHRoYXQgdGFrZSBhIFNlY3Rp
b25OYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCmluZGV4IDhmMTg3N2ViNjUzYmQ1ZjM0Zjg5NTdjNTg3YzI4ZDg5OTA1NWUwYWEuLmU0MGVm
OTM1ODEzY2Q1MzYyN2ZhMjYyNzViODRiMWU5YzEzZTdmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0yODgsMTAgKzI4OCwxMCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTXVsKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aERp
digpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKERpdik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aE1v
ZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKE1vZCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBBcml0aE1heDoKQEAg
LTY1Nyw2ICs2NTcsNyBAQCBwcml2YXRlOgogICAgIGVudW0gQWRkT3JTdWJLaW5kIHtBZGQsIFN1
Yn07CiAgICAgdm9pZCBjb21waWxlQWRkU3ViKEFkZE9yU3ViS2luZCBvcEtpbmQpCiAgICAgewor
ICAgICAgICBBU1NFUlQob3BLaW5kID09IFN1YiB8fCBvcEtpbmQgPT0gQWRkKTsKICAgICAgICAg
Ym9vbCBpc1N1YiA9IG9wS2luZCA9PSBTdWI7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5h
cnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewpAQCAtNzc4LDE3ICs3Nzks
MjAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotICAg
IAotICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KCkKKworICAgIGVudW0gRGl2T3JNb2RLaW5kIHtE
aXYsIE1vZH07CisgICAgdm9pZCBjb21waWxlQXJpdGhEaXZNb2QoRGl2T3JNb2RLaW5kIG9wS2lu
ZCkKICAgICB7CisgICAgICAgIEFTU0VSVChvcEtpbmQgPT0gRGl2IHx8IG9wS2luZCA9PSBNb2Qp
OworICAgICAgICBib29sIGlzRGl2ID0gb3BLaW5kID09IERpdjsKICAgICAgICAgc3dpdGNoICht
X25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNlOiB7CiAgICAg
ICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigp
KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0
b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHVuc2FmZSBkZW5vbWluYXRvciIp
KTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhEaXYgY29udGludWF0aW9uIikpOwotICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgZG9uZSIpKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aERpdk1vZCB1bnNhZmUgZGVub21pbmF0b3IiKSk7CisgICAgICAgICAgICBMQmFz
aWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9k
IGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGRvbmUiKSk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMz4gcmVzdWx0czsKICAgICAgICAgICAgIApA
QCAtODA2LDcgKzgxMCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBU
aGlzIGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNvbnZlcnQgdGhlIHJlc3VsdCB0byBhbiBpbnQgYWZ0
ZXIgd2UncmUgZG9uZS4gU28sCi0gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlbm9taW5hdG9y
IGlzIHplcm8sIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcmVzdWx0IHNob3VsZCBiZSB6ZXJv
LgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJvLCB0aGVuIHRo
ZSByZXN1bHQgc2hvdWxkIGJlIHplcm8uCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9t
aW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5
IHRoZQogICAgICAgICAgICAgICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBp
cyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgogICAgICAgICAgICAgICAg
IApAQCAtODMxLDggKzgzNSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWJ5
dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsK
LSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJBcml0aERpdiB6ZXJvIG51bWVyYXRvciIpKTsKLSAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoRGl2IG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgTEJh
c2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZN
b2QgemVybyBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVtZXJh
dG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBudW1l
cmF0b3IgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihudW1lcmF0b3IpLCB6ZXJvTnVtZXJhdG9yLCBu
dW1lcmF0b3JDb250aW51YXRpb24pOwogICAgICAgICAgICAgICAgIApAQCAtODQ2LDE1ICs4NTAs
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JD
b250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBMVmFsdWUgZGl2aXNpb25SZXN1bHQgPSBtX291dC5kaXYobnVtZXJhdG9y
LCBkZW5vbWluYXRvcik7CisgICAgICAgICAgICBMVmFsdWUgZGl2TW9kUmVzdWx0ID0gaXNEaXYg
PyBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWluYXRvcikgOiBtX291dC5yZW0obnVtZXJhdG9y
LCBkZW5vbWluYXRvcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChieXRlY29kZVVz
ZXNBc051bWJlcihtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7CiAgICAgICAgICAgICAgICAg
c3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAgICBPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLAot
ICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291dC5tdWwoZGl2aXNpb25SZXN1
bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9y
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBw
ZW5kKG1fb3V0LmFuY2hvcihkaXZpc2lvblJlc3VsdCkpOworICAgICAgICAgICAgcmVzdWx0cy5h
cHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJlc3VsdCkpOwogICAgICAgICAgICAgbV9vdXQuanVt
cChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG9uZSwg
bGFzdE5leHQpOwpAQCAtODY0LDggKzg2OCw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewotICAgICAgICAgICAgc2V0RG91Ymxl
KAotICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZURpdihsb3dEb3VibGUobV9ub2RlLT5jaGls
ZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAgTFZhbHVl
IEMxID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIEMy
ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgc2V0RG91YmxlKGlz
RGl2ID8gbV9vdXQuZG91YmxlRGl2KEMxLCBDMikgOiBtX291dC5kb3VibGVSZW0oQzEsIEMyKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NzUsOTkg
Kzg4MCw2IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBjb21w
aWxlQXJpdGhNb2QoKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtp
bmQoKSkgewotICAgICAgICBjYXNlIEludDMyVXNlOiB7Ci0gICAgICAgICAgICBMVmFsdWUgbnVt
ZXJhdG9yID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUg
ZGVub21pbmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoTW9kIHVuc2FmZSBkZW5vbWluYXRvciIpKTsKLSAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qg
Y29udGludWF0aW9uIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgZG9uZSIpKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBMVmFsdWUgYWRqdXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFkZChkZW5vbWluYXRv
ciwgbV9vdXQuaW50MzJPbmUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBtX291dC5icmFu
Y2gobV9vdXQuYWJvdmUoYWRqdXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpLCBjb250
aW51YXRpb24sIHVuc2FmZURlbm9taW5hdG9yKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVEZW5vbWluYXRvciwg
Y29udGludWF0aW9uKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVlIG5lZzJUb1Ro
ZTMxID0gbV9vdXQuY29uc3RJbnQzMigtMjE0NzQ4MzY0Ny0xKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgLy8gRklYTUU6IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5aWVsZCBuZWdhdGl2
ZSB6ZXJvLCBzbyB3ZSBjb3VsZCBoYXZlIGEKLSAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNhc2Ug
Zm9yIHRoYXQuIEJ1dCBpdCBwcm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBtdWNoLgotICAgICAg
ICAgICAgaWYgKGJ5dGVjb2RlVXNlc0FzTnVtYmVyKG1fbm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkp
IHsKLSAgICAgICAgICAgICAgICBMVmFsdWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0LmlzWmVy
bzMyKGRlbm9taW5hdG9yKSwgbV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSkpOwot
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBjb25kKTsK
LSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29u
dmVydCB0aGUgcmVzdWx0IHRvIGFuIGludCBhZnRlciB3ZSdyZSBkb25lLiBTbywKLSAgICAgICAg
ICAgICAgICAvLyBpZiB0aGUgZGVub21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNo
b3VsZCBiZSByZXN1bHQgc2hvdWxkIGJlIHplcm8uCi0gICAgICAgICAgICAgICAgLy8gSWYgdGhl
IGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFy
ZGVkIGJ5IHRoZQotICAgICAgICAgICAgICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVy
YXRvciBpcyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbW9kdWxvIGJ5IHplcm8iKSk7Ci0gICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbm90TW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aE1vZCBub3QgbW9kdWxvIGJ5IHplcm8iKSk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bmVnMlRvVGhlMzFCeU5lZzEgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIC0yXjMx
Ly0xIikpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCht
X291dC5pc1plcm8zMihkZW5vbWluYXRvciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RCeVplcm8s
IG5vdE1vZEJ5WmVybyk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5j
aG9yKG1fb3V0LmludDMyWmVybykpOwotICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TW9k
QnlaZXJvLCBuZWcyVG9UaGUzMUJ5TmVnMSk7Ci0gICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KG1fb3V0LmVxdWFsKG51bWVyYXRvciwgbmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5TmVnMSwg
Y29udGludWF0aW9uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5h
cHBlbmRUbyhuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKLSAgICAgICAgICAgICAg
ICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7Ci0gICAgICAg
ICAgICAgICAgbV9vdXQuanVtcChkb25lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBkb25lKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgTFZhbHVlIHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1lcmF0b3Is
IGRlbm9taW5hdG9yKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFieXRlY29kZUNh
bklnbm9yZU5lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7Ci0gICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbmVnYXRpdmVOdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIkFyaXRoTW9kIG5lZ2F0aXZlIG51bWVyYXRvciIpKTsKLSAgICAgICAgICAgICAgICBM
QmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IkFyaXRoTW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAotICAgICAgICAgICAgICAgICAgICBtX291dC5s
ZXNzVGhhbihudW1lcmF0b3IsIG1fb3V0LmludDMyWmVybyksCi0gICAgICAgICAgICAgICAgICAg
IG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24pOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlubmVyTGFzdE5leHQgPSBtX291dC5h
cHBlbmRUbyhuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJhdG9yQ29udGludWF0aW9uKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1Zh
bHVlKCksIDAsIG1fb3V0LmlzWmVybzMyKHJlbWFpbmRlcikpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAobnVtZXJhdG9yQ29udGludWF0aW9uKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhudW1lcmF0b3JDb250
aW51YXRpb24sIGlubmVyTGFzdE5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IocmVtYWluZGVyKSk7Ci0gICAg
ICAgICAgICBtX291dC5qdW1wKGRvbmUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhkb25lLCBsYXN0TmV4dCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNl
dEludDMyKG1fb3V0LnBoaShtX291dC5pbnQzMiwgcmVzdWx0cykpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIE51bWJlclVzZTogewot
ICAgICAgICAgICAgc2V0RG91YmxlKAotICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZVJlbShs
b3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgdm9pZCBjb21waWxlQXJpdGhN
aW5Pck1heCgpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgp
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213172</attachid>
            <date>2013-10-02 10:03:15 -0700</date>
            <delta_ts>2013-10-02 10:52:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122205-20131002100314.patch</filename>
            <type>text/plain</type>
            <size>10164</size>
            <attacher name="Nadav Rotem">nrotem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjcwMzdmOWMxNGJhMzlhMGI0YjE2NmY1NjQ2ZDBiMjQ0ZjAwZWE1Li5hZWZkZjdiMTA2ZWIyODBi
NDVhYmYzNDFlMjA5ZmEyNDdkZWNjMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0xMC0wMSAgTmFkYXYgUm90ZW0gIDxucm90ZW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZUTDogUmVmYWN0b3IgY29tcGlsZUFyaXRoRGl2IGFuZCBjb21waWxlQXJpdGhN
b2QgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjIyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUFkZFN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdk1vZCk6CisKIDIwMTMtMTAtMDEgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGVEwgc2hvdWxkIHVzZSB0aGUgbmV3IHZl
cnNpb24gb2YgTExWTSBNQ0pJVCBtZW1vcnkgbWFuYWdlciBBUElzIHRoYXQgdGFrZSBhIFNlY3Rp
b25OYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCmluZGV4IDhmMTg3N2ViNjUzYmQ1ZjM0Zjg5NTdjNTg3YzI4ZDg5OTA1NWUwYWEuLmYxYzMw
ZTBiNzA1MWYyNWFmNzBiN2JiMTkxNmQzZjk0MTUzNTY5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0yODgsMTAgKzI4OCwxMCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTXVsKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aERp
digpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKERpdik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aE1v
ZCgpOworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKE1vZCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBBcml0aE1heDoKQEAg
LTY1NCw5ICs2NTQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERS
RU4obV9ncmFwaCwgbV9ub2RlLCBzcGVjdWxhdGUpOwogICAgIH0KICAgICAKLSAgICBlbnVtIEFk
ZE9yU3ViS2luZCB7QWRkLCBTdWJ9OworICAgIGVudW0gQWRkT3JTdWJLaW5kIHsgQWRkLCBTdWIg
fTsKICAgICB2b2lkIGNvbXBpbGVBZGRTdWIoQWRkT3JTdWJLaW5kIG9wS2luZCkKICAgICB7Cisg
ICAgICAgIEFTU0VSVChvcEtpbmQgPT0gU3ViIHx8IG9wS2luZCA9PSBBZGQpOwogICAgICAgICBi
b29sIGlzU3ViID0gb3BLaW5kID09IFN1YjsKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFy
eVVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEludDMyVXNlOiB7CkBAIC03NzgsMTcgKzc3OSwx
OSBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
Ci0gICAgdm9pZCBjb21waWxlQXJpdGhEaXYoKQorCisgICAgZW51bSBEaXZPck1vZEtpbmQgeyBE
aXYsIE1vZCB9OworICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2TW9kKERpdk9yTW9kS2luZCBvcEtp
bmQpCiAgICAgeworICAgICAgICBBU1NFUlQob3BLaW5kID09IERpdiB8fCBvcEtpbmQgPT0gTW9k
KTsKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBj
YXNlIEludDMyVXNlOiB7CiAgICAgICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIo
bV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTEJhc2lj
QmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2
IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgY29udGludWF0aW9uIikpOwot
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXYgZG9uZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9y
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCB1bnNhZmUgZGVub21pbmF0b3Ii
KSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoRGl2TW9kIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGRvbmUiKSk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgMz4gcmVz
dWx0czsKICAgICAgICAgICAgIApAQCAtODA2LDcgKzgwOSw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNvbnZlcnQgdGhl
IHJlc3VsdCB0byBhbiBpbnQgYWZ0ZXIgd2UncmUgZG9uZS4gU28sCi0gICAgICAgICAgICAgICAg
Ly8gaWYgdGhlIGRlbm9taW5hdG9yIGlzIHplcm8sIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUg
cmVzdWx0IHNob3VsZCBiZSB6ZXJvLgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWlu
YXRvciBpcyB6ZXJvLCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHplcm8uCiAgICAgICAgICAg
ICAgICAgLy8gSWYgdGhlIGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0J3MgLTEgYmVj
YXVzZSB3ZSdyZSBndWFyZGVkIGJ5IHRoZQogICAgICAgICAgICAgICAgIC8vIGNoZWNrIGFib3Zl
KSBhbmQgdGhlIG51bWVyYXRvciBpcyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIC0y
XjMxLgogICAgICAgICAgICAgICAgIApAQCAtODMxLDggKzgzNCw4IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1fbm9kZS0+
YXJpdGhOb2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVt
ZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiB6ZXJvIG51bWVyYXRvciIp
KTsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IG51bWVyYXRvciBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiQXJpdGhEaXZNb2QgemVybyBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aERpdk1vZCBudW1lcmF0b3IgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihudW1lcmF0
b3IpLCB6ZXJvTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24pOwogICAgICAgICAgICAg
ICAgIApAQCAtODQ2LDE1ICs4NDksMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgZGl2aXNpb25SZXN1bHQg
PSBtX291dC5kaXYobnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CisgICAgICAgICAgICBMVmFsdWUg
ZGl2TW9kUmVzdWx0ID0gb3BLaW5kID09IERpdgorICAgICAgICAgICAgICAgID8gbV9vdXQuZGl2
KG51bWVyYXRvciwgZGVub21pbmF0b3IpCisgICAgICAgICAgICAgICAgOiBtX291dC5yZW0obnVt
ZXJhdG9yLCBkZW5vbWluYXRvcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChieXRl
Y29kZVVzZXNBc051bWJlcihtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7CiAgICAgICAgICAg
ICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgICAgICBPdmVyZmxvdywgbm9WYWx1ZSgp
LCAwLAotICAgICAgICAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291dC5tdWwoZGl2aXNp
b25SZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CisgICAgICAgICAgICAgICAgICAg
IG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVt
ZXJhdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihkaXZpc2lvblJlc3VsdCkpOworICAgICAgICAgICAgcmVz
dWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJlc3VsdCkpOwogICAgICAgICAgICAgbV9v
dXQuanVtcChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
ZG9uZSwgbGFzdE5leHQpOwpAQCAtODY0LDggKzg2OSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewotICAgICAgICAgICAgc2V0
RG91YmxlKAotICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZURpdihsb3dEb3VibGUobV9ub2Rl
LT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAg
TFZhbHVlIEMxID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIEMyID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgc2V0RG91
YmxlKG9wS2luZCA9PSBEaXYgPyBtX291dC5kb3VibGVEaXYoQzEsIEMyKSA6IG1fb3V0LmRvdWJs
ZVJlbShDMSwgQzIpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAg
ICAKQEAgLTg3NSw5OSArODgxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KICAgICAK
LSAgICB2b2lkIGNvbXBpbGVBcml0aE1vZCgpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG1fbm9k
ZS0+YmluYXJ5VXNlS2luZCgpKSB7Ci0gICAgICAgIGNhc2UgSW50MzJVc2U6IHsKLSAgICAgICAg
ICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5vbWluYXRvciA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgdW5zYWZlIGRlbm9taW5hdG9yIikpOwot
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aE1vZCBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBk
b25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBkb25lIikpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3VsdHM7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBhZGp1c3RlZERlbm9taW5hdG9yID0gbV9vdXQu
YWRkKGRlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZShhZGp1c3RlZERlbm9taW5hdG9yLCBtX291dC5p
bnQzMk9uZSksIGNvbnRpbnVhdGlvbiwgdW5zYWZlRGVub21pbmF0b3IpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHVuc2Fm
ZURlbm9taW5hdG9yLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBM
VmFsdWUgbmVnMlRvVGhlMzEgPSBtX291dC5jb25zdEludDMyKC0yMTQ3NDgzNjQ3LTEpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICAvLyBGSVhNRTogLTJeMzEgLyAtMSB3aWxsIGFjdHVhbGx5
IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNvIHdlIGNvdWxkIGhhdmUgYQotICAgICAgICAgICAgLy8g
c2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4gQnV0IGl0IHByb2JhYmx5IGRvZXNuJ3QgbWF0dGVyIHNv
IG11Y2guCi0gICAgICAgICAgICBpZiAoYnl0ZWNvZGVVc2VzQXNOdW1iZXIobV9ub2RlLT5hcml0
aE5vZGVGbGFncygpKSkgewotICAgICAgICAgICAgICAgIExWYWx1ZSBjb25kID0gbV9vdXQuYml0
T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBtX291dC5lcXVhbChudW1lcmF0b3IsIG5l
ZzJUb1RoZTMxKSk7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVl
KCksIDAsIGNvbmQpOwotICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2Fz
ZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4gaW50IGFmdGVyIHdlJ3JlIGRvbmUu
IFNvLAotICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJvLCB0aGVu
IHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQgYmUgemVyby4KLSAgICAgICAgICAg
ICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMgbm90IHplcm8gKGkuZS4gaXQncyAtMSBiZWNh
dXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCi0gICAgICAgICAgICAgICAgLy8gY2hlY2sgYWJvdmUp
IGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgLTJe
MzEuCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbW9kQnla
ZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBtb2R1bG8gYnkgemVybyIpKTsK
LSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RNb2RCeVplcm8gPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8gYnkgemVybyIpKTsKLSAgICAgICAgICAgICAg
ICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVnMSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhNb2QgLTJeMzEvLTEiKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbW9kQnlaZXJvLCBub3RN
b2RCeVplcm8pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKLSAgICAgICAgICAgICAgICByZXN1bHRzLmFw
cGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7Ci0gICAgICAgICAgICAgICAgbV9v
dXQuanVtcChkb25lKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5h
cHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1RoZTMxQnlOZWcxKTsKLSAgICAgICAgICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSksIG5lZzJU
b1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOwot
ICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5pbnQzMlpl
cm8pKTsKLSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGRv
bmUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVtYWluZGVyID0gbV9vdXQu
cmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBp
ZiAoIWJ5dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhOb2RlRmxhZ3Mo
KSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2ZU51bWVyYXRvciA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVtZXJhdG9yIikpOwotICAg
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCi0gICAgICAgICAgICAg
ICAgICAgIG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50MzJaZXJvKSwKLSAgICAg
ICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRpbnVhdGlvbik7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5uZXJMYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51
YXRpb24pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdh
dGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVtYWluZGVyKSk7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9vdXQuanVtcChudW1lcmF0b3JDb250aW51
YXRpb24pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihyZW1h
aW5kZXIpKTsKLSAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMyLCByZXN1bHRzKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
TnVtYmVyVXNlOiB7Ci0gICAgICAgICAgICBzZXREb3VibGUoCi0gICAgICAgICAgICAgICAgbV9v
dXQuZG91YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9k
ZS0+Y2hpbGQyKCkpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAg
ICAgCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICB2b2lk
IGNvbXBpbGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5i
aW5hcnlVc2VLaW5kKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213175</attachid>
            <date>2013-10-02 10:52:09 -0700</date>
            <delta_ts>2013-10-02 11:51:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122205-20131002105208.patch</filename>
            <type>text/plain</type>
            <size>10401</size>
            <attacher name="Nadav Rotem">nrotem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjcwMzdmOWMxNGJhMzlhMGI0YjE2NmY1NjQ2ZDBiMjQ0ZjAwZWE1Li5hZWZkZjdiMTA2ZWIyODBi
NDVhYmYzNDFlMjA5ZmEyNDdkZWNjMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0xMC0wMSAgTmFkYXYgUm90ZW0gIDxucm90ZW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZUTDogUmVmYWN0b3IgY29tcGlsZUFyaXRoRGl2IGFuZCBjb21waWxlQXJpdGhN
b2QgaW50byBvbmUgZnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjIyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUFkZFN1Yik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVBcml0aERpdk1vZCk6CisKIDIwMTMtMTAtMDEgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGVEwgc2hvdWxkIHVzZSB0aGUgbmV3IHZl
cnNpb24gb2YgTExWTSBNQ0pJVCBtZW1vcnkgbWFuYWdlciBBUElzIHRoYXQgdGFrZSBhIFNlY3Rp
b25OYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCmluZGV4IDhmMTg3N2ViNjUzYmQ1ZjM0Zjg5NTdjNTg3YzI4ZDg5OTA1NWUwYWEuLjk5ZjAx
YjdkYjkzMGJkN2NjZTk0MGI2NDIzMzhkOWUxZmU4NjVkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0yNzksMTkgKzI3OSwxOSBA
QCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhBZGQ6CiAg
ICAgICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKEFkZCk7Cisg
ICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBcml0aFN1YjoKLSAgICAgICAgICAgIGNvbXBpbGVBZGRTdWIoU3ViKTsKKyAgICAgICAg
ICAgIGNvbXBpbGVBZGRTdWIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFy
aXRoTXVsOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTXVsKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBcml0aERpdjoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aERpdigp
OworICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBBcml0aE1vZDoKLSAgICAgICAgICAgIGNvbXBpbGVBcml0aE1vZCgpOwor
ICAgICAgICAgICAgY29tcGlsZUFyaXRoRGl2TW9kKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBcml0aE1pbjoKICAgICAgICAgY2FzZSBBcml0aE1heDoKQEAgLTY1NCwxMCAr
NjU0LDkgQEAgcHJpdmF0ZToKICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERSRU4obV9ncmFw
aCwgbV9ub2RlLCBzcGVjdWxhdGUpOwogICAgIH0KICAgICAKLSAgICBlbnVtIEFkZE9yU3ViS2lu
ZCB7QWRkLCBTdWJ9OwotICAgIHZvaWQgY29tcGlsZUFkZFN1YihBZGRPclN1YktpbmQgb3BLaW5k
KQorICAgIHZvaWQgY29tcGlsZUFkZFN1YigpCiAgICAgewotICAgICAgICBib29sIGlzU3ViID0g
b3BLaW5kID09IFN1YjsKKyAgICAgICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9wKCkgPT0gQXJp
dGhTdWI7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAg
ICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMiht
X25vZGUtPmNoaWxkMSgpKTsKQEAgLTc3OCwxNyArNzc3LDE3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICB2b2lkIGNvbXBpbGVBcml0
aERpdigpCisKKyAgICB2b2lkIGNvbXBpbGVBcml0aERpdk1vZCgpCiAgICAgewogICAgICAgICBz
d2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6
IHsKICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQyKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVE
ZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgdW5zYWZlIGRlbm9t
aW5hdG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aERpdiBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAgICBM
QmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBkb25lIikp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhEaXZNb2QgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgZG9uZSIpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOwogICAgICAg
ICAgICAgCkBAIC04MDYsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291
dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29udmVydCB0aGUgcmVzdWx0IHRvIGFu
IGludCBhZnRlciB3ZSdyZSBkb25lLiBTbywKLSAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVu
b21pbmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSByZXN1bHQgc2hvdWxk
IGJlIHplcm8uCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlbm9taW5hdG9yIGlzIHplcm8s
IHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgemVyby4KICAgICAgICAgICAgICAgICAvLyBJZiB0
aGUgZGVub21pbmF0b3IgaXMgbm90IHplcm8gKGkuZS4gaXQncyAtMSBiZWNhdXNlIHdlJ3JlIGd1
YXJkZWQgYnkgdGhlCiAgICAgICAgICAgICAgICAgLy8gY2hlY2sgYWJvdmUpIGFuZCB0aGUgbnVt
ZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgLTJeMzEuCiAgICAgICAg
ICAgICAgICAgCkBAIC04MzEsOCArODMwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmICghYnl0ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE5vZGVGbGFn
cygpKSkgewotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHplcm8gbnVtZXJhdG9yIikpOwotICAgICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhEaXYgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAg
ICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJB
cml0aERpdk1vZCB6ZXJvIG51bWVyYXRvciIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2
TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKG51bWVyYXRvciksIHplcm9OdW1l
cmF0b3IsIG51bWVyYXRvckNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAgICAgCkBAIC04NDYs
MTUgKzg0NSwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51
bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBkaXZpc2lvblJlc3VsdCA9IG1fb3V0LmRpdihu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQg
PSBtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYKKyAgICAgICAgICAgICAgICA/IG1fb3V0LmRpdihu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKQorICAgICAgICAgICAgICAgIDogbV9vdXQucmVtKG51bWVy
YXRvciwgZGVub21pbmF0b3IpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoYnl0ZWNv
ZGVVc2VzQXNOdW1iZXIobV9ub2RlLT5hcml0aE5vZGVGbGFncygpKSkgewogICAgICAgICAgICAg
ICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgICAgICAgICAgT3ZlcmZsb3csIG5vVmFsdWUoKSwg
MCwKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKGRpdmlzaW9u
UmVzdWx0LCBkZW5vbWluYXRvciksIG51bWVyYXRvcikpOworICAgICAgICAgICAgICAgICAgICBt
X291dC5ub3RFcXVhbChtX291dC5tdWwoZGl2TW9kUmVzdWx0LCBkZW5vbWluYXRvciksIG51bWVy
YXRvcikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICByZXN1bHRz
LmFwcGVuZChtX291dC5hbmNob3IoZGl2aXNpb25SZXN1bHQpKTsKKyAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKG1fb3V0LmFuY2hvcihkaXZNb2RSZXN1bHQpKTsKICAgICAgICAgICAgIG1fb3V0
Lmp1bXAoZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRv
bmUsIGxhc3ROZXh0KTsKQEAgLTg2NCw4ICs4NjUsOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKLSAgICAgICAgICAgIHNldERv
dWJsZSgKLSAgICAgICAgICAgICAgICBtX291dC5kb3VibGVEaXYobG93RG91YmxlKG1fbm9kZS0+
Y2hpbGQxKCkpLCBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgICAgIExW
YWx1ZSBDMSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1
ZSBDMiA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIHNldERvdWJs
ZShtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYgPyBtX291dC5kb3VibGVEaXYoQzEsIEMyKSA6IG1f
b3V0LmRvdWJsZVJlbShDMSwgQzIpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKQEAgLTg3NSw5OSArODc3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAg
IH0KICAgICAKLSAgICB2b2lkIGNvbXBpbGVBcml0aE1vZCgpCi0gICAgewotICAgICAgICBzd2l0
Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7Ci0gICAgICAgIGNhc2UgSW50MzJVc2U6IHsK
LSAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hp
bGQyKCkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5v
bWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgdW5zYWZlIGRlbm9taW5h
dG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJBcml0aE1vZCBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAgICBMQmFz
aWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBkb25lIikpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJlc3Vs
dHM7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSBhZGp1c3RlZERlbm9taW5hdG9y
ID0gbV9vdXQuYWRkKGRlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZShhZGp1c3RlZERlbm9taW5hdG9y
LCBtX291dC5pbnQzMk9uZSksIGNvbnRpbnVhdGlvbiwgdW5zYWZlRGVub21pbmF0b3IpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKHVuc2FmZURlbm9taW5hdG9yLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBMVmFsdWUgbmVnMlRvVGhlMzEgPSBtX291dC5jb25zdEludDMyKC0yMTQ3NDgzNjQ3
LTEpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBGSVhNRTogLTJeMzEgLyAtMSB3aWxs
IGFjdHVhbGx5IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNvIHdlIGNvdWxkIGhhdmUgYQotICAgICAg
ICAgICAgLy8gc2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4gQnV0IGl0IHByb2JhYmx5IGRvZXNuJ3Qg
bWF0dGVyIHNvIG11Y2guCi0gICAgICAgICAgICBpZiAoYnl0ZWNvZGVVc2VzQXNOdW1iZXIobV9u
b2RlLT5hcml0aE5vZGVGbGFncygpKSkgewotICAgICAgICAgICAgICAgIExWYWx1ZSBjb25kID0g
bV9vdXQuYml0T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBtX291dC5lcXVhbChudW1l
cmF0b3IsIG5lZzJUb1RoZTMxKSk7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93
LCBub1ZhbHVlKCksIDAsIGNvbmQpOwotICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhpcyBp
cyB0aGUgY2FzZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4gaW50IGFmdGVyIHdl
J3JlIGRvbmUuIFNvLAotICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWluYXRvciBpcyB6
ZXJvLCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQgYmUgemVyby4KLSAg
ICAgICAgICAgICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMgbm90IHplcm8gKGkuZS4gaXQn
cyAtMSBiZWNhdXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCi0gICAgICAgICAgICAgICAgLy8gY2hl
Y2sgYWJvdmUpIGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhlIHJlc3VsdCBzaG91
bGQgYmUgLTJeMzEuCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgbW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBtb2R1bG8gYnkg
emVybyIpKTsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RNb2RCeVplcm8gPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8gYnkgemVybyIpKTsKLSAgICAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVnMSA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhNb2QgLTJeMzEvLTEiKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbW9kQnla
ZXJvLCBub3RNb2RCeVplcm8pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKLSAgICAgICAgICAgICAgICBy
ZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7Ci0gICAgICAgICAg
ICAgICAgbV9vdXQuanVtcChkb25lKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1RoZTMxQnlOZWcxKTsKLSAgICAg
ICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUz
MSksIG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51
YXRpb24pOwotICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291
dC5pbnQzMlplcm8pKTsKLSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24sIGRvbmUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVtYWluZGVy
ID0gbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhO
b2RlRmxhZ3MoKSkpIHsKLSAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2ZU51bWVy
YXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVtZXJhdG9y
IikpOwotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIp
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCi0gICAg
ICAgICAgICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50MzJaZXJv
KSwKLSAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRp
bnVhdGlvbik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
aW5uZXJMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0
b3JDb250aW51YXRpb24pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHNwZWN1
bGF0ZShOZWdhdGl2ZVplcm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVtYWluZGVy
KSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9vdXQuanVtcChudW1lcmF0
b3JDb250aW51YXRpb24pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFu
Y2hvcihyZW1haW5kZXIpKTsKLSAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMyLCByZXN1
bHRzKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgIGNhc2UgTnVtYmVyVXNlOiB7Ci0gICAgICAgICAgICBzZXREb3VibGUoCi0gICAgICAgICAg
ICAgICAgbV9vdXQuZG91YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICAgICAgCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0K
ICAgICB2b2lkIGNvbXBpbGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
bV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>