<?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>101452</bug_id>
          
          <creation_ts>2012-11-07 05:08:31 -0800</creation_ts>
          <short_desc>[chromium] Create proxy classes for WebViewClient and WebWidgetClient and use themn for layout tests</short_desc>
          <delta_ts>2012-11-09 01:01:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>760546</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-07 05:08:31 -0800</bug_when>
    <thetext>[chromium] Create proxy classes for WebViewClient and WebWidgetClient and use themn for layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760549</commentid>
    <comment_count>1</comment_count>
      <attachid>172762</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-07 05:13:05 -0800</bug_when>
    <thetext>Created attachment 172762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760553</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 05:16:25 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760555</commentid>
    <comment_count>3</comment_count>
      <attachid>172764</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-07 05:19:20 -0800</bug_when>
    <thetext>Created attachment 172764
script used to generate proxy classes

I generated the proxy classes using this script. Turns out that parsing a header in python is not really straight forward, so I guess we shouldn&apos;t use this script to automatically generate the proxy for now, but instead rely on people updating both classes at the same time for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760818</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 10:06:38 -0800</bug_when>
    <thetext>I don&apos;t understand why you need to modify the API to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760819</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 10:07:16 -0800</bug_when>
    <thetext>This also seems like a large maintenance burden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760888</commentid>
    <comment_count>6</comment_count>
      <attachid>172762</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-07 10:59:59 -0800</bug_when>
    <thetext>Comment on attachment 172762
Patch

Can&apos;t you just do this on the chromium side?  There is absolutely no way we&apos;d be able to maintain this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760897</commentid>
    <comment_count>7</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-07 11:11:32 -0800</bug_when>
    <thetext>I don&apos;t think it&apos;s that much of a maintenance burden in the long term. If you change e.g. WebViewClient, you have to update three different implementations of this class (WebViewHost in DRT, WebViewHost in TestShell, and RenderViewImpl) already now, and in the future, at least the TestShell one will go away.

The goal of this design is to not incur any extra cost for non-layout test code paths.

The reason for putting this into WebKit instead of chrome is that it allows for implementing the testrunner related bits inside webkit - if somebody wanted to add a new method to the testRunner that requires some interaction with the WebViewClient, this design allows for implementing this entirely in webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760944</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-11-07 11:50:07 -0800</bug_when>
    <thetext>Adam, James:  I&apos;ll echo what Jochen wrote.  He and I discussed this recently.  

The idea is to make the TestRunner into a library that can be either embedded into DRT or content-shell.  TestRunner needs to implement WebViewClient to do its work, but RenderViewImpl (in Chromium) also needs to implement WebViewClient.  The idea is that RenderViewImpl would provide users with a way to override the WebViewClient.  content-shell would initiate the TestRunner library and use its WebViewClient instead.  The TestRunner&apos;s WebViewClient would need to delegate many calls to the real WebViewClient in order for content-shell to still function.

The challenge in overriding WebViewClient is maintenance.  If a method is added or removed, then the proxy in TestRunner needs to be updated.  TestRunner does not need to intercept all WebViewClient methods.  Many of the methods should just be passed through to the real WebViewClient.  It seemed like teasing the forwarding of methods out into a separate proxy interface would help with this, but I could also see us just incorporating the proxy interface directly into TestRunner.

Jochen, I think we should avoid the setter for WebViewClient.  DRT or RenderViewImpl can provide a mechanism for overriding the WebViewClient that they pass into WebKit when initializing a WebView.  I don&apos;t think we should need to support changing the WebViewClient at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761026</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 13:44:18 -0800</bug_when>
    <thetext>I&apos;m happy to defer to fishd.  It seems like there should be a way to share a single vtable rather than having a vtable full of self-thunks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761046</commentid>
    <comment_count>10</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-07 14:19:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I&apos;m happy to defer to fishd.  It seems like there should be a way to share a single vtable rather than having a vtable full of self-thunks.

That would require hard-coding some knowledge about how the compiler will layout the vtable. While that&apos;s certainly possible, I&apos;m not sure whether this is desirable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761050</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 14:24:46 -0800</bug_when>
    <thetext>&gt; That would require hard-coding some knowledge about how the compiler will layout the vtable. While that&apos;s certainly possible, I&apos;m not sure whether this is desirable.

That&apos;s not necessarily true.  The subclassing mechanism in C++ lets you share vtables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761065</commentid>
    <comment_count>12</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-07 14:40:11 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; That would require hard-coding some knowledge about how the compiler will layout the vtable. While that&apos;s certainly possible, I&apos;m not sure whether this is desirable.
&gt; 
&gt; That&apos;s not necessarily true.  The subclassing mechanism in C++ lets you share vtables.

You&apos;re right

For that the proxy would need to be a template like

template&lt;class client&gt;
class WebViewClientProxy : public client {
public:
  //... interesting methods
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761452</commentid>
    <comment_count>13</comment_count>
      <attachid>172951</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-08 01:11:49 -0800</bug_when>
    <thetext>Created attachment 172951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761454</commentid>
    <comment_count>14</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 01:13:48 -0800</bug_when>
    <thetext>Much smaller version using templates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761464</commentid>
    <comment_count>15</comment_count>
      <attachid>172956</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-08 01:34:59 -0800</bug_when>
    <thetext>Created attachment 172956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761663</commentid>
    <comment_count>16</comment_count>
      <attachid>173016</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-08 04:52:14 -0800</bug_when>
    <thetext>Created attachment 173016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761804</commentid>
    <comment_count>17</comment_count>
      <attachid>173046</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-08 07:58:35 -0800</bug_when>
    <thetext>Created attachment 173046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761808</commentid>
    <comment_count>18</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 08:03:02 -0800</bug_when>
    <thetext>This is how I&apos;d hook this up https://codereview.chromium.org/11362161/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761941</commentid>
    <comment_count>19</comment_count>
      <attachid>173046</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-08 10:31:37 -0800</bug_when>
    <thetext>Comment on attachment 173046
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:55
&gt; +    WebTestProxy(T t)

explicit

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:74
&gt; +    virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject&amp; obj, WebKit::WebAccessibilityNotification notification)

This function seems really long to put in an API.  Will all the overrides need to be in public headers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761952</commentid>
    <comment_count>20</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 10:37:22 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 173046 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173046&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:55
&gt; &gt; +    WebTestProxy(T t)
&gt; 
&gt; explicit
&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:74
&gt; &gt; +    virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject&amp; obj, WebKit::WebAccessibilityNotification notification)
&gt; 
&gt; This function seems really long to put in an API.  Will all the overrides need to be in public headers?

As it&apos;s a template, the entire code has to go into the header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762003</commentid>
    <comment_count>21</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 11:34:27 -0800</bug_when>
    <thetext>Another possibility would be to move the actual implementation on WebTestProxyBase, and have the WebTestProxy template just dispatch the method. Was that preferable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762051</commentid>
    <comment_count>22</comment_count>
      <attachid>173093</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-08 12:23:49 -0800</bug_when>
    <thetext>Created attachment 173093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762052</commentid>
    <comment_count>23</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 12:24:16 -0800</bug_when>
    <thetext>Here&apos;s a version that hides the implementation in WebTestProxyBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762271</commentid>
    <comment_count>24</comment_count>
      <attachid>173093</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-08 15:56:50 -0800</bug_when>
    <thetext>Comment on attachment 173093
Patch

Why the templates?  Can&apos;t this just be

class WebTestProxy : WebViewClient {
private:
   WebViewClient* m_realClient;
};

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762557</commentid>
    <comment_count>25</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-08 22:04:00 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 173093 [details])
&gt; Why the templates?  Can&apos;t this just be
&gt; 
&gt; class WebTestProxy : WebViewClient {
&gt; private:
&gt;    WebViewClient* m_realClient;
&gt; };
&gt; 
&gt; ?

Then I need to override all methods of WebViewClient (see the first patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762565</commentid>
    <comment_count>26</comment_count>
      <attachid>173093</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-08 22:19:16 -0800</bug_when>
    <thetext>Comment on attachment 173093
Patch

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

Thanks.  This approach looks much easier to maintain.

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:63
&gt; +template&lt;class WebViewClientImpl, typename T&gt;

WebViewClientImpl -&gt; can we use a name for this template that seems more like a variable?

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:73
&gt; +    virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject&amp; obj, WebKit::WebAccessibilityNotification notification)

obj -&gt; object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762661</commentid>
    <comment_count>27</comment_count>
      <attachid>173227</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-09 00:35:44 -0800</bug_when>
    <thetext>Created attachment 173227
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762662</commentid>
    <comment_count>28</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-09 00:36:38 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 173093 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173093&amp;action=review
&gt; 
&gt; Thanks.  This approach looks much easier to maintain.
&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:63
&gt; &gt; +template&lt;class WebViewClientImpl, typename T&gt;
&gt; 
&gt; WebViewClientImpl -&gt; can we use a name for this template that seems more like a variable?

I like this name, as it indicates what the template parameter is supposed to be.

Also, WTF uses similarly formatted names (either T,U, ... or descriptive names)


&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h:73
&gt; &gt; +    virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject&amp; obj, WebKit::WebAccessibilityNotification notification)
&gt; 
&gt; obj -&gt; object

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762677</commentid>
    <comment_count>29</comment_count>
      <attachid>173227</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 01:01:21 -0800</bug_when>
    <thetext>Comment on attachment 173227
Patch for landing

Clearing flags on attachment: 173227

Committed r134027: &lt;http://trac.webkit.org/changeset/134027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762678</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 01:01:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172762</attachid>
            <date>2012-11-07 05:13:05 -0800</date>
            <delta_ts>2012-11-08 01:11:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121107141116.patch</filename>
            <type>text/plain</type>
            <size>49374</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDBhYzdhNzAwMjFjZDU4ZDM2NWY1NjNkMWE0OWQxMmJmOGY0MDNjMTcuLjZlOTI1NTc2Y2NmN2U4
ZTE0ZmYyOGQ4ZDQ2ZDAxMmY2ZGQyODExMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQ4IEBACisyMDEyLTExLTA3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ3JlYXRlIHByb3h5IGNsYXNzZXMgZm9y
IFdlYlZpZXdDbGllbnQgYW5kIFdlYldpZGdldENsaWVudCBhbmQgdXNlIHRoZW1uIGZvciBsYXlv
dXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZvciBsYXlvdXQgdGVzdHMsIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBpbnRlcmNlcHQgY2VydGFp
biBXZWJWaWV3Q2xpZW50CisgICAgICAgIGNhbGxiYWNrcyB3aXRob3V0IG1lc3Npbmcgd2l0aCB0
aGUgYWN0dWFsIGVtYmVkZGVyIGltcGxlbWVudGF0aW9uLiBUbworICAgICAgICBhY2hpZXZlIHRo
aXMsIEkgaW50cm9kdWNlIHByb3h5IGNsYXNzZXMgZm9yIFdlYlZpZXdDbGllbnQgYW5kCisgICAg
ICAgIFdlYldpZGdldENsaWVudCB0aGF0IGp1c3QgZm9yd2FyZCBhbGwgY2FsbGJhY2tzLiBGb3Ig
bGF5b3V0IHRlc3RzLCB3ZQorICAgICAgICBjYW4gdGhlbiBvdmVycmlkZSB0aGUgY2FsbGJhY2tz
IHdlJ3JlIGludGVyZXN0ZWQgaW4sIGFuZCBwdXQgdGhlIHByb3h5CisgICAgICAgIGJldHdlZW4g
dGhlIFdlYlZpZXcgYW5kIHRoZSBlbWJlZGRlcidzIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICAg
ICAgICBXZWJWaWV3Q2xpZW50LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Om51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Omhhc1RvdWNoRXZlbnRIYW5k
bGVycyk6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnRQcm94eS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJWaWV3Q2xpZW50UHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3Q2xpZW50UHJveHk6OmNyZWF0ZVBvcHVwTWVudSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnRQcm94eTo6Y3JlYXRlRXh0ZXJuYWxQb3B1cE1lbnUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpjcmVhdGVHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6Y3JlYXRlT3V0
cHV0U3VyZmFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6ZGlkQWRk
TWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6
cHJpbnRQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojpub3RpZmlj
YXRpb25QcmVzZW50ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRp
ZEhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94
eTo6cXVlcnlJY29uRm9yRmlsZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJv
eHk6OmVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnRQcm94eTo6aW5pdGlhbGl6ZUhlbHBlclBsdWdpbldlYkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpkaWRTdGFydExvYWRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0NsaWVudFByb3h5OjpkaWRDaGFuZ2VMb2FkUHJvZ3Jlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c2hvdWxkRGVsZXRlUmFuZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnNob3VsZEFwcGx5U3R5bGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xp
ZW50UHJveHk6OmRpZEJlZ2luRWRpdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGll
bnRQcm94eTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0Ns
aWVudFByb3h5OjpkaWRDaGFuZ2VDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnRQcm94eTo6ZGlkRXhlY3V0ZUNvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
Q2xpZW50UHJveHk6OmRpZEVuZEVkaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xp
ZW50UHJveHk6OmRpZENoYW5nZUZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnRQcm94eTo6aGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3Q2xpZW50UHJveHk6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdDbGllbnRQcm94eTo6cnVuRmlsZUNob29zZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3Q2xpZW50UHJveHk6OnJ1bk1vZGFsQWxlcnREaWFsb2cpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnJ1bk1vZGFsQ29uZmlybURpYWxvZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6cnVuTW9kYWxQcm9tcHREaWFsb2cpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnJ1bk1vZGFsQmVmb3JlVW5sb2FkRGlh
bG9nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpzZXRTdGF0dXNUZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpzZXRNb3VzZU92ZXJVUkwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnNldEtleWJvYXJkRm9jdXNV
UkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnNob3dDb250ZXh0TWVu
dSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6c3RhcnREcmFnZ2luZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6YWNjZXB0c0xvYWREcm9wcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6Zm9jdXNOZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojpmb2N1c1ByZXZpb3VzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojpmb2N1c2VkTm9kZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6Om51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6aGFzVG91Y2hF
dmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpkaWRV
cGRhdGVMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRpZFRh
cE11bHRpcGxlVGFyZ2V0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6
c2hvd1ZhbGlkYXRpb25NZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFBy
b3h5OjpoaWRlVmFsaWRhdGlvbk1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xp
ZW50UHJveHk6Om5hdmlnYXRlQmFja0ZvcndhcmRTb29uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudFByb3h5OjpoaXN0b3J5QmFja0xpc3RDb3VudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnRQcm94eTo6aGlzdG9yeUZvcndhcmRMaXN0Q291bnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRpZEFkZEhpc3RvcnlJdGVtKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6ZGlkVXBkYXRlSW5zcGVj
dG9yU2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRpZFVw
ZGF0ZUluc3BlY3RvclNldHRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJv
eHk6Omdlb2xvY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFBy
b3h5OjpnZW9sb2NhdGlvblNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
UHJveHk6OnNwZWVjaElucHV0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnRQcm94eTo6c3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdD
bGllbnRQcm94eTo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3Q2xpZW50UHJveHk6OmJhdHRlcnlTdGF0dXNDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3Q2xpZW50UHJveHk6Onpvb21MaW1pdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0NsaWVudFByb3h5Ojp6b29tTGV2ZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0NsaWVudFByb3h5OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6dmlzaWJpbGl0eVN0YXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5Ojp1c2VyTWVkaWFDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRldGVjdENvbnRlbnRBcm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OnNjaGVkdWxlQ29udGVudEludGVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eTo6Y2FuY2VsU2NoZWR1bGVkQ29udGVu
dEludGVudHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6OmRyYWdnYWJs
ZVJlZ2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudFByb3h5OjpX
ZWJWaWV3Q2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHk6
On5XZWJWaWV3Q2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJv
eHk6OndlYlZpZXdDbGllbnQpOgorICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogcHVibGljL1dlYldpZGdldENsaWVudFByb3h5
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldENsaWVudFBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OmRpZEludmFsaWRh
dGVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OmRpZFNjcm9s
bFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6ZGlkQXV0b1Jl
c2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjpkaWRBY3RpdmF0
ZUNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6ZGlk
RGVhY3RpdmF0ZUNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQ
cm94eTo6d2lsbEJlZ2luQ29tcG9zaXRvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lk
Z2V0Q2xpZW50UHJveHk6OmRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OmRpZENvbW1pdEFuZERyYXdDb21wb3Np
dG9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6ZGlkQ29t
cGxldGVTd2FwQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5
OjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFBy
b3h5OjpzY2hlZHVsZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVu
dFByb3h5OjpkaWRGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5
OjpkaWRCbHVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OmRpZENo
YW5nZUN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjpjbG9z
ZVdpZGdldFNvb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6c2hv
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjpydW5Nb2RhbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjplbnRlckZ1bGxTY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6ZXhpdEZ1bGxTY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6d2luZG93UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjpzZXRXaW5kb3dSZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OnNldFRvb2xUaXBUZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OndpbmRvd1Jlc2l6ZXJSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OnJvb3RXaW5kb3dSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OnNjcmVlbkluZm8pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6cmVzZXRJbnB1dE1ldGhvZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6cmVxdWVzdFBvaW50ZXJV
bmxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRDbGllbnRQcm94eTo6aXNQb2ludGVy
TG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6OldlYldpZGdl
dENsaWVudFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50UHJveHk6On5X
ZWJXaWRnZXRDbGllbnRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudFBy
b3h5Ojp3ZWJXaWRnZXRDbGllbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRWaWV3Q2xpZW50KToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJWaWV3SW1w
bCk6CisKIDIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAiZGVza3RvcC13aWR0aCIg
aW4gdGhlIHZpZXdwb3J0IG1ldGEgdGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
NzRlZjliZmNmNTdkOTUyOGNkZDg4M2FmZDJiODg5NTljNmQ0Yzc5Mi4uYTNhY2NmZTliMGM0NmY2
ZDI5ZjE5MDlhMTY5NjBlYjA4OTY1ODJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApA
QCAtMjgwLDggKzI4MCwxMCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVmlldy5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlZpZXdCZW5jaG1hcmtTdXBwb3J0LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViVmlld0NsaWVudC5oJywKKyAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlZpZXdDbGllbnRQcm94eS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YldpZGdldC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYldpZGdldENsaWVudC5oJywK
KyAgICAgICAgICAgICAgICAncHVibGljL1dlYldpZGdldENsaWVudFByb3h5LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViV29ya2VySW5mby5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL2FuZHJvaWQvV2ViSW5wdXRFdmVudEZhY3RvcnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCmluZGV4IDQ5YWFhNTEzODExOTg4NDE1Nzc5MTMwYzllZjAyNmI3ODYz
ZDhhMzkuLmNlODEyYmM4ZjYyNGUxNTQ1YzZiODNmM2Y1ZGY2MmFmODg5YjQ3YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTk5LDYgKzk5LDEwIEBAIHB1Ymxp
YzoKICAgICAvLyB0byBwYXNzIG51bGwgY2xpZW50IHBvaW50ZXJzLgogICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIFdlYlZpZXcqIGNyZWF0ZShXZWJWaWV3Q2xpZW50Kik7CiAKKyAgICAvLyBPdmVy
cmlkZSB0aGUgV2ViVmlld0NsaWVudCB0aGUgV2ViVmlldyB3YXMgb3JpZ2luYWxseSBjcmVhdGVk
IHdpdGguIFRoaXMKKyAgICAvLyBpcyB1c2VkIHRvIHNldCBhIFdlYlZpZXdDbGllbnRQcm94eSBp
biBsYXlvdXQgdGVzdHMuCisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdDbGllbnQoV2ViVmlld0Ns
aWVudCopID0gMDsKKwogICAgIC8vIEFmdGVyIGNyZWF0aW5nIGEgV2ViVmlldywgeW91IHNob3Vs
ZCBpbW1lZGlhdGVseSBjYWxsIHRoaXMgbWV0aG9kLgogICAgIC8vIFlvdSBjYW4gb3B0aW9uYWxs
eSBtb2RpZnkgdGhlIHNldHRpbmdzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLgogICAgIC8v
IFRoZSBXZWJGcmFtZUNsaWVudCB3aWxsIHJlY2VpdmUgZXZlbnRzIGZvciB0aGUgbWFpbiBmcmFt
ZSBhbmQgYW55CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKaW5kZXggZGE2NDk4ZDMwMDNjNTNmNjBkYWExM2EwYWEwZGU2ZTY2OTA3ZWU5Yi4uODQ3ZjQ2
NWExZjMwZTE1OGQ4ZmQwODM0YmZiMDZhMGFhZWQyMWE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMjgwLDggKzI4MCw4IEBAIHB1Ymxp
YzoKICAgICAvLyBDYWxsZWQgd2hlbiBhIG5ldyBub2RlIGdldHMgZm9jdXNlZC4KICAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKGNvbnN0IFdlYk5vZGUmKSB7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBudW1iZXJPZldoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMoYm9vbCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIG51bWJlck9mV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBu
dW1IYW5kbGVycykgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhc1RvdWNoRXZlbnRIYW5kbGVycyhi
b29sIGhhc0hhbmRsZXJzKSB7IH0KIAogICAgIC8vIEluZGljYXRlcyB0d28gdGhpbmdzOgogICAg
IC8vICAgMSkgVGhpcyB2aWV3IG1heSBoYXZlIGEgbmV3IGxheW91dCBub3cuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50UHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnRQcm94eS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkNDAzNzM0ZjcwZTUxN2U4OTZlMmVhNDQ4YWQzNGE5NzU3YmQ0MWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50UHJveHku
aApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVmlld0NsaWVudFByb3h5X2gKKyNkZWZpbmUg
V2ViVmlld0NsaWVudFByb3h5X2gKKworI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKKyNpbmNs
dWRlICJXZWJXaWRnZXRDbGllbnRQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViVmlld0NsaWVudFByb3h5IDogdmlydHVhbCBwdWJsaWMgV2ViVmlld0NsaWVudCwgdmly
dHVhbCBwdWJsaWMgV2ViV2lkZ2V0Q2xpZW50UHJveHkgeworcHVibGljOgorICAgIHZpcnR1YWwg
V2ViVmlldyogY3JlYXRlVmlldyhXZWJGcmFtZSogY3JlYXRvciwgY29uc3QgV2ViVVJMUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgV2ViV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIFdlYk5hdmlnYXRpb25Qb2xpY3kgcG9saWN5KSB7IHJldHVybiB3ZWJWaWV3
Q2xpZW50KCktPmNyZWF0ZVZpZXcoY3JlYXRvciwgcmVxdWVzdCwgZmVhdHVyZXMsIG5hbWUsIHBv
bGljeSk7IH0KKyAgICB2aXJ0dWFsIFdlYldpZGdldCogY3JlYXRlUG9wdXBNZW51KFdlYlBvcHVw
VHlwZSBwb3B1cFR5cGUpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+Y3JlYXRlUG9wdXBNZW51
KHBvcHVwVHlwZSk7IH0KKyAgICB2aXJ0dWFsIFdlYldpZGdldCogY3JlYXRlUG9wdXBNZW51KGNv
bnN0IFdlYlBvcHVwTWVudUluZm8mIHBvcHVwTWVudUluZm8pIHsgcmV0dXJuIHdlYlZpZXdDbGll
bnQoKS0+Y3JlYXRlUG9wdXBNZW51KHBvcHVwTWVudUluZm8pOyB9CisgICAgdmlydHVhbCBXZWJF
eHRlcm5hbFBvcHVwTWVudSogY3JlYXRlRXh0ZXJuYWxQb3B1cE1lbnUoY29uc3QgV2ViUG9wdXBN
ZW51SW5mbyYgcG9wdXBNZW51SW5mbywgV2ViRXh0ZXJuYWxQb3B1cE1lbnVDbGllbnQqIGV4dGVy
bmFsUG9wdXBNZW51Q2xpZW50KSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPmNyZWF0ZUV4dGVy
bmFsUG9wdXBNZW51KHBvcHVwTWVudUluZm8sIGV4dGVybmFsUG9wdXBNZW51Q2xpZW50KTsgfQor
ICAgIHZpcnR1YWwgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UodW5zaWduZWQgcXVvdGEpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+Y3JlYXRlU2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOyB9CisgICAgdmlydHVhbCBXZWJHcmFwaGljc0Nv
bnRleHQzRCogY3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcyk7IH0KKyAgICB2aXJ0dWFsIFdlYkNvbXBv
c2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgeyByZXR1cm4gd2ViVmll
d0NsaWVudCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBXZWJDb25zb2xlTWVzc2FnZSYgY29uc29sZU1lc3Nh
Z2UsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWduZWQgc291cmNlTGluZSkgeyB3
ZWJWaWV3Q2xpZW50KCktPmRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2UsIHNv
dXJjZU5hbWUsIHNvdXJjZUxpbmUpOyB9CisgICAgdmlydHVhbCB2b2lkIHByaW50UGFnZShXZWJG
cmFtZSogZnJhbWUpIHsgd2ViVmlld0NsaWVudCgpLT5wcmludFBhZ2UoZnJhbWUpOyB9CisgICAg
dmlydHVhbCBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCYgZXZlbnQsIGJvb2wgZXZlbnRTd2FsbG93ZWQpIHsgd2ViVmlld0NsaWVudCgpLT5kaWRIYW5k
bGVHZXN0dXJlRXZlbnQoZXZlbnQsIGV2ZW50U3dhbGxvd2VkKTsgfQorICAgIHZpcnR1YWwgYm9v
bCBxdWVyeUljb25Gb3JGaWxlcyhjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgZmlsZW5hbWVz
LCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24qIGljb25Mb2FkaW5nQ29tcGxldGlvbikgeyByZXR1
cm4gd2ViVmlld0NsaWVudCgpLT5xdWVyeUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGljb25Mb2Fk
aW5nQ29tcGxldGlvbik7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZW51bWVyYXRlQ2hvc2VuRGlyZWN0
b3J5KGNvbnN0IFdlYlN0cmluZyYgcGF0aCwgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uKiBmaWxl
Q2hvb3NlckNvbXBsZXRpb24pIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+ZW51bWVyYXRlQ2hv
c2VuRGlyZWN0b3J5KHBhdGgsIGZpbGVDaG9vc2VyQ29tcGxldGlvbik7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgaW5pdGlhbGl6ZUhlbHBlclBsdWdpbldlYkZyYW1lKFdlYkhlbHBlclBsdWdpbiogaGVs
cGVyUGx1Z2luKSB7IHdlYlZpZXdDbGllbnQoKS0+aW5pdGlhbGl6ZUhlbHBlclBsdWdpbldlYkZy
YW1lKGhlbHBlclBsdWdpbik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCkg
eyB3ZWJWaWV3Q2xpZW50KCktPmRpZFN0YXJ0TG9hZGluZygpOyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFN0b3BMb2FkaW5nKCkgeyB3ZWJWaWV3Q2xpZW50KCktPmRpZFN0b3BMb2FkaW5nKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlTG9hZFByb2dyZXNzKFdlYkZyYW1lKiBmcmFtZSwg
ZG91YmxlIGxvYWRQcm9ncmVzcykgeyB3ZWJWaWV3Q2xpZW50KCktPmRpZENoYW5nZUxvYWRQcm9n
cmVzcyhmcmFtZSwgbG9hZFByb2dyZXNzKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCZWdp
bkVkaXRpbmcoY29uc3QgV2ViUmFuZ2UmIHJhbmdlKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCkt
PnNob3VsZEJlZ2luRWRpdGluZyhyYW5nZSk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5k
RWRpdGluZyhjb25zdCBXZWJSYW5nZSYgcmFuZ2UpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+
c2hvdWxkRW5kRWRpdGluZyhyYW5nZSk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0
Tm9kZShjb25zdCBXZWJOb2RlJiBub2RlLCBjb25zdCBXZWJSYW5nZSYgcmFuZ2UsIFdlYkVkaXRp
bmdBY3Rpb24gZWRpdGluZ0FjdGlvbikgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5zaG91bGRJ
bnNlcnROb2RlKG5vZGUsIHJhbmdlLCBlZGl0aW5nQWN0aW9uKTsgfQorICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nLCBjb25zdCBXZWJSYW5n
ZSYgcmFuZ2UsIFdlYkVkaXRpbmdBY3Rpb24gZWRpdGluZ0FjdGlvbikgeyByZXR1cm4gd2ViVmll
d0NsaWVudCgpLT5zaG91bGRJbnNlcnRUZXh0KHN0cmluZywgcmFuZ2UsIGVkaXRpbmdBY3Rpb24p
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoY29uc3QgV2Vi
UmFuZ2UmIGZyb20sIGNvbnN0IFdlYlJhbmdlJiB0bywgV2ViVGV4dEFmZmluaXR5IHRleHRBZmZp
bml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5zaG91
bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGZyb20sIHRvLCB0ZXh0QWZmaW5pdHksIHN0aWxsU2VsZWN0
aW5nKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJSYW5n
ZSYgcmFuZ2UpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+c2hvdWxkRGVsZXRlUmFuZ2UocmFu
Z2UpOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3RyaW5n
JiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdlKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCkt
PnNob3VsZEFwcGx5U3R5bGUoc3R5bGUsIHJhbmdlKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+aXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2lu
RWRpdGluZygpIHsgd2ViVmlld0NsaWVudCgpLT5kaWRCZWdpbkVkaXRpbmcoKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc1NlbGVjdGlvbkVtcHR5KSB7IHdl
YlZpZXdDbGllbnQoKS0+ZGlkQ2hhbmdlU2VsZWN0aW9uKGlzU2VsZWN0aW9uRW1wdHkpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzKCkgeyB3ZWJWaWV3Q2xpZW50KCktPmRp
ZENoYW5nZUNvbnRlbnRzKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhlY3V0ZUNvbW1hbmQo
Y29uc3QgV2ViU3RyaW5nJiBjb21tYW5kTmFtZSkgeyB3ZWJWaWV3Q2xpZW50KCktPmRpZEV4ZWN1
dGVDb21tYW5kKGNvbW1hbmROYW1lKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5n
KCkgeyB3ZWJWaWV3Q2xpZW50KCktPmRpZEVuZEVkaXRpbmcoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VGb3JtU3RhdGUoY29uc3QgV2ViTm9kZSYgbm9kZSkgeyB3ZWJWaWV3Q2xpZW50
KCktPmRpZENoYW5nZUZvcm1TdGF0ZShub2RlKTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVD
dXJyZW50S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIHdlYlZpZXdDbGllbnQoKS0+aGFuZGxlQ3Vy
cmVudEtleWJvYXJkRXZlbnQoKTsgfQorICAgIHZpcnR1YWwgV2ViQ29sb3JDaG9vc2VyKiBjcmVh
dGVDb2xvckNob29zZXIoV2ViQ29sb3JDaG9vc2VyQ2xpZW50KiBjb2xvckNob29zZXJDbGllbnQs
IGNvbnN0IFdlYkNvbG9yJiBjb2xvcikgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5jcmVhdGVD
b2xvckNob29zZXIoY29sb3JDaG9vc2VyQ2xpZW50LCBjb2xvcik7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcnVuRmlsZUNob29zZXIoY29uc3QgV2ViRmlsZUNob29zZXJQYXJhbXMmIGZpbGVDaG9vc2Vy
UGFyYW1zLCBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24qIGZpbGVDaG9vc2VyQ29tcGxldGlvbikg
eyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5ydW5GaWxlQ2hvb3NlcihmaWxlQ2hvb3NlclBhcmFt
cywgZmlsZUNob29zZXJDb21wbGV0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbEFs
ZXJ0RGlhbG9nKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKSB7IHdl
YlZpZXdDbGllbnQoKS0+cnVuTW9kYWxBbGVydERpYWxvZyhmcmFtZSwgbWVzc2FnZSk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgcnVuTW9kYWxDb25maXJtRGlhbG9nKFdlYkZyYW1lKiBmcmFtZSwgY29u
c3QgV2ViU3RyaW5nJiBtZXNzYWdlKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPnJ1bk1vZGFs
Q29uZmlybURpYWxvZyhmcmFtZSwgbWVzc2FnZSk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcnVuTW9k
YWxQcm9tcHREaWFsb2coV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFdlYlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXZWJTdHJpbmcqIGFjdHVhbFZhbHVlKSB7
IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPnJ1bk1vZGFsUHJvbXB0RGlhbG9nKGZyYW1lLCBtZXNz
YWdlLCBkZWZhdWx0VmFsdWUsIGFjdHVhbFZhbHVlKTsgfQorICAgIHZpcnR1YWwgYm9vbCBydW5N
b2RhbEJlZm9yZVVubG9hZERpYWxvZyhXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYg
bWVzc2FnZSkgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5ydW5Nb2RhbEJlZm9yZVVubG9hZERp
YWxvZyhmcmFtZSwgbWVzc2FnZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzVGV4dChj
b25zdCBXZWJTdHJpbmcmIHN0cmluZykgeyB3ZWJWaWV3Q2xpZW50KCktPnNldFN0YXR1c1RleHQo
c3RyaW5nKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb3VzZU92ZXJVUkwoY29uc3QgV2ViVVJM
JiB1UkwpIHsgd2ViVmlld0NsaWVudCgpLT5zZXRNb3VzZU92ZXJVUkwodVJMKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRLZXlib2FyZEZvY3VzVVJMKGNvbnN0IFdlYlVSTCYgdVJMKSB7IHdlYlZp
ZXdDbGllbnQoKS0+c2V0S2V5Ym9hcmRGb2N1c1VSTCh1UkwpOyB9CisgICAgdmlydHVhbCB2b2lk
IHNob3dDb250ZXh0TWVudShXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYkNvbnRleHRNZW51RGF0
YSYgY29udGV4dE1lbnVEYXRhKSB7IHdlYlZpZXdDbGllbnQoKS0+c2hvd0NvbnRleHRNZW51KGZy
YW1lLCBjb250ZXh0TWVudURhdGEpOyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZ2dpbmco
V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdPcGVy
YXRpb25zTWFzayBkcmFnT3BlcmF0aW9uc01hc2ssIGNvbnN0IFdlYkltYWdlJiBpbWFnZSwgY29u
c3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCkgeyB3ZWJWaWV3Q2xpZW50KCktPnN0YXJ0RHJh
Z2dpbmcoZnJhbWUsIGRyYWdEYXRhLCBkcmFnT3BlcmF0aW9uc01hc2ssIGltYWdlLCBkcmFnSW1h
Z2VPZmZzZXQpOyB9CisgICAgdmlydHVhbCBib29sIGFjY2VwdHNMb2FkRHJvcHMoKSB7IHJldHVy
biB3ZWJWaWV3Q2xpZW50KCktPmFjY2VwdHNMb2FkRHJvcHMoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBmb2N1c05leHQoKSB7IHdlYlZpZXdDbGllbnQoKS0+Zm9jdXNOZXh0KCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNQcmV2aW91cygpIHsgd2ViVmlld0NsaWVudCgpLT5mb2N1c1ByZXZpb3Vz
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKGNvbnN0IFdlYk5vZGUm
IG5vZGUpIHsgd2ViVmlld0NsaWVudCgpLT5mb2N1c2VkTm9kZUNoYW5nZWQobm9kZSk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVk
IG51bUhhbmRsZXJzKSB7IHdlYlZpZXdDbGllbnQoKS0+bnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKG51bUhhbmRsZXJzKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYXNUb3VjaEV2ZW50
SGFuZGxlcnMoYm9vbCBoYXNIYW5kbGVycykgeyB3ZWJWaWV3Q2xpZW50KCktPmhhc1RvdWNoRXZl
bnRIYW5kbGVycyhoYXNIYW5kbGVycyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTGF5
b3V0KCkgeyB3ZWJWaWV3Q2xpZW50KCktPmRpZFVwZGF0ZUxheW91dCgpOyB9CisgICAgdmlydHVh
bCBib29sIGRpZFRhcE11bHRpcGxlVGFyZ2V0cyhjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1
cmVFdmVudCwgY29uc3QgV2ViVmVjdG9yPFdlYlJlY3Q+JiB0YXJnZXRSZWN0cykgeyByZXR1cm4g
d2ViVmlld0NsaWVudCgpLT5kaWRUYXBNdWx0aXBsZVRhcmdldHMoZ2VzdHVyZUV2ZW50LCB0YXJn
ZXRSZWN0cyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1ZhbGlkYXRpb25NZXNzYWdlKGNvbnN0
IFdlYlJlY3QmIGFuY2hvckluU2NyZWVuLCBjb25zdCBXZWJTdHJpbmcmIG1haW5UZXh0LCBjb25z
dCBXZWJTdHJpbmcmIHN1cHBsZW1lbnRhbFRleHQsIFdlYlRleHREaXJlY3Rpb24gaGludCkgeyB3
ZWJWaWV3Q2xpZW50KCktPnNob3dWYWxpZGF0aW9uTWVzc2FnZShhbmNob3JJblNjcmVlbiwgbWFp
blRleHQsIHN1cHBsZW1lbnRhbFRleHQsIGhpbnQpOyB9CisgICAgdmlydHVhbCB2b2lkIGhpZGVW
YWxpZGF0aW9uTWVzc2FnZSgpIHsgd2ViVmlld0NsaWVudCgpLT5oaWRlVmFsaWRhdGlvbk1lc3Nh
Z2UoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0ZUJhY2tGb3J3YXJkU29vbihpbnQgb2Zm
c2V0KSB7IHdlYlZpZXdDbGllbnQoKS0+bmF2aWdhdGVCYWNrRm9yd2FyZFNvb24ob2Zmc2V0KTsg
fQorICAgIHZpcnR1YWwgaW50IGhpc3RvcnlCYWNrTGlzdENvdW50KCkgeyByZXR1cm4gd2ViVmll
d0NsaWVudCgpLT5oaXN0b3J5QmFja0xpc3RDb3VudCgpOyB9CisgICAgdmlydHVhbCBpbnQgaGlz
dG9yeUZvcndhcmRMaXN0Q291bnQoKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPmhpc3RvcnlG
b3J3YXJkTGlzdENvdW50KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSGlzdG9yeUl0ZW0o
KSB7IHdlYlZpZXdDbGllbnQoKS0+ZGlkQWRkSGlzdG9yeUl0ZW0oKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0JiBhY2Nlc3NpYmlsaXR5T2JqZWN0LCBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
IGFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pIHsgd2ViVmlld0NsaWVudCgpLT5wb3N0QWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbihhY2Nlc3NpYmlsaXR5T2JqZWN0LCBhY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVJbnNwZWN0b3JTZXR0aW5n
cygpIHsgd2ViVmlld0NsaWVudCgpLT5kaWRVcGRhdGVJbnNwZWN0b3JTZXR0aW5ncygpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUluc3BlY3RvclNldHRpbmcoY29uc3QgV2ViU3RyaW5n
JiBrZXksIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpIHsgd2ViVmlld0NsaWVudCgpLT5kaWRVcGRh
dGVJbnNwZWN0b3JTZXR0aW5nKGtleSwgdmFsdWUpOyB9CisgICAgdmlydHVhbCBXZWJHZW9sb2Nh
dGlvbkNsaWVudCogZ2VvbG9jYXRpb25DbGllbnQoKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCkt
Pmdlb2xvY2F0aW9uQ2xpZW50KCk7IH0KKyAgICB2aXJ0dWFsIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZSogZ2VvbG9jYXRpb25TZXJ2aWNlKCkgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5nZW9sb2Nh
dGlvblNlcnZpY2UoKTsgfQorICAgIHZpcnR1YWwgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKiBz
cGVlY2hJbnB1dENvbnRyb2xsZXIoV2ViU3BlZWNoSW5wdXRMaXN0ZW5lciogc3BlZWNoSW5wdXRM
aXN0ZW5lcikgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5zcGVlY2hJbnB1dENvbnRyb2xsZXIo
c3BlZWNoSW5wdXRMaXN0ZW5lcik7IH0KKyAgICB2aXJ0dWFsIFdlYlNwZWVjaFJlY29nbml6ZXIq
IHNwZWVjaFJlY29nbml6ZXIoKSB7IHJldHVybiB3ZWJWaWV3Q2xpZW50KCktPnNwZWVjaFJlY29n
bml6ZXIoKTsgfQorICAgIHZpcnR1YWwgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KCkgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5kZXZpY2VPcmll
bnRhdGlvbkNsaWVudCgpOyB9CisgICAgdmlydHVhbCBXZWJCYXR0ZXJ5U3RhdHVzQ2xpZW50KiBi
YXR0ZXJ5U3RhdHVzQ2xpZW50KCkgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5iYXR0ZXJ5U3Rh
dHVzQ2xpZW50KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91Ymxl
IG1pbmltdW1MZXZlbCwgZG91YmxlIG1heGltdW1MZXZlbCkgeyB3ZWJWaWV3Q2xpZW50KCktPnpv
b21MaW1pdHNDaGFuZ2VkKG1pbmltdW1MZXZlbCwgbWF4aW11bUxldmVsKTsgfQorICAgIHZpcnR1
YWwgdm9pZCB6b29tTGV2ZWxDaGFuZ2VkKCkgeyB3ZWJWaWV3Q2xpZW50KCktPnpvb21MZXZlbENo
YW5nZWQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25z
dCBXZWJTdHJpbmcmIHNjaGVtZSwgY29uc3QgV2ViU3RyaW5nJiBiYXNlVXJsLCBjb25zdCBXZWJT
dHJpbmcmIHVybCwgY29uc3QgV2ViU3RyaW5nJiB0aXRsZSkgeyB3ZWJWaWV3Q2xpZW50KCktPnJl
Z2lzdGVyUHJvdG9jb2xIYW5kbGVyKHNjaGVtZSwgYmFzZVVybCwgdXJsLCB0aXRsZSk7IH0KKyAg
ICB2aXJ0dWFsIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT52aXNpYmlsaXR5U3RhdGUoKTsgfQorICAgIHZpcnR1
YWwgV2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQoKSB7IHJldHVybiB3ZWJWaWV3
Q2xpZW50KCktPnVzZXJNZWRpYUNsaWVudCgpOyB9CisgICAgdmlydHVhbCBXZWJDb250ZW50RGV0
ZWN0aW9uUmVzdWx0IGRldGVjdENvbnRlbnRBcm91bmQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdCYg
aGl0VGVzdFJlc3VsdCkgeyByZXR1cm4gd2ViVmlld0NsaWVudCgpLT5kZXRlY3RDb250ZW50QXJv
dW5kKGhpdFRlc3RSZXN1bHQpOyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29udGVudElu
dGVudChjb25zdCBXZWJVUkwmIHVSTCkgeyB3ZWJWaWV3Q2xpZW50KCktPnNjaGVkdWxlQ29udGVu
dEludGVudCh1UkwpOyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFNjaGVkdWxlZENvbnRlbnRJ
bnRlbnRzKCkgeyB3ZWJWaWV3Q2xpZW50KCktPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRz
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZHJhZ2dhYmxlUmVnaW9uc0NoYW5nZWQoKSB7IHdlYlZp
ZXdDbGllbnQoKS0+ZHJhZ2dhYmxlUmVnaW9uc0NoYW5nZWQoKTsgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgZXhwbGljaXQgV2ViVmlld0NsaWVudFByb3h5KFdlYlZpZXdDbGllbnQqIHdlYlZpZXdDbGll
bnQpCisgICAgICAgIDogV2ViV2lkZ2V0Q2xpZW50UHJveHkod2ViVmlld0NsaWVudCkKKyAgICAg
ICAgLCBtX3dlYlZpZXdDbGllbnQod2ViVmlld0NsaWVudCkKKyAgICB7CisgICAgfQorCisgICAg
dmlydHVhbCB+V2ViVmlld0NsaWVudFByb3h5KCkgeyB9CisKKyAgICBXZWJWaWV3Q2xpZW50KiB3
ZWJWaWV3Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV93ZWJWaWV3Q2xpZW50OyB9CisKK3ByaXZh
dGU6CisgICAgV2ViVmlld0NsaWVudCogbV93ZWJWaWV3Q2xpZW50OworfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgK
aW5kZXggODk0NTdjZTM4MjBjNDY3MTI4MThiYzhmMWQ4MWU2ZTE2MGNlNjMxNy4uMzYwNjczNjkz
YmYyYTU4ZTEyZDE4M2I2MjUyYWY0Nzc1YmY0M2Y1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKQEAgLTQzLDYgKzQzLDggQEAgY2xhc3Mg
V2ViV2lkZ2V0Owogc3RydWN0IFdlYkN1cnNvckluZm87CiBzdHJ1Y3QgV2ViU2l6ZTsKIAorLy8g
SW1wb3J0YW50OiBXaGVuIHlvdSB1cGRhdGUgdGhpcyBjbGFzcywgbWFrZSBzdXJlIHRvIGFsc28g
dXBkYXRlCisvLyBXZWJXaWRnZXRDbGllbnRQcm94eS4KIGNsYXNzIFdlYldpZGdldENsaWVudCB7
CiBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gYSByZWdpb24gb2YgdGhlIFdlYldpZGdldCBu
ZWVkcyB0byBiZSByZS1wYWludGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldpZGdldENsaWVudFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmMjFmZDVjNDFjNzRk
MzVlMzQ1OTg5N2IxYWY5NmM0ZTlmOGJjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudFByb3h5LmgKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViV2lkZ2V0Q2xpZW50UHJveHlfaAorI2RlZmluZSBXZWJXaWRnZXRDbGllbnRQ
cm94eV9oCisKKyNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYldpZGdldENsaWVudFByb3h5IDogdmlydHVhbCBwdWJsaWMgV2ViV2lk
Z2V0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW52YWxpZGF0ZVJlY3Qo
Y29uc3QgV2ViUmVjdCYgcmVjdCkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJl
Y3QocmVjdCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2Nyb2xsUmVjdChpbnQgZHgsIGludCBk
eSwgY29uc3QgV2ViUmVjdCYgY2xpcFJlY3QpIHsgd2ViV2lkZ2V0Q2xpZW50KCktPmRpZFNjcm9s
bFJlY3QoZHgsIGR5LCBjbGlwUmVjdCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXV0b1Jlc2l6
ZShjb25zdCBXZWJTaXplJiBuZXdTaXplKSB7IHdlYldpZGdldENsaWVudCgpLT5kaWRBdXRvUmVz
aXplKG5ld1NpemUpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFjdGl2YXRlQ29tcG9zaXRvcihp
bnQgaW5wdXRIYW5kbGVySWRlbnRpZmllcikgeyB3ZWJXaWRnZXRDbGllbnQoKS0+ZGlkQWN0aXZh
dGVDb21wb3NpdG9yKGlucHV0SGFuZGxlcklkZW50aWZpZXIpOyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZERlYWN0aXZhdGVDb21wb3NpdG9yKCkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+ZGlkRGVhY3Rp
dmF0ZUNvbXBvc2l0b3IoKTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5Db21wb3NpdG9y
RnJhbWUoKSB7IHdlYldpZGdldENsaWVudCgpLT53aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWNvbWVSZWFkeUZvckFkZGl0aW9uYWxJbnB1dCgpIHsg
d2ViV2lkZ2V0Q2xpZW50KCktPmRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0KCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0NvbXBvc2l0b3JGcmFtZSgpIHsgd2Vi
V2lkZ2V0Q2xpZW50KCktPmRpZENvbW1pdEFuZERyYXdDb21wb3NpdG9yRnJhbWUoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgeyB3ZWJXaWRnZXRDbGllbnQo
KS0+ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpOyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRlKCkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+c2NoZWR1bGVDb21wb3NpdGUoKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIHsgd2ViV2lkZ2V0Q2xpZW50KCkt
PnNjaGVkdWxlQW5pbWF0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXMoKSB7IHdl
YldpZGdldENsaWVudCgpLT5kaWRGb2N1cygpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEJsdXIo
KSB7IHdlYldpZGdldENsaWVudCgpLT5kaWRCbHVyKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2hhbmdlQ3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvckluZm8pIHsgd2ViV2lkZ2V0
Q2xpZW50KCktPmRpZENoYW5nZUN1cnNvcihjdXJzb3JJbmZvKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZVdpZGdldFNvb24oKSB7IHdlYldpZGdldENsaWVudCgpLT5jbG9zZVdpZGdldFNvb24o
KTsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93KFdlYk5hdmlnYXRpb25Qb2xpY3kgbmF2aWdhdGlv
blBvbGljeSkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+c2hvdyhuYXZpZ2F0aW9uUG9saWN5KTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpIHsgd2ViV2lkZ2V0Q2xpZW50KCktPnJ1bk1vZGFs
KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZW50ZXJGdWxsU2NyZWVuKCkgeyByZXR1cm4gd2ViV2lk
Z2V0Q2xpZW50KCktPmVudGVyRnVsbFNjcmVlbigpOyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRG
dWxsU2NyZWVuKCkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+ZXhpdEZ1bGxTY3JlZW4oKTsgfQorICAg
IHZpcnR1YWwgV2ViUmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4gd2ViV2lkZ2V0Q2xpZW50KCkt
PndpbmRvd1JlY3QoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdl
YlJlY3QmIHJlY3QpIHsgd2ViV2lkZ2V0Q2xpZW50KCktPnNldFdpbmRvd1JlY3QocmVjdCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcFRleHQoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcs
IFdlYlRleHREaXJlY3Rpb24gaGludCkgeyB3ZWJXaWRnZXRDbGllbnQoKS0+c2V0VG9vbFRpcFRl
eHQoc3RyaW5nLCBoaW50KTsgfQorICAgIHZpcnR1YWwgV2ViUmVjdCB3aW5kb3dSZXNpemVyUmVj
dCgpIHsgcmV0dXJuIHdlYldpZGdldENsaWVudCgpLT53aW5kb3dSZXNpemVyUmVjdCgpOyB9Cisg
ICAgdmlydHVhbCBXZWJSZWN0IHJvb3RXaW5kb3dSZWN0KCkgeyByZXR1cm4gd2ViV2lkZ2V0Q2xp
ZW50KCktPnJvb3RXaW5kb3dSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIFdlYlNjcmVlbkluZm8gc2Ny
ZWVuSW5mbygpIHsgcmV0dXJuIHdlYldpZGdldENsaWVudCgpLT5zY3JlZW5JbmZvKCk7IH0KKyAg
ICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgeyByZXR1cm4gd2ViV2lkZ2V0Q2xp
ZW50KCktPmRldmljZVNjYWxlRmFjdG9yKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRJbnB1
dE1ldGhvZCgpIHsgd2ViV2lkZ2V0Q2xpZW50KCktPnJlc2V0SW5wdXRNZXRob2QoKTsgfQorICAg
IHZpcnR1YWwgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSB7IHJldHVybiB3ZWJXaWRnZXRDbGll
bnQoKS0+cmVxdWVzdFBvaW50ZXJMb2NrKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBv
aW50ZXJVbmxvY2soKSB7IHdlYldpZGdldENsaWVudCgpLT5yZXF1ZXN0UG9pbnRlclVubG9jaygp
OyB9CisgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0dXJuIHdlYldpZGdl
dENsaWVudCgpLT5pc1BvaW50ZXJMb2NrZWQoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGlj
aXQgV2ViV2lkZ2V0Q2xpZW50UHJveHkoV2ViV2lkZ2V0Q2xpZW50KiB3ZWJXaWRnZXRDbGllbnQp
CisgICAgICAgIDogbV93ZWJXaWRnZXRDbGllbnQod2ViV2lkZ2V0Q2xpZW50KQorICAgIHsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIH5XZWJXaWRnZXRDbGllbnRQcm94eSgpIHsgfQorCisgICAgV2Vi
V2lkZ2V0Q2xpZW50KiB3ZWJXaWRnZXRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3dlYldpZGdl
dENsaWVudDsgfQorCitwcml2YXRlOgorICAgIFdlYldpZGdldENsaWVudCogbV93ZWJXaWRnZXRD
bGllbnQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IDNmODNlNGNiY2M5ZGI0ZDAyM2MxMjUzNmI5N2M0N2I2Yjg0Y2Iy
YWQuLjU1NjdhNzNlN2RkYWFlM2I3YTBkMmYzYzE4MWVjY2FlNzFmYjQ0YWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTMxMyw2ICszMTMsMTEgQEAg
dm9pZCBXZWJWaWV3OjpkaWRFeGl0TW9kYWxMb29wKCkKICAgICBwYWdlR3JvdXBMb2FkRGVmZXJy
ZXJTdGFjaygpLnJlbW92ZUxhc3QoKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0Vmlld0Ns
aWVudChXZWJWaWV3Q2xpZW50KiB2aWV3Q2xpZW50KQoreworICAgIG1fY2xpZW50ID0gdmlld0Ns
aWVudDsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6aW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFt
ZUNsaWVudCogZnJhbWVDbGllbnQpCiB7CiAgICAgLy8gTk9URTogVGhlIFdlYkZyYW1lSW1wbCB0
YWtlcyBhIHJlZmVyZW5jZSB0byBpdHNlbGYgd2l0aGluIEluaXRNYWluRnJhbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDAyYTFlNTM3MDQwYjY4MDA3Njhm
YzFiZTkxYzNmYWI2ZjA2ZmVjNTIuLmVlOTM1NDNlOTE1MGJkMDQ0OTc2Y2Q1YThiOTAyMGUwYmQ0
OTc2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTg0
LDYgKzE4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyaW5nU3RhdHMoV2Vi
UmVuZGVyaW5nU3RhdHMmKSBjb25zdDsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9kczoKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Vmlld0NsaWVudChXZWJWaWV3Q2xpZW50Kik7CiAgICAgdmlydHVhbCB2
b2lkIGluaXRpYWxpemVNYWluRnJhbWUoV2ViRnJhbWVDbGllbnQqKTsKICAgICB2aXJ0dWFsIHZv
aWQgaW5pdGlhbGl6ZUhlbHBlclBsdWdpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CiAgICAgdmly
dHVhbCB2b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9maWxsQ2xpZW50Kik7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2RmYzdlM2NjMTlm
ZjgyODUwZWJiODZmZDg5OGU3MTY3NDAwMjg5Ni4uZjY0MzE1MDVjMzgxMDllMmM4MDkzMWJmNDNi
NmU5MTFiMDllM2MwOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTExLTA3ICBKb2NoZW4gRWlzaW5nZXIgIDxq
b2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ3JlYXRlIHByb3h5IGNs
YXNzZXMgZm9yIFdlYlZpZXdDbGllbnQgYW5kIFdlYldpZGdldENsaWVudCBhbmQgdXNlIHRoZW1u
IGZvciBsYXlvdXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIFRlc3RXZWJQcm94eSBjbGFzcyBpbXBsZW1lbnRhdGluZyB0aGUgV2Vi
Vmlld0NsaWVudFByb3h5LiBUbworICAgICAgICBkZW1vbnN0cmF0ZSBob3cgdGhpcyBjbGFzcyBp
cyBzdXBwb3NlZCB0byBiZSB1c2UsIEkgbW92ZSB0aGUKKyAgICAgICAgcG9zdEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb24gZnJvbSBXZWJWaWV3SG9zdCB0byBXZWJUZXN0UHJveHkuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFByb3h5KToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6fldlYlRlc3RQcm94eSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RQcm94eTo6V2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RQcm94eTo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0
U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KToK
KyAgICAgICAgKFdlYlZpZXdIb3N0Ojp2aWV3Q2xpZW50UHJveHkpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6
CisKIDIwMTItMTEtMDcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byB0dXJuIG9uICdzZXRD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQnCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwaQppbmRleCBkZDc2OGQwNDk1NzI2ZjJiNjYwN2Y4MGY5MTc1N2ZkYmQyMWY3
Nzk5Li5hYzRkMmE2MjJiZWUwN2FiNjZlZjgyMmE5N2ZiMzRhYTNjZmVjYWZiIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTcxLDYgKzcxLDcgQEAKICAgICAg
ICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJFdmVudFNlbmRlci5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUYXNrLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZhY2VzLmgnLAor
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwJywKQEAg
LTk1LDYgKzk2LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJF
dmVudFNlbmRlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlRhc2suY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
SW50ZXJmYWNlcy5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlRlc3RQcm94eS5jcHAnLAogICAgICAgICBdLAogICAgICAgICAndGVzdF9wbHVnaW5fZmlsZXMn
OiBbCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAnLApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjNlOTc0ZTE4MWE2N2MxZTVk
MWEzZWFlMWIzNzY4NTM1MzM5YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViVGVzdFByb3h5X2gKKyNkZWZpbmUgV2ViVGVzdFByb3h5X2gKKwor
I2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudFByb3h5LmgiCisK
K25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworY2xhc3MgV2ViQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI7CitjbGFzcyBXZWJUZXN0RGVsZWdhdGU7CisKK2NsYXNzIFdlYlRlc3RQcm94eSA6IHB1
YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnRQcm94eSB7CitwdWJsaWM6CisgICAgV2ViVGVzdFBy
b3h5KFdlYlZpZXdDbGllbnQqLCBXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciosIFdlYlRlc3RE
ZWxlZ2F0ZSopOworICAgIHZpcnR1YWwgfldlYlRlc3RQcm94eSgpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktpdDo6V2ViQWNj
ZXNzaWJpbGl0eU9iamVjdCYsIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbik7
CisKK3ByaXZhdGU6CisgICAgV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIG1fYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI7CisgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOworfTsKKwor
fQorCisjZW5kaWYgLy8gV2ViVGVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY4MmU3OWU2MzhjM2MwMDE2NGUyN2M4ZmMxMzIwYTlkYzQ5YmY3ODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVk
ZSAiV2ViRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYk5vZGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0
RGVsZWdhdGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYlRl
c3RSdW5uZXIgeworCitXZWJUZXN0UHJveHk6OldlYlRlc3RQcm94eShXZWJWaWV3Q2xpZW50KiB2
aWV3Q2xpZW50LCBXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIsIFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCisgICAgOiBXZWJWaWV3Q2xpZW50UHJv
eHkodmlld0NsaWVudCkKKyAgICAsIFdlYldpZGdldENsaWVudFByb3h5KHZpZXdDbGllbnQpCisg
ICAgLCBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyKGFjY2Vzc2liaWxpdHlDb250cm9sbGVyKQor
ICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKK3sKK30KKwordm9pZCBXZWJUZXN0UHJveHk6OnBv
c3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Qm
IG9iaiwgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCit7CisgICAg
aWYgKG5vdGlmaWNhdGlvbiA9PSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJ
RWxlbWVudENoYW5nZWQpCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldEZv
Y3VzZWRFbGVtZW50KG9iaik7CisKKyAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOwor
ICAgIHN3aXRjaCAobm90aWZpY2F0aW9uKSB7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uQWN0aXZlRGVzY2VuZGFudENoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiQWN0aXZlRGVzY2VuZGFudENoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3VyZWQ6CisgICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQXV0b2NvcnJlY3Rpb25PY2N1cmVkIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRl
Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2Vk
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
Q2hpbGRyZW5DaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoaWxkcmVuQ2hh
bmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
IkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6CisgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiTGF5b3V0Q29tcGxldGUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Mb2FkQ29tcGxldGU6CisgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiTG9hZENvbXBsZXRlIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAg
IG5vdGlmaWNhdGlvbk5hbWUgPSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRD
aGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25W
YWx1ZUNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Ny
b2xsZWRUb0FuY2hvcjoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5j
aG9yIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uTGl2ZVJlZ2lvbkNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJl
Z2lvbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25NZW51TGlzdEl0ZW1TZWxlY3RlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFt
ZSA9ICJNZW51TGlzdEl0ZW1TZWxlY3RlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICBu
b3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0VmFsdWVDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgor
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0NvbGxhcHNlZDoK
KyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJSb3dDb2xsYXBzZWQiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKKyAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJSb3dFeHBhbmRlZCI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkludmFsaWRTdGF0dXNDaGFuZ2Vk
OgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFuZ2VkIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVGV4dENo
YW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVGV4dENoYW5nZWQiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmli
dXRlQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBcmlhQXR0cmlidXRlQ2hh
bmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiVW5rbm93bk5vdGlmaWNhdGlvbiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9iaiwg
bm90aWZpY2F0aW9uTmFtZSk7CisKKyAgICBpZiAobV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+
c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7CisgICAgICAgIHN0ZDo6c3RyaW5nIG1l
c3NhZ2UoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAiKTsKKyAgICAgICAgbWVzc2FnZSAr
PSBub3RpZmljYXRpb25OYW1lOworCisgICAgICAgIFdlYk5vZGUgbm9kZSA9IG9iai5ub2RlKCk7
CisgICAgICAgIGlmICghbm9kZS5pc051bGwoKSAmJiBub2RlLmlzRWxlbWVudE5vZGUoKSkgewor
ICAgICAgICAgICAgV2ViRWxlbWVudCBlbGVtZW50ID0gbm9kZS50bzxXZWJFbGVtZW50PigpOwor
ICAgICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCJpZCIpKSB7CisgICAgICAgICAg
ICAgICAgbWVzc2FnZSArPSAiIC0gaWQ6IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UobWVzc2FnZSArICJc
biIpOworICAgIH0KK30KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKaW5kZXggNGM0MmRjMGRkNzQ4ZGQ3ODc3OTExMzA2ZjQ2Zjk1OTA1OTk1NWYzMC4u
NTJkOTZiMjlhN2ZiNTc4ZDMyMmI1OTVlYjY0MTI5MjVlMGE4MDUwYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC03NTIsNiArNzUyLDcgQEAgV2Vi
Vmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJM
JiB1cmwsIERSVERldlRvb2xzQWcKIHsKICAgICBXZWJWaWV3SG9zdCogaG9zdCA9IG5ldyBXZWJW
aWV3SG9zdCh0aGlzKTsKICAgICBXZWJWaWV3KiB2aWV3ID0gV2ViVmlldzo6Y3JlYXRlKGhvc3Qp
OworICAgIHZpZXctPnNldFZpZXdDbGllbnQoaG9zdC0+dmlld0NsaWVudFByb3h5KCkpOwogICAg
IHZpZXctPnNldFBlcm1pc3Npb25DbGllbnQod2ViUGVybWlzc2lvbnMoKSk7CiAgICAgdmlldy0+
c2V0RGV2VG9vbHNBZ2VudENsaWVudChkZXZUb29sc0FnZW50KTsKICAgICBob3N0LT5zZXRXZWJX
aWRnZXQodmlldyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAKaW5kZXggOThiODdiZjhlOTBlZWE0NzIwNDM1NWM5MjZhY2Y2ZmZjNzNhYWEwZC4uYzMx
OWZhZDcxMDA4NDhjZTk0NzAxNTMyY2M4ODUwNmVlYzg3M2M0OSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMzksOCArMzksNiBAQAogI2lu
Y2x1ZGUgIlRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5o
IgogI2luY2x1ZGUgIlRlc3RXZWJQbHVnaW4uaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51RGF0YS5o
IgogI2luY2x1ZGUgIldlYkRPTU1lc3NhZ2VFdmVudC5oIgpAQCAtNjM1LDk0ICs2MzMsNiBAQCBp
bnQgV2ViVmlld0hvc3Q6Omhpc3RvcnlGb3J3YXJkTGlzdENvdW50KCkKICAgICByZXR1cm4gbmF2
aWdhdGlvbkNvbnRyb2xsZXIoKS0+ZW50cnlDb3VudCgpIC0gY3VycmVudEluZGV4IC0gMTsKIH0K
IAotdm9pZCBXZWJWaWV3SG9zdDo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3Qg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
IG5vdGlmaWNhdGlvbikKLXsKLSAgICBpZiAobm90aWZpY2F0aW9uID09IFdlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCkKLSAgICAgICAgbV9zaGVsbC0+
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEVsZW1lbnQob2JqKTsKLQotICAg
IGNvbnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWU7Ci0gICAgc3dpdGNoIChub3RpZmljYXRpb24p
IHsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50
Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hh
bmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkF1dG9jb3JyZWN0aW9uT2NjdXJlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJB
dXRvY29ycmVjdGlvbk9jY3VyZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25DaGVja2VkU3RhdGVDaGFuZ2VkOgotICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIkNoZWNrZWRTdGF0ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAg
IG5vdGlmaWNhdGlvbk5hbWUgPSAiQ2hpbGRyZW5DaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5n
ZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiRm9jdXNlZFVJRWxlbWVudENoYW5nZWQi
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25M
YXlvdXRDb21wbGV0ZToKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMYXlvdXRDb21wbGV0
ZSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkxvYWRDb21wbGV0ZToKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUi
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25T
ZWxlY3RlZENoaWxkcmVuQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVkVGV4dENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiU2VsZWN0ZWRUZXh0Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKLSAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJWYWx1ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TY3JvbGxlZFRvQW5jaG9yOgotICAgICAgICBu
b3RpZmljYXRpb25OYW1lID0gIlNjcm9sbGVkVG9BbmNob3IiOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MaXZlUmVnaW9uQ2hhbmdlZDoKLSAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMaXZlUmVnaW9uQ2hhbmdlZCI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0SXRlbVNl
bGVjdGVkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVk
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
TWVudUxpc3RWYWx1ZUNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTWVudUxp
c3RWYWx1ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiUm93Q291bnRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uUm93Q29sbGFwc2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIlJvd0NvbGxhcHNlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvblJvd0V4cGFuZGVkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
IlJvd0V4cGFuZGVkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSW52YWxpZFN0YXR1c0NoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiSW52YWxpZFN0YXR1c0NoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25UZXh0Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJUZXh0Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkFyaWFBdHRyaWJ1dGVDaGFuZ2VkOgotICAgICAgICBub3Rp
ZmljYXRpb25OYW1lID0gIkFyaWFBdHRyaWJ1dGVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0
aW9uIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgbV9zaGVsbC0+YWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIoKS0+bm90aWZpY2F0aW9uUmVjZWl2ZWQob2JqLCBub3RpZmljYXRpb25OYW1l
KTsKLQotICAgIGlmIChtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5zaG91bGRM
b2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkpIHsKLSAgICAgICAgcHJpbnRmKCJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uIC0gJXMiLCBub3RpZmljYXRpb25OYW1lKTsKLQotICAgICAgICBXZWJLaXQ6
OldlYk5vZGUgbm9kZSA9IG9iai5ub2RlKCk7Ci0gICAgICAgIGlmICghbm9kZS5pc051bGwoKSAm
JiBub2RlLmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50
IGVsZW1lbnQgPSBub2RlLnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKLSAgICAgICAgICAgIGlm
IChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaWQiKSkKLSAgICAgICAgICAgICAgICBwcmludGYoIiAt
IGlkOiVzIiwgZWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgfQotfQotCiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCiBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIFdlYlZpZXdIb3N0Ojpub3Rp
ZmljYXRpb25QcmVzZW50ZXIoKQogewpAQCAtMTUyMSw2ICsxNDMxLDcgQEAgV2ViS2l0OjpXZWJT
dHJpbmcgV2ViVmlld0hvc3Q6OmdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0
IHN0ZDo6c3RyaW4KIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNoZWxsKQog
ICAgIDogbV9zaGVsbChzaGVsbCkKICAgICAsIG1fd2ViV2lkZ2V0KDApCisgICAgLCBtX3Byb3h5
KGFkb3B0UHRyKG5ldyBXZWJUZXN0UHJveHkodGhpcywgc2hlbGwtPmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCksIHRoaXMpKSkKICAgICAsIG1fbGFzdFJlcXVlc3RlZFRleHRDaGVja2luZ0NvbXBs
ZXRpb24oMCkKIHsKICAgICByZXNldCgpOwpAQCAtMTU2Niw2ICsxNDc3LDEyIEBAIFdlYldpZGdl
dCogV2ViVmlld0hvc3Q6OndlYldpZGdldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fd2ViV2lkZ2V0
OwogfQogCitXZWJWaWV3Q2xpZW50UHJveHkqIFdlYlZpZXdIb3N0Ojp2aWV3Q2xpZW50UHJveHko
KSBjb25zdAoreworICAgIEFTU0VSVChtX3Byb3h5KTsKKyAgICByZXR1cm4gbV9wcm94eS5nZXQo
KTsKK30KKwogdm9pZCBXZWJWaWV3SG9zdDo6cmVzZXQoKQogewogICAgIG1fcG9saWN5RGVsZWdh
dGVFbmFibGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaAppbmRleCA4NjAwNzE5NGIwNDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2ZmNWY4YjRmLi44
MTAxNTI4M2M5N2E2ZWQxMWMyZjcxMjAxMzllZDA5NWNkZTE5ZTEzIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJXZWJTcGVsbENoZWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFzay5oIgogI2luY2x1
ZGUgIldlYlRlc3REZWxlZ2F0ZS5oIgorI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgogI2luY2x1
ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CkBAIC04Niw2ICs4Nyw3IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVi
bGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQs
CiAgICAgdm9pZCBzZXRXZWJXaWRnZXQoV2ViS2l0OjpXZWJXaWRnZXQqKTsKICAgICBXZWJLaXQ6
OldlYlZpZXcqIHdlYlZpZXcoKSBjb25zdDsKICAgICBXZWJLaXQ6OldlYldpZGdldCogd2ViV2lk
Z2V0KCkgY29uc3Q7CisgICAgV2ViS2l0OjpXZWJWaWV3Q2xpZW50UHJveHkqIHZpZXdDbGllbnRQ
cm94eSgpIGNvbnN0OwogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoYm9vbCk7CkBAIC0xODgsNyArMTkwLDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBw
dWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVu
dCwKICAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGVCYWNrRm9yd2FyZFNvb24oaW50IG9mZnNldCk7
CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUJhY2tMaXN0Q291bnQoKTsKICAgICB2aXJ0dWFsIGlu
dCBoaXN0b3J5Rm9yd2FyZExpc3RDb3VudCgpOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Qm
LCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOwogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIq
IG5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogI2VuZGlmCkBAIC0zNzMsNiArMzc0LDkgQEAgcHJp
dmF0ZToKICAgICAvLyBUaGlzIGRlbGVnYXRlIHdvcmtzIGZvciB0aGUgZm9sbG93aW5nIHdpZGdl
dC4KICAgICBXZWJLaXQ6OldlYldpZGdldCogbV93ZWJXaWRnZXQ7CiAKKyAgICAvLyBUaGUgcHJv
eHkgYmV0d2VlbiB0aGUgd2lkZ2V0IGFuZCB0aGlzIGNsYXNzLgorICAgIE93blB0cjxXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHk+IG1fcHJveHk7CisKICAgICAvLyBUaGlzIGlzIG5vbi0wIElG
RiBhIGxvYWQgaXMgaW4gcHJvZ3Jlc3MuCiAgICAgV2ViS2l0OjpXZWJGcmFtZSogbV90b3BMb2Fk
aW5nRnJhbWU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>172764</attachid>
            <date>2012-11-07 05:19:20 -0800</date>
            <delta_ts>2012-11-08 01:07:51 -0800</delta_ts>
            <desc>script used to generate proxy classes</desc>
            <filename>make-proxy-class.py</filename>
            <type>text/x-python</type>
            <size>6639</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgppbXBvcnQgb3MKaW1wb3J0IHJlCmltcG9ydCBzeXMKaW1w
b3J0IHRleHR3cmFwCgpkZWYgY29weV91bnRpbChmcm9tX2ZpbGUsIHRvX2ZpbGUsIHN0b3BfcGF0
dGVybik6CiAgIiIiQ29waWVzIGxpbmVzIGZyb20gfGZyb21fZmlsZXwgdG8gfHRvX2ZpbGV8IHVu
dGlsIHxzdG9wX3BhdHRlcm58IG1hdGNoZXMuCgogIFRoZSBsaW5lIHRoYXQgbWF0Y2hlcyByZS5S
ZWdleE9iamVjdCB8c3RvcF9wYXR0ZXJufCBpcyBpbmNsdWRlZCBpbiB0aGUKICBjb3B5LiIiIgog
IGZvciBsaW5lIGluIGZyb21fZmlsZToKICAgIHRvX2ZpbGUud3JpdGUobGluZSkKICAgIGlmIHN0
b3BfcGF0dGVybi5zZWFyY2gobGluZSk6CiAgICAgIHJldHVybgogICAgCgpkZWYgc2tpcF91bnRp
bChmcm9tX2ZpbGUsIHN0b3BfcGF0dGVybik6CiAgIiIiU2tpcHMgbGluZXMgZnJvbSB8ZnJvbV9m
aWxlfCB1bnRpbCB8c3RvcF9wYXR0ZXJufCBtYXRjaGVzLgoKICBUaGUgbGluZSB0aGF0IG1hdGNo
ZXMgcmUuUmVnZXhPYmplY3QgfHN0b3BfcGF0dGVybnwgaXMgc2tpcHBlZCBhbmQKICByZXR1cm5l
ZC4iIiIKICBmb3IgbGluZSBpbiBmcm9tX2ZpbGU6CiAgICBpZiBzdG9wX3BhdHRlcm4uc2VhcmNo
KGxpbmUpOgogICAgICByZXR1cm4gbGluZQoKCmRlZiB3cml0ZV9oZWFkZXIodG9fZmlsZSwgZ3Vh
cmQpOgogICIiIkdlbmVyYXRlIGFuIGluY2x1ZGUgZ3VhcmQgd2l0aCB8Z3VhcmR8IGFzIG1hY3Jv
LiIiIgogIHRvX2ZpbGUud3JpdGUodGV4dHdyYXAuZGVkZW50KCIiIlwKICAgICAgCiAgICAgICNp
Zm5kZWYgJXMKICAgICAgI2RlZmluZSAlcwoKICAgICAgIiIiICUgKGd1YXJkLCBndWFyZCkpKQoK
CmRlZiB3cml0ZV9jbGFzc19kZWZpbml0aW9uKHRvX2ZpbGUsIGJhc2UsIGJhc2VfY2xhc3Nlcyk6
CiAgIiIiV3JpdGUgdGhlIGNsYXNzIGRlZmluaXRpb24gZm9yIHRoZSBwcm94eSBvZiBjbGFzcyB8
YmFzZXwuCgogIHxiYXNlX2NsYXNzZXN8IGlzIGEgbGlzdCBvZiBiYXNlcyBvZiB0aGUgY2xhc3Mg
fGJhc2V8LiIiIgogIGJhc2VfY2xhc3NlcyA9IHNvcnRlZChbJ3ZpcnR1YWwgcHVibGljICVzUHJv
eHknICUgYyBmb3IgYyBpbiBiYXNlX2NsYXNzZXNdKQogIGJhc2VfY2xhc3Nlcy5pbnNlcnQoMCwg
J3ZpcnR1YWwgcHVibGljICVzJyAlIGJhc2UpCiAgcHJlZml4ID0gJ2NsYXNzICVzUHJveHkgOiAn
ICUgYmFzZQogIHRvX2ZpbGUud3JpdGUoJyVzJXMge1xuJyAlIChwcmVmaXgsICcsICcuam9pbihi
YXNlX2NsYXNzZXMpKSkKCgpkZWYgYWRkX21pc3NpbmdfbmFtZXMocGFyYW1zKToKICAiIiJTY2Fu
cyB0aGUgYXJndW1lbnQgbGlzdCB8cGFyYW1zfCBhbmQgYWRkcyBtaXNzaW5nIG5hbWVzLgoKICBU
aGUgV2ViS2l0IGNvZGluZyBzdHlsZSBkaXNhbGxvd3Mgc3R1ZmYgbGlrZSBjb25zdCBXZWJTdHJp
bmcmIHN0cmluZyBpbgogIGRlY2xhcmF0aW9ucy4gSW5zdGVhZCwgeW91IGp1c3QgcHV0IGNvbnN0
IFdlYlN0cmluZyYuIEluIHRoaXMgY2FzZSwgd2UgaW5zZXJ0CiAgYSBuYW1lIGJ5IHN0cmlwcGlu
ZyB0aGUgV2ViIHByZWZpeCBhbmQgdHVybmluZyB0aGUgZmlyc3QgbGV0dGVyIHRvCiAgbG93ZXJj
YXNlLiIiIgoKICByZXN1bHQgPSBbXQogICMgSnVzdCBhc3N1bWUgdGhhdCB0aGVyZSBhcmUgbm8g
dGVtcGxhdGVzIHdpdGggbW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXIuCiAgZm9yIHBhcmFtIGluIHBh
cmFtcy5zcGxpdCgnLCcpOgogICAgcGFyYW0gPSBwYXJhbS5zdHJpcCgpCiAgICBtID0gcmUubWF0
Y2gocicoY29uc3RccyspPyhcUys/KShbJipdKT8oXHMrXFMrKT8kJywgcGFyYW0pCiAgICBjb25z
dCA9IG0uZ3JvdXAoMSkKICAgIGlmIG5vdCBjb25zdDoKICAgICAgY29uc3QgPSAnJwoKICAgIHJl
ZiA9IG0uZ3JvdXAoMykKICAgIGlmIG5vdCByZWY6CiAgICAgIHJlZiA9ICcnCgogICAgbmFtZSA9
IG0uZ3JvdXAoNCkKICAgIGlmIG5vdCBuYW1lOgogICAgICBiYXNlID0gbS5ncm91cCgyKVszOl0K
ICAgICAgaWYgJzo6JyBpbiBiYXNlOgogICAgICAgIGJhc2UgPSBiYXNlLnNwbGl0KCc6OicpWzFd
CiAgICAgICMgQXNzdW1lIHRoYXQgYSB0ZW1wbGF0ZWQgcGFyYW1ldGVyIGlzIG5ldmVyIG1pc3Np
bmcgYSBuYW1lLgogICAgICBuYW1lID0gJyAnICsgYmFzZVswXS5sb3dlcigpICsgYmFzZVsxOl0K
ICAgICAgaWYgbmFtZSA9PSAnc3RyaW5nJzoKICAgICAgICBuYW1lID0gJ3N0cicKICAgIHJlc3Vs
dC5hcHBlbmQoY29uc3QgKyBtLmdyb3VwKDIpICsgcmVmICsgbmFtZSkKICByZXR1cm4gJywgJy5q
b2luKHJlc3VsdCkKCgpkZWYgZXh0cmFjdF9uYW1lcyhwYXJhbXMpOgogICIiIlJldHVybnMgYSBs
aXN0IG9mIHBhcmFtZXRlciBuYW1lcy4iIiIKCiAgcmVzdWx0ID0gW10KICAjIEp1c3QgYXNzdW1l
IHRoYXQgdGhlcmUgYXJlIG5vIHRlbXBsYXRlcyB3aXRoIG1vcmUgdGhhbiBvbmUgcGFyYW1ldGVy
LgogIGZvciBwYXJhbSBpbiBwYXJhbXMuc3BsaXQoJywnKToKICAgIHBhcmFtID0gcGFyYW0uc3Ry
aXAoKQogICAgbSA9IHJlLm1hdGNoKHInKGNvbnN0XHMrKT8oXFMrPykoWyYqXSk/KFxzK1xTKyk/
JCcsIHBhcmFtKQogICAgcmVzdWx0LmFwcGVuZChtLmdyb3VwKDQpLnN0cmlwKCkpCiAgcmV0dXJu
IHJlc3VsdAoKCmRlZiB3cml0ZV9wcm94eV9tZXRob2RzKGZyb21fZmlsZSwgdG9fZmlsZSwgbmFt
ZSwgYmFzZSk6CiAgIiIiUmVhZCBtZXRob2RzIGZyb20gZnJvbV9maWxlLCBhbmQgd3JpdGUgcHJv
eHkgbWV0aG9kcyB0byB8dG9fZmlsZXwuCgogIHxuYW1lfCBpcyB0aGUgbWV0aG9kIHRoYXQgZ2l2
ZXMgdXMgdGhlIHBvaW50ZXIgdG8gdGhlIHxiYXNlfCBjbGFzcy4iIiIKICBjdXJyZW50X21ldGhv
ZCA9ICcnCiAgcHJpbnRpbmcgPSBGYWxzZQogIGZvciBsaW5lIGluIGZyb21fZmlsZToKICAgIGxp
bmUgPSBsaW5lLnN0cmlwKCkKICAgIGlmIGxpbmUgPT0gJ3B1YmxpYzonOgogICAgICAjIFdlJ3Jl
IG9ubHkgaW50ZXJlc3RlZCBpbiBwdWJsaWMgbWV0aG9kcy4KICAgICAgdG9fZmlsZS53cml0ZShs
aW5lICsgJ1xuJykKICAgICAgcHJpbnRpbmcgPSBUcnVlCiAgICBlbGlmIGxpbmUgPT0gJ3ByaXZh
dGU6JyBvciBsaW5lID09ICdwcm90ZWN0ZWQ6JzoKICAgICAgcHJpbnRpbmcgPSBGYWxzZQogICAg
ZWxpZiByZS5tYXRjaChyJ1xzKi8vJywgbGluZSkgb3IgcmUubWF0Y2gocidccyokJywgbGluZSk6
CiAgICAgIHBhc3MKICAgIGVsaWYgbGluZSA9PSAnfTsnOgogICAgICBicmVhawogICAgZWxpZiBu
b3QgcHJpbnRpbmc6CiAgICAgIHBhc3MKICAgIGVsc2U6CiAgICAgIGN1cnJlbnRfbWV0aG9kID0g
Y3VycmVudF9tZXRob2QgKyBsaW5lCgogICAgICAjIFdlIGFzc3VtZSB0aGF0IHRoZXJlIGFyZSBu
byBwdXJlIHZpcnR1YWwgbWV0aG9kcy4KICAgICAgaWYgbm90IHJlLnNlYXJjaChyJ3suKn0kJywg
Y3VycmVudF9tZXRob2QpOgogICAgICAgIGNvbnRpbnVlCgogICAgICBpZiBub3QgcmUubWF0Y2go
J3ZpcnR1YWwgJywgY3VycmVudF9tZXRob2QpOgogICAgICAgIGN1cnJlbnRfbWV0aG9kID0gJycK
ICAgICAgICBjb250aW51ZQoKICAgICAgIyBOb3QgaW50ZXJlc3RlZCBpbiBkZXN0cnVjdG9ycy4K
ICAgICAgaWYgcmUuc2VhcmNoKCd+JXMnICUgYmFzZSwgY3VycmVudF9tZXRob2QpOgogICAgICAg
IGN1cnJlbnRfbWV0aG9kID0gJycKICAgICAgICBjb250aW51ZQoKICAgICAgIyAxIC0gcmV0dXJu
IHR5cGUsIDIgLSBuYW1lLCAzIC0gYXJndW1lbnRzLCA0IC0gY29uc3QuCiAgICAgIHBhcnRzID0g
cmUubWF0Y2gocid2aXJ0dWFsXHMrKFxTKylccysoXFMrKVwoKFteKV0qKVwpXHMrKGNvbnN0XHMq
KT97Lip9JywKICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X21ldGhvZCkKCiAgICAgIHJl
c3VsdCA9ICcgICAgdmlydHVhbCAnICsgcGFydHMuZ3JvdXAoMSkgKyAnICcgKyBwYXJ0cy5ncm91
cCgyKSArICcoJwogICAgICBwYXJhbV9uYW1lcyA9IFtdCiAgICAgIGlmIHBhcnRzLmdyb3VwKDMp
OgogICAgICAgICMgTWFrZSBzdXJlIHRoYXQgYWxsIGFyZ3VtZW50cyBoYXZlIGEgbmFtZS4KICAg
ICAgICBwYXJhbXMgPSBhZGRfbWlzc2luZ19uYW1lcyhwYXJ0cy5ncm91cCgzKSkKICAgICAgICBw
YXJhbV9uYW1lcyA9IGV4dHJhY3RfbmFtZXMocGFyYW1zKQogICAgICAgIHJlc3VsdCA9IHJlc3Vs
dCArIHBhcmFtcwoKICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJykgJwogICAgICBpZiBwYXJ0cy5n
cm91cCg0KToKICAgICAgICByZXN1bHQgPSByZXN1bHQgKyAnY29uc3QgJwogICAgICByZXN1bHQg
PSByZXN1bHQgKyAneyAnCiAgICAgIGlmIHBhcnRzLmdyb3VwKDEpICE9ICd2b2lkJzoKICAgICAg
ICByZXN1bHQgPSByZXN1bHQgKyAncmV0dXJuICcKCiAgICAgIHJlc3VsdCA9IHJlc3VsdCArIG5h
bWUgKyAnKCktPicgKyBwYXJ0cy5ncm91cCgyKSArICcoJwogICAgICByZXN1bHQgPSByZXN1bHQg
KyAnLCAnLmpvaW4ocGFyYW1fbmFtZXMpICsgJyk7IH1cbicKCiAgICAgIHRvX2ZpbGUud3JpdGUo
cmVzdWx0KQogICAgICBjdXJyZW50X21ldGhvZCA9ICcnCgoKZGVmIHdyaXRlX2Zvb3Rlcih0b19m
aWxlLCBuYW1lLCBiYXNlLCBiYXNlX2NsYXNzZXMpOgogICIiIldyaXRlIHRoZSByZW1haW5kZXIg
b2YgdGhlIGNsYXNzIGFuZCB0aGUgZm9vdGVyIG9mIHRoZSBmaWxlLiIiIgoKICB0b19maWxlLndy
aXRlKHRleHR3cmFwLmRlZGVudCgiIiJcCgogICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgICBleHBs
aWNpdCAlc1Byb3h5KCVzKiAlcykKICAgICAgIiIiICUgKGJhc2UsIGJhc2UsIG5hbWUpKSkKCiAg
c2VwID0gJzonCiAgZm9yIGIgaW4gYmFzZV9jbGFzc2VzOgogICAgdG9fZmlsZS53cml0ZSgKICAg
ICAgICAnICAgICAgICAlcyAlc1Byb3h5KCVzKVxuJyAlIChzZXAsIGIsIG5hbWUpKQogICAgc2Vw
ID0gJywnCiAgdG9fZmlsZS53cml0ZSgnICAgICAgICAlcyBtXyVzKCVzKVxuJyAlIChzZXAsIG5h
bWUsIG5hbWUpKQoKICB0b19maWxlLndyaXRlKHRleHR3cmFwLmRlZGVudCgiIiJcCiAgICAgICAg
ICB7CiAgICAgICAgICB9CgogICAgICAgICAgdmlydHVhbCB+JXNQcm94eSgpIHsgfQoKICAgICAg
ICAgICVzKiAlcygpIGNvbnN0IHsgcmV0dXJuIG1fJXM7IH0KCiAgICAgIHByaXZhdGU6CiAgICAg
ICAgICAlcyogbV8lczsKICAgICAgfTsKCiAgICAgIH0KCiAgICAgICNlbmRpZgogICAgICAiIiIg
JSAoYmFzZSwgYmFzZSwgbmFtZSwgbmFtZSwgYmFzZSwgbmFtZSkpKQoKCmRlZiBtYWluKCk6CiAg
c291cmNlID0gc3lzLmFyZ3ZbMV0KICBiYXNlID0gcmUubWF0Y2gocicoW14vXSopXC5oJywgc291
cmNlKS5ncm91cCgxKQoKICBmcm9tX2ZpbGUgPSBvcGVuKHNvdXJjZSkKICB0b19maWxlID0gb3Bl
bignJXNQcm94eS5oJyAlIGJhc2UsICJ3IikKCiAgIyBDb3B5IHRoZSBjb3B5cmlnaHQgbm90aWNl
LgogIGNvcHlfdW50aWwoZnJvbV9maWxlLCB0b19maWxlLCByZS5jb21waWxlKHInXiBcKi8kJykp
CgogICMgQ3JlYXRlIHRoZSBpbmNsdWRlLWd1YXJkLgogIHdyaXRlX2hlYWRlcih0b19maWxlLCAn
JXNQcm94eV9oJyAlIGJhc2UpCgogICMgQXNzdW1lIHRoZXJlJ3Mgb25seSBvbmUgbmFtZXNwYWNl
IGluIHRoaXMgaGVhZGVyLi4uCiAgbmFtZXNwYWNlID0gc2tpcF91bnRpbChmcm9tX2ZpbGUsIHJl
LmNvbXBpbGUoJ15uYW1lc3BhY2UgJykpCiAgIyAuLi5hbmQgb25seSBvbmUgY2xhc3MgZGVmaW5p
dGlvbi4KICBjbGFzc19kZWZpbml0aW9uID0gc2tpcF91bnRpbChmcm9tX2ZpbGUsIHJlLmNvbXBp
bGUoJ15jbGFzcyAuKiB7JCcpKQogIAogICMgRmluZCBhbGwgYmFzZSBjbGFzc2VzLiBXZSBhc3N1
bWUgdGhleSdyZSBhbGwgdmlydHVhbCBiYXNlIGNsYXNzZXMuCiAgYmFzZV9jbGFzc2VzID0gcmUu
ZmluZGFsbCgndmlydHVhbCBwdWJsaWMgKFthLXpBLVpdKykgJywgY2xhc3NfZGVmaW5pdGlvbikK
CiAgIyBUYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGF0IHRoZSBoZWFkZXJzIGluIHdoaWNoIHRoZSBj
bGFzc2VzIGFyZSBkZWZpbmVkLgogIGhlYWRlcnMgPSBbc291cmNlXQogIGhlYWRlcnMuZXh0ZW5k
KFsnJXNQcm94eS5oJyAlIGMgZm9yIGMgaW4gYmFzZV9jbGFzc2VzXSkKICBmb3IgaCBpbiBzb3J0
ZWQoaGVhZGVycyk6CiAgICB0b19maWxlLndyaXRlKCcjaW5jbHVkZSAiJXMiXG4nICUgaCkKCiAg
IyBXcml0ZSBvdXQgdGhlIGhvcGVmdWxseSBjb3JyZWN0IG5hbWVzcGFjZS4KICB0b19maWxlLndy
aXRlKCdcbicpCiAgdG9fZmlsZS53cml0ZShuYW1lc3BhY2UpCiAgdG9fZmlsZS53cml0ZSgnXG4n
KQoKICB3cml0ZV9jbGFzc19kZWZpbml0aW9uKHRvX2ZpbGUsIGJhc2UsIGJhc2VfY2xhc3NlcykK
CiAgIyBXZSdsbCB1c2UgdGhpcyBuYW1lIGluIHZhcmlhYmxlIGFuZCBtZXRob2QgbmFtZXMuCiAg
bmFtZSA9IGJhc2VbMF0ubG93ZXIoKSArIGJhc2VbMTpdCgogICMgV3JpdGUgcHJveHkgbWV0aG9k
cyBmb3IgYWxsIHZpcnR1YWwgbWV0aG9kcy4KICB3cml0ZV9wcm94eV9tZXRob2RzKGZyb21fZmls
ZSwgdG9fZmlsZSwgbmFtZSwgYmFzZSkKICAgICAgCiAgd3JpdGVfZm9vdGVyKHRvX2ZpbGUsIG5h
bWUsIGJhc2UsIGJhc2VfY2xhc3NlcykKCiAgcmV0dXJuIDAKCgppZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgogIHN5cy5leGl0KG1haW4oKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172951</attachid>
            <date>2012-11-08 01:11:49 -0800</date>
            <delta_ts>2012-11-08 01:34:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121108100958.patch</filename>
            <type>text/plain</type>
            <size>15595</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzMjgyYTdkMmQyZDMxZTU4Nzc4NGQyY2RjMGUxYWVk
ZGMyNWZjYS4uZTBkMzc0YjkyOWJhZDdiNTYzNDk0NmEwMGE2ZTc1ZDVjMDI1MDBlMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViVGVzdFByb3h5IGlzIHRl
bXBsYXRlLCBzbyBpdCBjYW4gZGVyaXZlIGZyb20gYW4gaW1wbGVtZW50YXRpb24KKyAgICAgICAg
b2YgdGhlIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlLiBUaGF0IHdheSwgV2ViVGVzdFByb3h5IGNh
biBob29rIGludG8KKyAgICAgICAgaW5kaXZpZHVhbCBtZXRob2RzIG9mIHRoZSBXZWJWaWV3Q2xp
ZW50IGFuZCBmb3J3YXJkIGFsbCB0aGUgcmVzdCB0byB0aGUKKyAgICAgICAgYWN0dWFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIGhvdyBJIHdhbnQgdG8gdXNlIHRo
aXMsIEkgbW92ZWQgdGhlCisgICAgICAgIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG1l
dGhvZCBmcm9tIFdlYlZpZXdIb3N0IHRvIFdlYlRlc3RQcm94eS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UHJveHk6On5XZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdFByb3h5Ojpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RT
aGVsbDo6Y3JlYXRlTmV3V2luZG93KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMS0wOCAgWWFlbCBB
aGFyb24gIDx5YWVsLmFoYXJvbkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gVHVybiBvbiBX
VEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXggZGQ3NjhkMDQ5NTcyNmYyYjY2MDdmODBmOTE3NTdm
ZGJkMjFmNzc5OS4uNTYyNjRiN2I1NWRiMDM4MTc5NTRiYTc4ZmQxMmQwMWM4ODM1NmI1MCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBAIC03MSw2ICs3MSw3IEBA
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViRXZlbnRTZW5kZXIu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGFzay5oJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0SW50ZXJmYWNl
cy5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJv
eHkuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNw
cCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5YTZmYjMzYjg1ODkw
NjgwNGQzY2YyNTE0MTA2Njg3ZTZjNjhhNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAt
MCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViVGVzdFByb3h5X2gKKyNkZWZpbmUgV2ViVGVzdFByb3h5
X2gKKworI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVk
ZSAiV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgiCisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgi
CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKwordGVtcGxhdGU8Y2xhc3MgV2ViVmlld0Ns
aWVudEltcGwsIHR5cGVuYW1lIFQ+CitjbGFzcyBXZWJUZXN0UHJveHkgOiBwdWJsaWMgV2ViVmll
d0NsaWVudEltcGwgeworcHVibGljOgorICAgIFdlYlRlc3RQcm94eShUIHQsIFdlYkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKiBjb250cm9sbGVyKQorICAgICAgICA6IFdlYlZpZXdDbGllbnRJbXBs
KHQpCisgICAgICAgICwgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcihjb250cm9sbGVyKQorICAg
ICAgICAsIG1fZGVsZWdhdGUoMCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBzZXREZWxlZ2F0
ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQorICAgIHsKKyAgICAgICAgbV9kZWxlZ2F0ZSA9
IGRlbGVnYXRlOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYlRlc3RQcm94eSgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlv
biA9PSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZCkKKyAgICAgICAgICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldEZvY3Vz
ZWRFbGVtZW50KG9iaik7CisKKyAgICAgICAgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFtZTsK
KyAgICAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKKyAgICAgICAgY2FzZSBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlZDoKKyAgICAg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQWN0aXZlRGVzY2VuZGFudENoYW5nZWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uQXV0b2NvcnJlY3Rpb25PY2N1cmVkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJBdXRvY29ycmVjdGlvbk9jY3VyZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRl
Q2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQ2hlY2tlZFN0YXRlQ2hh
bmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIkNoaWxkcmVuQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVt
ZW50Q2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiRm9jdXNlZFVJRWxl
bWVudENoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6CisgICAgICAgICAgICBu
b3RpZmljYXRpb25OYW1lID0gIkxheW91dENvbXBsZXRlIjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxvYWRDb21w
bGV0ZToKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTG9hZENvbXBsZXRlIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3Rl
ZFRleHRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3RlZFRl
eHRDaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlm
aWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNjcm9sbGVkVG9BbmNo
b3I6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNjcm9sbGVkVG9BbmNob3IiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uTGl2ZVJlZ2lvbkNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkxpdmVSZWdpb25DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0SXRlbVNlbGVj
dGVkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJNZW51TGlzdEl0ZW1TZWxlY3Rl
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25NZW51TGlzdFZhbHVlQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlm
aWNhdGlvbk5hbWUgPSAiTWVudUxpc3RWYWx1ZUNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291
bnRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJSb3dDb3VudENoYW5n
ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uUm93Q29sbGFwc2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJSb3dDb2xsYXBzZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93RXhwYW5kZWQ6CisgICAgICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0V4cGFuZGVkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkludmFs
aWRTdGF0dXNDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJJbnZhbGlk
U3RhdHVzQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6
OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25UZXh0Q2hhbmdlZDoKKyAgICAgICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiVGV4dENoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQXJpYUF0dHJpYnV0
ZUNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkFyaWFBdHRyaWJ1dGVD
aGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0aW9uIjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+
bm90aWZpY2F0aW9uUmVjZWl2ZWQob2JqLCBub3RpZmljYXRpb25OYW1lKTsKKworICAgICAgICBp
ZiAobV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50
cygpKSB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyBtZXNzYWdlKCJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uIC0gIik7CisgICAgICAgICAgICBtZXNzYWdlICs9IG5vdGlmaWNhdGlvbk5hbWU7
CisKKyAgICAgICAgICAgIFdlYktpdDo6V2ViTm9kZSBub2RlID0gb2JqLm5vZGUoKTsKKyAgICAg
ICAgICAgIGlmICghbm9kZS5pc051bGwoKSAmJiBub2RlLmlzRWxlbWVudE5vZGUoKSkgeworICAg
ICAgICAgICAgICAgIFdlYktpdDo6V2ViRWxlbWVudCBlbGVtZW50ID0gbm9kZS50bzxXZWJLaXQ6
OldlYkVsZW1lbnQ+KCk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRl
KCJpZCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiAtIGlkOiI7CisgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikudXRm
OCgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtZXNzYWdlICsgIlxuIik7CisgICAgICAgIH0K
KworICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b24ob2JqLCBub3RpZmljYXRpb24pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXZWJBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlciogbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKKyAgICBXZWJUZXN0
RGVsZWdhdGUqIG1fZGVsZWdhdGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJUZXN0UHJveHlf
aApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXggNGM0
MmRjMGRkNzQ4ZGQ3ODc3OTExMzA2ZjQ2Zjk1OTA1OTk1NWYzMC4uNzU0MjI3NTVlMGZhYWM0OGVm
MjdjMjExZDQ2MWYyMTdkMjQ4MjI2OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViUnVudGltZUZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldl
YlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViVGVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVmll
dy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJy
YXlCdWZmZXJWaWV3LmgiCkBAIC03NTAsNyArNzUxLDExIEBAIFdlYlZpZXdIb3N0KiBUZXN0U2hl
bGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsKQogCiBXZWJWaWV3
SG9zdCogVGVzdFNoZWxsOjpjcmVhdGVOZXdXaW5kb3coY29uc3QgV2ViS2l0OjpXZWJVUkwmIHVy
bCwgRFJURGV2VG9vbHNBZ2VudCogZGV2VG9vbHNBZ2VudCkKIHsKLSAgICBXZWJWaWV3SG9zdCog
aG9zdCA9IG5ldyBXZWJWaWV3SG9zdCh0aGlzKTsKKyAgICBXZWJUZXN0UnVubmVyOjpXZWJUZXN0
UHJveHk8V2ViVmlld0hvc3QsIFRlc3RTaGVsbCo+KiBob3N0ID0gbmV3IFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTxXZWJWaWV3SG9zdCwgVGVzdFNoZWxsKj4odGhpcywgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIoKSk7CisgICAgaWYgKG1fd2ViVmlld0hvc3QpCisgICAgICAgIGhvc3QtPnNl
dERlbGVnYXRlKG1fd2ViVmlld0hvc3QuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgaG9zdC0+
c2V0RGVsZWdhdGUoaG9zdCk7CiAgICAgV2ViVmlldyogdmlldyA9IFdlYlZpZXc6OmNyZWF0ZSho
b3N0KTsKICAgICB2aWV3LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHdlYlBlcm1pc3Npb25zKCkpOwog
ICAgIHZpZXctPnNldERldlRvb2xzQWdlbnRDbGllbnQoZGV2VG9vbHNBZ2VudCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggOThiODdiZjhl
OTBlZWE0NzIwNDM1NWM5MjZhY2Y2ZmZjNzNhYWEwZC4uN2UyZTY3NTAzMjA5ZTA5MjE1YzgxYzBh
N2I2MmJmMzQ4MDk4M2VjZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcApAQCAtMzksOCArMzksNiBAQAogI2luY2x1ZGUgIlRlc3ROYXZpZ2F0aW9u
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1ZGUgIlRlc3RXZWJQ
bHVnaW4uaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgotI2luY2x1
ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2Fn
ZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYkRPTU1l
c3NhZ2VFdmVudC5oIgpAQCAtNjM1LDk0ICs2MzMsNiBAQCBpbnQgV2ViVmlld0hvc3Q6Omhpc3Rv
cnlGb3J3YXJkTGlzdENvdW50KCkKICAgICByZXR1cm4gbmF2aWdhdGlvbkNvbnRyb2xsZXIoKS0+
ZW50cnlDb3VudCgpIC0gY3VycmVudEluZGV4IC0gMTsKIH0KIAotdm9pZCBXZWJWaWV3SG9zdDo6
cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqLCBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKLXsKLSAg
ICBpZiAobm90aWZpY2F0aW9uID09IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2Vk
VUlFbGVtZW50Q2hhbmdlZCkKLSAgICAgICAgbV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIoKS0+c2V0Rm9jdXNlZEVsZW1lbnQob2JqKTsKLQotICAgIGNvbnN0IGNoYXIqIG5vdGlmaWNh
dGlvbk5hbWU7Ci0gICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKLSAgICBjYXNlIFdlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlZDoKLSAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkF1dG9jb3JyZWN0aW9uT2Nj
dXJlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBdXRvY29ycmVjdGlvbk9jY3VyZWQi
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25D
aGVja2VkU3RhdGVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoZWNrZWRT
dGF0ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
Q2hpbGRyZW5DaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiRm9jdXNlZFVJRWxlbWVudENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MYXlvdXRDb21wbGV0ZToKLSAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMYXlvdXRDb21wbGV0ZSI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxvYWRDb21wbGV0ZToKLSAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUiOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNl
bGVjdGVkVGV4dENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJWYWx1
ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25TY3JvbGxlZFRvQW5jaG9yOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNj
cm9sbGVkVG9BbmNob3IiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25MaXZlUmVnaW9uQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFt
ZSA9ICJMaXZlUmVnaW9uQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0SXRlbVNlbGVjdGVkOgotICAgICAgICBub3Rp
ZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RWYWx1ZUNoYW5nZWQ6
Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RWYWx1ZUNoYW5nZWQiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3Vu
dENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q291bnRDaGFuZ2VkIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93
Q29sbGFwc2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvbGxhcHNlZCI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0V4
cGFuZGVkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0V4cGFuZGVkIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSW52YWxpZFN0
YXR1c0NoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiSW52YWxpZFN0YXR1c0No
YW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25UZXh0Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJUZXh0Q2hhbmdl
ZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkFyaWFBdHRyaWJ1dGVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkFyaWFB
dHRyaWJ1dGVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
bm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0aW9uIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotCi0gICAgbV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+bm90aWZp
Y2F0aW9uUmVjZWl2ZWQob2JqLCBub3RpZmljYXRpb25OYW1lKTsKLQotICAgIGlmIChtX3NoZWxs
LT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5zaG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRz
KCkpIHsKLSAgICAgICAgcHJpbnRmKCJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIC0gJXMiLCBu
b3RpZmljYXRpb25OYW1lKTsKLQotICAgICAgICBXZWJLaXQ6OldlYk5vZGUgbm9kZSA9IG9iai5u
b2RlKCk7Ci0gICAgICAgIGlmICghbm9kZS5pc051bGwoKSAmJiBub2RlLmlzRWxlbWVudE5vZGUo
KSkgewotICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50IGVsZW1lbnQgPSBub2RlLnRvPFdl
YktpdDo6V2ViRWxlbWVudD4oKTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0
ZSgiaWQiKSkKLSAgICAgICAgICAgICAgICBwcmludGYoIiAtIGlkOiVzIiwgZWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBwcmlu
dGYoIlxuIik7Ci0gICAgfQotfQotCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBXZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIFdlYlZpZXdIb3N0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKQog
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggODYw
MDcxOTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0Zi4uMWVjYzQ1NmE5M2NmMjc0ZjBh
NDllMTMwNmYxZjhkOTIwMWEzNmUzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5oCkBAIC0xODgsNyArMTg4LDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBw
dWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVu
dCwKICAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGVCYWNrRm9yd2FyZFNvb24oaW50IG9mZnNldCk7
CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUJhY2tMaXN0Q291bnQoKTsKICAgICB2aXJ0dWFsIGlu
dCBoaXN0b3J5Rm9yd2FyZExpc3RDb3VudCgpOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Qm
LCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOwogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIq
IG5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172956</attachid>
            <date>2012-11-08 01:34:59 -0800</date>
            <delta_ts>2012-11-08 04:52:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121108103308.patch</filename>
            <type>text/plain</type>
            <size>15794</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzMjgyYTdkMmQyZDMxZTU4Nzc4NGQyY2RjMGUxYWVk
ZGMyNWZjYS4uMzExYjVjN2ZkMDEzMDdjOGJlZDc4OGZkOTBjNjAwYjkyMTRmZjFjMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViVGVzdFByb3h5IGlzIHRl
bXBsYXRlLCBzbyBpdCBjYW4gZGVyaXZlIGZyb20gYW4gaW1wbGVtZW50YXRpb24KKyAgICAgICAg
b2YgdGhlIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlLiBUaGF0IHdheSwgV2ViVGVzdFByb3h5IGNh
biBob29rIGludG8KKyAgICAgICAgaW5kaXZpZHVhbCBtZXRob2RzIG9mIHRoZSBXZWJWaWV3Q2xp
ZW50IGFuZCBmb3J3YXJkIGFsbCB0aGUgcmVzdCB0byB0aGUKKyAgICAgICAgYWN0dWFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIGhvdyBJIHdhbnQgdG8gdXNlIHRo
aXMsIEkgbW92ZWQgdGhlCisgICAgICAgIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG1l
dGhvZCBmcm9tIFdlYlZpZXdIb3N0IHRvIFdlYlRlc3RQcm94eS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpzZXRJbnRlcmZhY2VzKToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OldlYlRlc3RQcm94eTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdFByb3h5Ojp+V2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hl
bGw6OmNyZWF0ZU5ld1dpbmRvdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTEtMDggIFlhZWwgQWhh
cm9uICA8eWFlbC5haGFyb25AaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFR1cm4gb24gV1RG
X1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5neXBpCmluZGV4IGRkNzY4ZDA0OTU3MjZmMmI2NjA3ZjgwZjkxNzU3ZmRi
ZDIxZjc3OTkuLjU2MjY0YjdiNTVkYjAzODE3OTU0YmE3OGZkMTJkMDFjODgzNTZiNTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQpAQCAtNzEsNiArNzEsNyBAQAog
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYkV2ZW50U2VuZGVyLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRhc2suaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdEludGVyZmFjZXMu
aCcsCisgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAn
LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9w
dWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjkxNzg4Y2M0MjQwMWI4
OTlhNjI5OTllMzJmNWM4NGYzNDNiNGEwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTAs
MCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYlRlc3RQcm94eV9oCisjZGVmaW5lIFdlYlRlc3RQcm94eV9o
CisKKyNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIldl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUg
IldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oIgorI2luY2x1ZGUgIldlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5oIgor
I2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVy
IHsKKwordGVtcGxhdGU8Y2xhc3MgV2ViVmlld0NsaWVudEltcGwsIHR5cGVuYW1lIFQ+CitjbGFz
cyBXZWJUZXN0UHJveHkgOiBwdWJsaWMgV2ViVmlld0NsaWVudEltcGwgeworcHVibGljOgorICAg
IFdlYlRlc3RQcm94eShUIHQpCisgICAgICAgIDogV2ViVmlld0NsaWVudEltcGwodCkKKyAgICAg
ICAgLCBtX3Rlc3RJbnRlcmZhY2VzKDApCisgICAgICAgICwgbV9kZWxlZ2F0ZSgwKQorICAgIHsK
KyAgICB9CisKKyAgICB2b2lkIHNldEludGVyZmFjZXMoV2ViVGVzdEludGVyZmFjZXMqIGludGVy
ZmFjZXMpCisgICAgeworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzID0gaW50ZXJmYWNlczsKKyAg
ICB9CisKKyAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCisg
ICAgeworICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgfQorCisgICAgdmlydHVh
bCB+V2ViVGVzdFByb3h5KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb24oY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmos
IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCisgICAg
eworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKQorICAgICAgICAgICAgbV90ZXN0SW50
ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEVsZW1lbnQob2Jq
KTsKKworICAgICAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOworICAgICAgICBzd2l0
Y2ggKG5vdGlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BdXRv
Y29ycmVjdGlvbk9jY3VyZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkF1dG9j
b3JyZWN0aW9uT2NjdXJlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJL
aXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGVja2VkU3RhdGVDaGFuZ2VkOgorICAg
ICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
Q2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgor
ICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25MYXlvdXRDb21wbGV0ZToKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiTGF5b3V0Q29tcGxldGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgorICAgICAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNl
bGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVkVGV4dENoYW5nZWQ6
CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJWYWx1ZUNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0
OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKKyAgICAgICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2Nyb2xsZWRUb0FuY2hvciI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25M
aXZlUmVnaW9uQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJl
Z2lvbkNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CisgICAgICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJNZW51TGlzdFZhbHVlQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6Cisg
ICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25Sb3dDb2xsYXBzZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0Nv
bGxhcHNlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKKyAgICAgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiUm93RXhwYW5kZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSW52YWxpZFN0YXR1c0NoYW5n
ZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFuZ2Vk
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvblRleHRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFt
ZSA9ICJUZXh0Q2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJL
aXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hhbmdlZDoKKyAg
ICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQXJpYUF0dHJpYnV0ZUNoYW5nZWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIlVua25vd25Ob3RpZmljYXRpb24iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cigpLT5ub3RpZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5hbWUpOworCisgICAg
ICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5zaG91
bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkpIHsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1l
c3NhZ2UoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAiKTsKKyAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gbm90aWZpY2F0aW9uTmFtZTsKKworICAgICAgICAgICAgV2ViS2l0OjpXZWJOb2RlIG5v
ZGUgPSBvYmoubm9kZSgpOworICAgICAgICAgICAgaWYgKCFub2RlLmlzTnVsbCgpICYmIG5vZGUu
aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50IGVs
ZW1lbnQgPSBub2RlLnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKKyAgICAgICAgICAgICAgICBp
ZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZSArPSAiIC0gaWQ6IjsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSArPSBlbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKS51dGY4KCkuZGF0YSgpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKG1lc3Nh
Z2UgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpwb3N0
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihvYmosIG5vdGlmaWNhdGlvbik7CisgICAgfQorCitw
cml2YXRlOgorICAgIFdlYlRlc3RJbnRlcmZhY2VzKiBtX3Rlc3RJbnRlcmZhY2VzOworICAgIFdl
YlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlRlc3RQ
cm94eV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRl
eCA0YzQyZGMwZGQ3NDhkZDc4Nzc5MTEzMDZmNDZmOTU5MDU5OTU1ZjMwLi5jZWI1YmVjMzU1MjIz
ZWUwNzcxM2E4NjIzZTY4MzEzMTcyMGZlNmM1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJSdW50
aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJUZXN0UHJveHkuaCIKICNpbmNsdWRlICJX
ZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3QuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJBcnJheUJ1ZmZlclZpZXcuaCIKQEAgLTc1MCw3ICs3NTEsMTIgQEAgV2ViVmlld0hvc3QqIFRl
c3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwpCiAKIFdl
YlZpZXdIb3N0KiBUZXN0U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVS
TCYgdXJsLCBEUlREZXZUb29sc0FnZW50KiBkZXZUb29sc0FnZW50KQogewotICAgIFdlYlZpZXdI
b3N0KiBob3N0ID0gbmV3IFdlYlZpZXdIb3N0KHRoaXMpOworICAgIFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RQcm94eTxXZWJWaWV3SG9zdCwgVGVzdFNoZWxsKj4qIGhvc3QgPSBuZXcgV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFByb3h5PFdlYlZpZXdIb3N0LCBUZXN0U2hlbGwqPih0aGlzKTsKKyAgICBo
b3N0LT5zZXRJbnRlcmZhY2VzKG1fdGVzdEludGVyZmFjZXMuZ2V0KCkpOworICAgIGlmIChtX3dl
YlZpZXdIb3N0KQorICAgICAgICBob3N0LT5zZXREZWxlZ2F0ZShtX3dlYlZpZXdIb3N0LmdldCgp
KTsKKyAgICBlbHNlCisgICAgICAgIGhvc3QtPnNldERlbGVnYXRlKGhvc3QpOwogICAgIFdlYlZp
ZXcqIHZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoaG9zdCk7CiAgICAgdmlldy0+c2V0UGVybWlzc2lv
bkNsaWVudCh3ZWJQZXJtaXNzaW9ucygpKTsKICAgICB2aWV3LT5zZXREZXZUb29sc0FnZW50Q2xp
ZW50KGRldlRvb2xzQWdlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCmluZGV4IDk4Yjg3YmY4ZTkwZWVhNDcyMDQzNTVjOTI2YWNmNmZmYzczYWFh
MGQuLjdlMmU2NzUwMzIwOWUwOTIxNWM4MWMwYTdiNjJiZjM0ODA5ODNlY2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTM5LDggKzM5LDYg
QEAKICNpbmNsdWRlICJUZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJUZXN0
U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCi0jaW5jbHVkZSAiV2ViQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2ViQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVu
dURhdGEuaCIKICNpbmNsdWRlICJXZWJET01NZXNzYWdlRXZlbnQuaCIKQEAgLTYzNSw5NCArNjMz
LDYgQEAgaW50IFdlYlZpZXdIb3N0OjpoaXN0b3J5Rm9yd2FyZExpc3RDb3VudCgpCiAgICAgcmV0
dXJuIG5hdmlnYXRpb25Db250cm9sbGVyKCktPmVudHJ5Q291bnQoKSAtIGN1cnJlbnRJbmRleCAt
IDE7CiB9CiAKLXZvaWQgV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgV2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQpCi0gICAgICAgIG1f
c2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRFbGVtZW50KG9iaik7
Ci0KLSAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOwotICAgIHN3aXRjaCAobm90aWZp
Y2F0aW9uKSB7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQWN0aXZlRGVz
Y2VuZGFudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQWN0aXZlRGVzY2Vu
ZGFudENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3VyZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiQXV0b2NvcnJlY3Rpb25PY2N1cmVkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKLSAgICAgICAg
bm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hpbGRyZW5DaGFuZ2VkOgot
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoaWxkcmVuQ2hhbmdlZCI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkZvY3VzZWRVSUVsZW1lbnRD
aGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uTGF5b3V0Q29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGF5b3V0
Q29tcGxldGUiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25Mb2FkQ29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTG9hZENv
bXBsZXRlIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRDaGFuZ2VkOgotICAgICAgICBu
b3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25WYWx1ZUNoYW5nZWQ6Ci0gICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKLSAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5jaG9yIjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGl2ZVJlZ2lvbkNoYW5n
ZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJlZ2lvbkNoYW5nZWQiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25NZW51TGlz
dEl0ZW1TZWxlY3RlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJNZW51TGlzdEl0ZW1T
ZWxlY3RlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
Ik1lbnVMaXN0VmFsdWVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0NvbGxhcHNlZDoKLSAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJSb3dDb2xsYXBzZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKLSAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJSb3dFeHBhbmRlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkludmFsaWRTdGF0dXNDaGFuZ2VkOgotICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVGV4dENoYW5nZWQ6Ci0gICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiVGV4dENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hhbmdlZDoKLSAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBcmlhQXR0cmlidXRlQ2hhbmdlZCI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVW5rbm93bk5v
dGlmaWNhdGlvbiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fc2hlbGwtPmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKCktPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9iaiwgbm90aWZpY2F0
aW9uTmFtZSk7Ci0KLSAgICBpZiAobV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+
c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7Ci0gICAgICAgIHByaW50ZigiQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbiAtICVzIiwgbm90aWZpY2F0aW9uTmFtZSk7Ci0KLSAgICAgICAg
V2ViS2l0OjpXZWJOb2RlIG5vZGUgPSBvYmoubm9kZSgpOwotICAgICAgICBpZiAoIW5vZGUuaXNO
dWxsKCkgJiYgbm9kZS5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAgIFdlYktpdDo6V2Vi
RWxlbWVudCBlbGVtZW50ID0gbm9kZS50bzxXZWJLaXQ6OldlYkVsZW1lbnQ+KCk7Ci0gICAgICAg
ICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpCi0gICAgICAgICAgICAgICAgcHJp
bnRmKCIgLSBpZDolcyIsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgIH0KLX0KLQogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQogV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBXZWJWaWV3SG9z
dDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDg2MDA3MTk0YjA0MzU2NzJjMDE0OTk5ZDU4NjA1M2Vj
ZmY1ZjhiNGYuLjFlY2M0NTZhOTNjZjI3NGYwYTQ5ZTEzMDZmMWY4ZDkyMDFhMzZlMzYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTg4LDcgKzE4
OCw2IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwg
cHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRl
QmFja0ZvcndhcmRTb29uKGludCBvZmZzZXQpOwogICAgIHZpcnR1YWwgaW50IGhpc3RvcnlCYWNr
TGlzdENvdW50KCk7CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUZvcndhcmRMaXN0Q291bnQoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2aXJ0dWFsIFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKTsKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173016</attachid>
            <date>2012-11-08 04:52:14 -0800</date>
            <delta_ts>2012-11-08 07:58:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121108135022.patch</filename>
            <type>text/plain</type>
            <size>16253</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzMjgyYTdkMmQyZDMxZTU4Nzc4NGQyY2RjMGUxYWVk
ZGMyNWZjYS4uMTc4MDZjMmQ0NzMyYjFjY2ZjZjE1N2Q5YWFiMjU3Mjg3N2M2ZjU1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViVGVzdFByb3h5IGlzIHRl
bXBsYXRlLCBzbyBpdCBjYW4gZGVyaXZlIGZyb20gYW4gaW1wbGVtZW50YXRpb24KKyAgICAgICAg
b2YgdGhlIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlLiBUaGF0IHdheSwgV2ViVGVzdFByb3h5IGNh
biBob29rIGludG8KKyAgICAgICAgaW5kaXZpZHVhbCBtZXRob2RzIG9mIHRoZSBXZWJWaWV3Q2xp
ZW50IGFuZCBmb3J3YXJkIGFsbCB0aGUgcmVzdCB0byB0aGUKKyAgICAgICAgYWN0dWFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIGhvdyBJIHdhbnQgdG8gdXNlIHRo
aXMsIEkgbW92ZWQgdGhlCisgICAgICAgIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG1l
dGhvZCBmcm9tIFdlYlZpZXdIb3N0IHRvIFdlYlRlc3RQcm94eS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UHJveHlCYXNlKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OnNldEludGVyZmFjZXMpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6c2V0RGVsZWdhdGUpOgorICAgICAg
ICAoV2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6
V2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2V0
SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnNldERl
bGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6fldlYlRlc3RQ
cm94eSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpjcmVhdGVOZXdXaW5kb3cpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmll
d0hvc3QpOgorCiAyMDEyLTExLTA4ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXSBUdXJuIG9uIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSBi
eSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBk
ZDc2OGQwNDk1NzI2ZjJiNjYwN2Y4MGY5MTc1N2ZkYmQyMWY3Nzk5Li41NjI2NGI3YjU1ZGIwMzgx
Nzk1NGJhNzhmZDEyZDAxYzg4MzU2YjUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGkKQEAgLTcxLDYgKzcxLDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJFdmVudFNlbmRlci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUYXNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RS
dW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZhY2VzLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODU1ZmNhOTAyNzJjN2IyMjQ2NjA1NjZjOGViMmJmYzc3YTE3ZDYzNAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJUZXN0
UHJveHlfaAorI2RlZmluZSBXZWJUZXN0UHJveHlfaAorCisjaW5jbHVkZSAiV2ViQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaCIK
KyNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0SW50ZXJmYWNl
cy5oIgorCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK2NsYXNzIFdlYlRlc3RQcm94eUJh
c2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRl
cmZhY2VzKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdh
dGUqKSA9IDA7Cit9OworCisvLyBVc2UgdGhpcyB0ZW1wbGF0ZSB0byBpbmplY3QgbWV0aG9kcyBp
bnRvIHlvdXIgV2ViVmlld0NsaWVudCBpbXBsZW1lbnRhdGlvbgorLy8gcmVxdWlyZWQgZm9yIHRo
ZSBydW5uaW5nIGxheW91dCB0ZXN0cy4KK3RlbXBsYXRlPGNsYXNzIFdlYlZpZXdDbGllbnRJbXBs
LCB0eXBlbmFtZSBUPgorY2xhc3MgV2ViVGVzdFByb3h5IDogcHVibGljIFdlYlZpZXdDbGllbnRJ
bXBsLCBwdWJsaWMgV2ViVGVzdFByb3h5QmFzZSB7CitwdWJsaWM6CisgICAgV2ViVGVzdFByb3h5
KFQgdCkKKyAgICAgICAgOiBXZWJWaWV3Q2xpZW50SW1wbCh0KQorICAgICAgICAsIG1fdGVzdElu
dGVyZmFjZXMoMCkKKyAgICAgICAgLCBtX2RlbGVnYXRlKDApCisgICAgeworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2Vz
KQorICAgIHsKKyAgICAgICAgbV90ZXN0SW50ZXJmYWNlcyA9IGludGVyZmFjZXM7CisgICAgfQor
CisgICAgdmlydHVhbCB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUp
CisgICAgeworICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgfQorCisgICAgdmly
dHVhbCB+V2ViVGVzdFByb3h5KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBv
YmosIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCisg
ICAgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKQorICAgICAgICAgICAgbV90ZXN0
SW50ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
b2JqKTsKKworICAgICAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOworICAgICAgICBz
d2l0Y2ggKG5vdGlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkOgorICAgICAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25B
dXRvY29ycmVjdGlvbk9jY3VyZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkF1
dG9jb3JyZWN0aW9uT2NjdXJlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGVja2VkU3RhdGVDaGFuZ2VkOgor
ICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdl
YktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
OgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hhbmdl
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25MYXlvdXRDb21wbGV0ZToKKyAgICAgICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiTGF5b3V0Q29tcGxldGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgorICAg
ICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUiOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
U2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
IlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVkVGV4dENoYW5n
ZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFt
ZSA9ICJWYWx1ZUNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKKyAgICAg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2Nyb2xsZWRUb0FuY2hvciI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25MaXZlUmVnaW9uQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2
ZVJlZ2lvbkNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0
OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CisgICAg
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFt
ZSA9ICJNZW51TGlzdFZhbHVlQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6
CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25Sb3dDb2xsYXBzZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJv
d0NvbGxhcHNlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKKyAgICAgICAgICAgIG5vdGlm
aWNhdGlvbk5hbWUgPSAiUm93RXhwYW5kZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSW52YWxpZFN0YXR1c0No
YW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFu
Z2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvblRleHRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJUZXh0Q2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hhbmdlZDoK
KyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQXJpYUF0dHJpYnV0ZUNoYW5nZWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIlVua25vd25Ob3RpZmljYXRpb24iOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpLT5ub3RpZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5hbWUpOworCisg
ICAgICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5z
aG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkpIHsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5n
IG1lc3NhZ2UoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAiKTsKKyAgICAgICAgICAgIG1l
c3NhZ2UgKz0gbm90aWZpY2F0aW9uTmFtZTsKKworICAgICAgICAgICAgV2ViS2l0OjpXZWJOb2Rl
IG5vZGUgPSBvYmoubm9kZSgpOworICAgICAgICAgICAgaWYgKCFub2RlLmlzTnVsbCgpICYmIG5v
ZGUuaXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50
IGVsZW1lbnQgPSBub2RlLnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKKyAgICAgICAgICAgICAg
ICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpIHsKKyAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZSArPSAiIC0gaWQ6IjsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSArPSBlbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKS51dGY4KCkuZGF0YSgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKG1l
c3NhZ2UgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpw
b3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihvYmosIG5vdGlmaWNhdGlvbik7CisgICAgfQor
Citwcml2YXRlOgorICAgIFdlYlRlc3RJbnRlcmZhY2VzKiBtX3Rlc3RJbnRlcmZhY2VzOworICAg
IFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlRl
c3RQcm94eV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApp
bmRleCA0YzQyZGMwZGQ3NDhkZDc4Nzc5MTEzMDZmNDZmOTU5MDU5OTU1ZjMwLi5jZWI1YmVjMzU1
MjIzZWUwNzcxM2E4NjIzZTY4MzEzMTcyMGZlNmM1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJS
dW50aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJUZXN0UHJveHkuaCIKICNpbmNsdWRl
ICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3QuaCIKICNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKQEAgLTc1MCw3ICs3NTEsMTIgQEAgV2ViVmlld0hvc3Qq
IFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwpCiAK
IFdlYlZpZXdIb3N0KiBUZXN0U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6Oldl
YlVSTCYgdXJsLCBEUlREZXZUb29sc0FnZW50KiBkZXZUb29sc0FnZW50KQogewotICAgIFdlYlZp
ZXdIb3N0KiBob3N0ID0gbmV3IFdlYlZpZXdIb3N0KHRoaXMpOworICAgIFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTxXZWJWaWV3SG9zdCwgVGVzdFNoZWxsKj4qIGhvc3QgPSBuZXcgV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5PFdlYlZpZXdIb3N0LCBUZXN0U2hlbGwqPih0aGlzKTsKKyAg
ICBob3N0LT5zZXRJbnRlcmZhY2VzKG1fdGVzdEludGVyZmFjZXMuZ2V0KCkpOworICAgIGlmICht
X3dlYlZpZXdIb3N0KQorICAgICAgICBob3N0LT5zZXREZWxlZ2F0ZShtX3dlYlZpZXdIb3N0Lmdl
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIGhvc3QtPnNldERlbGVnYXRlKGhvc3QpOwogICAgIFdl
YlZpZXcqIHZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoaG9zdCk7CiAgICAgdmlldy0+c2V0UGVybWlz
c2lvbkNsaWVudCh3ZWJQZXJtaXNzaW9ucygpKTsKICAgICB2aWV3LT5zZXREZXZUb29sc0FnZW50
Q2xpZW50KGRldlRvb2xzQWdlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCmluZGV4IDk4Yjg3YmY4ZTkwZWVhNDcyMDQzNTVjOTI2YWNmNmZmYzcz
YWFhMGQuLjdlMmU2NzUwMzIwOWUwOTIxNWM4MWMwYTdiNjJiZjM0ODA5ODNlY2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTM5LDggKzM5
LDYgQEAKICNpbmNsdWRlICJUZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJU
ZXN0U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCi0jaW5jbHVkZSAiV2ViQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
LmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJET01NZXNzYWdlRXZlbnQuaCIKQEAgLTYzNSw5NCAr
NjMzLDYgQEAgaW50IFdlYlZpZXdIb3N0OjpoaXN0b3J5Rm9yd2FyZExpc3RDb3VudCgpCiAgICAg
cmV0dXJuIG5hdmlnYXRpb25Db250cm9sbGVyKCktPmVudHJ5Q291bnQoKSAtIGN1cnJlbnRJbmRl
eCAtIDE7CiB9CiAKLXZvaWQgV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQpCi0gICAgICAg
IG1fc2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRFbGVtZW50KG9i
aik7Ci0KLSAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOwotICAgIHN3aXRjaCAobm90
aWZpY2F0aW9uKSB7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQWN0aXZl
RGVzY2VuZGFudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQWN0aXZlRGVz
Y2VuZGFudENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3VyZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiQXV0b2NvcnJlY3Rpb25PY2N1cmVkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKLSAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hpbGRyZW5DaGFuZ2Vk
OgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoaWxkcmVuQ2hhbmdlZCI7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGF5
b3V0Q29tcGxldGUiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25Mb2FkQ29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTG9h
ZENvbXBsZXRlIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRDaGFuZ2VkOgotICAgICAg
ICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25WYWx1ZUNoYW5nZWQ6Ci0g
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoK
LSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5jaG9yIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGl2ZVJlZ2lvbkNo
YW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJlZ2lvbkNoYW5nZWQiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25NZW51
TGlzdEl0ZW1TZWxlY3RlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJNZW51TGlzdEl0
ZW1TZWxlY3RlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIk1lbnVMaXN0VmFsdWVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgotICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0NvbGxhcHNlZDoKLSAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJSb3dDb2xsYXBzZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKLSAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJSb3dFeHBhbmRlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkludmFsaWRTdGF0dXNDaGFuZ2VkOgotICAgICAgICBub3Rp
ZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVGV4dENoYW5nZWQ6Ci0gICAgICAg
IG5vdGlmaWNhdGlvbk5hbWUgPSAiVGV4dENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hhbmdlZDoKLSAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBcmlhQXR0cmlidXRlQ2hhbmdlZCI7Ci0gICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVW5rbm93
bk5vdGlmaWNhdGlvbiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1fc2hlbGwtPmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKCktPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9iaiwgbm90aWZp
Y2F0aW9uTmFtZSk7Ci0KLSAgICBpZiAobV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIo
KS0+c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7Ci0gICAgICAgIHByaW50ZigiQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiAtICVzIiwgbm90aWZpY2F0aW9uTmFtZSk7Ci0KLSAgICAg
ICAgV2ViS2l0OjpXZWJOb2RlIG5vZGUgPSBvYmoubm9kZSgpOwotICAgICAgICBpZiAoIW5vZGUu
aXNOdWxsKCkgJiYgbm9kZS5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAgIFdlYktpdDo6
V2ViRWxlbWVudCBlbGVtZW50ID0gbm9kZS50bzxXZWJLaXQ6OldlYkVsZW1lbnQ+KCk7Ci0gICAg
ICAgICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpCi0gICAgICAgICAgICAgICAg
cHJpbnRmKCIgLSBpZDolcyIsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgIH0KLX0KLQogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBXZWJWaWV3
SG9zdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDg2MDA3MTk0YjA0MzU2NzJjMDE0OTk5ZDU4NjA1
M2VjZmY1ZjhiNGYuLjFlY2M0NTZhOTNjZjI3NGYwYTQ5ZTEzMDZmMWY4ZDkyMDFhMzZlMzYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTg4LDcg
KzE4OCw2IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVu
dCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIG5hdmln
YXRlQmFja0ZvcndhcmRTb29uKGludCBvZmZzZXQpOwogICAgIHZpcnR1YWwgaW50IGhpc3RvcnlC
YWNrTGlzdENvdW50KCk7CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUZvcndhcmRMaXN0Q291bnQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3Qg
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKTsK
ICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173046</attachid>
            <date>2012-11-08 07:58:35 -0800</date>
            <delta_ts>2012-11-08 12:23:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121108165644.patch</filename>
            <type>text/plain</type>
            <size>16319</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzMjgyYTdkMmQyZDMxZTU4Nzc4NGQyY2RjMGUxYWVk
ZGMyNWZjYS4uMTc4MDZjMmQ0NzMyYjFjY2ZjZjE1N2Q5YWFiMjU3Mjg3N2M2ZjU1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViVGVzdFByb3h5IGlzIHRl
bXBsYXRlLCBzbyBpdCBjYW4gZGVyaXZlIGZyb20gYW4gaW1wbGVtZW50YXRpb24KKyAgICAgICAg
b2YgdGhlIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlLiBUaGF0IHdheSwgV2ViVGVzdFByb3h5IGNh
biBob29rIGludG8KKyAgICAgICAgaW5kaXZpZHVhbCBtZXRob2RzIG9mIHRoZSBXZWJWaWV3Q2xp
ZW50IGFuZCBmb3J3YXJkIGFsbCB0aGUgcmVzdCB0byB0aGUKKyAgICAgICAgYWN0dWFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIGhvdyBJIHdhbnQgdG8gdXNlIHRo
aXMsIEkgbW92ZWQgdGhlCisgICAgICAgIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG1l
dGhvZCBmcm9tIFdlYlZpZXdIb3N0IHRvIFdlYlRlc3RQcm94eS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UHJveHlCYXNlKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OnNldEludGVyZmFjZXMpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6c2V0RGVsZWdhdGUpOgorICAgICAg
ICAoV2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6
V2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6c2V0
SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnNldERl
bGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6fldlYlRlc3RQ
cm94eSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpjcmVhdGVOZXdXaW5kb3cpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmll
d0hvc3QpOgorCiAyMDEyLTExLTA4ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXSBUdXJuIG9uIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSBi
eSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBk
ZDc2OGQwNDk1NzI2ZjJiNjYwN2Y4MGY5MTc1N2ZkYmQyMWY3Nzk5Li41NjI2NGI3YjU1ZGIwMzgx
Nzk1NGJhNzhmZDEyZDAxYzg4MzU2YjUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGkKQEAgLTcxLDYgKzcxLDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJFdmVudFNlbmRlci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUYXNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RS
dW5uZXIvcHVibGljL1dlYlRlc3RJbnRlcmZhY2VzLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzFlYmY3YmZhODEzOTQzMDk4MWE3MzcyZjZlNDE2NWJhMzA0MzFkYQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0wLDAgKzEsMTc0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJUZXN0
UHJveHlfaAorI2RlZmluZSBXZWJUZXN0UHJveHlfaAorCisjaW5jbHVkZSAiV2ViQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
Yk5vZGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0RGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0
SW50ZXJmYWNlcy5oIgorCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK2NsYXNzIFdlYlRl
c3RQcm94eUJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRJbnRlcmZhY2VzKFdl
YlRlc3RJbnRlcmZhY2VzKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREZWxlZ2F0ZShXZWJU
ZXN0RGVsZWdhdGUqKSA9IDA7Cit9OworCisvLyBVc2UgdGhpcyB0ZW1wbGF0ZSB0byBpbmplY3Qg
bWV0aG9kcyBpbnRvIHlvdXIgV2ViVmlld0NsaWVudCBpbXBsZW1lbnRhdGlvbgorLy8gcmVxdWly
ZWQgZm9yIHRoZSBydW5uaW5nIGxheW91dCB0ZXN0cy4KK3RlbXBsYXRlPGNsYXNzIFdlYlZpZXdD
bGllbnRJbXBsLCB0eXBlbmFtZSBUPgorY2xhc3MgV2ViVGVzdFByb3h5IDogcHVibGljIFdlYlZp
ZXdDbGllbnRJbXBsLCBwdWJsaWMgV2ViVGVzdFByb3h5QmFzZSB7CitwdWJsaWM6CisgICAgV2Vi
VGVzdFByb3h5KFQgdCkKKyAgICAgICAgOiBXZWJWaWV3Q2xpZW50SW1wbCh0KQorICAgICAgICAs
IG1fdGVzdEludGVyZmFjZXMoMCkKKyAgICAgICAgLCBtX2RlbGVnYXRlKDApCisgICAgeworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRlcmZhY2VzKiBp
bnRlcmZhY2VzKQorICAgIHsKKyAgICAgICAgbV90ZXN0SW50ZXJmYWNlcyA9IGludGVyZmFjZXM7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSog
ZGVsZWdhdGUpCisgICAgeworICAgICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgfQor
CisgICAgdmlydHVhbCB+V2ViVGVzdFByb3h5KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9z
dEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0JiBvYmosIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24pCisgICAgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09IFdlYktpdDo6V2ViQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKQorICAgICAgICAg
ICAgbV90ZXN0SW50ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNl
ZEVsZW1lbnQob2JqKTsKKworICAgICAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOwor
ICAgICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkOgorICAgICAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3VyZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkF1dG9jb3JyZWN0aW9uT2NjdXJlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGVja2VkU3RhdGVD
aGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFu
Z2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVt
ZW50Q2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MYXlvdXRDb21wbGV0ZToKKyAgICAgICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiTGF5b3V0Q29tcGxldGUiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBs
ZXRlOgorICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVjdGVk
VGV4dENoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4
dENoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJWYWx1ZUNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hv
cjoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2Nyb2xsZWRUb0FuY2hvciI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25MaXZlUmVnaW9uQ2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiTGl2ZVJlZ2lvbkNoYW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RJdGVtU2VsZWN0
ZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVk
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJNZW51TGlzdFZhbHVlQ2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3Vu
dENoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdl
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25Sb3dDb2xsYXBzZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIlJvd0NvbGxhcHNlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKKyAgICAgICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93RXhwYW5kZWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSW52YWxp
ZFN0YXR1c0NoYW5nZWQ6CisgICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRT
dGF0dXNDaGFuZ2VkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYktpdDo6
V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblRleHRDaGFuZ2VkOgorICAgICAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJUZXh0Q2hhbmdlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRl
Q2hhbmdlZDoKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQXJpYUF0dHJpYnV0ZUNo
YW5nZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBub3RpZmljYXRpb25OYW1lID0gIlVua25vd25Ob3RpZmljYXRpb24iOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcigpLT5ub3RpZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5h
bWUpOworCisgICAgICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpLT5zaG91bGRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkpIHsKKyAgICAgICAgICAgIHN0
ZDo6c3RyaW5nIG1lc3NhZ2UoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAiKTsKKyAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gbm90aWZpY2F0aW9uTmFtZTsKKworICAgICAgICAgICAgV2ViS2l0
OjpXZWJOb2RlIG5vZGUgPSBvYmoubm9kZSgpOworICAgICAgICAgICAgaWYgKCFub2RlLmlzTnVs
bCgpICYmIG5vZGUuaXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0OjpX
ZWJFbGVtZW50IGVsZW1lbnQgPSBub2RlLnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKKyAgICAg
ICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSArPSAiIC0gaWQ6IjsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSArPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKS51dGY4KCkuZGF0YSgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRN
ZXNzYWdlKG1lc3NhZ2UgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFdlYlZpZXdDbGll
bnRJbXBsOjpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihvYmosIG5vdGlmaWNhdGlvbik7
CisgICAgfQorCitwcml2YXRlOgorICAgIFdlYlRlc3RJbnRlcmZhY2VzKiBtX3Rlc3RJbnRlcmZh
Y2VzOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsKK307CisKK30KKworI2VuZGlm
IC8vIFdlYlRlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcAppbmRleCA0YzQyZGMwZGQ3NDhkZDc4Nzc5MTEzMDZmNDZmOTU5MDU5OTU1ZjMwLi5j
ZWI1YmVjMzU1MjIzZWUwNzcxM2E4NjIzZTY4MzEzMTcyMGZlNmM1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJXZWJSdW50aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJUZXN0UHJveHkuaCIK
ICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViVmlld0hvc3QuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKQEAgLTc1MCw3ICs3NTEsMTIgQEAgV2Vi
Vmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJM
JiB1cmwpCiAKIFdlYlZpZXdIb3N0KiBUZXN0U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBX
ZWJLaXQ6OldlYlVSTCYgdXJsLCBEUlREZXZUb29sc0FnZW50KiBkZXZUb29sc0FnZW50KQogewot
ICAgIFdlYlZpZXdIb3N0KiBob3N0ID0gbmV3IFdlYlZpZXdIb3N0KHRoaXMpOworICAgIFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RQcm94eTxXZWJWaWV3SG9zdCwgVGVzdFNoZWxsKj4qIGhvc3QgPSBu
ZXcgV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5PFdlYlZpZXdIb3N0LCBUZXN0U2hlbGwqPih0
aGlzKTsKKyAgICBob3N0LT5zZXRJbnRlcmZhY2VzKG1fdGVzdEludGVyZmFjZXMuZ2V0KCkpOwor
ICAgIGlmIChtX3dlYlZpZXdIb3N0KQorICAgICAgICBob3N0LT5zZXREZWxlZ2F0ZShtX3dlYlZp
ZXdIb3N0LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIGhvc3QtPnNldERlbGVnYXRlKGhvc3Qp
OwogICAgIFdlYlZpZXcqIHZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoaG9zdCk7CiAgICAgdmlldy0+
c2V0UGVybWlzc2lvbkNsaWVudCh3ZWJQZXJtaXNzaW9ucygpKTsKICAgICB2aWV3LT5zZXREZXZU
b29sc0FnZW50Q2xpZW50KGRldlRvb2xzQWdlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDk4Yjg3YmY4ZTkwZWVhNDcyMDQzNTVjOTI2
YWNmNmZmYzczYWFhMGQuLjdlMmU2NzUwMzIwOWUwOTIxNWM4MWMwYTdiNjJiZjM0ODA5ODNlY2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAg
LTM5LDggKzM5LDYgQEAKICNpbmNsdWRlICJUZXN0TmF2aWdhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJUZXN0U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCi0jaW5jbHVk
ZSAiV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJET01NZXNzYWdlRXZlbnQuaCIKQEAg
LTYzNSw5NCArNjMzLDYgQEAgaW50IFdlYlZpZXdIb3N0OjpoaXN0b3J5Rm9yd2FyZExpc3RDb3Vu
dCgpCiAgICAgcmV0dXJuIG5hdmlnYXRpb25Db250cm9sbGVyKCktPmVudHJ5Q291bnQoKSAtIGN1
cnJlbnRJbmRleCAtIDE7CiB9CiAKLXZvaWQgV2ViVmlld0hvc3Q6OnBvc3RBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKG5vdGlmaWNhdGlv
biA9PSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQp
Ci0gICAgICAgIG1fc2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRF
bGVtZW50KG9iaik7Ci0KLSAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOwotICAgIHN3
aXRjaCAobm90aWZpY2F0aW9uKSB7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uQWN0aXZlRGVzY2VuZGFudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
QWN0aXZlRGVzY2VuZGFudENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3VyZWQ6Ci0gICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiQXV0b2NvcnJlY3Rpb25PY2N1cmVkIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0YXRlQ2hhbmdl
ZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFuZ2VkIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hpbGRy
ZW5DaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNoaWxkcmVuQ2hhbmdlZCI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZv
Y3VzZWRVSUVsZW1lbnRDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkZvY3Vz
ZWRVSUVsZW1lbnRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uTGF5b3V0Q29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiTGF5b3V0Q29tcGxldGUiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25Mb2FkQ29tcGxldGU6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiTG9hZENvbXBsZXRlIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlm
aWNhdGlvbk5hbWUgPSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRDaGFuZ2Vk
OgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25WYWx1ZUNo
YW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVmFsdWVDaGFuZ2VkIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRU
b0FuY2hvcjoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5jaG9yIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGl2
ZVJlZ2lvbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGl2ZVJlZ2lvbkNo
YW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25NZW51TGlzdEl0ZW1TZWxlY3RlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJN
ZW51TGlzdEl0ZW1TZWxlY3RlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgotICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIk1lbnVMaXN0VmFsdWVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgotICAgICAg
ICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblJvd0NvbGxhcHNlZDoKLSAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJSb3dDb2xsYXBzZWQiOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dFeHBhbmRlZDoKLSAgICAgICAg
bm90aWZpY2F0aW9uTmFtZSA9ICJSb3dFeHBhbmRlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkludmFsaWRTdGF0dXNDaGFuZ2VkOgotICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFuZ2VkIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVGV4dENoYW5nZWQ6
Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVGV4dENoYW5nZWQiOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hh
bmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBcmlhQXR0cmlidXRlQ2hhbmdlZCI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiVW5rbm93bk5vdGlmaWNhdGlvbiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIG1f
c2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9i
aiwgbm90aWZpY2F0aW9uTmFtZSk7Ci0KLSAgICBpZiAobV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKS0+c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7Ci0gICAgICAgIHBy
aW50ZigiQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbiAtICVzIiwgbm90aWZpY2F0aW9uTmFtZSk7
Ci0KLSAgICAgICAgV2ViS2l0OjpXZWJOb2RlIG5vZGUgPSBvYmoubm9kZSgpOwotICAgICAgICBp
ZiAoIW5vZGUuaXNOdWxsKCkgJiYgbm9kZS5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAg
IFdlYktpdDo6V2ViRWxlbWVudCBlbGVtZW50ID0gbm9kZS50bzxXZWJLaXQ6OldlYkVsZW1lbnQ+
KCk7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoImlkIikpCi0gICAgICAg
ICAgICAgICAgcHJpbnRmKCIgLSBpZDolcyIsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgIH0K
LX0KLQogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogV2ViTm90aWZpY2F0aW9uUHJlc2VudGVy
KiBXZWJWaWV3SG9zdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDg2MDA3MTk0YjA0MzU2NzJjMDE0
OTk5ZDU4NjA1M2VjZmY1ZjhiNGYuLjFlY2M0NTZhOTNjZjI3NGYwYTQ5ZTEzMDZmMWY4ZDkyMDFh
MzZlMzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApA
QCAtMTg4LDcgKzE4OCw2IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2Vi
Vmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2
b2lkIG5hdmlnYXRlQmFja0ZvcndhcmRTb29uKGludCBvZmZzZXQpOwogICAgIHZpcnR1YWwgaW50
IGhpc3RvcnlCYWNrTGlzdENvdW50KCk7CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUZvcndhcmRM
aXN0Q291bnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b24oY29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgV2ViS2l0OjpXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2
aXJ0dWFsIFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173093</attachid>
            <date>2012-11-08 12:23:49 -0800</date>
            <delta_ts>2012-11-09 00:35:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101452-20121108212158.patch</filename>
            <type>text/plain</type>
            <size>19198</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzMjgyYTdkMmQyZDMxZTU4Nzc4NGQyY2RjMGUxYWVk
ZGMyNWZjYS4uODhjMTI1ODg3MTM5NzUwM2I1ZmMwYzNhNjVlZjllNTVmYWU1NTE2OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgV2ViVGVzdFByb3h5IGlzIHRl
bXBsYXRlLCBzbyBpdCBjYW4gZGVyaXZlIGZyb20gYW4gaW1wbGVtZW50YXRpb24KKyAgICAgICAg
b2YgdGhlIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlLiBUaGF0IHdheSwgV2ViVGVzdFByb3h5IGNh
biBob29rIGludG8KKyAgICAgICAgaW5kaXZpZHVhbCBtZXRob2RzIG9mIHRoZSBXZWJWaWV3Q2xp
ZW50IGFuZCBmb3J3YXJkIGFsbCB0aGUgcmVzdCB0byB0aGUKKyAgICAgICAgYWN0dWFsIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIGhvdyBJIHdhbnQgdG8gdXNlIHRo
aXMsIEkgbW92ZWQgdGhlCisgICAgICAgIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG1l
dGhvZCBmcm9tIFdlYlZpZXdIb3N0IHRvIFdlYlRlc3RQcm94eS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFBy
b3h5QmFzZSk6CisgICAgICAgIChXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViVGVzdFByb3h5OjpXZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
V2ViVGVzdFByb3h5Ojp+V2ViVGVzdFByb3h5KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RQcm94eTo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHlCYXNlOjpXZWJUZXN0UHJveHlCYXNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RQcm94eUJhc2U6On5XZWJUZXN0UHJveHlCYXNlKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OnNldEludGVyZmFjZXMpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6ZG9Qb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoK
KyAgICAgICAgKFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAx
Mi0xMS0wOCAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBpbnRlbC5jb20+CiAKICAgICAgICAg
W0VGTF0gVHVybiBvbiBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgYnkgZGVmYXVsdApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXggZGQ3NjhkMDQ5NTcyNmYy
YjY2MDdmODBmOTE3NTdmZGJkMjFmNzc5OS4uYWM0ZDJhNjIyYmVlMDdhYjY2ZWY4MjJhOTdmYjM0
YWEzY2ZlY2FmYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBA
IC03MSw2ICs3MSw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViRXZlbnRTZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGFzay5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJUZXN0SW50ZXJmYWNlcy5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJUZXN0UHJveHkuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudENocm9taXVtLmNwcCcsCkBAIC05NSw2ICs5Niw3IEBACiAgICAgICAgICAgICAnY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViRXZlbnRTZW5kZXIuY3BwJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUYXNrLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKKyAgICAgICAgICAgICdjaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwJywKICAgICAgICAgXSwKICAgICAg
ICAgJ3Rlc3RfcGx1Z2luX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3ROZXRzY2FwZVBsdWdJ
bi9QbHVnaW5PYmplY3QuY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTBkZDg1NmU1NDZlZTk4OGNjYzFjZmNlYTljMzA2ZDg0MDg2NzU1MAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dl
YlRlc3RQcm94eS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlRlc3RQcm94eV9oCisjZGVm
aW5lIFdlYlRlc3RQcm94eV9oCisKKyNpbmNsdWRlICJXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFz
cyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OworfQorCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7
CisKK2NsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKK2NsYXNzIFdlYlRlc3RJbnRlcmZhY2VzOworCitj
bGFzcyBXZWJUZXN0UHJveHlCYXNlIHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEludGVyZmFjZXMo
V2ViVGVzdEludGVyZmFjZXMqKTsKKyAgICB2b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0
ZSopOworCitwcm90ZWN0ZWQ6CisgICAgV2ViVGVzdFByb3h5QmFzZSgpOworICAgIH5XZWJUZXN0
UHJveHlCYXNlKCk7CisKKyAgICB2b2lkIGRvUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24o
Y29uc3QgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgV2ViS2l0OjpXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKTsKKworcHJpdmF0ZToKKyAgICBXZWJUZXN0SW50ZXJmYWNlcyog
bV90ZXN0SW50ZXJmYWNlczsKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7Cit9Owor
CisvLyBVc2UgdGhpcyB0ZW1wbGF0ZSB0byBpbmplY3QgbWV0aG9kcyBpbnRvIHlvdXIgV2ViVmll
d0NsaWVudCBpbXBsZW1lbnRhdGlvbgorLy8gcmVxdWlyZWQgZm9yIHRoZSBydW5uaW5nIGxheW91
dCB0ZXN0cy4KK3RlbXBsYXRlPGNsYXNzIFdlYlZpZXdDbGllbnRJbXBsLCB0eXBlbmFtZSBUPgor
Y2xhc3MgV2ViVGVzdFByb3h5IDogcHVibGljIFdlYlZpZXdDbGllbnRJbXBsLCBwdWJsaWMgV2Vi
VGVzdFByb3h5QmFzZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViVGVzdFByb3h5KFQgdCkK
KyAgICAgICAgOiBXZWJWaWV3Q2xpZW50SW1wbCh0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5XZWJUZXN0UHJveHkoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG9i
aiwgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKKyAg
ICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRvUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb24ob2JqLCBub3RpZmljYXRpb24pOworICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6cG9z
dEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24ob2JqLCBub3RpZmljYXRpb24pOworICAgIH0KK307
CisKK30KKworI2VuZGlmIC8vIFdlYlRlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDY2MWM0MmY3NjNmMjk4ZWUxOGZkZTliYjY5OTk1Y2Y5MWY3ZmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViVGVzdFByb3h5LmNwcApAQCAtMCwwICsxLDE1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJUZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbi5o
IgorI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5o
IgorI2luY2x1ZGUgIldlYlRlc3RJbnRlcmZhY2VzLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
Q1N0cmluZy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lciB7CisKK1dlYlRlc3RQcm94eUJhc2U6OldlYlRlc3RQcm94eUJhc2UoKQorICAgIDog
bV90ZXN0SW50ZXJmYWNlcygwKQorICAgICwgbV9kZWxlZ2F0ZSgwKQoreworfQorCitXZWJUZXN0
UHJveHlCYXNlOjp+V2ViVGVzdFByb3h5QmFzZSgpCit7Cit9CisKK3ZvaWQgV2ViVGVzdFByb3h5
QmFzZTo6c2V0SW50ZXJmYWNlcyhXZWJUZXN0SW50ZXJmYWNlcyogaW50ZXJmYWNlcykKK3sKKyAg
ICBtX3Rlc3RJbnRlcmZhY2VzID0gaW50ZXJmYWNlczsKK30KKwordm9pZCBXZWJUZXN0UHJveHlC
YXNlOjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQoreworICAgIG1fZGVs
ZWdhdGUgPSBkZWxlZ2F0ZTsKK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkb1Bvc3RBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqLCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gbm90aWZpY2F0aW9u
KQoreworICAgIGlmIChub3RpZmljYXRpb24gPT0gV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQpCisgICAgICAgIG1fdGVzdEludGVyZmFj
ZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNldEZvY3VzZWRFbGVtZW50KG9iaik7CisK
KyAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lOworICAgIHN3aXRjaCAobm90aWZpY2F0
aW9uKSB7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3Rp
dmVEZXNjZW5kYW50Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVE
ZXNjZW5kYW50Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQXV0b2NvcnJlY3Rpb25PY2N1cmVkOgorICAgICAgICBu
b3RpZmljYXRpb25OYW1lID0gIkF1dG9jb3JyZWN0aW9uT2NjdXJlZCI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQ2hlY2tlZFN0
YXRlQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGVja2VkU3RhdGVDaGFu
Z2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAi
Q2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZDoKKyAgICAgICAg
bm90aWZpY2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTGF5b3V0
Q29tcGxldGU6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTGF5b3V0Q29tcGxldGUiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkxvYWRDb21wbGV0ZToKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxl
dGUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZFRleHRDaGFuZ2Vk
OgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlNlbGVjdGVkVGV4dENoYW5nZWQiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
blZhbHVlQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJWYWx1ZUNoYW5nZWQi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvblNjcm9sbGVkVG9BbmNob3I6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2Ny
b2xsZWRUb0FuY2hvciI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uTGl2ZVJlZ2lvbkNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiTGl2ZVJlZ2lvbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0SXRlbVNlbGVjdGVk
OgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVkIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25NZW51TGlzdFZhbHVlQ2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJNZW51
TGlzdFZhbHVlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q291bnRDaGFuZ2VkOgorICAgICAgICBub3RpZmlj
YXRpb25OYW1lID0gIlJvd0NvdW50Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93Q29sbGFwc2VkOgorICAgICAg
ICBub3RpZmljYXRpb25OYW1lID0gIlJvd0NvbGxhcHNlZCI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93RXhwYW5kZWQ6Cisg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93RXhwYW5kZWQiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkludmFsaWRTdGF0
dXNDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkludmFsaWRTdGF0dXNDaGFu
Z2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25UZXh0Q2hhbmdlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJUZXh0
Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uQXJpYUF0dHJpYnV0ZUNoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiQXJpYUF0dHJpYnV0ZUNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlVua25vd25Ob3RpZmljYXRpb24iOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBtX3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcigpLT5ub3RpZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5h
bWUpOworCisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KCktPnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoKSkgeworICAgICAgICBzdGQ6OnN0cmlu
ZyBtZXNzYWdlKCJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIC0gIik7CisgICAgICAgIG1lc3Nh
Z2UgKz0gbm90aWZpY2F0aW9uTmFtZTsKKworICAgICAgICBXZWJLaXQ6OldlYk5vZGUgbm9kZSA9
IG9iai5ub2RlKCk7CisgICAgICAgIGlmICghbm9kZS5pc051bGwoKSAmJiBub2RlLmlzRWxlbWVu
dE5vZGUoKSkgeworICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50IGVsZW1lbnQgPSBub2Rl
LnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50Lmhhc0F0
dHJpYnV0ZSgiaWQiKSkgeworICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiAtIGlkOiI7Cisg
ICAgICAgICAgICAgICAgbWVzc2FnZSArPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKS51dGY4
KCkuZGF0YSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbV9kZWxlZ2F0
ZS0+cHJpbnRNZXNzYWdlKG1lc3NhZ2UgKyAiXG4iKTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDRjNDJkYzBkZDc0OGRk
Nzg3NzkxMTMwNmY0NmY5NTkwNTk5NTVmMzAuLmNlYjViZWMzNTUyMjNlZTA3NzEzYTg2MjNlNjgz
MTMxNzIwZmU2YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlJ1bnRpbWVGZWF0dXJlcy5oIgog
I2luY2x1ZGUgIldlYlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNs
dWRlICJXZWJWaWV3SG9zdC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkFycmF5QnVmZmVyVmll
dy5oIgpAQCAtNzUwLDcgKzc1MSwxMiBAQCBXZWJWaWV3SG9zdCogVGVzdFNoZWxsOjpjcmVhdGVO
ZXdXaW5kb3coY29uc3QgV2ViS2l0OjpXZWJVUkwmIHVybCkKIAogV2ViVmlld0hvc3QqIFRlc3RT
aGVsbDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwsIERSVERldlRv
b2xzQWdlbnQqIGRldlRvb2xzQWdlbnQpCiB7Ci0gICAgV2ViVmlld0hvc3QqIGhvc3QgPSBuZXcg
V2ViVmlld0hvc3QodGhpcyk7CisgICAgV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5PFdlYlZp
ZXdIb3N0LCBUZXN0U2hlbGwqPiogaG9zdCA9IG5ldyBXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJv
eHk8V2ViVmlld0hvc3QsIFRlc3RTaGVsbCo+KHRoaXMpOworICAgIGhvc3QtPnNldEludGVyZmFj
ZXMobV90ZXN0SW50ZXJmYWNlcy5nZXQoKSk7CisgICAgaWYgKG1fd2ViVmlld0hvc3QpCisgICAg
ICAgIGhvc3QtPnNldERlbGVnYXRlKG1fd2ViVmlld0hvc3QuZ2V0KCkpOworICAgIGVsc2UKKyAg
ICAgICAgaG9zdC0+c2V0RGVsZWdhdGUoaG9zdCk7CiAgICAgV2ViVmlldyogdmlldyA9IFdlYlZp
ZXc6OmNyZWF0ZShob3N0KTsKICAgICB2aWV3LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHdlYlBlcm1p
c3Npb25zKCkpOwogICAgIHZpZXctPnNldERldlRvb2xzQWdlbnRDbGllbnQoZGV2VG9vbHNBZ2Vu
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5k
ZXggOThiODdiZjhlOTBlZWE0NzIwNDM1NWM5MjZhY2Y2ZmZjNzNhYWEwZC4uN2UyZTY3NTAzMjA5
ZTA5MjE1YzgxYzBhN2I2MmJmMzQ4MDk4M2VjZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMzksOCArMzksNiBAQAogI2luY2x1ZGUgIlRl
c3ROYXZpZ2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1
ZGUgIlRlc3RXZWJQbHVnaW4uaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJD
b25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51RGF0YS5oIgogI2luY2x1
ZGUgIldlYkRPTU1lc3NhZ2VFdmVudC5oIgpAQCAtNjM1LDk0ICs2MzMsNiBAQCBpbnQgV2ViVmll
d0hvc3Q6Omhpc3RvcnlGb3J3YXJkTGlzdENvdW50KCkKICAgICByZXR1cm4gbmF2aWdhdGlvbkNv
bnRyb2xsZXIoKS0+ZW50cnlDb3VudCgpIC0gY3VycmVudEluZGV4IC0gMTsKIH0KIAotdm9pZCBX
ZWJWaWV3SG9zdDo6cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdCYgb2JqLCBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uIG5vdGlmaWNh
dGlvbikKLXsKLSAgICBpZiAobm90aWZpY2F0aW9uID09IFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCkKLSAgICAgICAgbV9zaGVsbC0+YWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEVsZW1lbnQob2JqKTsKLQotICAgIGNvbnN0IGNo
YXIqIG5vdGlmaWNhdGlvbk5hbWU7Ci0gICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKLSAgICBj
YXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BY3RpdmVEZXNjZW5kYW50Q2hhbmdlZDoK
LSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkF1dG9j
b3JyZWN0aW9uT2NjdXJlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBdXRvY29ycmVj
dGlvbk9jY3VyZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25DaGVja2VkU3RhdGVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIkNoZWNrZWRTdGF0ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25DaGlsZHJlbkNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiQ2hpbGRyZW5DaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uRm9jdXNlZFVJRWxlbWVudENoYW5nZWQ6Ci0gICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiRm9jdXNlZFVJRWxlbWVudENoYW5nZWQiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MYXlvdXRDb21w
bGV0ZToKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMYXlvdXRDb21wbGV0ZSI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxvYWRDb21w
bGV0ZToKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMb2FkQ29tcGxldGUiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25TZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3RlZENoaWxk
cmVuQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvblNlbGVjdGVkVGV4dENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUg
PSAiU2VsZWN0ZWRUZXh0Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvblZhbHVlQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJWYWx1ZUNoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25TY3JvbGxlZFRvQW5jaG9yOgotICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIlNjcm9sbGVkVG9BbmNob3IiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MaXZlUmVnaW9uQ2hhbmdlZDoKLSAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJMaXZlUmVnaW9uQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0SXRlbVNlbGVjdGVkOgot
ICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIk1lbnVMaXN0SXRlbVNlbGVjdGVkIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RW
YWx1ZUNoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RWYWx1ZUNo
YW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25Sb3dDb3VudENoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q291
bnRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uUm93Q29sbGFwc2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0Nv
bGxhcHNlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvblJvd0V4cGFuZGVkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlJvd0V4cGFu
ZGVkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSW52YWxpZFN0YXR1c0NoYW5nZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiSW52
YWxpZFN0YXR1c0NoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25UZXh0Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9
ICJUZXh0Q2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkFyaWFBdHRyaWJ1dGVDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkFyaWFBdHRyaWJ1dGVDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJVbmtub3duTm90aWZpY2F0aW9uIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgbV9zaGVsbC0+YWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIoKS0+bm90aWZpY2F0aW9uUmVjZWl2ZWQob2JqLCBub3RpZmljYXRpb25OYW1lKTsKLQotICAg
IGlmIChtX3NoZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5zaG91bGRMb2dBY2Nlc3Np
YmlsaXR5RXZlbnRzKCkpIHsKLSAgICAgICAgcHJpbnRmKCJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uIC0gJXMiLCBub3RpZmljYXRpb25OYW1lKTsKLQotICAgICAgICBXZWJLaXQ6OldlYk5vZGUg
bm9kZSA9IG9iai5ub2RlKCk7Ci0gICAgICAgIGlmICghbm9kZS5pc051bGwoKSAmJiBub2RlLmlz
RWxlbWVudE5vZGUoKSkgewotICAgICAgICAgICAgV2ViS2l0OjpXZWJFbGVtZW50IGVsZW1lbnQg
PSBub2RlLnRvPFdlYktpdDo6V2ViRWxlbWVudD4oKTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50
Lmhhc0F0dHJpYnV0ZSgiaWQiKSkKLSAgICAgICAgICAgICAgICBwcmludGYoIiAtIGlkOiVzIiwg
ZWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgfQotfQotCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCiBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIFdlYlZpZXdIb3N0Ojpub3RpZmljYXRpb25Q
cmVzZW50ZXIoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmgKaW5kZXggODYwMDcxOTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0Zi4uMWVjYzQ1
NmE5M2NmMjc0ZjBhNDllMTMwNmYxZjhkOTIwMWEzNmUzNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xODgsNyArMTg4LDYgQEAgY2xhc3MgV2Vi
Vmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpX
ZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGVCYWNrRm9yd2FyZFNvb24o
aW50IG9mZnNldCk7CiAgICAgdmlydHVhbCBpbnQgaGlzdG9yeUJhY2tMaXN0Q291bnQoKTsKICAg
ICB2aXJ0dWFsIGludCBoaXN0b3J5Rm9yd2FyZExpc3RDb3VudCgpOwotICAgIHZpcnR1YWwgdm9p
ZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2li
aWxpdHlPYmplY3QmLCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOwogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173227</attachid>
            <date>2012-11-09 00:35:44 -0800</date>
            <delta_ts>2012-11-09 01:01:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101452-20121109093351.patch</filename>
            <type>text/plain</type>
            <size>19212</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjM1MWRhNzgxY2E4NmI0MGQxMWU3MDk5ZmJjZjE2ZTlj
OWNiOTI4YS4uMDJhMGZiNDk4NzM5NDU4OGQyMjE3ZjI5Njc5NGJmOGJlNjEwZmVjMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEyLTExLTA4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIGEgV2ViVGVzdFByb3h5IHRvIG92ZXJyaWRl
IG1ldGhvZHMgaW4gV2ViVmlld0NsaWVudCBmb3IgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBXZWJUZXN0UHJveHkgaXMgdGVtcGxh
dGUsIHNvIGl0IGNhbiBkZXJpdmUgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBvZiB0
aGUgV2ViVmlld0NsaWVudCBpbnRlcmZhY2UuIFRoYXQgd2F5LCBXZWJUZXN0UHJveHkgY2FuIGhv
b2sgaW50bworICAgICAgICBpbmRpdmlkdWFsIG1ldGhvZHMgb2YgdGhlIFdlYlZpZXdDbGllbnQg
YW5kIGZvcndhcmQgYWxsIHRoZSByZXN0IHRvIHRoZQorICAgICAgICBhY3R1YWwgaW1wbGVtZW50
YXRpb24uCisKKyAgICAgICAgVG8gZGVtb25zdHJhdGUgaG93IEkgd2FudCB0byB1c2UgdGhpcywg
SSBtb3ZlZCB0aGUKKyAgICAgICAgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gbWV0aG9k
IGZyb20gV2ViVmlld0hvc3QgdG8gV2ViVGVzdFByb3h5LgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UHJveHlC
YXNlKToKKyAgICAgICAgKFdlYlRlc3RQcm94eSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHk6OldlYlRlc3RQcm94eSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UHJveHk6On5XZWJUZXN0UHJveHkpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFByb3h5Ojpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbik6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eUJhc2U6OldlYlRlc3RQcm94eUJhc2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
V2ViVGVzdFByb3h5QmFzZTo6fldlYlRlc3RQcm94eUJhc2UpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6c2V0SW50ZXJmYWNlcyk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpkb1Bvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAg
ICAgICAoVGVzdFNoZWxsOjpjcmVhdGVOZXdXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmlld0hvc3QpOgorCiAyMDEyLTEx
LTA4ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAaW50ZWwuY29tPgog
CiAgICAgICAgIFtFRkxdIGFib3V0OmJsYW5rIHNob3VsZCBkaXNwbGF5IHRoZSBibGFuayBwYWdl
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBkZDc2OGQwNDk1
NzI2ZjJiNjYwN2Y4MGY5MTc1N2ZkYmQyMWY3Nzk5Li5hYzRkMmE2MjJiZWUwN2FiNjZlZjgyMmE5
N2ZiMzRhYTNjZmVjYWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5
cGkKQEAgLTcxLDYgKzcxLDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJFdmVudFNlbmRlci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUYXNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3RJbnRlcmZhY2VzLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3RQcm94eS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1
bS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Q2hyb21pdW0uY3BwJywKQEAgLTk1LDYgKzk2LDcgQEAKICAgICAgICAgICAgICdj
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJFdmVudFNlbmRlci5jcHAnLAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRhc2suY3BwJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAnLAorICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAnLAogICAgICAgICBdLAog
ICAgICAgICAndGVzdF9wbHVnaW5fZmlsZXMnOiBbCiAgICAgICAgICAgICAnVGVzdE5ldHNjYXBl
UGx1Z0luL1BsdWdpbk9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MGI4ZmYzOTA0YTA3MTRhOTk2NTlmOGEwMGY4ODUyYjUyZjU3MDFlCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdFByb3h5LmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVGVzdFByb3h5X2gK
KyNkZWZpbmUgV2ViVGVzdFByb3h5X2gKKworI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJUZXN0UnVu
bmVyIHsKKworY2xhc3MgV2ViVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdEludGVyZmFjZXM7
CisKK2NsYXNzIFdlYlRlc3RQcm94eUJhc2UgeworcHVibGljOgorICAgIHZvaWQgc2V0SW50ZXJm
YWNlcyhXZWJUZXN0SW50ZXJmYWNlcyopOworICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERl
bGVnYXRlKik7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJUZXN0UHJveHlCYXNlKCk7CisgICAgfldl
YlRlc3RQcm94eUJhc2UoKTsKKworICAgIHZvaWQgZG9Qb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmLCBXZWJLaXQ6OldlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24pOworCitwcml2YXRlOgorICAgIFdlYlRlc3RJbnRlcmZh
Y2VzKiBtX3Rlc3RJbnRlcmZhY2VzOworICAgIFdlYlRlc3REZWxlZ2F0ZSogbV9kZWxlZ2F0ZTsK
K307CisKKy8vIFVzZSB0aGlzIHRlbXBsYXRlIHRvIGluamVjdCBtZXRob2RzIGludG8geW91ciBX
ZWJWaWV3Q2xpZW50IGltcGxlbWVudGF0aW9uCisvLyByZXF1aXJlZCBmb3IgdGhlIHJ1bm5pbmcg
bGF5b3V0IHRlc3RzLgordGVtcGxhdGU8Y2xhc3MgV2ViVmlld0NsaWVudEltcGwsIHR5cGVuYW1l
IFQ+CitjbGFzcyBXZWJUZXN0UHJveHkgOiBwdWJsaWMgV2ViVmlld0NsaWVudEltcGwsIHB1Ymxp
YyBXZWJUZXN0UHJveHlCYXNlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJUZXN0UHJveHko
VCB0KQorICAgICAgICA6IFdlYlZpZXdDbGllbnRJbXBsKHQpCisgICAgeworICAgIH0KKworICAg
IHZpcnR1YWwgfldlYlRlc3RQcm94eSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqZWN0LCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gbm90aWZpY2F0
aW9uKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZG9Qb3N0QWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbihvYmplY3QsIG5vdGlmaWNhdGlvbik7CisgICAgICAgIFdlYlZpZXdDbGll
bnRJbXBsOjpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihvYmplY3QsIG5vdGlmaWNhdGlv
bik7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gV2ViVGVzdFByb3h5X2gKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQ
cm94eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNjYxYzQyZjc2M2YyOThlZTE4ZmRlOWJiNjk5
OTVjZjkxZjdmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsMTU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRlc3RQcm94eS5oIgorCisjaW5jbHVkZSAi
V2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2lu
Y2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJOb2RlLmgiCisjaW5jbHVkZSAiV2Vi
VGVzdERlbGVnYXRlLmgiCisjaW5jbHVkZSAiV2ViVGVzdEludGVyZmFjZXMuaCIKKyNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJDU3RyaW5nLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworV2ViVGVzdFByb3h5QmFzZTo6V2ViVGVzdFByb3h5
QmFzZSgpCisgICAgOiBtX3Rlc3RJbnRlcmZhY2VzKDApCisgICAgLCBtX2RlbGVnYXRlKDApCit7
Cit9CisKK1dlYlRlc3RQcm94eUJhc2U6On5XZWJUZXN0UHJveHlCYXNlKCkKK3sKK30KKwordm9p
ZCBXZWJUZXN0UHJveHlCYXNlOjpzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRlcmZhY2VzKiBpbnRl
cmZhY2VzKQoreworICAgIG1fdGVzdEludGVyZmFjZXMgPSBpbnRlcmZhY2VzOworfQorCit2b2lk
IFdlYlRlc3RQcm94eUJhc2U6OnNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUp
Cit7CisgICAgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworfQorCit2b2lkIFdlYlRlc3RQcm94eUJh
c2U6OmRvUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oY29uc3QgV2ViS2l0OjpXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmosIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
biBub3RpZmljYXRpb24pCit7CisgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBXZWJLaXQ6OldlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCkKKyAgICAgICAg
bV90ZXN0SW50ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEVs
ZW1lbnQob2JqKTsKKworICAgIGNvbnN0IGNoYXIqIG5vdGlmaWNhdGlvbk5hbWU7CisgICAgc3dp
dGNoIChub3RpZmljYXRpb24pIHsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25O
YW1lID0gIkFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BdXRvY29ycmVjdGlvbk9jY3Vy
ZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQXV0b2NvcnJlY3Rpb25PY2N1cmVkIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25DaGVja2VkU3RhdGVDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkNo
ZWNrZWRTdGF0ZUNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKKyAgICAgICAgbm90aWZp
Y2F0aW9uTmFtZSA9ICJDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFu
Z2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25MYXlvdXRDb21wbGV0ZToKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMYXlv
dXRDb21wbGV0ZSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uTG9hZENvbXBsZXRlOgorICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIkxvYWRDb21wbGV0ZSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CisgICAgICAg
IG5vdGlmaWNhdGlvbk5hbWUgPSAiU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNlbGVj
dGVkVGV4dENoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2VsZWN0ZWRUZXh0
Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
IlZhbHVlQ2hhbmdlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uU2Nyb2xsZWRUb0FuY2hvcjoKKyAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJTY3JvbGxlZFRvQW5jaG9yIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25MaXZlUmVnaW9uQ2hhbmdlZDoKKyAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJMaXZlUmVnaW9uQ2hhbmdlZCI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxp
c3RJdGVtU2VsZWN0ZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RJdGVt
U2VsZWN0ZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbk1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIk1lbnVMaXN0VmFsdWVDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb3VudENoYW5nZWQ6Cisg
ICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q291bnRDaGFuZ2VkIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb2xs
YXBzZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiUm93Q29sbGFwc2VkIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25S
b3dFeHBhbmRlZDoKKyAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJSb3dFeHBhbmRlZCI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSW52YWxpZFN0YXR1c0NoYW5nZWQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiSW52
YWxpZFN0YXR1c0NoYW5nZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblRleHRDaGFuZ2VkOgorICAgICAgICBub3RpZmljYXRp
b25OYW1lID0gIlRleHRDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6
OldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25BcmlhQXR0cmlidXRlQ2hhbmdlZDoKKyAgICAg
ICAgbm90aWZpY2F0aW9uTmFtZSA9ICJBcmlhQXR0cmlidXRlQ2hhbmdlZCI7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiVW5rbm93bk5v
dGlmaWNhdGlvbiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIG1fdGVzdEludGVyZmFj
ZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPm5vdGlmaWNhdGlvblJlY2VpdmVkKG9iaiwg
bm90aWZpY2F0aW9uTmFtZSk7CisKKyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+YWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIoKS0+c2hvdWxkTG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpKSB7CisgICAg
ICAgIHN0ZDo6c3RyaW5nIG1lc3NhZ2UoIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24gLSAiKTsK
KyAgICAgICAgbWVzc2FnZSArPSBub3RpZmljYXRpb25OYW1lOworCisgICAgICAgIFdlYktpdDo6
V2ViTm9kZSBub2RlID0gb2JqLm5vZGUoKTsKKyAgICAgICAgaWYgKCFub2RlLmlzTnVsbCgpICYm
IG5vZGUuaXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICBXZWJLaXQ6OldlYkVsZW1lbnQg
ZWxlbWVudCA9IG5vZGUudG88V2ViS2l0OjpXZWJFbGVtZW50PigpOworICAgICAgICAgICAgaWYg
KGVsZW1lbnQuaGFzQXR0cmlidXRlKCJpZCIpKSB7CisgICAgICAgICAgICAgICAgbWVzc2FnZSAr
PSAiIC0gaWQ6IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpLnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UobWVzc2FnZSArICJcbiIpOworICAgIH0KK30K
KworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXgg
MmJjY2I2YTMyYWU3MzgzMDE5MDM4ZmJlYjBhYmJiY2UwMDRhNTIyZC4uNzlmY2ExN2JjYWRiNzVm
YmVhN2U4MzI4YjBiNTgxNzlmNmU3MzA5YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViUnVudGlt
ZUZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IldlYlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViVGVzdFByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
Vmlldy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
QXJyYXlCdWZmZXJWaWV3LmgiCkBAIC03NTEsNyArNzUyLDEyIEBAIFdlYlZpZXdIb3N0KiBUZXN0
U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsKQogCiBXZWJW
aWV3SG9zdCogVGVzdFNoZWxsOjpjcmVhdGVOZXdXaW5kb3coY29uc3QgV2ViS2l0OjpXZWJVUkwm
IHVybCwgRFJURGV2VG9vbHNBZ2VudCogZGV2VG9vbHNBZ2VudCkKIHsKLSAgICBXZWJWaWV3SG9z
dCogaG9zdCA9IG5ldyBXZWJWaWV3SG9zdCh0aGlzKTsKKyAgICBXZWJUZXN0UnVubmVyOjpXZWJU
ZXN0UHJveHk8V2ViVmlld0hvc3QsIFRlc3RTaGVsbCo+KiBob3N0ID0gbmV3IFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RQcm94eTxXZWJWaWV3SG9zdCwgVGVzdFNoZWxsKj4odGhpcyk7CisgICAgaG9z
dC0+c2V0SW50ZXJmYWNlcyhtX3Rlc3RJbnRlcmZhY2VzLmdldCgpKTsKKyAgICBpZiAobV93ZWJW
aWV3SG9zdCkKKyAgICAgICAgaG9zdC0+c2V0RGVsZWdhdGUobV93ZWJWaWV3SG9zdC5nZXQoKSk7
CisgICAgZWxzZQorICAgICAgICBob3N0LT5zZXREZWxlZ2F0ZShob3N0KTsKICAgICBXZWJWaWV3
KiB2aWV3ID0gV2ViVmlldzo6Y3JlYXRlKGhvc3QpOwogICAgIHZpZXctPnNldFBlcm1pc3Npb25D
bGllbnQod2ViUGVybWlzc2lvbnMoKSk7CiAgICAgdmlldy0+c2V0RGV2VG9vbHNBZ2VudENsaWVu
dChkZXZUb29sc0FnZW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAppbmRleCA5OGI4N2JmOGU5MGVlYTQ3MjA0MzU1YzkyNmFjZjZmZmM3M2FhYTBk
Li43ZTJlNjc1MDMyMDllMDkyMTVjODFjMGE3YjYyYmYzNDgwOTgzZWNmIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0zOSw4ICszOSw2IEBA
CiAjaW5jbHVkZSAiVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdFNo
ZWxsLmgiCiAjaW5jbHVkZSAiVGVzdFdlYlBsdWdpbi5oIgotI2luY2x1ZGUgIldlYkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgog
I2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVE
YXRhLmgiCiAjaW5jbHVkZSAiV2ViRE9NTWVzc2FnZUV2ZW50LmgiCkBAIC02MzUsOTQgKzYzMyw2
IEBAIGludCBXZWJWaWV3SG9zdDo6aGlzdG9yeUZvcndhcmRMaXN0Q291bnQoKQogICAgIHJldHVy
biBuYXZpZ2F0aW9uQ29udHJvbGxlcigpLT5lbnRyeUNvdW50KCkgLSBjdXJyZW50SW5kZXggLSAx
OwogfQogCi12b2lkIFdlYlZpZXdIb3N0Ojpwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihj
b25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb24gbm90aWZpY2F0aW9uKQotewotICAgIGlmIChub3RpZmljYXRpb24gPT0gV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKQotICAgICAgICBtX3No
ZWxsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5zZXRGb2N1c2VkRWxlbWVudChvYmopOwot
Ci0gICAgY29uc3QgY2hhciogbm90aWZpY2F0aW9uTmFtZTsKLSAgICBzd2l0Y2ggKG5vdGlmaWNh
dGlvbikgewotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkFjdGl2ZURlc2Nl
bmRhbnRDaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkFjdGl2ZURlc2NlbmRh
bnRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uQXV0b2NvcnJlY3Rpb25PY2N1cmVkOgotICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIkF1dG9jb3JyZWN0aW9uT2NjdXJlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Vi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkNoZWNrZWRTdGF0ZUNoYW5nZWQ6Ci0gICAgICAgIG5v
dGlmaWNhdGlvbk5hbWUgPSAiQ2hlY2tlZFN0YXRlQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkNoaWxkcmVuQ2hhbmdlZDoKLSAg
ICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJDaGlsZHJlbkNoYW5nZWQiOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25Gb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkxheW91dENvbXBsZXRlOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkxheW91dENv
bXBsZXRlIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uTG9hZENvbXBsZXRlOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkxvYWRDb21w
bGV0ZSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvblNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkOgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0g
IlNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uU2VsZWN0ZWRUZXh0Q2hhbmdlZDoKLSAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJTZWxlY3RlZFRleHRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uVmFsdWVDaGFuZ2VkOgotICAgICAg
ICBub3RpZmljYXRpb25OYW1lID0gIlZhbHVlQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblNjcm9sbGVkVG9BbmNob3I6Ci0gICAg
ICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiU2Nyb2xsZWRUb0FuY2hvciI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkxpdmVSZWdpb25DaGFuZ2Vk
OgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkxpdmVSZWdpb25DaGFuZ2VkIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uTWVudUxpc3RJ
dGVtU2VsZWN0ZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiTWVudUxpc3RJdGVtU2Vs
ZWN0ZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25NZW51TGlzdFZhbHVlQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJN
ZW51TGlzdFZhbHVlQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvblJvd0NvdW50Q2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0aW9u
TmFtZSA9ICJSb3dDb3VudENoYW5nZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25Sb3dDb2xsYXBzZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlv
bk5hbWUgPSAiUm93Q29sbGFwc2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uUm93RXhwYW5kZWQ6Ci0gICAgICAgIG5vdGlmaWNhdGlvbk5h
bWUgPSAiUm93RXhwYW5kZWQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25JbnZhbGlkU3RhdHVzQ2hhbmdlZDoKLSAgICAgICAgbm90aWZpY2F0
aW9uTmFtZSA9ICJJbnZhbGlkU3RhdHVzQ2hhbmdlZCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvblRleHRDaGFuZ2VkOgotICAgICAgICBub3Rp
ZmljYXRpb25OYW1lID0gIlRleHRDaGFuZ2VkIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBX
ZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uQXJpYUF0dHJpYnV0ZUNoYW5nZWQ6Ci0gICAgICAg
IG5vdGlmaWNhdGlvbk5hbWUgPSAiQXJpYUF0dHJpYnV0ZUNoYW5nZWQiOwotICAgICAgICBicmVh
azsKLSAgICBkZWZhdWx0OgotICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIlVua25vd25Ob3Rp
ZmljYXRpb24iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBtX3NoZWxsLT5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcigpLT5ub3RpZmljYXRpb25SZWNlaXZlZChvYmosIG5vdGlmaWNhdGlv
bk5hbWUpOwotCi0gICAgaWYgKG1fc2hlbGwtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNo
b3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoKSkgewotICAgICAgICBwcmludGYoIkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb24gLSAlcyIsIG5vdGlmaWNhdGlvbk5hbWUpOwotCi0gICAgICAgIFdl
YktpdDo6V2ViTm9kZSBub2RlID0gb2JqLm5vZGUoKTsKLSAgICAgICAgaWYgKCFub2RlLmlzTnVs
bCgpICYmIG5vZGUuaXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBXZWJLaXQ6OldlYkVs
ZW1lbnQgZWxlbWVudCA9IG5vZGUudG88V2ViS2l0OjpXZWJFbGVtZW50PigpOwotICAgICAgICAg
ICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCJpZCIpKQotICAgICAgICAgICAgICAgIHByaW50
ZigiIC0gaWQ6JXMiLCBlbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHByaW50ZigiXG4iKTsKLSAgICB9Ci19Ci0KICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlciogV2ViVmlld0hvc3Q6
Om5vdGlmaWNhdGlvblByZXNlbnRlcigpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaAppbmRleCA4NjAwNzE5NGIwNDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2Zm
NWY4YjRmLi4xZWNjNDU2YTkzY2YyNzRmMGE0OWUxMzA2ZjFmOGQ5MjAxYTM2ZTM2IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE4OCw3ICsxODgs
NiBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1
YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0ZUJh
Y2tGb3J3YXJkU29vbihpbnQgb2Zmc2V0KTsKICAgICB2aXJ0dWFsIGludCBoaXN0b3J5QmFja0xp
c3RDb3VudCgpOwogICAgIHZpcnR1YWwgaW50IGhpc3RvcnlGb3J3YXJkTGlzdENvdW50KCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYsIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbik7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgdmlydHVhbCBXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAjZW5k
aWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>