<?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>71008</bug_id>
          
          <creation_ts>2011-10-27 05:26:37 -0700</creation_ts>
          <short_desc>[chromium] Media Stream API: Adding supporting classes to WebPeerConnectionHandler</short_desc>
          <delta_ts>2011-11-01 15:32:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>58550</dependson>
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>adman.com</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>fishd</cc>
    
    <cc>grunell</cc>
    
    <cc>harald</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491477</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-10-27 05:26:37 -0700</bug_when>
    <thetext>Adding WebMediaStreamSource and expanding WebMediaStreamSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493812</commentid>
    <comment_count>1</comment_count>
      <attachid>113150</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-11-01 02:41:17 -0700</bug_when>
    <thetext>Created attachment 113150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493817</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 02:45:06 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494016</commentid>
    <comment_count>3</comment_count>
      <attachid>113150</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-01 10:50:27 -0700</bug_when>
    <thetext>Comment on attachment 113150
Patch

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

&gt; Source/WebKit/chromium/public/WebMediaStreamSource.h:42
&gt; +    enum WebType {

nit: we drop the &quot;Web&quot; prefix for enums defined within the scope of a class.  so, just Type and Type{Audio,Video} would do.

&gt; Source/WebKit/chromium/src/WebMediaStreamDescriptor.cpp:67
&gt; +    WebCore::MediaStreamSourceVector s;

nit: perhaps a &apos;using namespace WebCore&apos; would be nice to have at the top of this .cpp file?

&gt; Source/WebKit/chromium/src/WebMediaStreamDescriptor.cpp:69
&gt; +        WTF::PassRefPtr&lt;WebCore::MediaStreamSource&gt; curr = sources[i];

nit: no need for the WTF:: prefix

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:37
&gt; +WebMediaStreamSource::WebMediaStreamSource(const WTF::PassRefPtr&lt;WebCore::MediaStreamSource&gt;&amp; mediaStreamSource)

ditto.  no need for WTF:: prefix in .cpp files

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:47
&gt; +WebMediaStreamSource::operator WTF::PassRefPtr&lt;WebCore::MediaStreamSource&gt;() const

nit: usually we put a &apos;using namespace WebCore&apos; at the top of the file so we can avoid
writing WebCore:: everywhere.

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:54
&gt; +    m_private = WebCore::MediaStreamSource::create(id, (WebCore::MediaStreamSource::Type)type, name);

nit: use static_cast instead of C-style cast

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:60
&gt; +    return WebString(m_private.get()-&gt;id());

nit: explicit construction of WebString should be unnecessary.  it should just happen implicitly.

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:66
&gt; +    return (WebType)(m_private.get()-&gt;type());

nit: use static_cast

&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:72
&gt; +    return WebString(m_private.get()-&gt;name());

nit: rely on implicit construction of a WebString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494042</commentid>
    <comment_count>4</comment_count>
      <attachid>113150</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-11-01 11:30:00 -0700</bug_when>
    <thetext>Comment on attachment 113150
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebMediaStreamSource.h:42
&gt;&gt; +    enum WebType {
&gt; 
&gt; nit: we drop the &quot;Web&quot; prefix for enums defined within the scope of a class.  so, just Type and Type{Audio,Video} would do.

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamDescriptor.cpp:67
&gt;&gt; +    WebCore::MediaStreamSourceVector s;
&gt; 
&gt; nit: perhaps a &apos;using namespace WebCore&apos; would be nice to have at the top of this .cpp file?

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamDescriptor.cpp:69

&gt; 
&gt; nit: no need for the WTF:: prefix

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:37
&gt;&gt; +WebMediaStreamSource::WebMediaStreamSource(const WTF::PassRefPtr&lt;WebCore::MediaStreamSource&gt;&amp; mediaStreamSource)
&gt; 
&gt; ditto.  no need for WTF:: prefix in .cpp files

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:47
&gt;&gt; +WebMediaStreamSource::operator WTF::PassRefPtr&lt;WebCore::MediaStreamSource&gt;() const
&gt; 
&gt; nit: usually we put a &apos;using namespace WebCore&apos; at the top of the file so we can avoid
&gt; writing WebCore:: everywhere.

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:54
&gt;&gt; +    m_private = WebCore::MediaStreamSource::create(id, (WebCore::MediaStreamSource::Type)type, name);
&gt; 
&gt; nit: use static_cast instead of C-style cast

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:60
&gt;&gt; +    return WebString(m_private.get()-&gt;id());
&gt; 
&gt; nit: explicit construction of WebString should be unnecessary.  it should just happen implicitly.

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:66
&gt;&gt; +    return (WebType)(m_private.get()-&gt;type());
&gt; 
&gt; nit: use static_cast

Fixed.

&gt;&gt; Source/WebKit/chromium/src/WebMediaStreamSource.cpp:72
&gt;&gt; +    return WebString(m_private.get()-&gt;name());
&gt; 
&gt; nit: rely on implicit construction of a WebString.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494058</commentid>
    <comment_count>5</comment_count>
      <attachid>113200</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-11-01 12:03:52 -0700</bug_when>
    <thetext>Created attachment 113200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494064</commentid>
    <comment_count>6</comment_count>
      <attachid>113202</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-11-01 12:09:07 -0700</bug_when>
    <thetext>Created attachment 113202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494212</commentid>
    <comment_count>7</comment_count>
      <attachid>113202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 15:32:48 -0700</bug_when>
    <thetext>Comment on attachment 113202
Patch

Clearing flags on attachment: 113202

Committed r99004: &lt;http://trac.webkit.org/changeset/99004&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494214</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 15:32:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113150</attachid>
            <date>2011-11-01 02:41:17 -0700</date>
            <delta_ts>2011-11-01 12:03:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71008-20111101104116.patch</filename>
            <type>text/plain</type>
            <size>12222</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
OTFiN2RmOWY5OWEzMmM2NGI4ZTBjNjg1OTVlY2ZkZGY0ZjIwZDI3Yi4uZGY4M2RjMTgwMWFkYzk1
YTQ5NjBkZDIyMmFiMTI1ZDNjNjA5MmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxMS0xMS0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIE1lZGlhIFN0cmVhbSBBUEk6IEFkZGluZyBz
dXBwb3J0aW5nIGNsYXNzZXMgdG8gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwOAorCisgICAgICAgIEV4
cGFuZGluZyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgYW5kIGFkZGluZyBXZWJNZWRpYVN0cmVh
bVNvdXJjZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9y
Lmg6CisgICAgICAgICogcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6V2ViTWVkaWFTdHJlYW1T
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6fldlYk1lZGlh
U3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6Omlz
TnVsbCk6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAq
IHNyYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3I6OmluaXRpYWxpemUpOgorICAgICAgICAqIHNyYy9XZWJNZWRp
YVN0cmVhbVNvdXJjZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlh
U3RyZWFtU291cmNlOjpXZWJNZWRpYVN0cmVhbVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtU291cmNlOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
ZWFtU291cmNlOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1T
b3VyY2U+KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OmluaXRpYWxp
emUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6aWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6dHlwZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhU3RyZWFtU291cmNlOjpuYW1lKToKKwogMjAxMS0xMC0zMSAgVG9tbXkgV2lkZW5m
bHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIE1lZGlhIFN0
cmVhbSBBUEk6IGFkZCB0aGUgQ2hyb21pdW0gV2ViS2l0IGludGVyZmFjZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAppbmRleCAwMzU0MzNkZjE5YmIyOTE2NmRiZWFmNTg0N2RjMTc1ZDZmY2Jm
YjEwLi44YmRjYmJmOTEwZWU4NTU1Yjc4YTU0NzVmOGQ1MzQ3ODhhMTU1MGZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMzUsNiArMjM1LDcgQEAKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYk1lZGlhUGxheWVyQWN0aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViTWVkaWFQbGF5ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3IuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVN0
cmVhbVNvdXJjZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lbnVJdGVtSW5mby5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbENsaWVudC5oJywKQEAg
LTU2Miw2ICs1NjMsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3Bw
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtU291cmNlLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJOb2RlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oCmluZGV4IGE4ZDlhMDVlNDEwNjZhZjE1MzM5YjEz
ODU2NWQ3ZTU4MjQ5N2I2ZmIuLmJjZGZhZjIyMmY0NzljYzNmODI0MWY3OTk2ZDNlMTJiOWU4YTQy
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViQ29t
bW9uLmgiCiAjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKICNpbmNsdWRlICJXZWJQcml2YXRl
UHRyLmgiCisjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKQEAgLTM1LDE2ICszNiwxOSBAQCBjbGFzcyBNZWRp
YVN0cmVhbURlc2NyaXB0b3I7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJNZWRp
YVN0cmVhbVNvdXJjZTsKK2NsYXNzIFdlYlN0cmluZzsKKwogY2xhc3MgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yIHsKIHB1YmxpYzoKICAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoKSB7IH0K
ICAgICB+V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKCkgeyByZXNldCgpOyB9CiAKLSAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZSgpOyAvLyBGSVhNRTogQWRkIHBhcmFtcy4KKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIGxhYmVsLCBjb25z
dCBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1Tb3VyY2U+Jik7CiAgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHJlc2V0KCk7CiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUu
aXNOdWxsKCk7IH0KIAotICAgIC8vIEZJWE1FOiBBZGQgZnVuY3Rpb25zLgorICAgIFdFQktJVF9F
WFBPUlQgV2ViU3RyaW5nIGxhYmVsKCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04KICAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvcj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmYzdi
NmQzMjI1OTQwMmU2YzNjNTE5ODNiY2NiNWIzZDBiNjVjMjcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTdHJlYW1Tb3VyY2Vf
aAorI2RlZmluZSBXZWJNZWRpYVN0cmVhbVNvdXJjZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24u
aCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2U7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYk1lZGlh
U3RyZWFtU291cmNlIHsKK3B1YmxpYzoKKyAgICBlbnVtIFdlYlR5cGUgeworICAgICAgICBXZWJU
eXBlQXVkaW8sCisgICAgICAgIFdlYlR5cGVWaWRlbworICAgIH07CisKKyAgICBXZWJNZWRpYVN0
cmVhbVNvdXJjZSgpIHsgfQorICAgIH5XZWJNZWRpYVN0cmVhbVNvdXJjZSgpIHsgcmVzZXQoKTsg
fQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBp
ZCwgV2ViVHlwZSwgY29uc3QgV2ViU3RyaW5nJiBuYW1lKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXQoKTsKKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5p
c051bGwoKTsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgaWQoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIFdlYlR5cGUgdHlwZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
V2ViU3RyaW5nIG5hbWUoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAg
IFdlYk1lZGlhU3RyZWFtU291cmNlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRp
YVN0cmVhbVNvdXJjZT4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
TWVkaWFTdHJlYW1Tb3VyY2U+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQ
cml2YXRlUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtU291cmNlPiBtX3ByaXZhdGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk1lZGlhU3RyZWFtU291cmNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAKaW5kZXggYjEwNjgyODJlMTg5N2U0YzQwNjEzMzVmMzNlMDllMTc1NTQ5MjAxNy4uMGNiY2Vl
YWUzNThmNzI2ZGNmNDUyZDYwMmUwZDIxMjNkNGE3ZWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklE
QktleS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1T
b3VyY2UuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKICNpbmNsdWRlICJQ
YWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKQEAg
LTc4LDYgKzc5LDcgQEAKICNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5jbHVkZSAiV2ViSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJN
ZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5o
IgogI2luY2x1ZGUgIldlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJTY3Jv
bGxiYXIuaCIKQEAgLTQ1OSwzICs0NjEsOCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnRSZW5kZXJMYXllciwgUGxhdGZvcgogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSwg
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVu
KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVBy
ZXJlbmRlciwgUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcik7CisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJNZWRpYVN0cmVhbVNv
dXJjZTo6V2ViVHlwZUF1ZGlvLCBNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZUF1ZGlvKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OldlYlR5cGVWaWRl
bywgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVWaWRlbyk7CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwCmlu
ZGV4IGQzNjZjZGY1ZjdhMTZlYmIwMzJlNzliZDUxNTMzNDEzZDkxNWZiMTAuLjRlNTc4YzIzMTkx
ZmEwNzU1ZDBlNDVmMWY1NjM0Y2Y3ZGJmNmYzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcApAQCAtMjksNyAr
MjksMTAgQEAKICNpbmNsdWRlICJXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKIAogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
LmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJXZWJTdHJp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBA
IC01OSw2ICs2MiwxNiBAQCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I6Om9wZXJhdG9yIFdlYkNv
cmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvciooKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUu
Z2V0KCk7CiB9CiAKK3ZvaWQgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjppbml0aWFsaXplKGNv
bnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJj
ZT4mIHNvdXJjZXMpCit7CisgICAgV2ViQ29yZTo6TWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3IgczsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNvdXJjZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtU291cmNlPiBjdXJyID0gc291
cmNlc1tpXTsKKyAgICAgICAgcy5hcHBlbmQoY3Vycik7CisgICAgfQorICAgIG1fcHJpdmF0ZSA9
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6Y3JlYXRlKGxhYmVsLCBzKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1Tb3VyY2Uu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3OWMyNjg4MTRjNjA2NGUxMTA2NzgxNzQ3ODhhYzgyOGE0NGFiYzAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0
cmVhbVNvdXJjZS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIldlYk1l
ZGlhU3RyZWFtU291cmNlLmgiCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgorI2lu
Y2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1dlYk1lZGlhU3RyZWFtU291cmNlOjpXZWJNZWRpYVN0cmVhbVNvdXJjZShj
b25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1Tb3VyY2U+JiBtZWRpYVN0
cmVhbVNvdXJjZSkKKyAgICA6IG1fcHJpdmF0ZShtZWRpYVN0cmVhbVNvdXJjZSkKK3sKK30KKwor
dm9pZCBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNl
dCgpOworfQorCitXZWJNZWRpYVN0cmVhbVNvdXJjZTo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6Ok1lZGlhU3RyZWFtU291cmNlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJp
dmF0ZS5nZXQoKTsKK30KKwordm9pZCBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6aW5pdGlhbGl6ZShj
b25zdCBXZWJTdHJpbmcmIGlkLCBXZWJUeXBlIHR5cGUsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSkK
K3sKKyAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpNZWRpYVN0cmVhbVNvdXJjZTo6Y3JlYXRlKGlk
LCAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGUpdHlwZSwgbmFtZSk7Cit9CisKK1dl
YlN0cmluZyBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6aWQoKSBjb25zdAoreworICAgIEFTU0VSVCgh
bV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gV2ViU3RyaW5nKG1fcHJpdmF0ZS5nZXQo
KS0+aWQoKSk7Cit9CisKK1dlYk1lZGlhU3RyZWFtU291cmNlOjpXZWJUeXBlIFdlYk1lZGlhU3Ry
ZWFtU291cmNlOjp0eXBlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwo
KSk7CisgICAgcmV0dXJuIChXZWJUeXBlKShtX3ByaXZhdGUuZ2V0KCktPnR5cGUoKSk7Cit9CisK
K1dlYlN0cmluZyBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6bmFtZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBXZWJTdHJpbmcobV9wcml2YXRl
LmdldCgpLT5uYW1lKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113200</attachid>
            <date>2011-11-01 12:03:52 -0700</date>
            <delta_ts>2011-11-01 12:09:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71008-20111101200350.patch</filename>
            <type>text/plain</type>
            <size>12801</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZTViNGY0ZmYxMzEzMjFjYmQzMGMxZDMzMjRjM2ViZTBkMjQ1NmY2ZC4uZDNkYzM1MzUyNDRhNmFi
MWUwNjk1ODI0NmIwOTczZTE3YjE0ZTNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxMS0xMS0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIE1lZGlhIFN0cmVhbSBBUEk6IEFkZGluZyBz
dXBwb3J0aW5nIGNsYXNzZXMgdG8gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwOAorCisgICAgICAgIEV4
cGFuZGluZyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgYW5kIGFkZGluZyBXZWJNZWRpYVN0cmVh
bVNvdXJjZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9y
Lmg6CisgICAgICAgICogcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6V2ViTWVkaWFTdHJlYW1T
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6fldlYk1lZGlh
U3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6Omlz
TnVsbCk6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAq
IHNyYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlh
U3RyZWFtU291cmNlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1Tb3VyY2U6OldlYk1lZGlhU3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1Tb3VyY2U6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1Tb3VyY2U6Om9wZXJhdG9yIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6Om9wZXJhdG9yIE1lZGlhU3RyZWFtU291
cmNlKik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtU291cmNlOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OmlkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OnR5cGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbVNvdXJjZTo6bmFtZSk6CisKIDIwMTEtMTEtMDEgIEFsb2sgUHJpeWFkYXJz
aGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUm9sbCBjaHJvbWl1bSBERVBTLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDAzNTQzM2RmMTliYjI5MTY2ZGJlYWY1ODQ3
ZGMxNzVkNmZjYmZiMTAuLjhiZGNiYmY5MTBlZTg1NTViNzhhNTQ3NWY4ZDUzNDc4OGExNTUwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oJywKKyAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk1lZGlhU3RyZWFtU291cmNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVu
dUl0ZW1JbmZvLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFu
bmVsLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xp
ZW50LmgnLApAQCAtNTYyLDYgKzU2Myw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJlYW1Tb3VyY2Uu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYk5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKaW5kZXggYThkOWEwNWU0MTA2
NmFmMTUzMzliMTM4NTY1ZDdlNTgyNDk3YjZmYi4uYmNkZmFmMjIyZjQ3OWNjM2Y4MjQxZjc5OTZk
M2UxMmI5ZThhNDIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgogI2luY2x1ZGUg
IldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwpAQCAtMzUsMTYgKzM2LDE5IEBA
IGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIFdlYk1lZGlhU3RyZWFtU291cmNlOworY2xhc3MgV2ViU3RyaW5nOworCiBjbGFzcyBXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3IgewogcHVibGljOgogICAgIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcigpIHsgfQogICAgIH5XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoKSB7IHJlc2V0KCk7IH0K
IAotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKCk7IC8vIEZJWE1FOiBBZGQgcGFy
YW1zLgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYg
bGFiZWwsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mKTsKICAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpdmF0ZS5pc051bGwoKTsgfQogCi0gICAgLy8gRklYTUU6IEFkZCBmdW5jdGlvbnMuCisg
ICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgbGFiZWwoKSBjb25zdDsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgogICAgIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2QxZDM2MGYzZTU2MzlkNTQ2NzgzZmQ4MzQyZDkwMDJkYmM3ZDY4NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291
cmNlLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNZWRpYVN0
cmVhbVNvdXJjZV9oCisjZGVmaW5lIFdlYk1lZGlhU3RyZWFtU291cmNlX2gKKworI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2Vi
UHJpdmF0ZVB0ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVN0cmVhbVNv
dXJjZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKKworY2xh
c3MgV2ViTWVkaWFTdHJlYW1Tb3VyY2UgeworcHVibGljOgorICAgIGVudW0gVHlwZSB7CisgICAg
ICAgIFR5cGVBdWRpbywKKyAgICAgICAgVHlwZVZpZGVvCisgICAgfTsKKworICAgIFdlYk1lZGlh
U3RyZWFtU291cmNlKCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtU291cmNlKCkgeyByZXNldCgp
OyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcm
IGlkLCBUeXBlLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZXNldCgpOworICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlz
TnVsbCgpOyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBpZCgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgVHlwZSB0eXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJT
dHJpbmcgbmFtZSgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2Vi
TWVkaWFTdHJlYW1Tb3VyY2UoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtU291cmNlPiYpOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRp
YVN0cmVhbVNvdXJjZT4oKSBjb25zdDsKKyAgICBvcGVyYXRvciBXZWJDb3JlOjpNZWRpYVN0cmVh
bVNvdXJjZSooKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8
V2ViQ29yZTo6TWVkaWFTdHJlYW1Tb3VyY2U+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1Tb3VyY2VfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBi
MTA2ODI4MmUxODk3ZTRjNDA2MTMzNWYzM2UwOWUxNzU1NDkyMDE3Li4wMDNkMjczZmJlOWY4MjIx
YmJlYzgwZDgxZmE1NDljNjFjZGNkM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgpAQCAtNzgsNiArNzks
NyBAQAogI2luY2x1ZGUgIldlYkljb25VUkwuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFt
U291cmNlLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlNjcm9sbGJhci5oIgpA
QCAtNDU5LDMgKzQ2MSw4IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVF
bmdpbmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxheWVyLCBQbGF0Zm9yCiBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBQYWdlVmlzaWJp
bGl0eVN0YXRlVmlzaWJsZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGVIaWRkZW4sIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyLCBQ
YWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhU3RyZWFtU291cmNlOjpUeXBl
QXVkaW8sIE1lZGlhU3RyZWFtU291cmNlOjpUeXBlQXVkaW8pOworQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZVZpZGVvLCBNZWRpYVN0cmVhbVNv
dXJjZTo6VHlwZVZpZGVvKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAKaW5kZXggZDM2NmNkZjVmN2Ex
NmViYjAzMmU3OWJkNTE1MzM0MTNkOTE1ZmIxMC4uNzhlMGJiYzkxZjJiYmNmZjRjZDE4MmRmYzgx
ZDhkZjUyYjYwN2Y2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwCkBAIC0yOSw3ICsyOSwxMiBAQAogI2luY2x1
ZGUgIldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJX
ZWJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC00Myw3ICs0OCw3IEBAIHZvaWQgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9y
OjpyZXNldCgpCiAgICAgbV9wcml2YXRlLnJlc2V0KCk7CiB9CiAKLVdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvciYgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpvcGVyYXRvcj0oY29uc3QgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvcj4mIG1lZGlhU3RyZWFtRGVz
Y3JpcHRvcikKK1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yOjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2Ny
aXB0b3I+JiBtZWRpYVN0cmVhbURlc2NyaXB0b3IpCiB7CiAgICAgbV9wcml2YXRlID0gbWVkaWFT
dHJlYW1EZXNjcmlwdG9yOwogICAgIHJldHVybiAqdGhpczsKQEAgLTU5LDYgKzY0LDE2IEBAIFdl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6b3BlcmF0b3IgV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNj
cmlwdG9yKigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKIH0KIAordm9pZCBX
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBsYWJl
bCwgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgc291cmNlcykKK3sKKyAg
ICBNZWRpYVN0cmVhbVNvdXJjZVZlY3RvciBzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c291cmNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBNZWRpYVN0cmVhbVNvdXJjZSogY3VyciA9
IHNvdXJjZXNbaV07CisgICAgICAgIHMuYXBwZW5kKGN1cnIpOworICAgIH0KKyAgICBtX3ByaXZh
dGUgPSBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmNyZWF0ZShsYWJlbCwgcyk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtU291cmNlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYzNmZWI5NzBlM2QyNjg4MzZkZjY4ZTU4MWVmODlmMmFmMjU4OWU4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1T
b3VyY2UuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJXZWJNZWRpYVN0
cmVhbVNvdXJjZS5oIgorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTWVkaWFTdHJlYW1Tb3VyY2U6
OldlYk1lZGlhU3RyZWFtU291cmNlKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+
JiBtZWRpYVN0cmVhbVNvdXJjZSkKKyAgICA6IG1fcHJpdmF0ZShtZWRpYVN0cmVhbVNvdXJjZSkK
K3sKK30KKwordm9pZCBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6cmVzZXQoKQoreworICAgIG1fcHJp
dmF0ZS5yZXNldCgpOworfQorCitXZWJNZWRpYVN0cmVhbVNvdXJjZTo6b3BlcmF0b3IgUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUu
Z2V0KCk7Cit9CisKK1dlYk1lZGlhU3RyZWFtU291cmNlOjpvcGVyYXRvciBNZWRpYVN0cmVhbVNv
dXJjZSooKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK3ZvaWQg
V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OmluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBpZCwgVHlw
ZSB0eXBlLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUpCit7CisgICAgbV9wcml2YXRlID0gTWVkaWFT
dHJlYW1Tb3VyY2U6OmNyZWF0ZShpZCwgc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW1Tb3VyY2U6OlR5
cGU+KHR5cGUpLCBuYW1lKTsKK30KKworV2ViU3RyaW5nIFdlYk1lZGlhU3RyZWFtU291cmNlOjpp
ZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVy
biBtX3ByaXZhdGUuZ2V0KCktPmlkKCk7Cit9CisKK1dlYk1lZGlhU3RyZWFtU291cmNlOjpUeXBl
IFdlYk1lZGlhU3RyZWFtU291cmNlOjp0eXBlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcHJp
dmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFR5cGU+KG1fcHJpdmF0ZS5n
ZXQoKS0+dHlwZSgpKTsKK30KKworV2ViU3RyaW5nIFdlYk1lZGlhU3RyZWFtU291cmNlOjpuYW1l
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS5nZXQoKS0+bmFtZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113202</attachid>
            <date>2011-11-01 12:09:07 -0700</date>
            <delta_ts>2011-11-01 15:32:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71008-20111101200906.patch</filename>
            <type>text/plain</type>
            <size>13324</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZTViNGY0ZmYxMzEzMjFjYmQzMGMxZDMzMjRjM2ViZTBkMjQ1NmY2ZC4uZDNkYzM1MzUyNDRhNmFi
MWUwNjk1ODI0NmIwOTczZTE3YjE0ZTNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxMS0xMS0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIE1lZGlhIFN0cmVhbSBBUEk6IEFkZGluZyBz
dXBwb3J0aW5nIGNsYXNzZXMgdG8gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwOAorCisgICAgICAgIEV4
cGFuZGluZyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IgYW5kIGFkZGluZyBXZWJNZWRpYVN0cmVh
bVNvdXJjZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9y
Lmg6CisgICAgICAgICogcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5o
LgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6V2ViTWVkaWFTdHJlYW1T
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVNvdXJjZTo6fldlYk1lZGlh
U3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6Omlz
TnVsbCk6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAq
IHNyYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3I6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlh
U3RyZWFtU291cmNlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1Tb3VyY2U6OldlYk1lZGlhU3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1Tb3VyY2U6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1Tb3VyY2U6Om9wZXJhdG9yIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6Om9wZXJhdG9yIE1lZGlhU3RyZWFtU291
cmNlKik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtU291cmNlOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OmlkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OnR5cGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbVNvdXJjZTo6bmFtZSk6CisKIDIwMTEtMTEtMDEgIEFsb2sgUHJpeWFkYXJz
aGkgIDxhbG9rcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUm9sbCBjaHJvbWl1bSBERVBTLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDAzNTQzM2RmMTliYjI5MTY2ZGJlYWY1ODQ3
ZGMxNzVkNmZjYmZiMTAuLjhiZGNiYmY5MTBlZTg1NTViNzhhNTQ3NWY4ZDUzNDc4OGExNTUwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIzNSw2ICsyMzUsNyBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oJywKKyAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk1lZGlhU3RyZWFtU291cmNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVu
dUl0ZW1JbmZvLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFu
bmVsLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xp
ZW50LmgnLApAQCAtNTYyLDYgKzU2Myw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFTdHJlYW1Tb3VyY2Uu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYk5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKaW5kZXggYThkOWEwNWU0MTA2
NmFmMTUzMzliMTM4NTY1ZDdlNTgyNDk3YjZmYi4uYmNkZmFmMjIyZjQ3OWNjM2Y4MjQxZjc5OTZk
M2UxMmI5ZThhNDIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgogI2luY2x1ZGUg
IldlYlByaXZhdGVQdHIuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwpAQCAtMzUsMTYgKzM2LDE5IEBA
IGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIFdlYk1lZGlhU3RyZWFtU291cmNlOworY2xhc3MgV2ViU3RyaW5nOworCiBjbGFzcyBXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3IgewogcHVibGljOgogICAgIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcigpIHsgfQogICAgIH5XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoKSB7IHJlc2V0KCk7IH0K
IAotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKCk7IC8vIEZJWE1FOiBBZGQgcGFy
YW1zLgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYg
bGFiZWwsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mKTsKICAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpdmF0ZS5pc051bGwoKTsgfQogCi0gICAgLy8gRklYTUU6IEFkZCBmdW5jdGlvbnMuCisg
ICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgbGFiZWwoKSBjb25zdDsKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgogICAgIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2QxZDM2MGYzZTU2MzlkNTQ2NzgzZmQ4MzQyZDkwMDJkYmM3ZDY4NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291
cmNlLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNZWRpYVN0
cmVhbVNvdXJjZV9oCisjZGVmaW5lIFdlYk1lZGlhU3RyZWFtU291cmNlX2gKKworI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2Vi
UHJpdmF0ZVB0ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVN0cmVhbVNv
dXJjZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKKworY2xh
c3MgV2ViTWVkaWFTdHJlYW1Tb3VyY2UgeworcHVibGljOgorICAgIGVudW0gVHlwZSB7CisgICAg
ICAgIFR5cGVBdWRpbywKKyAgICAgICAgVHlwZVZpZGVvCisgICAgfTsKKworICAgIFdlYk1lZGlh
U3RyZWFtU291cmNlKCkgeyB9CisgICAgfldlYk1lZGlhU3RyZWFtU291cmNlKCkgeyByZXNldCgp
OyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcm
IGlkLCBUeXBlLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZXNldCgpOworICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlz
TnVsbCgpOyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBpZCgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgVHlwZSB0eXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJT
dHJpbmcgbmFtZSgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2Vi
TWVkaWFTdHJlYW1Tb3VyY2UoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtU291cmNlPiYpOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRp
YVN0cmVhbVNvdXJjZT4oKSBjb25zdDsKKyAgICBvcGVyYXRvciBXZWJDb3JlOjpNZWRpYVN0cmVh
bVNvdXJjZSooKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8
V2ViQ29yZTo6TWVkaWFTdHJlYW1Tb3VyY2U+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1Tb3VyY2VfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBi
MTA2ODI4MmUxODk3ZTRjNDA2MTMzNWYzM2UwOWUxNzU1NDkyMDE3Li4wMDNkMjczZmJlOWY4MjIx
YmJlYzgwZDgxZmE1NDljNjFjZGNkM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmls
aXR5U3RhdGUuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgpAQCAtNzgsNiArNzks
NyBAQAogI2luY2x1ZGUgIldlYkljb25VUkwuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFt
U291cmNlLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlNjcm9sbGJhci5oIgpA
QCAtNDU5LDMgKzQ2MSw4IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVF
bmdpbmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxheWVyLCBQbGF0Zm9yCiBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBQYWdlVmlzaWJp
bGl0eVN0YXRlVmlzaWJsZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGVIaWRkZW4sIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyLCBQ
YWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhU3RyZWFtU291cmNlOjpUeXBl
QXVkaW8sIE1lZGlhU3RyZWFtU291cmNlOjpUeXBlQXVkaW8pOworQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZVZpZGVvLCBNZWRpYVN0cmVhbVNv
dXJjZTo6VHlwZVZpZGVvKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAKaW5kZXggZDM2NmNkZjVmN2Ex
NmViYjAzMmU3OWJkNTE1MzM0MTNkOTE1ZmIxMC4uOTA3ZDUzOTFkYjVhNDQzYmIzYjI1MmQ0Mzc0
NjA1OTI2MzgwMjgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuY3BwCkBAIC0yOSwxMSArMjksMTYgQEAKICNpbmNs
dWRlICJXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKIAogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
RGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCisjaW5jbHVkZSAi
V2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3IoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4mIG1lZGlhU3RyZWFtRGVzY3JpcHRvcikKK1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6V2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJl
YW1EZXNjcmlwdG9yPiYgbWVkaWFTdHJlYW1EZXNjcmlwdG9yKQogICAgIDogbV9wcml2YXRlKG1l
ZGlhU3RyZWFtRGVzY3JpcHRvcikKIHsKIH0KQEAgLTQzLDEzICs0OCwxMyBAQCB2b2lkIFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvcjo6cmVzZXQoKQogICAgIG1fcHJpdmF0ZS5yZXNldCgpOwogfQog
Ci1XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6b3Bl
cmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0
b3I+JiBtZWRpYVN0cmVhbURlc2NyaXB0b3IpCitXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIFdl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYgbWVkaWFTdHJlYW1EZXNjcmlwdG9yKQogewogICAg
IG1fcHJpdmF0ZSA9IG1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKICAgICByZXR1cm4gKnRoaXM7CiB9
CiAKLVdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvcj4oKSBjb25zdAorV2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yOjpvcGVyYXRvciBQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4oKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7CiB9CkBAIC01OSw2ICs2
NCwxNiBAQCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I6Om9wZXJhdG9yIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtRGVzY3JpcHRvciooKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7CiB9
CiAKK3ZvaWQgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjppbml0aWFsaXplKGNvbnN0IFdlYlN0
cmluZyYgbGFiZWwsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIHNvdXJj
ZXMpCit7CisgICAgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3IgczsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNvdXJjZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgTWVkaWFTdHJlYW1Tb3Vy
Y2UqIGN1cnIgPSBzb3VyY2VzW2ldOworICAgICAgICBzLmFwcGVuZChjdXJyKTsKKyAgICB9Cisg
ICAgbV9wcml2YXRlID0gTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpjcmVhdGUobGFiZWwsIHMpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVh
bVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVNv
dXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMzZmViOTcwZTNkMjY4ODM2ZGY2OGU1ODFlZjg5ZjJhZjI1
ODllOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1l
ZGlhU3RyZWFtU291cmNlLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
V2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCIKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYk1lZGlhU3Ry
ZWFtU291cmNlOjpXZWJNZWRpYVN0cmVhbVNvdXJjZShjb25zdCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtU291cmNlPiYgbWVkaWFTdHJlYW1Tb3VyY2UpCisgICAgOiBtX3ByaXZhdGUobWVkaWFTdHJl
YW1Tb3VyY2UpCit7Cit9CisKK3ZvaWQgV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OnJlc2V0KCkKK3sK
KyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViTWVkaWFTdHJlYW1Tb3VyY2U6Om9wZXJh
dG9yIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2U+KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcml2YXRlLmdldCgpOworfQorCitXZWJNZWRpYVN0cmVhbVNvdXJjZTo6b3BlcmF0b3IgTWVk
aWFTdHJlYW1Tb3VyY2UqKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwor
fQorCit2b2lkIFdlYk1lZGlhU3RyZWFtU291cmNlOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmlu
ZyYgaWQsIFR5cGUgdHlwZSwgY29uc3QgV2ViU3RyaW5nJiBuYW1lKQoreworICAgIG1fcHJpdmF0
ZSA9IE1lZGlhU3RyZWFtU291cmNlOjpjcmVhdGUoaWQsIHN0YXRpY19jYXN0PE1lZGlhU3RyZWFt
U291cmNlOjpUeXBlPih0eXBlKSwgbmFtZSk7Cit9CisKK1dlYlN0cmluZyBXZWJNZWRpYVN0cmVh
bVNvdXJjZTo6aWQoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsK
KyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT5pZCgpOworfQorCitXZWJNZWRpYVN0cmVhbVNv
dXJjZTo6VHlwZSBXZWJNZWRpYVN0cmVhbVNvdXJjZTo6dHlwZSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPiht
X3ByaXZhdGUuZ2V0KCktPnR5cGUoKSk7Cit9CisKK1dlYlN0cmluZyBXZWJNZWRpYVN0cmVhbVNv
dXJjZTo6bmFtZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwor
ICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPm5hbWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>