<?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>41384</bug_id>
          
          <creation_ts>2010-06-29 16:50:49 -0700</creation_ts>
          <short_desc>Allow Chromium access to Select control choices</short_desc>
          <delta_ts>2010-07-14 21:05:31 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="George Yakovlev">georgey</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jhawkins</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244558</commentid>
    <comment_count>0</comment_count>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-06-29 16:50:49 -0700</bug_when>
    <thetext>Need access to the items of the Select element through WebKit::WebSelectElement. Patch is pending.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244931</commentid>
    <comment_count>1</comment_count>
      <attachid>60150</attachid>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-06-30 14:11:53 -0700</bug_when>
    <thetext>Created attachment 60150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244936</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-30 14:16:21 -0700</bug_when>
    <thetext>I hate that static_cast pattern, even though I know we use it a lot.

+fishd for kr API review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246152</commentid>
    <comment_count>3</comment_count>
      <attachid>60150</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-02 16:41:20 -0700</bug_when>
    <thetext>Comment on attachment 60150
Patch

WebKit/chromium/src/WebSelectElement.cpp:65
 +  
nit: only one new line

WebKit/chromium/src/WebSelectElement.cpp:60
 +              items[i] = static_cast&lt;HTMLOptionElement*&gt;(sourceItems[i])-&gt;value();
instead of returning a list of the values of the items, how
about returning WebOptionElement objects instead?  otherwise,
i think the name of this method should be listItemValues to
better correspond to what it is returning.

WebOptionElement seems better to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248459</commentid>
    <comment_count>4</comment_count>
    <who name="James Hawkins">jhawkins</who>
    <bug_when>2010-07-08 12:58:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 60150 [details])
&gt; WebKit/chromium/src/WebSelectElement.cpp:65
&gt;  +  
&gt; nit: only one new line
&gt; 
&gt; WebKit/chromium/src/WebSelectElement.cpp:60
&gt;  +              items[i] = static_cast&lt;HTMLOptionElement*&gt;(sourceItems[i])-&gt;value();
&gt; instead of returning a list of the values of the items, how
&gt; about returning WebOptionElement objects instead?  otherwise,
&gt; i think the name of this method should be listItemValues to
&gt; better correspond to what it is returning.
&gt; 
&gt; WebOptionElement seems better to me.

I agree. Implementing WebOptionElement is ideal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249134</commentid>
    <comment_count>5</comment_count>
      <attachid>61066</attachid>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-07-09 11:29:32 -0700</bug_when>
    <thetext>Created attachment 61066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249137</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-09 11:32:53 -0700</bug_when>
    <thetext>Attachment 61066 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit/chromium/public/WebOptionElement.h:49:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249159</commentid>
    <comment_count>7</comment_count>
      <attachid>61066</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-09 11:59:46 -0700</bug_when>
    <thetext>Comment on attachment 61066
Patch

WebKit/chromium/public/WebOptionElement.h:60
 +      WEBKIT_API bool disabled() const;
hmm... this &apos;disabled&apos; method seems similar to the inherited
WebFormControlElement::isEnabled?  i see from reading the
implementation that it does a bit more (checks the parent&apos;s
disabled state as well).  it seems to me that it would be
better to name this one isEnabled as well.

WebKit/chromium/src/WebSelectElement.cpp:59
 +          items[i] = WebOptionElement(static_cast&lt;HTMLOptionElement*&gt;(sourceItems[i]));
I think you need to check that sourcesItems[i]-&gt;hasLocalName(optionTag)
is true before casting to HTMLOptionElement.

I&apos;m basing this on the implementation of HTMLSelectElement::value().
You could also just return a WebVector&lt;WebElement&gt;, and then leave
it up to the consumer to use WebElement::hasTagName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249992</commentid>
    <comment_count>8</comment_count>
      <attachid>61261</attachid>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-07-12 13:20:25 -0700</bug_when>
    <thetext>Created attachment 61261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250042</commentid>
    <comment_count>9</comment_count>
      <attachid>61261</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-12 14:13:49 -0700</bug_when>
    <thetext>Comment on attachment 61261
Patch

WebKit/chromium/public/WebOptionElement.h:64
 +      WEBKIT_API bool disabled() const;
previously, i suggested that you rename disabled to isEnabled, flipping
the sense, to be consistent with WebFormControlElement::isEnabled.  any
reason not to do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250058</commentid>
    <comment_count>10</comment_count>
      <attachid>61270</attachid>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-07-12 14:28:18 -0700</bug_when>
    <thetext>Created attachment 61270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250066</commentid>
    <comment_count>11</comment_count>
      <attachid>61270</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-12 14:46:13 -0700</bug_when>
    <thetext>Comment on attachment 61270
Patch

WebKit/chromium/src/WebSelectElement.cpp:59
 +        if (sourceItems[i]-&gt;hasLocalName(HTMLNames::optionTag))
^^^ indentation is wrong here and on the next line


Since the WebSelectElement::listItems method is only returning the
options contained in the SELECT element (excluding other types of
elements), I think it would be better to call this method &quot;options&quot;:

  WebVector&lt;WebOptionElement&gt; WebSelectElement::options()

If someone wanted to expose the full set of list items, then that
method could return a vector of WebElement and be named listItems.


LGTM with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251420</commentid>
    <comment_count>12</comment_count>
      <attachid>61562</attachid>
    <who name="George Yakovlev">georgey</who>
    <bug_when>2010-07-14 14:12:19 -0700</bug_when>
    <thetext>Created attachment 61562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251653</commentid>
    <comment_count>13</comment_count>
      <attachid>61562</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-14 21:05:25 -0700</bug_when>
    <thetext>Comment on attachment 61562
Patch

Clearing flags on attachment: 61562

Committed r63401: &lt;http://trac.webkit.org/changeset/63401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251654</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-14 21:05:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60150</attachid>
            <date>2010-06-30 14:11:53 -0700</date>
            <delta_ts>2010-07-09 11:29:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41384-20100630141152.patch</filename>
            <type>text/plain</type>
            <size>2436</size>
            <attacher name="George Yakovlev">georgey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjIxOTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDYtMzAgIEdlb3Jn
ZSBZYWtvdmxldiAgPGdlb3JnZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IENocm9taXVtIGFjY2VzcyB0byBTZWxl
Y3QgY29udHJvbCBjaG9pY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTM4NAorCisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaDoK
KyAgICAgICAgKiBzcmMvV2ViU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNlbGVjdEVsZW1lbnQ6Omxpc3RJdGVtcyk6CisKIDIwMTAtMDYtMjUgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1p
a2hhdHNreS4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VsZWN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VsZWN0RWxlbWVudC5o
CShyZXZpc2lvbiA2MjE5OCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VsZWN0RWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlNlbGVj
dEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVk
ZSAiV2ViVmVjdG9yLmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsgY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7IH0KQEAgLTUwLDYgKzUxLDcgQEAgcHVi
bGljOgogCiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFZhbHVlKGNvbnN0IFdlYlN0cmluZyYpOwog
ICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHZhbHVlKCk7CisgICAgV0VCS0lUX0FQSSBXZWJWZWN0
b3I8V2ViU3RyaW5nPiBsaXN0SXRlbXMoKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgog
ICAgIFdlYlNlbGVjdEVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50PiYpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWxlY3RFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlbGVjdEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2MjE5OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VsZWN0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJTZWxlY3RFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxT
ZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KQEAgLTQ5LDYgKzUxLDE5IEBAIFdlYlN0cmluZyBXZWJTZWxlY3RFbGVtZW50
Ojp2YWx1ZSgpCiAgICAgcmV0dXJuIHVud3JhcDxIVE1MU2VsZWN0RWxlbWVudD4oKS0+dmFsdWUo
KTsKIH0KIAorV2ViVmVjdG9yPFdlYlN0cmluZz4gV2ViU2VsZWN0RWxlbWVudDo6bGlzdEl0ZW1z
KCkKK3sKKyAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBzb3VyY2VJdGVtcyA9IHVud3JhcDxI
VE1MU2VsZWN0RWxlbWVudD4oKS0+bGlzdEl0ZW1zKCk7CisgICAgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4gaXRlbXMoc291cmNlSXRlbXMuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNvdXJjZUl0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChzb3VyY2VJdGVtc1tpXS0+
aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkKKyAgICAgICAgICAgIGl0ZW1zW2ld
ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihzb3VyY2VJdGVtc1tpXSktPnZhbHVl
KCk7CisgICAgfQorCisgICAgcmV0dXJuIGl0ZW1zOworfQorCisKIFdlYlNlbGVjdEVsZW1lbnQ6
OldlYlNlbGVjdEVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4mIGVs
ZW0pCiAgICAgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61066</attachid>
            <date>2010-07-09 11:29:32 -0700</date>
            <delta_ts>2010-07-12 13:20:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41384-20100709112931.patch</filename>
            <type>text/plain</type>
            <size>10793</size>
            <attacher name="George Yakovlev">georgey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMDkgIEdlb3Jn
ZSBZYWtvdmxldiAgPGdlb3JnZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IENocm9taXVtIGFjY2VzcyB0byBTZWxl
Y3QgY29udHJvbCBjaG9pY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTM4NAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViT3B0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9u
RWxlbWVudDo6V2ViT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVs
ZW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OmFz
c2lnbik6CisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
cmMvV2ViT3B0aW9uRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRp
b25FbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6
OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6aW5kZXgpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6bGFiZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50
OjpkaXNhYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvcj0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRy
PEhUTUxPcHRpb25FbGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZWxlY3RFbGVtZW50OjpsaXN0SXRlbXMpOgorCiAyMDEw
LTA3LTA5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpA
QCAtMTY1LDYgKzE2NSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRp
b24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCcsCkBAIC0zODUsNiAr
Mzg2LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVDb2xsZWN0aW9uLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTm90aWZpY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJPcHRpb25F
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplci5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplckltcGwuaCcsCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcHRpb25FbGVtZW50X2gKKyNkZWZpbmUgV2ViT3B0aW9uRWxl
bWVudF9oCisKKyNpbmNsdWRlICJXZWJGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVzIG9m
IGEgRE9NIG9wdGlvbiBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJPcHRpb25FbGVtZW50IDogcHVi
bGljIFdlYkZvcm1Db250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViT3B0aW9uRWxlbWVu
dCgpIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KCkgeyB9CisgICAgV2ViT3B0aW9uRWxlbWVudChj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudChlKSB7IH0K
KworICAgIFdlYk9wdGlvbkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXZWJPcHRpb25FbGVtZW50
JiBlKSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWduKGUpOyByZXR1cm4gKnRoaXM7IH0K
KyAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYk9wdGlvbkVsZW1lbnQmIGUpIHsg
V2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7IH0KKworICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2
YWx1ZSgpIGNvbnN0OworCisgICAgV0VCS0lUX0FQSSBpbnQgaW5kZXgoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyB0ZXh0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGRl
ZmF1bHRTZWxlY3RlZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXREZWZhdWx0U2Vs
ZWN0ZWQoYm9vbCk7CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbGFiZWwoKSBjb25zdDsKKyAg
ICBXRUJLSVRfQVBJIGJvb2wgZGlzYWJsZWQoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgorICAgIFdlYk9wdGlvbkVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OkhUTUxPcHRpb25FbGVtZW50PiYpOworICAgIFdlYk9wdGlvbkVsZW1lbnQmIG9wZXJhdG9y
PShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+Jik7Cisg
ICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Pigp
IGNvbnN0OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24g
NjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogI2RlZmluZSBXZWJTZWxlY3RFbGVtZW50X2gK
IAogI2luY2x1ZGUgIldlYkZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYk9wdGlv
bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKIAogI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgogbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsgfQpA
QCAtNTAsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUo
Y29uc3QgV2ViU3RyaW5nJik7CiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdmFsdWUoKTsKKyAg
ICBXRUJLSVRfQVBJIFdlYlZlY3RvcjxXZWJPcHRpb25FbGVtZW50PiBsaXN0SXRlbXMoKTsKIAog
I2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYlNlbGVjdEVsZW1lbnQoY29uc3QgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50PiYpOwpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJPcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk9wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJPcHRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3B0aW9uRWxlbWVudC5o
IgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJPcHRpb25FbGVtZW50OjpzZXRWYWx1
ZShjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlKQoreworICAgIHJldHVybiB1bndyYXA8SFRNTE9w
dGlvbkVsZW1lbnQ+KCktPnNldFZhbHVlKG5ld1ZhbHVlKTsKK30KKworV2ViU3RyaW5nIFdlYk9w
dGlvbkVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRN
TE9wdGlvbkVsZW1lbnQ+KCktPnZhbHVlKCk7Cit9CisKK2ludCBXZWJPcHRpb25FbGVtZW50Ojpp
bmRleCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxPcHRpb25FbGVtZW50
PigpLT5pbmRleCgpOworfQorCitXZWJTdHJpbmcgV2ViT3B0aW9uRWxlbWVudDo6dGV4dCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxPcHRpb25FbGVtZW50PigpLT50ZXh0
KCk7Cit9CisKK2Jvb2wgV2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCktPmRlZmF1bHRT
ZWxlY3RlZCgpOworfQorCit2b2lkIFdlYk9wdGlvbkVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rl
ZChib29sIG5ld1NlbGVjdGVkKQoreworICAgIHJldHVybiB1bndyYXA8SFRNTE9wdGlvbkVsZW1l
bnQ+KCktPnNldERlZmF1bHRTZWxlY3RlZChuZXdTZWxlY3RlZCk7Cit9CisKK1dlYlN0cmluZyBX
ZWJPcHRpb25FbGVtZW50OjpsYWJlbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFw
PEhUTUxPcHRpb25FbGVtZW50PigpLT5sYWJlbCgpOworfQorCitib29sIFdlYk9wdGlvbkVsZW1l
bnQ6OmRpc2FibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlv
bkVsZW1lbnQ+KCktPmRpc2FibGVkKCk7Cit9CisKK1dlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4mIGVsZW0pCisgICAg
OiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViT3B0aW9uRWxlbWVudCYg
V2ViT3B0aW9uRWxlbWVudDo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVs
ZW1lbnQ+JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlz
OworfQorCitXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRyPEhUTUxPcHRpb25F
bGVtZW50PigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVt
ZW50Kj4obV9wcml2YXRlLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDYyOTY1
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YlNlbGVjdEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDksNiAr
NTEsMTYgQEAgV2ViU3RyaW5nIFdlYlNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkKICAgICByZXR1cm4g
dW53cmFwPEhUTUxTZWxlY3RFbGVtZW50PigpLT52YWx1ZSgpOwogfQogCitXZWJWZWN0b3I8V2Vi
T3B0aW9uRWxlbWVudD4gV2ViU2VsZWN0RWxlbWVudDo6bGlzdEl0ZW1zKCkKK3sKKyAgICBjb25z
dCBWZWN0b3I8RWxlbWVudCo+JiBzb3VyY2VJdGVtcyA9IHVud3JhcDxIVE1MU2VsZWN0RWxlbWVu
dD4oKS0+bGlzdEl0ZW1zKCk7CisgICAgV2ViVmVjdG9yPFdlYk9wdGlvbkVsZW1lbnQ+IGl0ZW1z
KHNvdXJjZUl0ZW1zLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzb3VyY2VJ
dGVtcy5zaXplKCk7ICsraSkKKyAgICAgICAgaXRlbXNbaV0gPSBXZWJPcHRpb25FbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oc291cmNlSXRlbXNbaV0pKTsKKworICAgIHJl
dHVybiBpdGVtczsKK30KKwogV2ViU2VsZWN0RWxlbWVudDo6V2ViU2VsZWN0RWxlbWVudChjb25z
dCBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiYgZWxlbSkKICAgICA6IFdlYkZvcm1Db250
cm9sRWxlbWVudChlbGVtKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61261</attachid>
            <date>2010-07-12 13:20:25 -0700</date>
            <delta_ts>2010-07-12 14:28:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41384-20100712132024.patch</filename>
            <type>text/plain</type>
            <size>11307</size>
            <attacher name="George Yakovlev">georgey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMDkgIEdlb3Jn
ZSBZYWtvdmxldiAgPGdlb3JnZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IENocm9taXVtIGFjY2VzcyB0byBTZWxl
Y3QgY29udHJvbCBjaG9pY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTM4NAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViT3B0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9u
RWxlbWVudDo6V2ViT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVs
ZW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OmFz
c2lnbik6CisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
cmMvV2ViT3B0aW9uRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRp
b25FbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6
OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6aW5kZXgpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6bGFiZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50
OjpkaXNhYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvcj0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRy
PEhUTUxPcHRpb25FbGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZWxlY3RFbGVtZW50OjpsaXN0SXRlbXMpOgorCiAyMDEw
LTA3LTA5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpA
QCAtMTY1LDYgKzE2NSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRp
b24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCcsCkBAIC0zODUsNiAr
Mzg2LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVDb2xsZWN0aW9uLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTm90aWZpY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJPcHRpb25F
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplci5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplckltcGwuaCcsCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcHRpb25FbGVtZW50X2gKKyNkZWZpbmUgV2ViT3B0aW9uRWxl
bWVudF9oCisKKyNpbmNsdWRlICJXZWJGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVzIG9m
IGEgRE9NIG9wdGlvbiBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJPcHRpb25FbGVtZW50IDogcHVi
bGljIFdlYkZvcm1Db250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViT3B0aW9uRWxlbWVu
dCgpIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KCkgeyB9CisgICAgV2ViT3B0aW9uRWxlbWVudChj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudChlKSB7IH0K
KworICAgIFdlYk9wdGlvbkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXZWJPcHRpb25FbGVtZW50
JiBlKQorICAgIHsKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWdu
KGUpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3RyaW5nJik7
CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdmFsdWUoKSBjb25zdDsKKworICAgIFdFQktJVF9B
UEkgaW50IGluZGV4KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdGV4dCgpIGNv
bnN0OworICAgIFdFQktJVF9BUEkgYm9vbCBkZWZhdWx0U2VsZWN0ZWQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0RGVmYXVsdFNlbGVjdGVkKGJvb2wpOworICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIGxhYmVsKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGRpc2FibGVkKCkg
Y29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJPcHRpb25FbGVtZW50
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudD4mKTsKKyAg
ICBXZWJPcHRpb25FbGVtZW50JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OkhUTUxPcHRpb25FbGVtZW50PiYpOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudD4oKSBjb25zdDsKKyNlbmRpZgorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZWxlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZWxlY3RFbGVtZW50LmgJKHJldmlzaW9uIDYyOTY1KQorKysgV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAK
ICNkZWZpbmUgV2ViU2VsZWN0RWxlbWVudF9oCiAKICNpbmNsdWRlICJXZWJGb3JtQ29udHJvbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViVmVj
dG9yLmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7IH0KQEAgLTQ1LDExICs0NywxNiBAQCBwdWJsaWM6CiAg
ICAgV2ViU2VsZWN0RWxlbWVudCgpIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KCkgeyB9CiAgICAg
V2ViU2VsZWN0RWxlbWVudChjb25zdCBXZWJTZWxlY3RFbGVtZW50JiBlKSA6IFdlYkZvcm1Db250
cm9sRWxlbWVudChlKSB7IH0KIAotICAgIFdlYlNlbGVjdEVsZW1lbnQmIG9wZXJhdG9yPShjb25z
dCBXZWJTZWxlY3RFbGVtZW50JiBlKSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWduKGUp
OyByZXR1cm4gKnRoaXM7IH0KKyAgICBXZWJTZWxlY3RFbGVtZW50JiBvcGVyYXRvcj0oY29uc3Qg
V2ViU2VsZWN0RWxlbWVudCYgZSkKKyAgICB7IAorICAgICAgICBXZWJGb3JtQ29udHJvbEVsZW1l
bnQ6OmFzc2lnbihlKTsgCisgICAgICAgIHJldHVybiAqdGhpczsgCisgICAgfQogICAgIFdFQktJ
VF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViU2VsZWN0RWxlbWVudCYgZSkgeyBXZWJGb3JtQ29u
dHJvbEVsZW1lbnQ6OmFzc2lnbihlKTsgfQogCiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFZhbHVl
KGNvbnN0IFdlYlN0cmluZyYpOwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHZhbHVlKCk7Cisg
ICAgV0VCS0lUX0FQSSBXZWJWZWN0b3I8V2ViT3B0aW9uRWxlbWVudD4gbGlzdEl0ZW1zKCk7CiAK
ICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJTZWxlY3RFbGVtZW50KGNvbnN0IFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudD4mKTsKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViT3B0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJPcHRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9wdGlvbkVsZW1lbnQu
aCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViT3B0aW9uRWxlbWVudDo6c2V0VmFs
dWUoY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSkKK3sKKyAgICByZXR1cm4gdW53cmFwPEhUTUxP
cHRpb25FbGVtZW50PigpLT5zZXRWYWx1ZShuZXdWYWx1ZSk7Cit9CisKK1dlYlN0cmluZyBXZWJP
cHRpb25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhU
TUxPcHRpb25FbGVtZW50PigpLT52YWx1ZSgpOworfQorCitpbnQgV2ViT3B0aW9uRWxlbWVudDo6
aW5kZXgoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MT3B0aW9uRWxlbWVu
dD4oKS0+aW5kZXgoKTsKK30KKworV2ViU3RyaW5nIFdlYk9wdGlvbkVsZW1lbnQ6OnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+dGV4
dCgpOworfQorCitib29sIFdlYk9wdGlvbkVsZW1lbnQ6OmRlZmF1bHRTZWxlY3RlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxPcHRpb25FbGVtZW50PigpLT5kZWZhdWx0
U2VsZWN0ZWQoKTsKK30KKwordm9pZCBXZWJPcHRpb25FbGVtZW50OjpzZXREZWZhdWx0U2VsZWN0
ZWQoYm9vbCBuZXdTZWxlY3RlZCkKK3sKKyAgICByZXR1cm4gdW53cmFwPEhUTUxPcHRpb25FbGVt
ZW50PigpLT5zZXREZWZhdWx0U2VsZWN0ZWQobmV3U2VsZWN0ZWQpOworfQorCitXZWJTdHJpbmcg
V2ViT3B0aW9uRWxlbWVudDo6bGFiZWwoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3Jh
cDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+bGFiZWwoKTsKK30KKworYm9vbCBXZWJPcHRpb25FbGVt
ZW50OjpkaXNhYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxPcHRp
b25FbGVtZW50PigpLT5kaXNhYmxlZCgpOworfQorCitXZWJPcHRpb25FbGVtZW50OjpXZWJPcHRp
b25FbGVtZW50KGNvbnN0IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+JiBlbGVtKQorICAg
IDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KGVsZW0pCit7Cit9CisKK1dlYk9wdGlvbkVsZW1lbnQm
IFdlYk9wdGlvbkVsZW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhUTUxPcHRpb25F
bGVtZW50PiYgZWxlbSkKK3sKKyAgICBtX3ByaXZhdGUgPSBlbGVtOworICAgIHJldHVybiAqdGhp
czsKK30KKworV2ViT3B0aW9uRWxlbWVudDo6b3BlcmF0b3IgUGFzc1JlZlB0cjxIVE1MT3B0aW9u
RWxlbWVudD4oKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxl
bWVudCo+KG1fcHJpdmF0ZS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2Mjk2
NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJTZWxlY3RFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJI
VE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ5LDYg
KzUxLDE2IEBAIFdlYlN0cmluZyBXZWJTZWxlY3RFbGVtZW50Ojp2YWx1ZSgpCiAgICAgcmV0dXJu
IHVud3JhcDxIVE1MU2VsZWN0RWxlbWVudD4oKS0+dmFsdWUoKTsKIH0KIAorV2ViVmVjdG9yPFdl
Yk9wdGlvbkVsZW1lbnQ+IFdlYlNlbGVjdEVsZW1lbnQ6Omxpc3RJdGVtcygpCit7CisgICAgY29u
c3QgVmVjdG9yPEVsZW1lbnQqPiYgc291cmNlSXRlbXMgPSB1bndyYXA8SFRNTFNlbGVjdEVsZW1l
bnQ+KCktPmxpc3RJdGVtcygpOworICAgIFdlYlZlY3RvcjxXZWJPcHRpb25FbGVtZW50PiBpdGVt
cyhzb3VyY2VJdGVtcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc291cmNl
SXRlbXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGl0ZW1zW2ldID0gV2ViT3B0aW9uRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KHNvdXJjZUl0ZW1zW2ldKSk7CisKKyAgICBy
ZXR1cm4gaXRlbXM7Cit9CisKIFdlYlNlbGVjdEVsZW1lbnQ6OldlYlNlbGVjdEVsZW1lbnQoY29u
c3QgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4mIGVsZW0pCiAgICAgOiBXZWJGb3JtQ29u
dHJvbEVsZW1lbnQoZWxlbSkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61270</attachid>
            <date>2010-07-12 14:28:18 -0700</date>
            <delta_ts>2010-07-14 14:12:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41384-20100712142817.patch</filename>
            <type>text/plain</type>
            <size>11379</size>
            <attacher name="George Yakovlev">georgey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMDkgIEdlb3Jn
ZSBZYWtvdmxldiAgPGdlb3JnZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IENocm9taXVtIGFjY2VzcyB0byBTZWxl
Y3QgY29udHJvbCBjaG9pY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTM4NAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViT3B0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9u
RWxlbWVudDo6V2ViT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVs
ZW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OmFz
c2lnbik6CisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
cmMvV2ViT3B0aW9uRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRp
b25FbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6
OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6aW5kZXgpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6bGFiZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50
OjpkaXNhYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvcj0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRy
PEhUTUxPcHRpb25FbGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZWxlY3RFbGVtZW50OjpsaXN0SXRlbXMpOgorCiAyMDEw
LTA3LTA5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpA
QCAtMTY1LDYgKzE2NSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRp
b24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCcsCkBAIC0zODUsNiAr
Mzg2LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVDb2xsZWN0aW9uLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTm90aWZpY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJPcHRpb25F
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplci5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplckltcGwuaCcsCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcHRpb25FbGVtZW50X2gKKyNkZWZpbmUgV2ViT3B0aW9uRWxl
bWVudF9oCisKKyNpbmNsdWRlICJXZWJGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVzIG9m
IGEgRE9NIG9wdGlvbiBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJPcHRpb25FbGVtZW50IDogcHVi
bGljIFdlYkZvcm1Db250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViT3B0aW9uRWxlbWVu
dCgpIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KCkgeyB9CisgICAgV2ViT3B0aW9uRWxlbWVudChj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudChlKSB7IH0K
KworICAgIFdlYk9wdGlvbkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXZWJPcHRpb25FbGVtZW50
JiBlKQorICAgIHsKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWdu
KGUpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3RyaW5nJik7
CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdmFsdWUoKSBjb25zdDsKKworICAgIFdFQktJVF9B
UEkgaW50IGluZGV4KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdGV4dCgpIGNv
bnN0OworICAgIFdFQktJVF9BUEkgYm9vbCBkZWZhdWx0U2VsZWN0ZWQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0RGVmYXVsdFNlbGVjdGVkKGJvb2wpOworICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIGxhYmVsKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGlzRW5hYmxlZCgp
IGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViT3B0aW9uRWxlbWVu
dChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+Jik7Cisg
ICAgV2ViT3B0aW9uRWxlbWVudCYgb3BlcmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpIVE1MT3B0aW9uRWxlbWVudD4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KCkgY29uc3Q7CisjZW5kaWYKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiA2Mjk2NSkKKysrIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2VsZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBA
CiAjZGVmaW5lIFdlYlNlbGVjdEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRm9ybUNvbnRyb2xF
bGVtZW50LmgiCisjaW5jbHVkZSAiV2ViT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiBuYW1lc3BhY2UgV2ViQ29yZSB7
IGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OyB9CkBAIC00NSwxMSArNDcsMTYgQEAgcHVibGljOgog
ICAgIFdlYlNlbGVjdEVsZW1lbnQoKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudCgpIHsgfQogICAg
IFdlYlNlbGVjdEVsZW1lbnQoY29uc3QgV2ViU2VsZWN0RWxlbWVudCYgZSkgOiBXZWJGb3JtQ29u
dHJvbEVsZW1lbnQoZSkgeyB9CiAKLSAgICBXZWJTZWxlY3RFbGVtZW50JiBvcGVyYXRvcj0oY29u
c3QgV2ViU2VsZWN0RWxlbWVudCYgZSkgeyBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmFzc2lnbihl
KTsgcmV0dXJuICp0aGlzOyB9CisgICAgV2ViU2VsZWN0RWxlbWVudCYgb3BlcmF0b3I9KGNvbnN0
IFdlYlNlbGVjdEVsZW1lbnQmIGUpCisgICAgeyAKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVt
ZW50Ojphc3NpZ24oZSk7IAorICAgICAgICByZXR1cm4gKnRoaXM7IAorICAgIH0KICAgICBXRUJL
SVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYlNlbGVjdEVsZW1lbnQmIGUpIHsgV2ViRm9ybUNv
bnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7IH0KIAogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRWYWx1
ZShjb25zdCBXZWJTdHJpbmcmKTsKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2YWx1ZSgpOwor
ICAgIFdFQktJVF9BUEkgV2ViVmVjdG9yPFdlYk9wdGlvbkVsZW1lbnQ+IGxpc3RJdGVtcygpOwog
CiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViU2VsZWN0RWxlbWVudChjb25zdCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ+Jik7CkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk9wdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk9wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcHRpb25FbGVtZW50
LmgiCisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViU3RyaW5n
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk9wdGlvbkVsZW1lbnQ6OnNldFZh
bHVlKGNvbnN0IFdlYlN0cmluZyYgbmV3VmFsdWUpCit7CisgICAgcmV0dXJuIHVud3JhcDxIVE1M
T3B0aW9uRWxlbWVudD4oKS0+c2V0VmFsdWUobmV3VmFsdWUpOworfQorCitXZWJTdHJpbmcgV2Vi
T3B0aW9uRWxlbWVudDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxI
VE1MT3B0aW9uRWxlbWVudD4oKS0+dmFsdWUoKTsKK30KKworaW50IFdlYk9wdGlvbkVsZW1lbnQ6
OmluZGV4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1l
bnQ+KCktPmluZGV4KCk7Cit9CisKK1dlYlN0cmluZyBXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCktPnRl
eHQoKTsKK30KKworYm9vbCBXZWJPcHRpb25FbGVtZW50OjpkZWZhdWx0U2VsZWN0ZWQoKSBjb25z
dAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+ZGVmYXVs
dFNlbGVjdGVkKCk7Cit9CisKK3ZvaWQgV2ViT3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVj
dGVkKGJvb2wgbmV3U2VsZWN0ZWQpCit7CisgICAgcmV0dXJuIHVud3JhcDxIVE1MT3B0aW9uRWxl
bWVudD4oKS0+c2V0RGVmYXVsdFNlbGVjdGVkKG5ld1NlbGVjdGVkKTsKK30KKworV2ViU3RyaW5n
IFdlYk9wdGlvbkVsZW1lbnQ6OmxhYmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndy
YXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCktPmxhYmVsKCk7Cit9CisKK2Jvb2wgV2ViT3B0aW9uRWxl
bWVudDo6aXNFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIShjb25zdFVud3JhcDxIVE1M
T3B0aW9uRWxlbWVudD4oKS0+ZGlzYWJsZWQoKSk7Cit9CisKK1dlYk9wdGlvbkVsZW1lbnQ6Oldl
Yk9wdGlvbkVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4mIGVsZW0p
CisgICAgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViT3B0aW9uRWxl
bWVudCYgV2ViT3B0aW9uRWxlbWVudDo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8SFRNTE9w
dGlvbkVsZW1lbnQ+JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJu
ICp0aGlzOworfQorCitXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRyPEhUTUxP
cHRpb25FbGVtZW50PigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRp
b25FbGVtZW50Kj4obV9wcml2YXRlLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9u
IDYyOTY1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWxlY3RFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYlNlbGVjdEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAt
NDksNiArNTEsMTcgQEAgV2ViU3RyaW5nIFdlYlNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkKICAgICBy
ZXR1cm4gdW53cmFwPEhUTUxTZWxlY3RFbGVtZW50PigpLT52YWx1ZSgpOwogfQogCitXZWJWZWN0
b3I8V2ViT3B0aW9uRWxlbWVudD4gV2ViU2VsZWN0RWxlbWVudDo6bGlzdEl0ZW1zKCkKK3sKKyAg
ICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBzb3VyY2VJdGVtcyA9IHVud3JhcDxIVE1MU2VsZWN0
RWxlbWVudD4oKS0+bGlzdEl0ZW1zKCk7CisgICAgV2ViVmVjdG9yPFdlYk9wdGlvbkVsZW1lbnQ+
IGl0ZW1zKHNvdXJjZUl0ZW1zLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
b3VyY2VJdGVtcy5zaXplKCk7ICsraSkKKyAgICAgIGlmIChzb3VyY2VJdGVtc1tpXS0+aGFzTG9j
YWxOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkKKyAgICAgICAgICAgIGl0ZW1zW2ldID0gV2Vi
T3B0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KHNvdXJjZUl0ZW1z
W2ldKSk7CisKKyAgICByZXR1cm4gaXRlbXM7Cit9CisKIFdlYlNlbGVjdEVsZW1lbnQ6OldlYlNl
bGVjdEVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4mIGVsZW0pCiAg
ICAgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61562</attachid>
            <date>2010-07-14 14:12:19 -0700</date>
            <delta_ts>2010-07-14 21:05:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41384-20100714141218.patch</filename>
            <type>text/plain</type>
            <size>11282</size>
            <attacher name="George Yakovlev">georgey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMDkgIEdlb3Jn
ZSBZYWtvdmxldiAgPGdlb3JnZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IENocm9taXVtIGFjY2VzcyB0byBTZWxl
Y3QgY29udHJvbCBjaG9pY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MTM4NAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViT3B0aW9uRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9u
RWxlbWVudDo6V2ViT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVs
ZW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OmFz
c2lnbik6CisgICAgICAgICogcHVibGljL1dlYlNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
cmMvV2ViT3B0aW9uRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRp
b25FbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6
OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3B0aW9uRWxlbWVudDo6aW5kZXgpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3B0aW9uRWxlbWVudDo6ZGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3B0aW9uRWxlbWVudDo6bGFiZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50
OjpkaXNhYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvcj0p
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRy
PEhUTUxPcHRpb25FbGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZWxlY3RFbGVtZW50OjpsaXN0SXRlbXMpOgorCiAyMDEw
LTA3LTA5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gNjI5NjUpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpA
QCAtMTY1LDYgKzE2NSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRp
b24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJPcHRpb25FbGVtZW50LmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXIuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCcsCkBAIC0zODUsNiAr
Mzg2LDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVDb2xsZWN0aW9uLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTm90aWZpY2F0aW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJPcHRpb25F
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplci5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJQYWdlU2VyaWFsaXplckltcGwuaCcsCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcHRpb25FbGVtZW50X2gKKyNkZWZpbmUgV2ViT3B0aW9uRWxl
bWVudF9oCisKKyNpbmNsdWRlICJXZWJGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJWZWN0b3IuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVzIG9m
IGEgRE9NIG9wdGlvbiBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJPcHRpb25FbGVtZW50IDogcHVi
bGljIFdlYkZvcm1Db250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViT3B0aW9uRWxlbWVu
dCgpIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KCkgeyB9CisgICAgV2ViT3B0aW9uRWxlbWVudChj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudChlKSB7IH0K
KworICAgIFdlYk9wdGlvbkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXZWJPcHRpb25FbGVtZW50
JiBlKQorICAgIHsKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihj
b25zdCBXZWJPcHRpb25FbGVtZW50JiBlKSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNzaWdu
KGUpOyB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3RyaW5nJik7
CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdmFsdWUoKSBjb25zdDsKKworICAgIFdFQktJVF9B
UEkgaW50IGluZGV4KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdGV4dCgpIGNv
bnN0OworICAgIFdFQktJVF9BUEkgYm9vbCBkZWZhdWx0U2VsZWN0ZWQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0RGVmYXVsdFNlbGVjdGVkKGJvb2wpOworICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIGxhYmVsKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBib29sIGlzRW5hYmxlZCgp
IGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViT3B0aW9uRWxlbWVu
dChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+Jik7Cisg
ICAgV2ViT3B0aW9uRWxlbWVudCYgb3BlcmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpIVE1MT3B0aW9uRWxlbWVudD4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KCkgY29uc3Q7CisjZW5kaWYKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiA2Mjk2NSkKKysrIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2VsZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBA
CiAjZGVmaW5lIFdlYlNlbGVjdEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRm9ybUNvbnRyb2xF
bGVtZW50LmgiCisjaW5jbHVkZSAiV2ViT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYlZl
Y3Rvci5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiBuYW1lc3BhY2UgV2ViQ29yZSB7
IGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OyB9CkBAIC00NSwxMSArNDcsMTYgQEAgcHVibGljOgog
ICAgIFdlYlNlbGVjdEVsZW1lbnQoKSA6IFdlYkZvcm1Db250cm9sRWxlbWVudCgpIHsgfQogICAg
IFdlYlNlbGVjdEVsZW1lbnQoY29uc3QgV2ViU2VsZWN0RWxlbWVudCYgZSkgOiBXZWJGb3JtQ29u
dHJvbEVsZW1lbnQoZSkgeyB9CiAKLSAgICBXZWJTZWxlY3RFbGVtZW50JiBvcGVyYXRvcj0oY29u
c3QgV2ViU2VsZWN0RWxlbWVudCYgZSkgeyBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmFzc2lnbihl
KTsgcmV0dXJuICp0aGlzOyB9CisgICAgV2ViU2VsZWN0RWxlbWVudCYgb3BlcmF0b3I9KGNvbnN0
IFdlYlNlbGVjdEVsZW1lbnQmIGUpCisgICAgeyAKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVt
ZW50Ojphc3NpZ24oZSk7IAorICAgICAgICByZXR1cm4gKnRoaXM7IAorICAgIH0KICAgICBXRUJL
SVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYlNlbGVjdEVsZW1lbnQmIGUpIHsgV2ViRm9ybUNv
bnRyb2xFbGVtZW50Ojphc3NpZ24oZSk7IH0KIAogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRWYWx1
ZShjb25zdCBXZWJTdHJpbmcmKTsKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2YWx1ZSgpOwor
ICAgIFdFQktJVF9BUEkgV2ViVmVjdG9yPFdlYkVsZW1lbnQ+IGxpc3RJdGVtcygpOwogCiAjaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViU2VsZWN0RWxlbWVudChjb25zdCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ+Jik7CkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk9wdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk9wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcHRpb25FbGVtZW50LmgiCisK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk9wdGlvbkVsZW1lbnQ6OnNldFZhbHVlKGNv
bnN0IFdlYlN0cmluZyYgbmV3VmFsdWUpCit7CisgICAgcmV0dXJuIHVud3JhcDxIVE1MT3B0aW9u
RWxlbWVudD4oKS0+c2V0VmFsdWUobmV3VmFsdWUpOworfQorCitXZWJTdHJpbmcgV2ViT3B0aW9u
RWxlbWVudDo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MT3B0
aW9uRWxlbWVudD4oKS0+dmFsdWUoKTsKK30KKworaW50IFdlYk9wdGlvbkVsZW1lbnQ6OmluZGV4
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCkt
PmluZGV4KCk7Cit9CisKK1dlYlN0cmluZyBXZWJPcHRpb25FbGVtZW50Ojp0ZXh0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTE9wdGlvbkVsZW1lbnQ+KCktPnRleHQoKTsK
K30KKworYm9vbCBXZWJPcHRpb25FbGVtZW50OjpkZWZhdWx0U2VsZWN0ZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MT3B0aW9uRWxlbWVudD4oKS0+ZGVmYXVsdFNlbGVj
dGVkKCk7Cit9CisKK3ZvaWQgV2ViT3B0aW9uRWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGVkKGJv
b2wgbmV3U2VsZWN0ZWQpCit7CisgICAgcmV0dXJuIHVud3JhcDxIVE1MT3B0aW9uRWxlbWVudD4o
KS0+c2V0RGVmYXVsdFNlbGVjdGVkKG5ld1NlbGVjdGVkKTsKK30KKworV2ViU3RyaW5nIFdlYk9w
dGlvbkVsZW1lbnQ6OmxhYmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRN
TE9wdGlvbkVsZW1lbnQ+KCktPmxhYmVsKCk7Cit9CisKK2Jvb2wgV2ViT3B0aW9uRWxlbWVudDo6
aXNFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIShjb25zdFVud3JhcDxIVE1MT3B0aW9u
RWxlbWVudD4oKS0+ZGlzYWJsZWQoKSk7Cit9CisKK1dlYk9wdGlvbkVsZW1lbnQ6OldlYk9wdGlv
bkVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4mIGVsZW0pCisgICAg
OiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViT3B0aW9uRWxlbWVudCYg
V2ViT3B0aW9uRWxlbWVudDo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVs
ZW1lbnQ+JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlz
OworfQorCitXZWJPcHRpb25FbGVtZW50OjpvcGVyYXRvciBQYXNzUmVmUHRyPEhUTUxPcHRpb25F
bGVtZW50PigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVt
ZW50Kj4obV9wcml2YXRlLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDYyOTY1
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YlNlbGVjdEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDksNiAr
NTEsMTYgQEAgV2ViU3RyaW5nIFdlYlNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkKICAgICByZXR1cm4g
dW53cmFwPEhUTUxTZWxlY3RFbGVtZW50PigpLT52YWx1ZSgpOwogfQogCitXZWJWZWN0b3I8V2Vi
RWxlbWVudD4gV2ViU2VsZWN0RWxlbWVudDo6bGlzdEl0ZW1zKCkKK3sKKyAgICBjb25zdCBWZWN0
b3I8RWxlbWVudCo+JiBzb3VyY2VJdGVtcyA9IHVud3JhcDxIVE1MU2VsZWN0RWxlbWVudD4oKS0+
bGlzdEl0ZW1zKCk7CisgICAgV2ViVmVjdG9yPFdlYkVsZW1lbnQ+IGl0ZW1zKHNvdXJjZUl0ZW1z
LnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzb3VyY2VJdGVtcy5zaXplKCk7
ICsraSkKKyAgICAgICAgaXRlbXNbaV0gPSBXZWJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbGVt
ZW50Kj4oc291cmNlSXRlbXNbaV0pKTsKKworICAgIHJldHVybiBpdGVtczsKK30KKwogV2ViU2Vs
ZWN0RWxlbWVudDo6V2ViU2VsZWN0RWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxTZWxlY3RF
bGVtZW50PiYgZWxlbSkKICAgICA6IFdlYkZvcm1Db250cm9sRWxlbWVudChlbGVtKQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>