<?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>110918</bug_id>
          
          <creation_ts>2013-02-26 15:44:14 -0800</creation_ts>
          <short_desc>Need API to control page underlay color</short_desc>
          <delta_ts>2013-03-07 03:28:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Conrad Shultz">conrad_shultz</reporter>
          <assigned_to name="Conrad Shultz">conrad_shultz</assigned_to>
          <cc>andersca</cc>
    
    <cc>anilsson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kdecker</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842450</commentid>
    <comment_count>0</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-26 15:44:14 -0800</bug_when>
    <thetext>It would be useful for clients to have API to customize the background/underlay color displayed beneath the page, e.g. during rubber-banding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842556</commentid>
    <comment_count>1</comment_count>
      <attachid>190402</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-26 17:33:36 -0800</bug_when>
    <thetext>Created attachment 190402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842564</commentid>
    <comment_count>2</comment_count>
      <attachid>190402</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-26 17:44:52 -0800</bug_when>
    <thetext>Comment on attachment 190402
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1871
&gt; +void WebPage::setUnderlayColor(const WebCore::Color&amp; color)

This file using namespace WebCore;s. Maybe some of the others too, but definitely this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843416</commentid>
    <comment_count>3</comment_count>
      <attachid>190402</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-27 13:09:09 -0800</bug_when>
    <thetext>Comment on attachment 190402
Patch

Will submit a new version based on feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843770</commentid>
    <comment_count>4</comment_count>
      <attachid>190662</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-27 23:13:38 -0800</bug_when>
    <thetext>Created attachment 190662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843774</commentid>
    <comment_count>5</comment_count>
      <attachid>190662</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-27 23:19:04 -0800</bug_when>
    <thetext>Comment on attachment 190662
Patch

Attachment 190662 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16791196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843776</commentid>
    <comment_count>6</comment_count>
      <attachid>190662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 23:19:25 -0800</bug_when>
    <thetext>Comment on attachment 190662
Patch

Attachment 190662 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16771916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843809</commentid>
    <comment_count>7</comment_count>
      <attachid>190668</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-28 00:02:06 -0800</bug_when>
    <thetext>Created attachment 190668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844236</commentid>
    <comment_count>8</comment_count>
      <attachid>190668</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-28 11:04:24 -0800</bug_when>
    <thetext>Comment on attachment 190668
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:190
&gt; +    virtual Color underlayColor() const = 0;

I think this should not be pure virtual, and can return Color() so you don&apos;t have to touch all the other clients.

&gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:620
&gt; +    graphicsLayer-&gt;platformLayer().backgroundColor = backgroundColor.isValid() ? nsColor(backgroundColor).CGColor : cachedLinenBackgroundColor;

I think this should use cachedCGColor(backgroundColor, ColorSpaceDeviceRGB).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844260</commentid>
    <comment_count>9</comment_count>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-28 11:27:55 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 190668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190668&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:190
&gt; &gt; +    virtual Color underlayColor() const = 0;
&gt; 
&gt; I think this should not be pure virtual, and can return Color() so you don&apos;t have to touch all the other clients.

Changed.

&gt; 
&gt; &gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:620
&gt; &gt; +    graphicsLayer-&gt;platformLayer().backgroundColor = backgroundColor.isValid() ? nsColor(backgroundColor).CGColor : cachedLinenBackgroundColor;
&gt; 
&gt; I think this should use cachedCGColor(backgroundColor, ColorSpaceDeviceRGB).

Good idea, changed.

Will post a revised patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844270</commentid>
    <comment_count>10</comment_count>
      <attachid>190766</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2013-02-28 11:31:37 -0800</bug_when>
    <thetext>Created attachment 190766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844626</commentid>
    <comment_count>11</comment_count>
      <attachid>190766</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 16:49:09 -0800</bug_when>
    <thetext>Comment on attachment 190766
Patch

Clearing flags on attachment: 190766

Committed r144397: &lt;http://trac.webkit.org/changeset/144397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844627</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 16:49:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845582</commentid>
    <comment_count>13</comment_count>
      <attachid>190766</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-01 16:03:32 -0800</bug_when>
    <thetext>Comment on attachment 190766
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:865
&gt; +    if (isValid())
&gt; +        m_process-&gt;send(Messages::WebPage::SetUnderlayColor(color), m_pageID);

I don’t understand why the isValid() check here is a good idea. If we set the underlay color to an invalid color, then m_underlayColor gets set, but the other process is never told and is left with the old underlay color? That’s strange behavior. Seems we should send a SetUnderlayColor message to clear the underlay color if the new color is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845588</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-01 16:08:58 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 190766 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190766&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:865
&gt; &gt; +    if (isValid())
&gt; &gt; +        m_process-&gt;send(Messages::WebPage::SetUnderlayColor(color), m_pageID);
&gt; 
&gt; I don’t understand why the isValid() check here is a good idea. If we set the underlay color to an invalid color, then m_underlayColor gets set, but the other process is never told and is left with the old underlay color? That’s strange behavior. Seems we should send a SetUnderlayColor message to clear the underlay color if the new color is invalid.

isValid checks if the WebProcess is valid, not the color (right?). If we try to send a message to !isValid() WebProcess, we crash. We&apos;ve really gotta sort this out, because there are a bunch of WebPageProxy methods where it&apos;s easy to cause a crash by trying to do something from the UIProcess at the wrong time (especially post-WebProcess-crash).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190402</attachid>
            <date>2013-02-26 17:33:36 -0800</date>
            <delta_ts>2013-02-27 13:09:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110918-20130226172950.patch</filename>
            <type>text/plain</type>
            <size>13677</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI3ZDBiNzBmODhhZjI1
YTMzNmM4MDMzZDVhNDdmYTViNjRiMmNjYy4uNTJiYzFlZDM0Nzg0OTA1ZjYyOTllMjA2YmEzMjA1
OGJhODE1ODJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTI2ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkg
dG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICBJbmNsdWRlIENv
bG9yLmguCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRVbmRlcmxheUNvbG9yKToKKyAgICAg
ICAgTXV0YXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnVuZGVybGF5Q29sb3IpOgorICAg
ICAgICBBY2Nlc3Nvci4KKyAgICAgICAgKFBhZ2UpOgorICAgICAgICBBZGQgbV91bmRlcmxheUNv
bG9yIG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1l
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6c2V0VXBPdmVyaGFuZ0FyZWFz
TGF5ZXJDb250ZW50cyk6CisgICAgICAgIEFkZCBiYWNrZ3JvdW5kQ29sb3IgcGFyYW1ldGVyLgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmg6CisgICAgICAgIChT
Y3JvbGxiYXJUaGVtZU1hYyk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICBJbmNsdWRlIENvbG9yTWFjLmguCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5
ZXJDb250ZW50cyk6CisgICAgICAgIEFkZCBiYWNrZ3JvdW5kQ29sb3IgcGFyYW1ldGVyOyBpZiB0
aGUgcGFyYW1ldGVyIGlzIHZhbGlkIHVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBsaW5lbiBjb2xvci4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xz
TGF5ZXJzKToKKyAgICAgICAgUGFzcyB0aGUgYXNzb2NpYXRlZCBwYWdlJ3MgdW5kZXJsYXkgY29s
b3IuCisKIDIwMTMtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgTG90cyBvZiB1bm5lY2Vzc2FyeSBEaWRMYXlvdXQgbm90aWZpY2F0aW9ucyB3
aGVuIHNjcm9sbGluZyB6b29tZWQgcGFnZSB3aXRoIGlmcmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZGE2
MDQ4MjAxZTdlZmNhY2YwYTFkOGFkYjI2YjFjMWUxOTZlZjZkLi44NWYxYzE3YmJiMjVkMjg0MDZm
ZDY1N2Q5YzQwYjE0NGJkMmRjMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTMt
MDItMjYgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KKworICAgICAg
ICBOZWVkIEFQSSB0byBjb250cm9sIHBhZ2UgdW5kZXJsYXkgY29sb3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkxOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgdW5kZXJsYXlDb2xvcl0pOgorICAgICAgICBBY2Nl
c3NvcjsgcmVjb25zdGl0dXRlcyBhbiBOU0NvbG9yIGZyb20gdGhlIFdlYkNvcmU6OkNvbG9yIChp
ZiBhbnkpLgorICAgICAgICAoLVtXS1ZpZXcgc2V0VW5kZXJsYXlDb2xvcjpdKToKKyAgICAgICAg
TXV0YXRvcjsgd3JhcHMgV2ViUGFnZVByb3h5OjpzZXRVbmRlcmxheUNvbG9yKCkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmg6CisgICAgICAgIERlY2xhcmUg
dW5kZXJsYXlDb2xvciBAcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRVbmRlcmxheUNvbG9y
KToKKyAgICAgICAgTXV0YXRvcjsgZGlzcGF0Y2hlcyBhIFNldFVuZGVybGF5Q29sb3IgbWVzc2Fn
ZSB0byBXZWJQYWdlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9u
cyBhbmQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5kZXJsYXlD
b2xvcik6CisgICAgICAgIEFjY2Vzc29yLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRVbmRlcmxheUNvbG9y
KToKKyAgICAgICAgTXV0YXRvcjsgd3JhcHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gaW4g
V2ViQ29yZTo6UGFnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgRm9yd2FyZC1kZWNsYXJlIFdlYkNvcmU6OkNv
bG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1bmRlcmxheUNvbG9yKToKKyAgICAgICAg
QWNjZXNzb3IuCisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVy
IGZ1bmN0aW9uIGFuZCB2YXJpYWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICBEZWNsYXJlIFNldFVuZGVybGF5Q29sb3IgbWVz
c2FnZS4KKwogMjAxMy0wMi0yNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIG5ldyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQgY2Fs
bGJhY2sgdGhhdCB0YWtlcyBhIFdLRGljdGlvbmFyeSBvZiBwbHVnLWluIGluZm9ybWF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCmluZGV4IDg5Yjg1YTczZDUwMzZkZjM5MDg1ZjU3MzBhYjdmNmQwMzg2NWJhOWQu
LjBlNzgwM2VmZGZkYjVkNjFiNzAxNmVhYmY4OTMwNjE3Y2ZiN2Y0MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIFBhZ2VfaAogI2RlZmluZSBQYWdlX2gKIAorI2lu
Y2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
RmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCkBAIC0zNzgsNiAr
Mzc5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CiAKKyAgICB2b2lkIHNldFVuZGVybGF5Q29sb3IoY29uc3QgQ29sb3Im
IGNvbG9yKSB7IG1fdW5kZXJsYXlDb2xvciA9IGNvbG9yOyB9OworICAgIENvbG9yIHVuZGVybGF5
Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KKwogcHJpdmF0ZToKICAg
ICB2b2lkIGluaXRHcm91cCgpOwogCkBAIC00OTgsNiArNTAyLDggQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5QbHVnaW5zOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3Nl
ZW5NZWRpYUVuZ2luZXM7CisKKyAgICBDb2xvciBtX3VuZGVybGF5Q29sb3I7CiB9OwogCiBpbmxp
bmUgUGFnZUdyb3VwJiBQYWdlOjpncm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YmFyVGhlbWUuaAppbmRleCAwMWFiMDllOTE1N2M2MDVmOGQ0NzYxYjU4ZTkwYjU2ZGVlMWRmNmVm
Li45ZjhjNTY3ZjRlM2VhNGI2NjM4MDQ5NTEyZGU2NjMzNWUzNTM4ZjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBwYWludE92ZXJoYW5nQXJlYXMoU2Nyb2xsVmlldyosIEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYp
IHsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCi0gICAgdmlydHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVu
dHMoR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJl
YXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBDb2xvciYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFwaGljc0xheWVyKikgeyB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVN
YWMuaAppbmRleCBkMTRkYTZkYjI0YjA3YTYyOTdkMTI3NmE0MWYzYmJiM2VlMTEyNTkwLi5hNzhj
ZDY2MDVjOTcwOTczOWRhNGUwYjc4NzA1N2Y1ODMwNDI1MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaApAQCAtODIsNyArODIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlKFNjcm9sbGJh
clBhcnQpOwogCiAjaWYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NM
YXllciosIGNvbnN0IENvbG9yJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFVwQ29u
dGVudFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKICNlbmRpZgogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRl
eCA4NGZkMGZlYjNmN2YxZjFjNGFhNDljMTJiNjhiZTg0MTQyM2U4N2VmLi5mMzk3YTQ3ZmZmNWY2
MzViZTYzN2VhNGZjNGM0OWI3ZDhiZjg3YjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVNYWMuaCIKIAorI2luY2x1ZGUg
IkNvbG9yTWFjLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0xheWVyLmgiCiAjaW5jbHVkZSAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCkBAIC02
MTEsMTMgKzYxMiwxMiBAQCBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JSZWY+IGxpbmVuQmFja2dy
b3VuZENvbG9yKCkKICAgICByZXR1cm4gYWRvcHRDRihDR0NvbG9yQ3JlYXRlV2l0aFBhdHRlcm4o
Y29sb3JTcGFjZS5nZXQoKSwgcGF0dGVybi5nZXQoKSwgJmFscGhhKSk7CiB9CiAKLXZvaWQgU2Ny
b2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3Zlcmhh
bmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgY29uc3Qg
Q29sb3ImIGJhY2tncm91bmRDb2xvcikKIHsKICAgICBzdGF0aWMgQ0dDb2xvclJlZiBjYWNoZWRM
aW5lbkJhY2tncm91bmRDb2xvciA9IGxpbmVuQmFja2dyb3VuZENvbG9yKCkubGVha1JlZigpOwot
CiAgICAgLy8gV2Ugb3BlcmF0ZSBvbiB0aGUgQ0FMYXllciBkaXJlY3RseSBoZXJlLCBzaW5jZSBH
cmFwaGljc0xheWVyIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdAogICAgIC8vIG9mIHBhdHRlcm4g
aW1hZ2VzLCBhbmQgd2Uga25vdyB0aGF0IFdlYkNvcmUgd29uJ3QgdG91Y2ggdGhpcyBsYXllci4K
LSAgICBncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkuYmFja2dyb3VuZENvbG9yID0gY2Fj
aGVkTGluZW5CYWNrZ3JvdW5kQ29sb3I7CisgICAgZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXll
cigpLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmRDb2xvci5pc1ZhbGlkKCkgPyBuc0NvbG9y
KGJhY2tncm91bmRDb2xvcikuQ0dDb2xvciA6IGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yOwog
fQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBhMTAzN2MxMmMxZjJhMmU0Yzg1MjIz
ZjNhNWIwNGY3ZjJmNzU0MDQwLi4wZDQ3NzdjOTMwOTQzMTVmNmFkYjMyNjU3NTkxODI0N2M2NWIx
MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtMjQ1Myw3ICsyNDUzLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKQogICAgICAgICAgICAgbV9sYXllckZv
ck92ZXJoYW5nQXJlYXMtPnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgICAgICAgICBtX2xh
eWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0U2l6ZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5m
cmFtZVJlY3QoKS5zaXplKCkpOwogCi0gICAgICAgICAgICBTY3JvbGxiYXJUaGVtZTo6dGhlbWUo
KS0+c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhtX2xheWVyRm9yT3ZlcmhhbmdBcmVh
cy5nZXQoKSk7CisgICAgICAgICAgICBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS0+c2V0VXBPdmVy
aGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy5nZXQoKSwgdGhp
cy0+cGFnZSgpLT51bmRlcmxheUNvbG9yKCkpOwogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRo
ZSBvdmVyaGFuZyBhcmVhcyBsYXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBj
b250ZW50cywKICAgICAgICAgICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXll
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBlNTkw
MjhkMTYxMTkyYmIzMWU0YzZkMmFiYzY4NTgyMzYyMTgwNDAyLi4wMjE5NTMzNGY2ZDU4MWMxYmZk
MjU1N2ViNWJjMDQ3YTkzMzc5M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCkBAIC0zMjg3LDYgKzMyODcsMjAgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBfZGF0YS0+X3Bh
Z2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKIH0KIAorLSAoTlND
b2xvciAqKXVuZGVybGF5Q29sb3IKK3sKKyAgICBDb2xvciB3ZWJDb2xvciA9IF9kYXRhLT5fcGFn
ZS0+dW5kZXJsYXlDb2xvcigpOworICAgIGlmICghd2ViQ29sb3IuaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIG5zQ29sb3Iod2ViQ29sb3IpOworfQorCistICh2
b2lkKXNldFVuZGVybGF5Q29sb3I6KE5TQ29sb3IgKil1bmRlcmxheUNvbG9yCit7CisgICAgX2Rh
dGEtPl9wYWdlLT5zZXRVbmRlcmxheUNvbG9yKGNvbG9yRnJvbU5TQ29sb3IodW5kZXJsYXlDb2xv
cikpOworfQorCiAtIChOU1ZpZXcqKWZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcKIHsKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXdQcml2YXRlLmgKaW5kZXggZjYzZGFkZTE5MTM4NTY2YzBlNjFkNjJhNWU3NWE0
MmFkYzAyN2YyMy4uYWZjZjA3ZWJhMTQyYzgxMWFhM2Y0OWFiYzlhMzAxNGJiYjk3ZmZiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaApA
QCAtNTMsNiArNTMsOCBAQAogQHByb3BlcnR5IChyZWFkd3JpdGUpIENHRmxvYXQgbWluaW11bUxh
eW91dFdpZHRoOwogQHByb3BlcnR5IChyZWFkd3JpdGUpIENHRmxvYXQgbWluaW11bVdpZHRoRm9y
QXV0b0xheW91dDsKIAorQHByb3BlcnR5KGNvcHksIG5vbmF0b21pYykgTlNDb2xvciAqdW5kZXJs
YXlDb2xvcjsKKwogLSAoTlNWaWV3KilmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3OwogCiAtICh2
b2lkKWJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzMxZGM0Nzg1NzNmMzNiNjdkNTQ2NDM5OGNi
MDE4MmZkZTc1OTUxMi4uMGNlYTY5MDg0MGU3ZWQ5OTUyN2FkYzdlZTYyYThjM2FjNGZhNDVmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1NCw2ICs4
NTQsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
KGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQKICAgICAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChkcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZCksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnNldFVuZGVybGF5Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIGlm
IChtX3VuZGVybGF5Q29sb3IgPT0gY29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdW5k
ZXJsYXlDb2xvciA9IGNvbG9yOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZXRVbmRlcmxheUNvbG9yKGNvbG9yKSwgbV9wYWdlSUQpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpemUoKQogewogICAgIGlmICghaXNWYWxpZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGYwZWM3ZGI4NTM3
NTNmOWFhY2I3YzI0YmJiZjE3Y2NkOTdkMTk0YWUuLmUzMmRjOTNkOTM2ZWYxZTljNzlkOTEyMWM0
ZWZhOWNjNDhlMmI4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTMxOCw2ICszMTgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFj
a2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7IH0K
ICAgICB2b2lkIHNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wpOwogCisgICAgdm9p
ZCBzZXRVbmRlcmxheUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgV2ViQ29yZTo6
Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fdW5kZXJsYXlDb2xvcjsgfQor
CiAgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogICAgIHZvaWQgdmlld1dpbGxF
bmRMaXZlUmVzaXplKCk7CiAKQEAgLTExMzMsNiArMTEzNiw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91
bmQ7CiAKKyAgICBXZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5Q29sb3I7CisKICAgICBib29sIG1f
YXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7CiAKICAgICBib29sIG1fdXNlRml4ZWRM
YXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggYTVhNzE5NDU1YTI3NTQwYTAwY2JhMmRkM2UxMGZlMDNmMDBhYWM5Mi4uNjkzOTU4NWY5
MWY1YjE4NzRiZDQzN2YwM2UyMGQ3N2I4MTVmNjlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTg2Nyw2ICsxODY3LDE1IEBAIHZvaWQg
V2ViUGFnZTo6c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCBkcmF3c1RyYW5zcGFy
ZW50QmFja2dyb3VuZCkKICAgICBtX2RyYXdpbmdBcmVhLT5wYWdlQmFja2dyb3VuZFRyYW5zcGFy
ZW5jeUNoYW5nZWQoKTsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0K
KyAgICAKK3ZvaWQgV2ViUGFnZTo6c2V0VW5kZXJsYXlDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYgY29sb3IpCit7CisgICAgaWYgKG1fdW5kZXJsYXlDb2xvciA9PSBjb2xvcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV91bmRlcmxheUNvbG9yID0gY29sb3I7CisgICAgbV9wYWdlLT5zZXRV
bmRlcmxheUNvbG9yKGNvbG9yKTsKK30KIAogdm9pZCBXZWJQYWdlOjp2aWV3V2lsbFN0YXJ0TGl2
ZVJlc2l6ZSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCA5N2Y0NmRiNjA3OWUyMzgxN2YzYzI0OTllNzBkOWMzYWE4MTQzMmRhLi5iYmIxNzNm
YjdkNzU5MjNjMDRhYjU3MzMyNjlmNzU3OWU1ZTA3MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBuYW1lc3BhY2Ug
Q29yZUlQQyB7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBDb2xvcjsKICAg
ICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgRnJh
bWVWaWV3OwpAQCAtMzI4LDYgKzMyOSw4IEBAIHB1YmxpYzoKICAgICBib29sIGRyYXdzQmFja2dy
b3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NCYWNrZ3JvdW5kOyB9CiAgICAgYm9vbCBkcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQ7IH0KIAorICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25z
dCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KKwogICAgIHZvaWQgc3RvcExvYWRpbmcoKTsK
ICAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBz
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJMb2FkaW5nKTsKQEAgLTY4MSw2ICs2ODQsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wpOwogICAgIHZvaWQgc2V0
RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCk7CiAKKyAgICB2b2lkIHNldFVuZGVybGF5
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKwogICAgIHZvaWQgdmlld1dpbGxTdGFydExp
dmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCkBAIC04MDMs
NiArODA4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kOwogICAgIGJv
b2wgbV9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsKIAorICAgIFdlYkNvcmU6OkNvbG9yIG1f
dW5kZXJsYXlDb2xvcjsKKwogICAgIGJvb2wgbV9pc0luUmVkbzsKICAgICBib29sIG1faXNDbG9z
ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KaW5kZXggMzNhZTNkYmI4MTJkNDdjNmEzYzhlYmEwY2Y1NjQ3ZjQ5ZTY5
MGQ2Zi4uZGM5YTU4ZDAxOWJkZjQ4OTRjODVlODExMDNhNTMxN2NmZmE3ZmE2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTI5LDYgKzI5LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgU2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZHJhd3NCYWNrZ3JvdW5kKQogICAgIFNldERy
YXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQp
CiAKKyAgICBTZXRVbmRlcmxheUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKQorCiAgICAgVmll
d1dpbGxTdGFydExpdmVSZXNpemUoKQogICAgIFZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190662</attachid>
            <date>2013-02-27 23:13:38 -0800</date>
            <delta_ts>2013-02-27 23:19:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110918-20130227230951.patch</filename>
            <type>text/plain</type>
            <size>19493</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNjZmZmZmRhYmU1Y2Jm
ODcyYWE4MWZkNWQ2OTc0MjcwOGExM2NmMC4uOTZmZGU4YmQ2YzY2NmZhNWY1MzgxNzEwOThhYzZi
MWE5OTk3NmE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTI3ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkg
dG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAg
KEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgSW1wbGVtZW50IHVuZGVybGF5Q29sb3IoKS4K
KworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQp
OgorICAgICAgICBEZWNsYXJlIHVuZGVybGF5Q29sb3IoKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGJhclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6c2V0
VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyk6CisgICAgICAgIEhhdmUgc2V0VXBPdmVyaGFu
Z0FyZWFzTGF5ZXJDb250ZW50cygpIHRha2UgYSBiYWNrZ3JvdW5kIGNvbG9yIHBhcmFtZXRlci4K
KworICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAo
U2Nyb2xsYmFyVGhlbWVNYWMpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgSW5jbHVkZSBDb2xvck1hYy5oLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhc0xh
eWVyQ29udGVudHMpOgorICAgICAgICBVc2UgdGhlIHBhc3NlZC1pbiBiYWNrZ3JvdW5kIGNvbG9y
LCBpZiB2YWxpZCwgZm9yIHRoZSBvdmVyaGFuZyBhcmVhIGxheWVyLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAg
ICBHZXQgdGhlIHVuZGVybGF5IGNvbG9yIGZyb20gdGhlIGNocm9tZSBjbGllbnQgYW5kIHBhc3Mg
aXQgaW50byBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKCkuCisKIDIwMTMtMDItMjYg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1l
bnQgU3RvcmFnZUFyZWFQcm94eTo6Z2V0SXRlbSBhbmQgU3RvcmFnZUFyZWFQcm94eTo6c2V0SXRl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIyODFmZmQ3MDE0N2FhMGE4ZGNlY2I0ZGI0ZmE3YmQ3YzA0
NzQxY2MuLjFkNjRhMjg2OTI2Y2JiZGI4NDViYmMwNzZiZTAxMTAwYzFjMjY0ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yNyAgQ29ucmFkIFNodWx0eiAgPGNv
bnJhZF9zaHVsdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgQVBJIHRvIGNvbnRyb2wgcGFn
ZSB1bmRlcmxheSBjb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEwOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgSW1w
bGVtZW50IHVuZGVybGF5Q29sb3IoKS4KKwogMjAxMy0wMi0yNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeDsgdXNlIGNvcnJl
Y3QgbWFjcm8gZm9yIHBsYXRmb3JtIG5hbWUgaW4gRmVhdHVyZURlZmluZXMueGNjb25maWcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZmY0YzQyYjJmOWYzYzQzNTg0N2IzNmZiOWQwNmYzYTE5NWU0NjRjOS4uZWY0
ZDYzNGU1NWM2ZDc0NjczZjcxYjdhZjI2NTJjN2ZlYTQxZDc5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDEzLTAyLTI3ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBs
ZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkgdG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgRW5jb2RlIHVuZGVybGF5Q29s
b3IuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6
CisgICAgICAgIERlY29kZSB1bmRlcmxheUNvbG9yLgorCisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICBBZGQgdW5kZXJsYXlDb2xvciBtZW1iZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyB1bmRlcmxheUNvbG9y
XSk6CisgICAgICAgIEFjY2Vzc29yOyByZXRyaWV2ZXMgdGhlIFdlYkNvcmU6OkNvbG9yIGZyb20g
dGhlIFdlYlBhZ2VQcm94eSBhbmQgY29udmVydHMgaXQgdG8gYW4gTlNDb2xvci4KKyAgICAgICAg
KC1bV0tWaWV3IHNldFVuZGVybGF5Q29sb3I6XSk6CisgICAgICAgIE11dGF0b3I7IGNvbnZlcnRz
IHRoZSBOU0NvbG9yIHRvIGEgV2ViQ29yZTo6Q29sb3IgYW5kIHBhc3NlcyBpdCB0byB0aGUgV2Vi
UGFnZVByb3h5LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5o
OgorICAgICAgICBBZGQgdW5kZXJsYXlDb2xvciBAcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpz
ZXRVbmRlcmxheUNvbG9yKToKKyAgICAgICAgTXV0YXRvcjsgZGlzcGF0Y2hlcyBTZXRVbmRlcmxh
eUNvbG9yIHRvIFdlYlBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRp
b25QYXJhbWV0ZXJzKToKKyAgICAgICAgU2V0IHRoZSBwYXJhbWV0ZXJzJyB1bmRlcmxheUNvbG9y
IG1lbWJlciBhcHByb3ByaWF0ZWx5LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICBEZWNsYXJlIG5ldyBtZW1iZXIgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1bmRlcmxheUNvbG9yKToKKyAgICAgICAg
QWNjZXNzb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dW5kZXJsYXlD
b2xvcik6CisgICAgICAgIFJldHVybiB0aGUgYXNzb2NpYXRlZCBXZWJQYWdlJ3MgdW5kZXJsYXlD
b2xvci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorICAgICAgICBEZWNsYXJlIHVuZGVy
bGF5Q29sb3IoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIEFwcGx5IGFueSB1
bmRlcmxheUNvbG9yIHRoYXQgd2FzIHN1cHBsaWVkIGFzIHBhcnQgb2YgdGhlIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICBEZWNsYXJlIG5ldyBtZW1iZXIgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dW5kZXJsYXlDb2xvcik6CisgICAgICAgIEFjY2Vzc29y
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgIEFkZCBTZXRVbmRlcmxheUNvbG9yIG1lc3NhZ2UuCisKIDIwMTMtMDItMjYgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgU3Rv
cmFnZUFyZWFQcm94eTo6Z2V0SXRlbSBhbmQgU3RvcmFnZUFyZWFQcm94eTo6c2V0SXRlbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWExNGM1NjJmNjU1N2I5MDkwMWU4
YWE5OTg4ODdhOTUxZDg1OWEuLjlmMzQ0NTA0ZjA1YmVhNDM1YzUzNWQ4YmRjMmQ1MWJjNTY5Yzhl
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTIwNiw2ICsyMDYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
dW5zaWduZWQpIE9WRVJSSURFIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgdmlydHVhbCBDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gQ29sb3I6OkNvbG9yKCk7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
aXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZjZjZTM5YTUxOTA0ZWE0NTMwZDViYjczZTU1YTIx
ODJmYzU1NTQ3Li5hNmQxMWRhZWIwZWJhMTY0ODUzNDY3OTNkZDA2NTBlMDA4ZWI4MTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE4Nyw2ICsxODcsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7CiAKKyAg
ICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJh
bWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCmluZGV4IDAxYWIw
OWU5MTU3YzYwNWY4ZDQ3NjFiNThlOTBiNTZkZWUxZGY2ZWYuLjlmOGM1NjdmNGUzZWE0YjY2Mzgw
NDk1MTJkZTY2MzM1ZTM1MzhmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGJhclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
VGhlbWUuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
T3ZlcmhhbmdBcmVhcyhTY3JvbGxWaWV3KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgeyB9CiAKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKikgeyB9
CisgICAgdmlydHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhp
Y3NMYXllciosIGNvbnN0IENvbG9yJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVu
dFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmluZGV4IGQxNGRhNmRiMjRi
MDdhNjI5N2QxMjc2YTQxZjNiYmIzZWUxMTI1OTAuLmE3OGNkNjYwNWM5NzA5NzM5ZGE0ZTBiNzg3
MDU3ZjU4MzA0MjUyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5oCkBAIC04Miw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBpbnQgc2Ny
b2xsYmFyUGFydFRvSElQcmVzc2VkU3RhdGUoU2Nyb2xsYmFyUGFydCk7CiAKICNpZiAhUExBVEZP
Uk0oQ0hST01JVU0pICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQotICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNv
bnRlbnRzKEdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXBP
dmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3ImKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhp
Y3NMYXllciopIE9WRVJSSURFOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDg0ZmQwZmViM2Y3ZjFmMWM0YWE0
OWMxMmI2OGJlODQxNDIzZTg3ZWYuLmYzOTdhNDdmZmY1ZjYzNWJlNjM3ZWE0ZmM0YzQ5YjdkOGJm
ODdiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJU
aGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZU1hYy5oIgogCisjaW5jbHVkZSAiQ29sb3JNYWMuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCIKQEAgLTYxMSwxMyArNjEyLDEyIEBAIHN0YXRp
YyBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gbGluZW5CYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVy
biBhZG9wdENGKENHQ29sb3JDcmVhdGVXaXRoUGF0dGVybihjb2xvclNwYWNlLmdldCgpLCBwYXR0
ZXJuLmdldCgpLCAmYWxwaGEpKTsKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBP
dmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQor
dm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9y
KQogewogICAgIHN0YXRpYyBDR0NvbG9yUmVmIGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yID0g
bGluZW5CYWNrZ3JvdW5kQ29sb3IoKS5sZWFrUmVmKCk7Ci0KICAgICAvLyBXZSBvcGVyYXRlIG9u
IHRoZSBDQUxheWVyIGRpcmVjdGx5IGhlcmUsIHNpbmNlIEdyYXBoaWNzTGF5ZXIgZG9lc24ndCBo
YXZlIHRoZSBjb25jZXB0CiAgICAgLy8gb2YgcGF0dGVybiBpbWFnZXMsIGFuZCB3ZSBrbm93IHRo
YXQgV2ViQ29yZSB3b24ndCB0b3VjaCB0aGlzIGxheWVyLgotICAgIGdyYXBoaWNzTGF5ZXItPnBs
YXRmb3JtTGF5ZXIoKS5iYWNrZ3JvdW5kQ29sb3IgPSBjYWNoZWRMaW5lbkJhY2tncm91bmRDb2xv
cjsKKyAgICBncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkuYmFja2dyb3VuZENvbG9yID0g
YmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSA/IG5zQ29sb3IoYmFja2dyb3VuZENvbG9yKS5DR0Nv
bG9yIDogY2FjaGVkTGluZW5CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhl
bWVNYWM6OnNldFVwQ29udGVudFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCmluZGV4IDNlMDcwNzc4ZjgwZDEyMWNhMTY4OTFhNGQ0MDNkOWI3MmI5NjcyNTcuLmVm
ODlmY2FjYmVmYjg2Mzc3ZDJkOTBmYzJlYmM1ZjM0MGZmNjI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDUyLDcg
KzI0NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250
cm9sc0xheWVycygpCiAgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0RHJh
d3NDb250ZW50KGZhbHNlKTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5z
ZXRTaXplKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lUmVjdCgpLnNpemUoKSk7CiAK
LSAgICAgICAgICAgIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNM
YXllckNvbnRlbnRzKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLmdldCgpKTsKKyAgICAgICAgICAg
IFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRz
KG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLmdldCgpLCB0aGlzLT5wYWdlKCktPmNocm9tZSgpLT5j
bGllbnQoKS0+dW5kZXJsYXlDb2xvcigpKTsKIAogICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUg
b3ZlcmhhbmcgYXJlYXMgbGF5ZXIgdG8gYmUgcG9zaXRpb25lZCBiZWxvdyB0aGUgZnJhbWUgY29u
dGVudHMsCiAgICAgICAgICAgICAvLyBzbyBpbnNlcnQgaXQgYmVsb3cgdGhlIGNsaXAgbGF5ZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDE0MGY3MDQ5Yjg5ZDFhYWIyMzJlNzZiMTI5OTA1ODdkY2YwNjE5ZWYuLjI0ZDZk
ZTBmODg2ZjE2YjQ1NTI5ZjZjZDhiOTcyODMxN2JiMmM5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODEsNiArMTgx
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQodW5zaWduZWQpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvciB1bmRlcmxh
eUNvbG9yKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gV2ViQ29yZTo6Q29sb3I6OkNvbG9yKCk7
IH0KIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBhNmYy
ZDAxNzA5MGU1ZTFlYmE4MzgzNmMxZjJhMDIxOWRlZmViODhlLi42ZTFmNDY2Y2Q2ZTVlOWY1NzBl
MzA0NGRlOTg3OTc5OWI4ZGU2ZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00Myw2ICs0Myw3IEBAIHZvaWQgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHBhZ2VHcm91cERhdGE7CiAgICAgZW5jb2Rl
ciA8PCBkcmF3c0JhY2tncm91bmQ7CiAgICAgZW5jb2RlciA8PCBkcmF3c1RyYW5zcGFyZW50QmFj
a2dyb3VuZDsKKyAgICBlbmNvZGVyIDw8IHVuZGVybGF5Q29sb3I7CiAgICAgZW5jb2RlciA8PCBh
cmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHVzZUZpeGVk
TGF5b3V0OwogICAgIGVuY29kZXIgPDwgZml4ZWRMYXlvdXRTaXplOwpAQCAtODgsNiArODksOCBA
QCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFdlYlBhZwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy51bmRlcmxheUNvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
dXNlRml4ZWRMYXlvdXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggOTA2YWViZTczZjc1NWVhZmUxZmM1NmU5MWUyYjMwZTdl
ZDk1MjkxMS4uOGFkZDIwZDM5YjQwMDU4M2ZlOGYxYTRlNWEwODhkZGIxNGUwNzIwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC02Miw2ICs2Miw4IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBi
b29sIGRyYXdzQmFja2dyb3VuZDsKICAgICBib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
OwogCisgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcjsKKwogICAgIGJvb2wgYXJlTWVt
b3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7CiAKICAgICBib29sIHVzZUZpeGVkTGF5b3V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGU1OTAyOGQx
NjExOTJiYjMxZTRjNmQyYWJjNjg1ODIzNjIxODA0MDIuLjAyMTk1MzM0ZjZkNTgxYzFiZmQyNTU3
ZWI1YmMwNDdhOTMzNzkzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KQEAgLTMyODcsNiArMzI4NywyMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRo
VW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRhLT5fcGFnZS0+
c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKCFleHBhbmRzVG9GaXQpOwogfQogCistIChOU0NvbG9y
ICopdW5kZXJsYXlDb2xvcgoreworICAgIENvbG9yIHdlYkNvbG9yID0gX2RhdGEtPl9wYWdlLT51
bmRlcmxheUNvbG9yKCk7CisgICAgaWYgKCF3ZWJDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICByZXR1cm4gbnNDb2xvcih3ZWJDb2xvcik7Cit9CisKKy0gKHZvaWQp
c2V0VW5kZXJsYXlDb2xvcjooTlNDb2xvciAqKXVuZGVybGF5Q29sb3IKK3sKKyAgICBfZGF0YS0+
X3BhZ2UtPnNldFVuZGVybGF5Q29sb3IoY29sb3JGcm9tTlNDb2xvcih1bmRlcmxheUNvbG9yKSk7
Cit9CisKIC0gKE5TVmlldyopZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldwogewogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld1ByaXZhdGUuaAppbmRleCBmNjNkYWRlMTkxMzg1NjZjMGU2MWQ2MmE1ZTc1YTQyYWRj
MDI3ZjIzLi5hZmNmMDdlYmExNDJjODExYWEzZjQ5YWJjOWEzMDE0YmJiOTdmZmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oCkBAIC01
Myw2ICs1Myw4IEBACiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQ0dGbG9hdCBtaW5pbXVtTGF5b3V0
V2lkdGg7CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQ0dGbG9hdCBtaW5pbXVtV2lkdGhGb3JBdXRv
TGF5b3V0OwogCitAcHJvcGVydHkoY29weSwgbm9uYXRvbWljKSBOU0NvbG9yICp1bmRlcmxheUNv
bG9yOworCiAtIChOU1ZpZXcqKWZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXc7CiAKIC0gKHZvaWQp
YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwYmM5MjdmMmU3ZGYzN2QyYzVjY2EwMTY4MTZkMzg2
Njk4ZjI0ODAyLi5kYjhjMzczNWQ2NWJkMGQ1NDBhOTM2ZjRlNjZlODNlY2Q0MTIyNzMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODU0LDYgKzg1NCwx
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9v
bCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZAogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGRyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kKSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
VW5kZXJsYXlDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaWYgKG1fdW5kZXJsYXlD
b2xvciA9PSBjb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91bmRlcmxheUNvbG9yID0g
Y29sb3I7CisKKyAgICBpZiAoaXNWYWxpZCgpKQorICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldFVuZGVybGF5Q29sb3IoY29sb3IpLCBtX3BhZ2VJRCk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiB7CiAgICAgaWYg
KCFpc1ZhbGlkKCkpCkBAIC0zODE2LDYgKzM4MjcsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkgY29uc3QKICAgICBwYXJhbWV0
ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwogICAgIHBhcmFtZXRlcnMu
ZHJhd3NCYWNrZ3JvdW5kID0gbV9kcmF3c0JhY2tncm91bmQ7CiAgICAgcGFyYW1ldGVycy5kcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZCA9IG1fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7Cisg
ICAgcGFyYW1ldGVycy51bmRlcmxheUNvbG9yID0gbV91bmRlcmxheUNvbG9yOwogICAgIHBhcmFt
ZXRlcnMuYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQgPSBtX2FyZU1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkOwogICAgIHBhcmFtZXRlcnMudXNlRml4ZWRMYXlvdXQgPSBtX3Vz
ZUZpeGVkTGF5b3V0OwogICAgIHBhcmFtZXRlcnMuZml4ZWRMYXlvdXRTaXplID0gbV9maXhlZExh
eW91dFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjBl
YzdkYjg1Mzc1M2Y5YWFjYjdjMjRiYmJmMTdjY2Q5N2QxOTRhZS4uMDg1YjE1OTI2YzJjODJhYWE0
NjJhZmNhYTk3MjBmZjU3NzE0ZjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMzE4LDYgKzMxOCw5IEBAIHB1YmxpYzoKICAgICBib29sIGRyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZDsgfQogICAgIHZvaWQgc2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCk7CiAK
KyAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRl
cmxheUNvbG9yOyB9CisgICAgdm9pZCBzZXRVbmRlcmxheUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisKICAgICB2b2lkIHZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiAgICAgdm9pZCB2
aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKIApAQCAtMTEzMyw2ICsxMTM2LDggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kOwogICAgIGJvb2wgbV9kcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZDsKIAorICAgIFdlYkNvcmU6OkNvbG9yIG1fdW5kZXJsYXlDb2xvcjsKKwogICAg
IGJvb2wgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsKIAogICAgIGJvb2wgbV91
c2VGaXhlZExheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2MTM5MGM2OGYzMTcx
NjM3NGRlMWQ4NzhjOTJjZmFkOTFlZWUzMjUxLi40Njk3YzA2YmQ0MGUyNmEzOTYxYTU4ZTFhNDk0
NGY3MTNiMjJmZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03ODUsNiArNzg1LDEx
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
Q29yZTo6U2Nyb2xsRGlyZWN0aW9uIGRpcmVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0NvbG9y
IFdlYkNocm9tZUNsaWVudDo6dW5kZXJsYXlDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cGFnZS0+dW5kZXJsYXlDb2xvcigpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bnVtV2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKIHsKICAgICBtX3BhZ2UtPm51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggNzZkZWNhNDI0NmU2MzgyZjBjMTk5NTZhNWRmYzdlZTg1OTNlNDFjNS4uMjcyOTRiMjQ0M2E3
NjA4YzA5ZTZjNjQ2YjFkM2JlNjUxZWMxNmVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0y
MTIsNiArMjEyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJU
aHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJf
dCBuZXdTdHlsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IE9WRVJSSURFOworCisg
ICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYTVhNzE5NDU1YTI3NTQwYTAwY2JhMmRkM2UxMGZlMDNmMDBhYWM5
Mi4uODNhY2I1YmYwNjY4ZjRhOWYxNjJiYzA0NzJhNGQwYjYyZDkxZjcwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzQ3LDYgKzM0Nyw4
IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIHNldERyYXdzQmFja2dyb3VuZChwYXJhbWV0
ZXJzLmRyYXdzQmFja2dyb3VuZCk7CiAgICAgc2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQo
cGFyYW1ldGVycy5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CiAKKyAgICBzZXRVbmRlcmxh
eUNvbG9yKHBhcmFtZXRlcnMudW5kZXJsYXlDb2xvcik7CisKICAgICBzZXRQYWdpbmF0aW9uTW9k
ZShwYXJhbWV0ZXJzLnBhZ2luYXRpb25Nb2RlKTsKICAgICBzZXRQYWdpbmF0aW9uQmVoYXZlc0xp
a2VDb2x1bW5zKHBhcmFtZXRlcnMucGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1ucyk7CiAgICAg
c2V0UGFnZUxlbmd0aChwYXJhbWV0ZXJzLnBhZ2VMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOTdmNDZkYjYwNzllMjM4MTdmM2MyNDk5
ZTcwZDljM2FhODE0MzJkYS4uMzE1ZDAyNWRhMDM3ZmY1MDBkZThjZWE1MTg4ZWI5ZTFmMGU2ODYx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0z
MjgsNiArMzI4LDkgQEAgcHVibGljOgogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KICAgICBib29sIGRyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsg
fQogCisgICAgdm9pZCBzZXRVbmRlcmxheUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikgeyBtX3VuZGVybGF5Q29sb3IgPSBjb2xvcjsgfQorICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVy
bGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KKwogICAgIHZvaWQg
c3RvcExvYWRpbmcoKTsKICAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJ
RCk7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJMb2FkaW5nKTsKQEAgLTgw
Myw2ICs4MDYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CiAgICAg
Ym9vbCBtX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOwogCisgICAgV2ViQ29yZTo6Q29sb3Ig
bV91bmRlcmxheUNvbG9yOworCiAgICAgYm9vbCBtX2lzSW5SZWRvOwogICAgIGJvb2wgbV9pc0Ns
b3NlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCAzM2FlM2RiYjgxMmQ0N2M2YTNjOGViYTBjZjU2NDdmNDll
NjkwZDZmLi5kYzlhNThkMDE5YmRmNDg5NGM4NWU4MTEwM2E1MzE3Y2ZmYTdmYTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMjksNiArMjksOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCiAgICAgU2V0
RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZCkKIAorICAgIFNldFVuZGVybGF5Q29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCisKICAgICBW
aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiAgICAgVmlld1dpbGxFbmRMaXZlUmVzaXplKCkKIAo=
</data>
<flag name="commit-queue"
          id="211414"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190668</attachid>
            <date>2013-02-28 00:02:06 -0800</date>
            <delta_ts>2013-02-28 11:31:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110918-20130227235819.patch</filename>
            <type>text/plain</type>
            <size>31150</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNjZmZmZmRhYmU1Y2Jm
ODcyYWE4MWZkNWQ2OTc0MjcwOGExM2NmMC4uNTBlNGZhYjE0M2ZlNzJmMDIzMzVkNTY4YzY4ZDE5
ZTczOWZkNmI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTI3ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkg
dG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAg
KEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBu
ZXcgQ2hyb21lQ2xpZW50IGZ1bmN0aW9uLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAgIERlY2xhcmUgdW5kZXJsYXlDb2xv
cigpLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lOjpzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKToK
KyAgICAgICAgSGF2ZSBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKCkgdGFrZSBhIGJh
Y2tncm91bmQgY29sb3IgcGFyYW1ldGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLmg6CisgICAgICAgIChTY3JvbGxiYXJUaGVtZU1hYyk6CisgICAgICAgIERp
dHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAg
ICAgICBJbmNsdWRlIENvbG9yTWFjLmguCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVt
ZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyk6CisgICAgICAgIFVzZSB0aGUg
cGFzc2VkLWluIGJhY2tncm91bmQgY29sb3IsIGlmIHZhbGlkLCBmb3IgdGhlIG92ZXJoYW5nIGFy
ZWEgbGF5ZXIuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZs
b3dDb250cm9sc0xheWVycyk6CisgICAgICAgIEdldCB0aGUgdW5kZXJsYXkgY29sb3IgZnJvbSB0
aGUgY2hyb21lIGNsaWVudCBhbmQgcGFzcyBpdCBpbnRvIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVy
Q29udGVudHMoKS4KKwogMjAxMy0wMi0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBTdG9yYWdlQXJlYVByb3h5OjpnZXRJdGVtIGFu
ZCBTdG9yYWdlQXJlYVByb3h5OjpzZXRJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA1NWU2OTNkNTAxMDRkOGQxOTdkMzg4MTIyZTRlZWY0YzM3MWQ4ZjE5Li43ZDY2ZWIxYzg1
ZDA0YzZkNjhlNjgwMDIzZDU3NTQ5OTdlNzgzZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yNyAgQ29ucmFkIFNodWx0eiAgPGNvbnJh
ZF9zaHVsdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgQVBJIHRvIGNvbnRyb2wgcGFnZSB1
bmRlcmxheSBjb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEwOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp1bmRlcmxheUNvbG9yKTogRGVmYXVs
dCBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgQ2hyb21lQ2xpZW50IGZ1bmN0aW9uLgorCiAyMDEzLTAy
LTI2ICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVc2Ug
QVBJRW50cnlTaGltIHdoZW4gbWFraW5nIEpTIGNhbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNjVhZjY2NThkOGFjNDhjMTI5YTQyMjNjNDJiYzYwMmExMDdhMDQ4NC4uOWNhZTY3ZDI4
ZTljM2FhYTE0YzVlYTdhNDQ1N2NmMDNhN2VlYTM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yNyAgQ29ucmFkIFNodWx0eiAgPGNvbnJhZF9z
aHVsdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgQVBJIHRvIGNvbnRyb2wgcGFnZSB1bmRl
cmxheSBjb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnRJbXBsOjp1bmRlcmxheUNvbG9yKTogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgQ2hy
b21lQ2xpZW50IGZ1bmN0aW9uLgorCiAyMDEzLTAyLTI2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgV2ViTGF5ZXJUcmVl
Vmlld0NsaWVudDo6KHdpbGx8ZGlkKUJlZ2luRnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3NTRj
ZGRkNGJlMzk5YTFlYmJiNDliMjFhZWQzOWVmZmI0ZmZmNDg1Li45MjFiMTM3MmRiNTZkMzM2YjA2
OTIxNjY2YjgzOGY1OWJmMDc1ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTMtMDItMjcgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBOZWVkIEFQSSB0byBjb250cm9sIHBhZ2UgdW5kZXJsYXkgY29sb3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnVu
ZGVybGF5Q29sb3IpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG5ldyBDaHJvbWVDbGllbnQg
ZnVuY3Rpb24uCisKIDIwMTMtMDItMjMgIEphc29uIEFuZGVyc3NlbiAgPGphbmRlcnNzZW5AZ21h
aWwuY29tPgogCiAgICAgICAgIE1vdmUgc2V0QXV0b2ZpbGxlZCBmcm9tIFRlc3RSdW5uZXIgdG8g
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDAzMzRhY2I5MjM5MmIzMzFkNmE0ODNiNjBiMzNi
YjM1YjU0NTM1YTguLmI3MTY3YTZlNjYzNTNkOWYxMTgyZDA0NGNiYzhkYjIyYmUyNTIwZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yNyAgQ29ucmFkIFNodWx0
eiAgPGNvbnJhZF9zaHVsdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgQVBJIHRvIGNvbnRy
b2wgcGFnZSB1bmRlcmxheSBjb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEwOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp1bmRlcmxheUNvbG9yKTogRGVmYXVsdCBpbXBsZW1l
bnRhdGlvbiBvZiBuZXcgQ2hyb21lQ2xpZW50IGZ1bmN0aW9uLgorCiAyMDEzLTAyLTI2ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMTQzNjE5KTogQ3Jhc2hlcyBpbiB0aHJlZSBsYXlvdXQgdGVzdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCBiMjgxZmZkNzAxNDdhYTBhOGRjZWNiNGRiNGZhN2JkN2MwNDc0MWNjLi5jYTM3M2EzMTk4
ZDUxYzI0ZGQ1OTVkZmJhNGNkNmY0MGU5NTU5Y2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTMtMDItMjcgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxl
LmNvbT4KKworICAgICAgICBOZWVkIEFQSSB0byBjb250cm9sIHBhZ2UgdW5kZXJsYXkgY29sb3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkxOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnVu
ZGVybGF5Q29sb3IpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG5ldyBDaHJvbWVDbGllbnQg
ZnVuY3Rpb24uCisKIDIwMTMtMDItMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXg7IHVzZSBjb3JyZWN0IG1hY3JvIGZvciBw
bGF0Zm9ybSBuYW1lIGluIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCA4MjIzNWQ1MzE4OTE3NGQ3MTJiYjdkOTk3ZjNkMWMzYjFkMDZhNTI1Li5iMzViNWNjYmFmMTBj
NWQ4YTU5Y2EyY2U3OGMxMzJmOTU3OTEwMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEzLTAyLTI3ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+
CisKKyAgICAgICAgTmVlZCBBUEkgdG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6
dW5kZXJsYXlDb2xvcik6IERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbmV3IENocm9tZUNsaWVu
dCBmdW5jdGlvbi4KKwogMjAxMy0wMi0yNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgU3R5bGVkRWxlbWVudDogRG9uJ3QgZXhwb3NlIGEgbXV0YWJsZSBkaXJl
Y3QgaW50ZXJmYWNlIHRvIHRoZSBpbmxpbmUgc3R5bGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmFm
NzNkOWRlMTcxOGQ4YjliMjEyMGMyMWY1OWNkNTNlOWRlMGE3OS4uYTIzNjM4NDk3MDI4ZmQ2MDgz
Mjg2OGY5M2NkMmQ1YzlhOTQ4YjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEzLTAyLTI3ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisK
KyAgICAgICAgTmVlZCBBUEkgdG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp1bmRlcmxheUNv
bG9yKTogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgQ2hyb21lQ2xpZW50IGZ1bmN0aW9u
LgorCiAyMDEzLTAyLTI2ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBBcHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmlu
ZGV4IDZmNmExOThhNDI0ZTg4YmEwMzVlNzQ4NmMyMGMwMWY3NzY5MzM0YzkuLjFmY2IwZTcwN2E5
MWM0YjY4MGQwZTBjNTQ5NjEyMWVjMjU1M2ZiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTMtMDItMjcgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFw
cGxlLmNvbT4KKworICAgICAgICBOZWVkIEFQSSB0byBjb250cm9sIHBhZ2UgdW5kZXJsYXkgY29s
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkx
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50V2luQ0U6OnVuZGVybGF5Q29sb3IpOiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG5l
dyBDaHJvbWVDbGllbnQgZnVuY3Rpb24uCisKIDIwMTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGlzYWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xs
ZXIgb24gbm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRlIEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0Rl
bGV0ZUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAwMzI0ZTIxNWRiZWRhMGFjZmE0YjY0Y2E3
MGJiMmM3MWMzM2Y3MzI3Li5mYTBjYTUzNmM4MzE4ZGVkNjY1NjZlOGMwMWJiZmJkMDA2ZjRjNDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTI3ICBDb25yYWQgU2h1
bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkgdG8gY29u
dHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp1bmRlcmxheUNvbG9yKTogRGVmYXVsdCBpbXBs
ZW1lbnRhdGlvbiBvZiBuZXcgQ2hyb21lQ2xpZW50IGZ1bmN0aW9uLgorCiAyMDEzLTAyLTI2ICBE
bWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWVyZ2Vk
IFRpcCBhbmQgRGVidWcgbG9nIGxldmVscyBmb3Igd2ViIGNvbnNvbGUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmY0YzQyYjJmOWYzYzQzNTg0N2IzNmZiOWQwNmYzYTE5NWU0NjRjOS4uZWY0ZDYzNGU1NWM2ZDc0
NjczZjcxYjdhZjI2NTJjN2ZlYTQxZDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisy
MDEzLTAyLTI3ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAg
ICAgICAgTmVlZCBBUEkgdG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgRW5jb2RlIHVuZGVybGF5Q29sb3IuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgIERl
Y29kZSB1bmRlcmxheUNvbG9yLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAg
ICBBZGQgdW5kZXJsYXlDb2xvciBtZW1iZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyB1bmRlcmxheUNvbG9yXSk6CisgICAgICAg
IEFjY2Vzc29yOyByZXRyaWV2ZXMgdGhlIFdlYkNvcmU6OkNvbG9yIGZyb20gdGhlIFdlYlBhZ2VQ
cm94eSBhbmQgY29udmVydHMgaXQgdG8gYW4gTlNDb2xvci4KKyAgICAgICAgKC1bV0tWaWV3IHNl
dFVuZGVybGF5Q29sb3I6XSk6CisgICAgICAgIE11dGF0b3I7IGNvbnZlcnRzIHRoZSBOU0NvbG9y
IHRvIGEgV2ViQ29yZTo6Q29sb3IgYW5kIHBhc3NlcyBpdCB0byB0aGUgV2ViUGFnZVByb3h5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICBB
ZGQgdW5kZXJsYXlDb2xvciBAcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRVbmRlcmxheUNv
bG9yKToKKyAgICAgICAgTXV0YXRvcjsgZGlzcGF0Y2hlcyBTZXRVbmRlcmxheUNvbG9yIHRvIFdl
YlBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJz
KToKKyAgICAgICAgU2V0IHRoZSBwYXJhbWV0ZXJzJyB1bmRlcmxheUNvbG9yIG1lbWJlciBhcHBy
b3ByaWF0ZWx5LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICBEZWNsYXJlIG5ldyBtZW1iZXIgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZS4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1bmRlcmxheUNvbG9yKToKKyAgICAgICAgQWNjZXNzb3IuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dW5kZXJsYXlDb2xvcik6CisgICAg
ICAgIFJldHVybiB0aGUgYXNzb2NpYXRlZCBXZWJQYWdlJ3MgdW5kZXJsYXlDb2xvci4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQpOgorICAgICAgICBEZWNsYXJlIHVuZGVybGF5Q29sb3IoKS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIEFwcGx5IGFueSB1bmRlcmxheUNvbG9y
IHRoYXQgd2FzIHN1cHBsaWVkIGFzIHBhcnQgb2YgdGhlIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICBE
ZWNsYXJlIG5ldyBtZW1iZXIgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dW5kZXJsYXlDb2xvcik6CisgICAgICAgIEFjY2Vzc29yLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBT
ZXRVbmRlcmxheUNvbG9yIG1lc3NhZ2UuCisKIDIwMTMtMDItMjYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgU3RvcmFnZUFyZWFQcm94
eTo6Z2V0SXRlbSBhbmQgU3RvcmFnZUFyZWFQcm94eTo6c2V0SXRlbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWExNGM1NjJmNjU1N2I5MDkwMWU4YWE5OTg4ODdhOTUx
ZDg1OWEuLjEwMTE1MmQxNTg4ZGZiOTc2OTYzYWRhYzIyNzI3Nzk2MGVlNDA3ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTIwNiw3ICsyMDYsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIE9W
RVJSSURFIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIAorCisgICAgdmlydHVhbCBDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gQ29sb3IoKTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGll
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCA1ZjZjZTM5YTUxOTA0ZWE0NTMwZDViYjczZTU1YTIxODJmYzU1NTQ3Li5hNmQx
MWRhZWIwZWJhMTY0ODUzNDY3OTNkZDA2NTBlMDA4ZWI4MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTE4Nyw2ICsxODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHByaW50KEZyYW1lKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIENvbG9y
IHVuZGVybGF5Q29sb3IoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQog
ICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCmluZGV4IDAxYWIwOWU5MTU3YzYwNWY4ZDQ3
NjFiNThlOTBiNTZkZWUxZGY2ZWYuLjlmOGM1NjdmNGUzZWE0YjY2MzgwNDk1MTJkZTY2MzM1ZTM1
MzhmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaApAQCAtOTAs
NyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50T3ZlcmhhbmdBcmVhcyhT
Y3JvbGxWaWV3KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRSZWN0JikgeyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVy
aGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciosIGNvbnN0
IENvbG9yJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVudFNoYWRvd0xheWVyKEdy
YXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmluZGV4IGQxNGRhNmRiMjRiMDdhNjI5N2QxMjc2YTQx
ZjNiYmIzZWUxMTI1OTAuLmE3OGNkNjYwNWM5NzA5NzM5ZGE0ZTBiNzg3MDU3ZjU4MzA0MjUyNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5o
CkBAIC04Miw3ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBpbnQgc2Nyb2xsYmFyUGFydFRvSElQ
cmVzc2VkU3RhdGUoU2Nyb2xsYmFyUGFydCk7CiAKICNpZiAhUExBVEZPUk0oQ0hST01JVU0pICYm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKEdyYXBoaWNz
TGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFzTGF5
ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3ImKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NMYXllciopIE9WRVJS
SURFOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tCmluZGV4IDg0ZmQwZmViM2Y3ZjFmMWM0YWE0OWMxMmI2OGJlODQxNDIz
ZTg3ZWYuLmYzOTdhNDdmZmY1ZjYzNWJlNjM3ZWE0ZmM0YzQ5YjdkOGJmODdiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZU1hYy5oIgogCisjaW5jbHVkZSAiQ29sb3JNYWMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQuaCIKQEAgLTYxMSwxMyArNjEyLDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dD
b2xvclJlZj4gbGluZW5CYWNrZ3JvdW5kQ29sb3IoKQogICAgIHJldHVybiBhZG9wdENGKENHQ29s
b3JDcmVhdGVXaXRoUGF0dGVybihjb2xvclNwYWNlLmdldCgpLCBwYXR0ZXJuLmdldCgpLCAmYWxw
aGEpKTsKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5
ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBTY3JvbGxiYXJU
aGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKQogewogICAgIHN0YXRp
YyBDR0NvbG9yUmVmIGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yID0gbGluZW5CYWNrZ3JvdW5k
Q29sb3IoKS5sZWFrUmVmKCk7Ci0KICAgICAvLyBXZSBvcGVyYXRlIG9uIHRoZSBDQUxheWVyIGRp
cmVjdGx5IGhlcmUsIHNpbmNlIEdyYXBoaWNzTGF5ZXIgZG9lc24ndCBoYXZlIHRoZSBjb25jZXB0
CiAgICAgLy8gb2YgcGF0dGVybiBpbWFnZXMsIGFuZCB3ZSBrbm93IHRoYXQgV2ViQ29yZSB3b24n
dCB0b3VjaCB0aGlzIGxheWVyLgotICAgIGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS5i
YWNrZ3JvdW5kQ29sb3IgPSBjYWNoZWRMaW5lbkJhY2tncm91bmRDb2xvcjsKKyAgICBncmFwaGlj
c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENvbG9y
LmlzVmFsaWQoKSA/IG5zQ29sb3IoYmFja2dyb3VuZENvbG9yKS5DR0NvbG9yIDogY2FjaGVkTGlu
ZW5CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwQ29u
dGVudFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDNl
MDcwNzc4ZjgwZDEyMWNhMTY4OTFhNGQ0MDNkOWI3MmI5NjcyNTcuLmVmODlmY2FjYmVmYjg2Mzc3
ZDJkOTBmYzJlYmM1ZjM0MGZmNjI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDUyLDcgKzI0NTIsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAg
ICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0RHJhd3NDb250ZW50KGZhbHNl
KTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRTaXplKG1fcmVuZGVy
Vmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lUmVjdCgpLnNpemUoKSk7CiAKLSAgICAgICAgICAgIFNj
cm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKG1f
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLmdldCgpKTsKKyAgICAgICAgICAgIFNjcm9sbGJhclRoZW1l
Ojp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKG1fbGF5ZXJGb3JPdmVy
aGFuZ0FyZWFzLmdldCgpLCB0aGlzLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+dW5kZXJs
YXlDb2xvcigpKTsKIAogICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgb3ZlcmhhbmcgYXJlYXMg
bGF5ZXIgdG8gYmUgcG9zaXRpb25lZCBiZWxvdyB0aGUgZnJhbWUgY29udGVudHMsCiAgICAgICAg
ICAgICAvLyBzbyBpbnNlcnQgaXQgYmVsb3cgdGhlIGNsaXAgbGF5ZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuaAppbmRleCAxMDg3OGM0ZGRhNzFkNjU5OWI4MmUwZGNlM2I2MDI1NjZl
M2NkMWM5Li5jNTdjY2E0NTdjM2IzNDA3OTUwNjE2YmNiNGYzYWE4YzRhZDEyOWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdl
KGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBD
b2xvcigpOyB9CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
dW5zaWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogICAgIHZpcnR1
YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRh
YmFzZURldGFpbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCmluZGV4IDNlMjhlNTM1YzcwMWJhMjNjZDBlMWFjNzkwNDFhYWViMTQ2ZmZlOTguLjFi
NzQyZmI2MjQwM2MyODVjNDRhNjk5MjhhMTA3NmMxOTY4ZGU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTIyNCw2ICsyMjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURp
c21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29uc3QgU3RyaW5nJiBkaWFsb2dNZXNzYWdlLCBX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5cGUpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJl
Y3Rpb24pIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIFdlYkNvcmU6OkNvbG9yKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQXV0b3Njcm9sbEZvckRyYWdBbmREcm9wKFdlYkNvcmU6OlJlbmRlckJveCogc2Nyb2xs
YWJsZSkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4IGFhMzU4Y2MxNzhhZWYzOWVlNWNiODU4N2Ez
MGNmNzZkNmZkYjg1NjEuLmRjMDVmOWIzZTNlZjVmOWQwOGQ0NTVjYzgyNDQzMjg2MTY1YTdhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCkBAIC0xNzYsNiArMTc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gV2ViQ29y
ZTo6Q29sb3IoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKHVuc2lnbmVkKSB7IH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRl
eCBkYzJkOTUyN2U0NDg0Y2RmZThhM2RhMjhmNTZkMWFhOGYwYzUyZDRjLi41NTU1MTAwMzAwZjE1
YjJhMzY0NTBmMzA1ZTRmMmUzNzBlMzI3MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICAgICAgdmlydHVhbCBDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4g
Q29sb3IoKTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCkgeyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCAxNDBmNzA0OWI4OWQxYWFiMjMyZTc2YjEyOTkwNTg3ZGNmMDYxOWVmLi4wZjNmY2Ux
MzYwZmNhOWRmNzJmYWEwZmNmZjQ0NzZkZTNjMjU1ZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTgxLDYgKzE4MSw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKHVuc2lnbmVkKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlD
b2xvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFdlYkNvcmU6OkNvbG9yKCk7IH0KIHByaXZh
dGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBjZWU5ZTAxYTNmMWI4YzA4OTYx
ODI5MmIxNTRlZmIxNTk0ZTUwNzc3Li44MjBjM2UyNGViMWNlMzMwYzEyM2YwMzY5YTg2YzAxMTNl
YTgxZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCkBAIC0xOTksNiArMTk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsg
fQogCiAgICAgUVdlYkZ1bGxTY3JlZW5WaWRlb0hhbmRsZXIqIGNyZWF0ZUZ1bGxTY3JlZW5WaWRl
b0hhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggZGMxNjE2NjM1MzAxNzNmNjJiMjI0ZjBjOTRlMzIyYTFjN2M2
MTdlYS4uNjBlY2JmNzAxYzEyMDg3Y2FkNmQ5NTkyYWNhZjA4NzEzNzI1OTU4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTE3MSw2ICsxNzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9y
KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6Q29sb3IoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaAppbmRleCAzMmRkYzYxMzZlMjU2NGVjNGE4NzgwZjBmYzllOTI1ODY1MDNhOWRhLi5h
MjAwZWRmMjgxNjk4YjM0MGFmYjBmMmM1YTZiNTQzZTM3YzVmOTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBA
IC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1
cm4gV2ViQ29yZTo6Q29sb3IoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKaW5kZXggYmE4NTU3ZWMzNjI1NTU4
ZTk4M2Y0ZDIzNGFkM2NhZDU4ZGFhODk5Yy4uY2ViMTg0NmI4NWUzYTc1MzU2ZTNjNjU5YWMyYzdi
ODg5YjgwMzAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBX
ZWJDb3JlOjpDb2xvcigpOyB9CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQ
b3B1cCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGE2ZjJkMDE3MDkwZTVlMWViYTgzODM2YzFmMmEwMjE5
ZGVmZWI4OGUuLjZlMWY0NjZjZDZlNWU5ZjU3MGUzMDQ0ZGU5ODc5Nzk5YjhkZTZmZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTQzLDYgKzQzLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNvZGVyIDw8IGRyYXdzQmFja2dyb3VuZDsKICAgICBl
bmNvZGVyIDw8IGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOworICAgIGVuY29kZXIgPDwgdW5k
ZXJsYXlDb2xvcjsKICAgICBlbmNvZGVyIDw8IGFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFi
bGVkOwogICAgIGVuY29kZXIgPDwgdXNlRml4ZWRMYXlvdXQ7CiAgICAgZW5jb2RlciA8PCBmaXhl
ZExheW91dFNpemU7CkBAIC04OCw2ICs4OSw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3IpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFyZU1lbW9y
eUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2VGaXhlZExheW91dCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5MDZh
ZWJlNzNmNzU1ZWFmZTFmYzU2ZTkxZTJiMzBlN2VkOTUyOTExLi44YWRkMjBkMzliNDAwNTgzZmU4
ZjFhNGU1YTA4OGRkYjE0ZTA3MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTYyLDYgKzYyLDggQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kOwogICAgIGJv
b2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CiAKKyAgICBXZWJDb3JlOjpDb2xvciB1bmRl
cmxheUNvbG9yOworCiAgICAgYm9vbCBhcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsK
IAogICAgIGJvb2wgdXNlRml4ZWRMYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0KaW5kZXggZTU5MDI4ZDE2MTE5MmJiMzFlNGM2ZDJhYmM2ODU4MjM2MjE4
MDQwMi4uMDIxOTUzMzRmNmQ1ODFjMWJmZDI1NTdlYjViYzA0N2E5MzM3OTNmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzI4Nyw2ICszMjg3LDIw
IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJp
bmcgKnBhdGgpCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4
cGFuZHNUb0ZpdCk7CiB9CiAKKy0gKE5TQ29sb3IgKil1bmRlcmxheUNvbG9yCit7CisgICAgQ29s
b3Igd2ViQ29sb3IgPSBfZGF0YS0+X3BhZ2UtPnVuZGVybGF5Q29sb3IoKTsKKyAgICBpZiAoIXdl
YkNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBuc0Nv
bG9yKHdlYkNvbG9yKTsKK30KKworLSAodm9pZClzZXRVbmRlcmxheUNvbG9yOihOU0NvbG9yICop
dW5kZXJsYXlDb2xvcgoreworICAgIF9kYXRhLT5fcGFnZS0+c2V0VW5kZXJsYXlDb2xvcihjb2xv
ckZyb21OU0NvbG9yKHVuZGVybGF5Q29sb3IpKTsKK30KKwogLSAoTlNWaWV3KilmdWxsU2NyZWVu
UGxhY2Vob2xkZXJWaWV3CiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oCmluZGV4IGY2M2Rh
ZGUxOTEzODU2NmMwZTYxZDYyYTVlNzVhNDJhZGMwMjdmMjMuLmFmY2YwN2ViYTE0MmM4MTFhYTNm
NDlhYmM5YTMwMTRiYmI5N2ZmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKQEAgLTUzLDYgKzUzLDggQEAKIEBwcm9wZXJ0eSAocmVh
ZHdyaXRlKSBDR0Zsb2F0IG1pbmltdW1MYXlvdXRXaWR0aDsKIEBwcm9wZXJ0eSAocmVhZHdyaXRl
KSBDR0Zsb2F0IG1pbmltdW1XaWR0aEZvckF1dG9MYXlvdXQ7CiAKK0Bwcm9wZXJ0eShjb3B5LCBu
b25hdG9taWMpIE5TQ29sb3IgKnVuZGVybGF5Q29sb3I7CisKIC0gKE5TVmlldyopZnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldzsKIAogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBi
YzkyN2YyZTdkZjM3ZDJjNWNjYTAxNjgxNmQzODY2OThmMjQ4MDIuLmRiOGMzNzM1ZDY1YmQwZDU0
MGE5MzZmNGU2NmU4M2VjZDQxMjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC04NTQsNiArODU0LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRE
cmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
CiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0RHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpLCBtX3BhZ2VJRCk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRVbmRlcmxheUNvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICBpZiAobV91bmRlcmxheUNvbG9yID09IGNvbG9yKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3VuZGVybGF5Q29sb3IgPSBjb2xvcjsKKworICAgIGlmIChpc1ZhbGlkKCkp
CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VW5kZXJsYXlD
b2xvcihjb2xvciksIG1fcGFnZUlEKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdXaWxs
U3RhcnRMaXZlUmVzaXplKCkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKQEAgLTM4MTYsNiArMzgy
Nyw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBh
cmFtZXRlcnMoKSBjb25zdAogICAgIHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSA9IG1fcGFnZUdy
b3VwLT5kYXRhKCk7CiAgICAgcGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQgPSBtX2RyYXdzQmFj
a2dyb3VuZDsKICAgICBwYXJhbWV0ZXJzLmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kID0gbV9k
cmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsKKyAgICBwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3Ig
PSBtX3VuZGVybGF5Q29sb3I7CiAgICAgcGFyYW1ldGVycy5hcmVNZW1vcnlDYWNoZUNsaWVudENh
bGxzRW5hYmxlZCA9IG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7CiAgICAgcGFy
YW1ldGVycy51c2VGaXhlZExheW91dCA9IG1fdXNlRml4ZWRMYXlvdXQ7CiAgICAgcGFyYW1ldGVy
cy5maXhlZExheW91dFNpemUgPSBtX2ZpeGVkTGF5b3V0U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmMGVjN2RiODUzNzUzZjlhYWNiN2MyNGJiYmYxN2Nj
ZDk3ZDE5NGFlLi4wODViMTU5MjZjMmM4MmFhYTQ2MmFmY2FhOTcyMGZmNTc3MTRmOGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMTgsNiArMzE4LDkgQEAg
cHVibGljOgogICAgIGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdCB7IHJl
dHVybiBtX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOyB9CiAgICAgdm9pZCBzZXREcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZChib29sKTsKIAorICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5
Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KKyAgICB2b2lkIHNldFVu
ZGVybGF5Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKwogICAgIHZvaWQgdmlld1dpbGxT
dGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOwogCkBA
IC0xMTMzLDYgKzExMzYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7
CiAgICAgYm9vbCBtX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOwogCisgICAgV2ViQ29yZTo6
Q29sb3IgbV91bmRlcmxheUNvbG9yOworCiAgICAgYm9vbCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50
Q2FsbHNFbmFibGVkOwogCiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDYxMzkwYzY4ZjMxNzE2Mzc0ZGUxZDg3OGM5MmNmYWQ5MWVlZTMyNTEu
LjQ2OTdjMDZiZDQwZTI2YTM5NjFhNThlMWE0OTQ0ZjcxM2IyMmZkYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTc4NSw2ICs3ODUsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24gZGlyZWMK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorQ29sb3IgV2ViQ2hyb21lQ2xpZW50Ojp1bmRlcmxheUNv
bG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT51bmRlcmxheUNvbG9yKCk7Cit9CisK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2ln
bmVkIGNvdW50KQogewogICAgIG1fcGFnZS0+bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChj
b3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3NmRlY2E0MjQ2ZTYzODJmMGMxOTk1NmE1
ZGZjN2VlODU5M2U0MWM1Li4yNzI5NGIyNDQzYTc2MDhjMDllNmM2NDZiMWQzYmU2NTFlYzE2ZWVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIxMiw2ICsyMTIsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRT
Y3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERp
cmVjdGlvbikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvbG9yIHVu
ZGVybGF5Q29sb3IoKSBjb25zdCBPVkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhNWE3MTk0NTVh
Mjc1NDBhMDBjYmEyZGQzZTEwZmUwM2YwMGFhYzkyLi44M2FjYjViZjA2NjhmNGE5ZjE2MmJjMDQ3
MmE0ZDBiNjJkOTFmNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0zNDcsNiArMzQ3LDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAg
ICAgc2V0RHJhd3NCYWNrZ3JvdW5kKHBhcmFtZXRlcnMuZHJhd3NCYWNrZ3JvdW5kKTsKICAgICBz
ZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChwYXJhbWV0ZXJzLmRyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKTsKIAorICAgIHNldFVuZGVybGF5Q29sb3IocGFyYW1ldGVycy51bmRlcmxheUNv
bG9yKTsKKwogICAgIHNldFBhZ2luYXRpb25Nb2RlKHBhcmFtZXRlcnMucGFnaW5hdGlvbk1vZGUp
OwogICAgIHNldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMocGFyYW1ldGVycy5wYWdpbmF0
aW9uQmVoYXZlc0xpa2VDb2x1bW5zKTsKICAgICBzZXRQYWdlTGVuZ3RoKHBhcmFtZXRlcnMucGFn
ZUxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA5N2Y0NmRiNjA3OWUyMzgxN2YzYzI0OTllNzBkOWMzYWE4MTQzMmRhLi4zMTVkMDI1ZGEw
MzdmZjUwMGRlOGNlYTUxODhlYjllMWYwZTY4NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTMyOCw2ICszMjgsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBkcmF3c0JhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQmFja2dyb3VuZDsg
fQogICAgIGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBt
X2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOyB9CiAKKyAgICB2b2lkIHNldFVuZGVybGF5Q29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKSB7IG1fdW5kZXJsYXlDb2xvciA9IGNvbG9y
OyB9CisgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1f
dW5kZXJsYXlDb2xvcjsgfQorCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwogICAgIHZvaWQgc3Rv
cExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRp
bmcoYm9vbCBkZWZlckxvYWRpbmcpOwpAQCAtODAzLDYgKzgwNiw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NUcmFuc3BhcmVudEJhY2tn
cm91bmQ7CiAKKyAgICBXZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5Q29sb3I7CisKICAgICBib29s
IG1faXNJblJlZG87CiAgICAgYm9vbCBtX2lzQ2xvc2VkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDMzYWUz
ZGJiODEyZDQ3YzZhM2M4ZWJhMGNmNTY0N2Y0OWU2OTBkNmYuLmRjOWE1OGQwMTliZGY0ODk0Yzg1
ZTgxMTAzYTUzMTdjZmZhN2ZhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw4IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldERyYXdzQmFja2dyb3VuZChi
b29sIGRyYXdzQmFja2dyb3VuZCkKICAgICBTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChi
b29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQogCisgICAgU2V0VW5kZXJsYXlDb2xvcihX
ZWJDb3JlOjpDb2xvciBjb2xvcikKKwogICAgIFZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCkKICAg
ICBWaWV3V2lsbEVuZExpdmVSZXNpemUoKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190766</attachid>
            <date>2013-02-28 11:31:37 -0800</date>
            <delta_ts>2013-03-01 16:03:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110918-20130228112749.patch</filename>
            <type>text/plain</type>
            <size>17454</size>
            <attacher name="Conrad Shultz">conrad_shultz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNjZmZmZmRhYmU1Y2Jm
ODcyYWE4MWZkNWQ2OTc0MjcwOGExM2NmMC4uM2JmNjRlMGU5ZTQzMzkyZGJiYWY0YjI1MGYzZDcz
MWYwNDdlNTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTI3ICBDb25y
YWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBBUEkg
dG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChD
aHJvbWVDbGllbnQpOgorICAgICAgICBEZWNsYXJlIHVuZGVybGF5Q29sb3IoKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZTo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyk6CisgICAgICAgIEhhdmUg
c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cygpIHRha2UgYSBiYWNrZ3JvdW5kIGNvbG9y
IHBhcmFtZXRlci4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5o
OgorICAgICAgICAoU2Nyb2xsYmFyVGhlbWVNYWMpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgSW5jbHVkZSBD
b2xvck1hYy5oLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3Zl
cmhhbmdBcmVhc0xheWVyQ29udGVudHMpOgorICAgICAgICBVc2UgdGhlIHBhc3NlZC1pbiBiYWNr
Z3JvdW5kIGNvbG9yLCBpZiB2YWxpZCwgZm9yIHRoZSBvdmVyaGFuZyBhcmVhIGxheWVyLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXll
cnMpOgorICAgICAgICBHZXQgdGhlIHVuZGVybGF5IGNvbG9yIGZyb20gdGhlIGNocm9tZSBjbGll
bnQgYW5kIHBhc3MgaXQgaW50byBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKCkuCisK
IDIwMTMtMDItMjYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgU3RvcmFnZUFyZWFQcm94eTo6Z2V0SXRlbSBhbmQgU3RvcmFnZUFyZWFQ
cm94eTo6c2V0SXRlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZmNGM0MmIyZjlmM2M0MzU4NDdiMzZmYjlkMDZm
M2ExOTVlNDY0YzkuLmVmNGQ2MzRlNTVjNmQ3NDY3M2Y3MWI3YWYyNjUyYzdmZWE0MWQ3OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxMy0wMi0yNyAgQ29ucmFkIFNodWx0eiAgPGNv
bnJhZF9zaHVsdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgQVBJIHRvIGNvbnRyb2wgcGFn
ZSB1bmRlcmxheSBjb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEwOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIEVu
Y29kZSB1bmRlcmxheUNvbG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICBEZWNvZGUgdW5kZXJsYXlDb2xvci4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgQWRkIHVuZGVybGF5Q29sb3IgbWVtYmVyLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1Zp
ZXcgdW5kZXJsYXlDb2xvcl0pOgorICAgICAgICBBY2Nlc3NvcjsgcmV0cmlldmVzIHRoZSBXZWJD
b3JlOjpDb2xvciBmcm9tIHRoZSBXZWJQYWdlUHJveHkgYW5kIGNvbnZlcnRzIGl0IHRvIGFuIE5T
Q29sb3IuCisgICAgICAgICgtW1dLVmlldyBzZXRVbmRlcmxheUNvbG9yOl0pOgorICAgICAgICBN
dXRhdG9yOyBjb252ZXJ0cyB0aGUgTlNDb2xvciB0byBhIFdlYkNvcmU6OkNvbG9yIGFuZCBwYXNz
ZXMgaXQgdG8gdGhlIFdlYlBhZ2VQcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld1ByaXZhdGUuaDoKKyAgICAgICAgQWRkIHVuZGVybGF5Q29sb3IgQHByb3BlcnR5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c2V0VW5kZXJsYXlDb2xvcik6CisgICAgICAgIE11dGF0b3I7IGRpc3Bh
dGNoZXMgU2V0VW5kZXJsYXlDb2xvciB0byBXZWJQYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIFNldCB0aGUgcGFyYW1ldGVy
cycgdW5kZXJsYXlDb2xvciBtZW1iZXIgYXBwcm9wcmlhdGVseS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9u
cyBhbmQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5kZXJsYXlD
b2xvcik6CisgICAgICAgIEFjY2Vzc29yLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnVuZGVybGF5Q29sb3IpOgorICAgICAgICBSZXR1cm4gdGhlIGFzc29jaWF0ZWQgV2Vi
UGFnZSdzIHVuZGVybGF5Q29sb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAg
ICAgRGVjbGFyZSB1bmRlcmxheUNvbG9yKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAg
ICAgICBBcHBseSBhbnkgdW5kZXJsYXlDb2xvciB0aGF0IHdhcyBzdXBwbGllZCBhcyBwYXJ0IG9m
IHRoZSBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9ucyBh
bmQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVuZGVybGF5Q29sb3IpOgor
ICAgICAgICBBY2Nlc3Nvci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgU2V0VW5kZXJsYXlDb2xvciBtZXNzYWdlLgorCiAy
MDEzLTAyLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IFN0b3JhZ2VBcmVhUHJveHk6OmdldEl0ZW0gYW5kIFN0b3JhZ2VBcmVhUHJv
eHk6OnNldEl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDVmNmNlMzlhNTE5
MDRlYTQ1MzBkNWJiNzNlNTVhMjE4MmZjNTU1NDcuLmYxZWNkZThkODM5YTJiNjNiZTgwMTA4YTQ0
YTE4OTU3NGUwMWE2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTg3LDYg
KzE4Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rp
b24pIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgQ29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIENvbG9yKCk7IH0KKwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGJhclRoZW1lLmgKaW5kZXggMDFhYjA5ZTkxNTdjNjA1ZjhkNDc2MWI1OGU5
MGI1NmRlZTFkZjZlZi4uOWY4YzU2N2Y0ZTNlYTRiNjYzODA0OTUxMmRlNjYzMzVlMzUzOGY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCkBAIC05MCw3ICs5MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPdmVyaGFuZ0FyZWFzKFNjcm9sbFZp
ZXcqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmKSB7IH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJl
YXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3Im
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NM
YXllciopIHsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbGJhclRoZW1lTWFjLmgKaW5kZXggZDE0ZGE2ZGIyNGIwN2E2Mjk3ZDEyNzZhNDFmM2JiYjNl
ZTExMjU5MC4uYTc4Y2Q2NjA1Yzk3MDk3MzlkYTRlMGI3ODcwNTdmNTgzMDQyNTI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKQEAgLTgy
LDcgKzgyLDcgQEAgcHJvdGVjdGVkOgogICAgIGludCBzY3JvbGxiYXJQYXJ0VG9ISVByZXNzZWRT
dGF0ZShTY3JvbGxiYXJQYXJ0KTsKIAogI2lmICFQTEFURk9STShDSFJPTUlVTSkgJiYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgdmly
dHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRl
bnRzKEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBDb2xvciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CiAj
ZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0KaW5kZXggODRmZDBmZWIzZjdmMWYxYzRhYTQ5YzEyYjY4YmU4NDE0MjNlODdlZi4u
NmI4NDgzYmI5MGI5NDhjYzQyMDFmMmE1MzdjNjY2NmNiNDQwMjRlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFjLmgi
CiAKKyNpbmNsdWRlICJDb2xvck1hYy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkxvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dC5oIgpAQCAtNjExLDEzICs2MTIsMTIgQEAgc3RhdGljIFJldGFpblB0cjxDR0NvbG9yUmVm
PiBsaW5lbkJhY2tncm91bmRDb2xvcigpCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dDb2xvckNyZWF0
ZVdpdGhQYXR0ZXJuKGNvbG9yU3BhY2UuZ2V0KCksIHBhdHRlcm4uZ2V0KCksICZhbHBoYSkpOwog
fQogCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRl
bnRzKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFNjcm9sbGJhclRoZW1lTWFj
OjpzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCiB7CiAgICAgc3RhdGljIENHQ29s
b3JSZWYgY2FjaGVkTGluZW5CYWNrZ3JvdW5kQ29sb3IgPSBsaW5lbkJhY2tncm91bmRDb2xvcigp
LmxlYWtSZWYoKTsKLQogICAgIC8vIFdlIG9wZXJhdGUgb24gdGhlIENBTGF5ZXIgZGlyZWN0bHkg
aGVyZSwgc2luY2UgR3JhcGhpY3NMYXllciBkb2Vzbid0IGhhdmUgdGhlIGNvbmNlcHQKICAgICAv
LyBvZiBwYXR0ZXJuIGltYWdlcywgYW5kIHdlIGtub3cgdGhhdCBXZWJDb3JlIHdvbid0IHRvdWNo
IHRoaXMgbGF5ZXIuCi0gICAgZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpLmJhY2tncm91
bmRDb2xvciA9IGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yOworICAgIGdyYXBoaWNzTGF5ZXIt
PnBsYXRmb3JtTGF5ZXIoKS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3IuaXNWYWxp
ZCgpID8gY2FjaGVkQ0dDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0Ip
IDogY2FjaGVkTGluZW5CYWNrZ3JvdW5kQ29sb3I7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVN
YWM6OnNldFVwQ29udGVudFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IDNlMDcwNzc4ZjgwZDEyMWNhMTY4OTFhNGQ0MDNkOWI3MmI5NjcyNTcuLmVmODlm
Y2FjYmVmYjg2Mzc3ZDJkOTBmYzJlYmM1ZjM0MGZmNjI3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNDUyLDcgKzI0
NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9s
c0xheWVycygpCiAgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0RHJhd3ND
b250ZW50KGZhbHNlKTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRT
aXplKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lUmVjdCgpLnNpemUoKSk7CiAKLSAg
ICAgICAgICAgIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXll
ckNvbnRlbnRzKG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLmdldCgpKTsKKyAgICAgICAgICAgIFNj
cm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKG1f
bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLmdldCgpLCB0aGlzLT5wYWdlKCktPmNocm9tZSgpLT5jbGll
bnQoKS0+dW5kZXJsYXlDb2xvcigpKTsKIAogICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgb3Zl
cmhhbmcgYXJlYXMgbGF5ZXIgdG8gYmUgcG9zaXRpb25lZCBiZWxvdyB0aGUgZnJhbWUgY29udGVu
dHMsCiAgICAgICAgICAgICAvLyBzbyBpbnNlcnQgaXQgYmVsb3cgdGhlIGNsaXAgbGF5ZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggYTZmMmQwMTcwOTBlNWUxZWJhODM4MzZjMWYyYTAyMTlkZWZlYjg4ZS4uNmUxZjQ2
NmNkNmU1ZTlmNTcwZTMwNDRkZTk4Nzk3OTliOGRlNmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNDMsNiArNDMs
NyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBwYWdlR3JvdXBEYXRh
OwogICAgIGVuY29kZXIgPDwgZHJhd3NCYWNrZ3JvdW5kOwogICAgIGVuY29kZXIgPDwgZHJhd3NU
cmFuc3BhcmVudEJhY2tncm91bmQ7CisgICAgZW5jb2RlciA8PCB1bmRlcmxheUNvbG9yOwogICAg
IGVuY29kZXIgPDwgYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7CiAgICAgZW5jb2Rl
ciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVyIDw8IGZpeGVkTGF5b3V0U2l6ZTsKQEAg
LTg4LDYgKzg5LDggQEAgYm9vbCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQYWcKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudW5kZXJsYXlDb2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnVzZUZpeGVkTGF5b3V0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDkwNmFlYmU3M2Y3NTVlYWZlMWZj
NTZlOTFlMmIzMGU3ZWQ5NTI5MTEuLjhhZGQyMGQzOWI0MDA1ODNmZThmMWE0ZTVhMDg4ZGRiMTRl
MDcyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaApAQCAtNjIsNiArNjIsOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgYm9vbCBkcmF3c0JhY2tncm91bmQ7CiAgICAgYm9vbCBkcmF3c1RyYW5zcGFy
ZW50QmFja2dyb3VuZDsKIAorICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29sb3I7CisKICAg
ICBib29sIGFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkOwogCiAgICAgYm9vbCB1c2VG
aXhlZExheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpp
bmRleCBlNTkwMjhkMTYxMTkyYmIzMWU0YzZkMmFiYzY4NTgyMzYyMTgwNDAyLi4wMjE5NTMzNGY2
ZDU4MWMxYmZkMjU1N2ViNWJjMDQ3YTkzMzc5M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zMjg3LDYgKzMyODcsMjAgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBf
ZGF0YS0+X3BhZ2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKIH0K
IAorLSAoTlNDb2xvciAqKXVuZGVybGF5Q29sb3IKK3sKKyAgICBDb2xvciB3ZWJDb2xvciA9IF9k
YXRhLT5fcGFnZS0+dW5kZXJsYXlDb2xvcigpOworICAgIGlmICghd2ViQ29sb3IuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIG5zQ29sb3Iod2ViQ29sb3IpOwor
fQorCistICh2b2lkKXNldFVuZGVybGF5Q29sb3I6KE5TQ29sb3IgKil1bmRlcmxheUNvbG9yCit7
CisgICAgX2RhdGEtPl9wYWdlLT5zZXRVbmRlcmxheUNvbG9yKGNvbG9yRnJvbU5TQ29sb3IodW5k
ZXJsYXlDb2xvcikpOworfQorCiAtIChOU1ZpZXcqKWZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcK
IHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKaW5kZXggZjYzZGFkZTE5MTM4NTY2YzBlNjFk
NjJhNWU3NWE0MmFkYzAyN2YyMy4uYWZjZjA3ZWJhMTQyYzgxMWFhM2Y0OWFiYzlhMzAxNGJiYjk3
ZmZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1By
aXZhdGUuaApAQCAtNTMsNiArNTMsOCBAQAogQHByb3BlcnR5IChyZWFkd3JpdGUpIENHRmxvYXQg
bWluaW11bUxheW91dFdpZHRoOwogQHByb3BlcnR5IChyZWFkd3JpdGUpIENHRmxvYXQgbWluaW11
bVdpZHRoRm9yQXV0b0xheW91dDsKIAorQHByb3BlcnR5KGNvcHksIG5vbmF0b21pYykgTlNDb2xv
ciAqdW5kZXJsYXlDb2xvcjsKKwogLSAoTlNWaWV3KilmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3
OwogCiAtICh2b2lkKWJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGJjOTI3ZjJlN2RmMzdkMmM1
Y2NhMDE2ODE2ZDM4NjY5OGYyNDgwMi4uZGI4YzM3MzVkNjViZDBkNTQwYTkzNmY0ZTY2ZTgzZWNk
NDEyMjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTg1NCw2ICs4NTQsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldERyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQKICAgICAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OnNldFVuZGVybGF5Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGlm
IChtX3VuZGVybGF5Q29sb3IgPT0gY29sb3IpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdW5k
ZXJsYXlDb2xvciA9IGNvbG9yOworCisgICAgaWYgKGlzVmFsaWQoKSkKKyAgICAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRVbmRlcmxheUNvbG9yKGNvbG9yKSwgbV9w
YWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpemUo
KQogewogICAgIGlmICghaXNWYWxpZCgpKQpAQCAtMzgxNiw2ICszODI3LDcgQEAgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpIGNvbnN0
CiAgICAgcGFyYW1ldGVycy5wYWdlR3JvdXBEYXRhID0gbV9wYWdlR3JvdXAtPmRhdGEoKTsKICAg
ICBwYXJhbWV0ZXJzLmRyYXdzQmFja2dyb3VuZCA9IG1fZHJhd3NCYWNrZ3JvdW5kOwogICAgIHBh
cmFtZXRlcnMuZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQgPSBtX2RyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kOworICAgIHBhcmFtZXRlcnMudW5kZXJsYXlDb2xvciA9IG1fdW5kZXJsYXlDb2xv
cjsKICAgICBwYXJhbWV0ZXJzLmFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkID0gbV9h
cmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZDsKICAgICBwYXJhbWV0ZXJzLnVzZUZpeGVk
TGF5b3V0ID0gbV91c2VGaXhlZExheW91dDsKICAgICBwYXJhbWV0ZXJzLmZpeGVkTGF5b3V0U2l6
ZSA9IG1fZml4ZWRMYXlvdXRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGYwZWM3ZGI4NTM3NTNmOWFhY2I3YzI0YmJiZjE3Y2NkOTdkMTk0YWUuLjA4NWIx
NTkyNmMyYzgyYWFhNDYyYWZjYWE5NzIwZmY1NzcxNGY4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMxOCw2ICszMTgsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQ7IH0KICAgICB2b2lkIHNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kKGJvb2wpOwogCisgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsg
cmV0dXJuIG1fdW5kZXJsYXlDb2xvcjsgfQorICAgIHZvaWQgc2V0VW5kZXJsYXlDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYpOworCiAgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
OwogICAgIHZvaWQgdmlld1dpbGxFbmRMaXZlUmVzaXplKCk7CiAKQEAgLTExMzMsNiArMTEzNiw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CiAKKyAgICBXZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5
Q29sb3I7CisKICAgICBib29sIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQ7CiAK
ICAgICBib29sIG1fdXNlRml4ZWRMYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
NjEzOTBjNjhmMzE3MTYzNzRkZTFkODc4YzkyY2ZhZDkxZWVlMzI1MS4uNDY5N2MwNmJkNDBlMjZh
Mzk2MWE1OGUxYTQ5NDRmNzEzYjIyZmRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
Nzg1LDYgKzc4NSwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiBkaXJlYwogICAgIHJldHVybiB0cnVl
OwogfQogCitDb2xvciBXZWJDaHJvbWVDbGllbnQ6OnVuZGVybGF5Q29sb3IoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3BhZ2UtPnVuZGVybGF5Q29sb3IoKTsKK30KKwogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCiB7CiAg
ICAgbV9wYWdlLT5udW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDc2ZGVjYTQyNDZlNjM4MmYwYzE5OTU2YTVkZmM3ZWU4NTkzZTQxYzUu
LjI3Mjk0YjI0NDNhNzYwOGMwOWU2YzY0NmIxZDNiZTY1MWVjMTZlZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMjEyLDYgKzIxMiw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlk
Q2hhbmdlKGludDMyX3QgbmV3U3R5bGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCBP
VkVSUklERTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNv
bnN0IE9WRVJSSURFOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE1YTcxOTQ1NWEyNzU0MGEwMGNiYTJkZDNl
MTBmZTAzZjAwYWFjOTIuLjgzYWNiNWJmMDY2OGY0YTlmMTYyYmMwNDcyYTRkMGI2MmQ5MWY3MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTM0Nyw2ICszNDcsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBzZXREcmF3c0JhY2tn
cm91bmQocGFyYW1ldGVycy5kcmF3c0JhY2tncm91bmQpOwogICAgIHNldERyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kKHBhcmFtZXRlcnMuZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpOwogCisg
ICAgc2V0VW5kZXJsYXlDb2xvcihwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3IpOworCiAgICAgc2V0
UGFnaW5hdGlvbk1vZGUocGFyYW1ldGVycy5wYWdpbmF0aW9uTW9kZSk7CiAgICAgc2V0UGFnaW5h
dGlvbkJlaGF2ZXNMaWtlQ29sdW1ucyhwYXJhbWV0ZXJzLnBhZ2luYXRpb25CZWhhdmVzTGlrZUNv
bHVtbnMpOwogICAgIHNldFBhZ2VMZW5ndGgocGFyYW1ldGVycy5wYWdlTGVuZ3RoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDk3ZjQ2ZGI2MDc5
ZTIzODE3ZjNjMjQ5OWU3MGQ5YzNhYTgxNDMyZGEuLjMxNWQwMjVkYTAzN2ZmNTAwZGU4Y2VhNTE4
OGViOWUxZjBlNjg2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMzI4LDYgKzMyOCw5IEBAIHB1YmxpYzoKICAgICBib29sIGRyYXdzQmFja2dy
b3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NCYWNrZ3JvdW5kOyB9CiAgICAgYm9vbCBkcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQ7IH0KIAorICAgIHZvaWQgc2V0VW5kZXJsYXlDb2xvcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgY29sb3IpIHsgbV91bmRlcmxheUNvbG9yID0gY29sb3I7IH0KKyAgICBXZWJDb3Jl
OjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9yOyB9
CisKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAgICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9h
ZGluZyk7CkBAIC04MDMsNiArODA2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJhd3NCYWNr
Z3JvdW5kOwogICAgIGJvb2wgbV9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsKIAorICAgIFdl
YkNvcmU6OkNvbG9yIG1fdW5kZXJsYXlDb2xvcjsKKwogICAgIGJvb2wgbV9pc0luUmVkbzsKICAg
ICBib29sIG1faXNDbG9zZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzNhZTNkYmI4MTJkNDdjNmEzYzhl
YmEwY2Y1NjQ3ZjQ5ZTY5MGQ2Zi4uZGM5YTU4ZDAxOWJkZjQ4OTRjODVlODExMDNhNTMxN2NmZmE3
ZmE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI5LDYgKzI5LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZHJhd3NCYWNrZ3Jv
dW5kKQogICAgIFNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wgZHJhd3NUcmFuc3Bh
cmVudEJhY2tncm91bmQpCiAKKyAgICBTZXRVbmRlcmxheUNvbG9yKFdlYkNvcmU6OkNvbG9yIGNv
bG9yKQorCiAgICAgVmlld1dpbGxTdGFydExpdmVSZXNpemUoKQogICAgIFZpZXdXaWxsRW5kTGl2
ZVJlc2l6ZSgpCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>