<?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>42603</bug_id>
          
          <creation_ts>2010-07-19 15:57:06 -0700</creation_ts>
          <short_desc>Add a mock in WebCore for testing speech input</short_desc>
          <delta_ts>2010-07-30 05:22:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
    
    <cc>morrita</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253439</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-19 15:57:06 -0700</bug_when>
    <thetext>Adds a SpeechInputClientMock class to WebCore and LayoutTestController + WebKit bindings to let layout tests enable the mock class. The mock class lets layout tests specify a string which will be returned as the result when an input element in WebCore invokes speech recognition. Also adds a layout test based on this mock to test the WebCore part of speech input.

All possible code changes (except ones in LayoutTestController) are behind the speech input compile time flag (disabled by default).

More information about the speech input API proposal can be found in the following links:
 Parent bug: https://bugs.webkit.org/show_bug.cgi?id=39485
 Full API proposal: https://docs.google.com/View?id=dcfg79pz_5dhnp23f5
 Relevant discussions in the WHATWG list:
  - http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-May/026338.html
  - http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-June/026747.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253445</commentid>
    <comment_count>1</comment_count>
      <attachid>62009</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-19 16:19:40 -0700</bug_when>
    <thetext>Created attachment 62009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253615</commentid>
    <comment_count>2</comment_count>
      <attachid>62009</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-20 01:51:23 -0700</bug_when>
    <thetext>Comment on attachment 62009
Patch

WebKit/mac/WebView/WebViewPrivate.h:171
 +      @method setMockSpeechInputResult:
Should this be in its own &apos;@interface WebView (WebViewSpeech)&apos; ?

WebCore/page/SpeechInputClientMock.cpp:51
 +      m_timer.startOneShot(0);
This will restart the timer if it&apos;s already running. Is this desired? Does the SpeechInput offer any protection against this?

LayoutTests/ChangeLog: 
 +          * platform/mac/editing/pasteboard/subframe-dragndrop-1-expected.che
??

LayoutTests/fast/forms/script-tests/input-text-speechbutton.js:1
 +  description(&apos;Tests for speech button click with &amp;lt;input type=text speech&gt;.&apos;);
Do you need to use &amp;lt here?

LayoutTests/fast/forms/script-tests/input-text-speechbutton.js:6
 +  }
It might be good to add a debug message that this test will fail outside DumpRenderTree, when layoutTestController is not available.

LayoutTests/fast/forms/script-tests/input-text-speechbutton.js:16
 +          layoutTestController.notifyDone();
You can use window.jsTestIsAsync and finishJSTest(), in place of waitUntilDone() and notifyDone(). This also adds the &apos;TEST COMPLETE&apos; output which is currently missing. See fast/dom/Geolocation/script-tests/success.js.

LayoutTests/platform/chromium/test_expectations.txt:2925
 +  BUG44844: fast/forms/input-text-speechbutton.html = TEXT
Would it be better to add a new directory for the speech tests to keep them grouped together? You could then just add the directory to the skipped lists (other than for GTK).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256560</commentid>
    <comment_count>3</comment_count>
      <attachid>62009</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-27 07:14:18 -0700</bug_when>
    <thetext>Comment on attachment 62009
Patch

LayoutTests/ChangeLog:33885
 +          * platform/mac/editing/pasteboard/subframe-dragndrop-1-expected.che
This part of the diff looks strange.

LayoutTests/fast/forms/input-text-speechbutton.html:1
 +  &lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
This doctype is very strange.

WebCore/Android.mk:385
 +  	page/SpeechInputClientMock.cpp \
I&apos;m not sure where the Mock file should go.  We have platform/mock, but this looks like a mock client...

WebKit/chromium/public/WebView.h:343
 +      virtual void setMockSpeechInputResult(const WebString&amp; result) = 0;
This will require fishd review.

WebKit/mac/WebView/WebViewData.h:180
 +      OwnPtr&lt;WebCore::SpeechInputClientMock&gt; speechInputClientMock;
It&apos;s kind of lame that the mock object is owned by each port.  We don&apos;t have a good pattern established for these, so we might want to think about what will scale nicely to N mocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256565</commentid>
    <comment_count>4</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-27 07:19:31 -0700</bug_when>
    <thetext>Thanks Adam. Steve Block has a more scalable proposal in https://bugs.webkit.org/show_bug.cgi?id=39589 , could you please have a look at that and share your comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256586</commentid>
    <comment_count>5</comment_count>
      <attachid>62009</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-27 07:49:48 -0700</bug_when>
    <thetext>Comment on attachment 62009
Patch

Leaving r=? because others may stil wish to comment and none of these issus are terribly bad.


LayoutTests/ChangeLog:33884
 +  \ No newline at end of file
Probably best to leave the end of the changelog as is.

WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm:345
 +  
only one new line

WebKitTools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:733
 +      // Implement this when the Gtk port gets speech input feature.
Prefix with &quot;FIXME: &quot;..and maybe add an ASSERT_NOT_IMPLEMENTED().WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp:1345
 +      result-&gt;setNull();
most methods seem to put this at the end

WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp:1346
 +      if (arguments.size() != 1 || !arguments[0].isString())
Most methods seem to use &gt; 0 instead of != 1 (which matches javascript semantics better) and seem to put the set inside the if argument...I&apos;d say follow the patterns.

WebKit/chromium/src/WebViewImpl.h:303
 +      void setMockSpeechInputResult(const WebString&amp; result);
nit: &quot;result&quot; as the param name might be redundant


Btw, SpeechInputClient should inherit form Noncopyable.

WebCore/page/SpeechInputClientMock.cpp:61
 +      } else {
no {}&apos;s.

WebCore/page/SpeechInputClientMock.cpp:55
 +  void SpeechInputClientMock::timerFired(Timer&lt;SpeechInputClientMock&gt;*)
you might want to consider using 2 timers instead of one since they&apos;re really for fairly different purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256861</commentid>
    <comment_count>6</comment_count>
      <attachid>62750</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-27 14:52:49 -0700</bug_when>
    <thetext>Created attachment 62750
Patch

Thanks for the reviews. The earlier patch was not suitable in many ways so I have tried to change the design. This new patch is not a complete implementation but just builds and runs on the chromium port. I&apos;ve uploaded it so I can get feedback on the design before proceeding further. Please see next comment for detailed design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256873</commentid>
    <comment_count>7</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-27 15:05:33 -0700</bug_when>
    <thetext>The goal is to mock WebCore::SpeechInputClient and use the mock in layout tests for testing the webcore code.

- Platform independant mock of WebCore::SpeechInputClient available in WebCore/platform/mock/SpeechInputClientMock.* (the non-mock implementation for chromium port is in WebKit/chromium/src/SpeechInputClientImpl.* for reference)
- WebViewImpl constructor decides whether to pass in the mock client or real client to WebCore::Page() based on the &apos;shouldUseMocks&apos; flag. In the chromium port this is given by WebViewClient::shouldUseMocks()
- If the above shouldUseMocks flag is set, WebViewImpl creates a WebViewMocks object which holds all the mock objects, and it will use the mocks in place of real objects during this run.
- DumpRenderTree can access the mock object from WebView (e.g. to set mock results) by calling WebView::getMockObjects which returns the whole set of mocks. Adding new mocks requires no change in this call. DRT can call the respective mock interface to set the values for testing.
- The mocks themselves along with the WebViewMocks container object reside in a new platform independent WebKit/common directory, with /public holding headers which can be accessed by DRT and other embedders and /src holding the implementation. This code can be used across all c++ ports and new mocks can be added to this location along with other platform-independent code. The Mac port would probably have similar code in Obj-C under WebKit/mac.

I&apos;d appreciate feedback on the overall design and code organisation. My reasoning to let WebKit decide to use mocks or real WebCore clients is that WebKit is the embedder for WebCore and the dependency injection decision is cleaner if done at this level. I also felt using a WebViewMocks-style test specific class would let us aggregate all tests related calls from DRT in a single place going forward, instead of polluting WebView directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257068</commentid>
    <comment_count>8</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-28 01:49:10 -0700</bug_when>
    <thetext>Hi Satish,

I like the idea of a common mock in WebCore and providing common convenience wrappers in WebKit. A few comments.

- I still think that the decision of whether to use the mock or the real implementation should be left to the embedder, not handled by the WebKit layer. I think it&apos;s true to say that currently, all testing with LayoutTestController is done this way - implemented in the embedder only. This also avoids polluting WebKit with testing logic.

- For the WebKit mock wrapper, I like the Chromum-style approach of an interface in &apos;public&apos; that replicates the WebCore interface and an impl in &apos;src&apos; that implements both interfaces. It seems neater than the Mac-style approach of having a &apos;core()&apos; function which returns the WebCore type being wrapped. One problem with this approach, however, is how to handle interfaces that use WebCore types as method arguments. For speech, this is not a problem, but DeviceOrientationClient, for example, has methods which use the WebCore DeviceOrientation type. The Chromium-style approach would require us to write wrappers for these types too, which means a lot of boilerplate. I guess we need to decide which is best overall.

- I&apos;m not sure about the idea of using WebViewMocks to bundle together all the mocks. It seems like it assumes too much about how each platform wants to handle its mocks. I guess there&apos;s no requirement for a platform to use it, but I&apos;m not sure it&apos;s useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257070</commentid>
    <comment_count>9</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-28 02:01:27 -0700</bug_when>
    <thetext>Thanks Steve.

&gt; One problem with this approach, however, is how to handle interfaces
&gt; that use WebCore types as method arguments

This is already happening in my patch, as WebCore::SpeechInputClientMock::setRecognitionResult takes in a WebCore::String and layoutTestController passes in a WebKit::WebString to the webkit mock wrapper, with conversion being done in webkit (transparently).

&gt; has methods which use the WebCore DeviceOrientation type

In this case wouldn&apos;t you have to do a conversion in the WebKit mock, since DRT shouldn&apos;t access the WebCore types anyway?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257072</commentid>
    <comment_count>10</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-28 02:03:44 -0700</bug_when>
    <thetext>&gt; I still think that the decision of whether to use the mock or the
&gt; real implementation should be left to the embedder, not handled by
&gt; the WebKit layer

Agreed on the embedder part, but I see WebKit as the embedder for WebCore, not DRT (since DRT can&apos;t access WebCore directly). Hence my idea to have WebKit manage injection of WebCore types, and DRT manage injection of WebKit types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257661</commentid>
    <comment_count>11</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-29 07:22:22 -0700</bug_when>
    <thetext>I discussed this patch with a few people including Steve Block and decided we should go for a simpler approach without all the platform common code stuff in WebKit, so I&apos;ll submit a new patch for review once ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257817</commentid>
    <comment_count>12</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-29 12:46:16 -0700</bug_when>
    <thetext>I&apos;ll submit this as a 2 patches, the first one adding a mock for SpeechInputClient in WebCore which can be shared across ports if required and the next wrapping it in WebKit and using in DRT. I&apos;ve updated the title of this bug to reflect this, a patch following shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257818</commentid>
    <comment_count>13</comment_count>
      <attachid>62977</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-29 12:51:03 -0700</bug_when>
    <thetext>Created attachment 62977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258115</commentid>
    <comment_count>14</comment_count>
      <attachid>62977</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-30 03:50:12 -0700</bug_when>
    <thetext>Comment on attachment 62977
Patch

WebCore/platform/mock/SpeechInputClientMock.cpp:34
 +  #include &quot;SpeechInputListener.h&quot;
put inside the #if ENABLE()  (from now on)

WebCore/platform/mock/SpeechInputClientMock.cpp:53
 +      m_timer.startOneShot(0.1);
Why the delay?  Normally we do with 0 delay to make it harder to have flaky tests.

WebCore/platform/mock/SpeechInputClientMock.cpp:85
 +          m_timer.startOneShot(0.1);
ditto


r=me
please make just the changes I mentioned and then I&apos;ll rubber stamp that + commit queue it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258116</commentid>
    <comment_count>15</comment_count>
      <attachid>63045</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-30 03:58:57 -0700</bug_when>
    <thetext>Created attachment 63045
Patch

Moved the header inside ifdef, will remember to do it in future as well. The delay of 0.1 seconds was added in the mock because without them the events fire even before the JS engine has a chance to finish parsing all the JS in the layout test.. which resulted in out of order event delivery and hanging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258119</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-30 04:03:05 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=63045) [details]
&gt; Patch
&gt; 
&gt; Moved the header inside ifdef, will remember to do it in future as well. The delay of 0.1 seconds was added in the mock because without them the events fire even before the JS engine has a chance to finish parsing all the JS in the layout test.. which resulted in out of order event delivery and hanging.

You&apos;ll need to come up with a different solution or stipulate that you can only use the mock after the onload has fired in the page.

Anything else is racy and will produce a flaky test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258121</commentid>
    <comment_count>17</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-30 04:06:30 -0700</bug_when>
    <thetext>Using the mock only after onload event sounds fine and will eliminate races in the layout test. However the mock implementation here doesn&apos;t have to change since the race is not in the c++ code. I&apos;ll mention in the layout test html/js the reason why it is using onload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258132</commentid>
    <comment_count>18</comment_count>
      <attachid>63046</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-30 04:14:10 -0700</bug_when>
    <thetext>Created attachment 63046
Patch

Sets timeout to zero, will use onload in layout test to create the mock after page loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258133</commentid>
    <comment_count>19</comment_count>
      <attachid>63046</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-30 04:15:52 -0700</bug_when>
    <thetext>Comment on attachment 63046
Patch

rubber stamp = me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258149</commentid>
    <comment_count>20</comment_count>
      <attachid>63046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 05:22:07 -0700</bug_when>
    <thetext>Comment on attachment 63046
Patch

Clearing flags on attachment: 63046

Committed r64351: &lt;http://trac.webkit.org/changeset/64351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258150</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 05:22:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62009</attachid>
            <date>2010-07-19 16:19:40 -0700</date>
            <delta_ts>2010-07-27 14:52:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42603-20100720001937.patch</filename>
            <type>text/plain</type>
            <size>38110</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhN2YxZWE1MWNlOGVmZTdmZmUwODNhNDIyMmRhYmZlMDA3M2QyOWY3Li4wNmNiYzlj
NWYyZmE2ZWVlMjVkOGJlZjZjMTIxODAxNzg4OWQ3OGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDctMTkgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBtb2NrIGFu
ZCBMYXlvdXRUZXN0Q29udHJvbGxlciBiaW5kaW5ncyBmb3Igc3BlZWNoIGlucHV0LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2MDMKKworICAgICAg
ICBUaGUgbmV3IGxheW91dCB0ZXN0IGlzIGRpc2FibGVkIGZvciBub3cgYmVjYXVzZSBzcGVlY2gg
aW5wdXQgZmVhdHVyZSBpcyBub3QgZW5hYmxlZCBpbiBidWlsZHMgYnkgZGVmYXVsdC4KKworICAg
ICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LXRleHQtc3Bl
ZWNoYnV0dG9uLmpzOiBBZGRlZC4KKyAgICAgICAgKG9uQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwog
MjAxMC0wNy0xOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuCkBAIC0zMzg2Miw0ICszMzg4MSw0IEBACiAgICAgICAgICogcGxhdGZvcm0vbWFj
L2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDgtZXhwZWN0ZWQucG5nOiBSZXBsYWNl
ZC4KICAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVt
ZW50LW1hcmt1cC1leHBlY3RlZC5jaGVja3N1bTogUmVwbGFjZWQuCiAgICAgICAgICogcGxhdGZv
cm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC9zdHlsZWQtZWxlbWVudC1tYXJrdXAtZXhwZWN0ZWQu
cG5nOiBSZXBsYWNlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJk
L3N1YmZyYW1lLWRyYWduZHJvcC0xLWV4cGVjdGVkLmNoZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkL3N1YmZyYW1l
LWRyYWduZHJvcC0xLWV4cGVjdGVkLmNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNmUyMjczYzg5ZThmNTViZWM0YThlMTE5OWZhNmZkMGM0N2VhZGZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0cyBmb3Igc3BlZWNoIGJ1dHRvbiBjbGljayB3
aXRoIDxpbnB1dCB0eXBlPXRleHQgc3BlZWNoPi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaW5wdXQudmFsdWUgaXMgIlBpY3R1cmVzIG9mIHRoZSBtb29uIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE3OWM4ZGUxM2RmZDQ4OWI5YWE4NWNjZDlkYTY5ZjgwM2I1MDlmZGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0
dG9uLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPg0KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+DQorPC9oZWFkPg0KKzxib2R5Pg0KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPg0KKzxkaXYg
aWQ9InRlc3QiPjwvZGl2Pg0KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uanMiPjwvc2NyaXB0Pg0KKzwv
Ym9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MmYxMmY2OGI1OThiODllYzU2NjU3YzA3OGQwYmU4Mzg2YzcxOTVjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hi
dXR0b24uanMKQEAgLTAsMCArMSwyNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBzcGVlY2gg
YnV0dG9uIGNsaWNrIHdpdGggJmx0O2lucHV0IHR5cGU9dGV4dCBzcGVlY2g+LicpOworCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGlucHV0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnNwZWVjaCA9ICdzcGVlY2gnOwor
aW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UsIGZhbHNlKTsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpOworCitmdW5jdGlvbiBvbkNoYW5nZSgpIHsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJ1BpY3R1cmVzIG9mIHRoZSBt
b29uJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCisvLyBDbGlja2luZyB0aGUgc3Bl
ZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCitp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHggPSBpbnB1dC5vZmZzZXRMZWZ0ICsg
aW5wdXQub2Zmc2V0V2lkdGggLSA0OworICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5w
dXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKaW5kZXggYmU4NzlhZWRmYThiMmFjM2FhMTU1MTE4NjJmZDRjZDJhNTdjYTE5NC4u
N2ZjNzQ2YmY5MjBhNjI2YmQwODY0NzJkYjI2NzRjM2U2NTU5MzMyZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjky
Miw2ICsyOTIyLDcgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVy
UmFkaXVzRG91YmxlMDkuaHRtbCA9IElNQUdFCiBCVUc0NDg0NDogZmFzdC9mb3Jtcy9pbnB1dC1h
cHBlYXJhbmNlLW51bWJlcmFuZHNwZWVjaC5odG1sID0gSU1BR0UrVEVYVAogQlVHNDQ4NDQ6IGZh
c3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWFyY2hhbmRzcGVlY2guaHRtbCA9IElNQUdFK1RF
WFQKIEJVRzQ0ODQ0OiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc3BlZWNoYnV0dG9uLmh0
bWwgPSBJTUFHRStURVhUCitCVUc0NDg0NDogZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1
dHRvbi5odG1sID0gVEVYVAogCiAvLyB2OCBiaW5kaW5ncyBmb3IgZGF0YXNldCBuZWVkIHRvIGJl
IGltcGxlbWVudGVkLgogQlVHNDgxMzMgOiAgZmFzdC9kb20vZGF0YXNldC14aHRtbC54aHRtbCA9
IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggYzJlMjY0OWVmMmNmNTlmM2RjMDU2
ODQ4NTE4N2ZhYzUxMzAwN2I4MS4uNTI2YjlhMGRhMTc1ZTJiMmIxN2Q4YWE4NDY0YzU3ZmY4NjY5
OTM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU3ODcsNiArNTc4Nyw3IEBAIGVk
aXRpbmcvcGFzdGVib2FyZC81NzYxNTMwLTEuaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLW51bWJlcmFuZHNwZWVjaC5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2Vh
cmNoYW5kc3BlZWNoLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zcGVlY2hidXR0
b24uaHRtbAorZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCiAKICMgVGVz
dHMgZmFpbGluZyBiZWNhdXNlIHdlIGxhY2sgZXhlY0NvbW1hbmQgc3VwcG9ydC4KICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzUxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCmluZGV4IGNmYzljNDgzOGUyZWUzZDIwNGUxZWE2NDdjYTk1MGZhYzRmZjNhNGUuLmEx
Zjk3MjVhZGVlNjE5ODM0NTAxMTM0YjJiYmU5MjY2ODI5ZTNiODUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCkBAIC0yNzYsNiArMjc2LDcgQEAgaHR0cC90ZXN0cy9tdWx0aXBhcnQvcG9saWN5
LWlnbm9yZS1jcmFzaC5waHAKIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1udW1iZXJhbmRz
cGVlY2guaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNlYXJjaGFuZHNwZWVjaC5o
dG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc3BlZWNoYnV0dG9uLmh0bWwKK2Zhc3Qv
Zm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAogCiAjIE5lZWRzIHRvIGJlIGZpeGVk
IGF0IGltYWdlIGRlY29kZXIgbGF5ZXIgZm9yIFNhZmFyaS4KIGZhc3QvaW1hZ2VzL2xhcmdlLXNp
emUtaW1hZ2UtY3Jhc2guaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggMjU3MWFlNGYz
MjFmMDg0NGRlM2VkYWU1NzhjZTY5MjkxZDVjYjMxNC4uNDBlMGJhNWNmNjY1MzA5ODhlMTBmYjU2
ZTg5NTZmZmRlYmM4YmU2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01NDI2LDYgKzU0
MjYsNyBAQCBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc3BpbmJ1dHRvbi1kaXNhYmxlZC1y
ZWFkb25seS5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2UtbnVtYmVyYW5kc3BlZWNo
Lmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWFyY2hhbmRzcGVlY2guaHRtbAog
ZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNwZWVjaGJ1dHRvbi5odG1sCitmYXN0L2Zvcm1z
L2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKIAogIyBbUXRdIGZhc3QvZG9tL2JlZm9yZWxv
YWQvc2NyaXB0LWJlZm9yZS1sb2FkLWR5bmFtaWMuaHRtbCBpcyBjcmFzaHktZmxha2V5CiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ1MgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAppbmRleCBlNTA2Y2VhOTUyODEwZDE2MjQzMWU5NjkxMTQ1M2YyMmJhYjZmM2Y2
Li5hNmYxYzQ1ZGQ3M2IzY2MyMTRlN2QzZjU0MjJlYWMxYmE0N2ViM2RhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZApAQCAtOTM0LDYgKzkzNCw3IEBAIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFy
YW5jZS1zcGluYnV0dG9uLWRpc2FibGVkLXJlYWRvbmx5Lmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQt
YXBwZWFyYW5jZS1udW1iZXJhbmRzcGVlY2guaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlYXJjaGFuZHNwZWVjaC5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc3Bl
ZWNoYnV0dG9uLmh0bWwKK2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAog
CiAjIE5lZWRzIHRvIGJlIGZpeGVkIGF0IGltYWdlIGRlY29kZXIgbGF5ZXIgZm9yIFNhZmFyaS4K
IGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGJhZGQ4NGUxZDBiZDk2
NjdiNWFhNzM1NmU5ZTMyMTQwMTM1ZmIyNjYuLmU4ZTY3MGM5ZWQyY2ExNWE4MjkwNjFhYzgzODhm
N2MzNzJjNTUxZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3Jl
L0FuZHJvaWQubWsKQEAgLTM4Miw2ICszODIsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NB
TF9TUkNfRklMRVMpIFwKIAlwYWdlL1NldHRpbmdzLmNwcCBcCiAJcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAgXAogCXBhZ2UvU3BlZWNoSW5wdXQuY3BwIFwKKwlwYWdlL1NwZWVjaElucHV0Q2xp
ZW50TW9jay5jcHAgXAogCXBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCXBhZ2UvVGltaW5n
LmNwcCBcCiAJcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY5ZDg3ZjI0MmFjNGJj
NzUyMzA3OWI3YjkwMmE1MTkwNTBkNzEyYi4uZjk3NzA2Yjg1YWZjYTk2MmNjNjk5MjdhYmFiODM0
NjZkY2UyOTk2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNy0xOSAgU2F0aXNoIFNhbXBhdGggIDxz
YXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG1vY2sgYW5kIExheW91dFRlc3RDb250cm9sbGVyIGJpbmRpbmdz
IGZvciBzcGVlY2ggaW5wdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjYwMworCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1z
cGVlY2hidXR0b24uaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazogQWRkZWQgbmV3IGZpbGVz
IHRvIGJ1aWxkCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46IEV4cG9zZSBTcGVlY2hJbnB1dENsaWVudE1vY2sgbWV0aG9kcyB0byBXZWJLaXQKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcDogQWRkZWQgY2xhc3MgdG8gbW9jayBvdXQgdGhlIFdlYktpdCBwYXJ0IGFuZCB0ZXN0IGp1
c3QgdGhlIFdlYkNvcmUgc2lkZS4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50
TW9jazo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElu
cHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
SW5wdXRDbGllbnRNb2NrOjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgICogcGFnZS9T
cGVlY2hJbnB1dENsaWVudE1vY2suaDogQWRkZWQuCisKIDIwMTAtMDctMTcgIFRvbnkgR2VudGls
Y29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBG
aXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCBkZmQ3OGViNWJiYmYwN2U0Y2JkMjA1YjI3NTJhODNjNmViZGJhNGEy
Li41NTJjYmEyOWQwNjNiODc5NTMyMmNiYzI5ZTk0NmI1YjFiNDI3MmM4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI5
NDcsNiArMjk0Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmggXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKIAlXZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TW9j
ay5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCiAKIGVsc2UKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDQ1YWQ4M2MyZTZkOTI3Njc5M2ZiNDI2ZTMzMmVlMTg4NDlhZjE4ZTIuLjlkOTQ1ZTkyOTE3
OWU0NzM2MGU2M2UwNjA2YWY0NmQzNWFjY2MyNWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDM0LDYgKzQzNCw4IEBA
IF9fWk43V2ViQ29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1wbGVBbmltYXRpb25BdFRp
bWVFUktOU182U3RyaW5nRVBOU18xNFNWCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTExZGVzZXJpYWxpemVFUEsxNU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1ZQog
X19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVKU0Nv
bnRleHRQSzEzT3BhcXVlSlNWYWx1ZVBTNl8KIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlw
dFZhbHVlRDFFdgorX19aTjdXZWJDb3JlMjFTcGVlY2hJbnB1dENsaWVudE1vY2syMHNldFJlY29n
bml0aW9uUmVzdWx0RVJLTlNfNlN0cmluZ0UKK19fWk43V2ViQ29yZTIxU3BlZWNoSW5wdXRDbGll
bnRNb2NrQzFFdgogX19aTjdXZWJDb3JlMjFVc2VyQ29udGVudFVSTFBhdHRlcm41cGFyc2VFUktO
U182U3RyaW5nRQogX19aTjdXZWJDb3JlMjFXaW5kb3dzTGF0aW4xRW5jb2RpbmdFdgogX19aTjdX
ZWJDb3JlMjFmaW5kRXZlbnRXaXRoS2V5U3RhdGVFUE5TXzVFdmVudEUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWJkNjE1YmNk
YzA2ZDVjNGQ2YjllMDdhMzNkZmM4YWU4MDYwNTMwYi4uODAwNzVhYmU0MWQwN2IxMTA3ZjE1YzNj
MTc0NDI5YjE4YWEyZmZlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwNDEsNiArMjA0MSw4IEBACiAgICAgICAgICAgICAn
cGFnZS9TcGVlY2hJbnB1dC5oJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0Q2xpZW50
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oJywKKyAg
ICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAnLAorICAgICAgICAgICAg
J3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNo
SW5wdXRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3Bw
JywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuaCcsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBjMTc3NjAzOGE2
Y2U1OGY0ZmFkMzA2MGNjM2QzZjA3ZDk3NTJlMmQ4Li5lYTZmZWNjOTg5MzMyNDhhMGUzOTNhMmU5
YjVlZjRhYWY2ZGZhY2UzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE2MDEsNiArMTYwMSw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHBhZ2UvU3BlZWNoSW5wdXQuaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKICAg
ICBwYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1
dENsaWVudE1vY2suaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggXAogICAgIHBh
Z2UvV2luZG93RmVhdHVyZXMuaCBcCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCkBAIC0y
NTM1LDYgKzI1MzYsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU0hBUkVEX1dPUktFUlM9
MSkgewogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOUFVUX1NQRUVDSD0xKSB7CiAgICAgU09V
UkNFUyArPSBcCiAgICAgICAgIHBhZ2UvU3BlZWNoSW5wdXQuY3BwIFwKKyAgICAgICAgcGFnZS9T
cGVlY2hJbnB1dENsaWVudE1vY2suY3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1JlbmRlcklucHV0
U3BlZWNoLmNwcAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAw
ZTQ3N2NhMmVmZGM4Zjk2N2M3MzlkYTQ2NDc2MDk2ZDIxY2E5ZTdkLi4wMjc0OTk4MDI1OTQ5YjM5
MDYzMTlmMjA3ZGVmNTY3ODc4ZjI3YTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTIyNDk3LDYgKzIyNDk3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBhZ2VcU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0TGlzdGVuZXIuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDI4NWU1MDQ4Nzg2YWVlMTRlNzZmODczY2U4Y2ViYTIwZDhlNDZkMDUuLmRk
MTEyZDhlYzhiMDNiMDU4MWFiZGNmYzlmYmUxZjM0NmNjOGQ4NDkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQ2LDggKzEzNDYsMTAgQEAKIAkJNzU1
M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0NzNG
MDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJNzU3OEY5MEIx
MURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dC5jcHAgKi87IH07CiAJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3
OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi87IH07Ci0JCTc1NzhGOTBE
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CisJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU3
OEY5MUYxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFEMTFFNEUz
MjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggKi87IH07CisJCTc1RjZD
RkMyMTFGNDY3MzQwMEI3MzMxRCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVGNkNGQzAxMUY0NjczNDAw
QjczMzFEIC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgKi87IH07CisJCTc1RjZDRkMzMTFG
NDY3MzQwMEI3MzMxRCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RjZDRkMxMTFGNDY3MzQwMEI3MzMxRCAv
KiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLzsg
fTsKIAkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MDBEMENFMEIz
MDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKIAkJNzU3OTNFODQwRDBDRTBCMzAw
N0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5o
ICovOyB9OwpAQCAtNzExNSw2ICs3MTE3LDggQEAKIAkJNzU3OTNFRDAwRDBDRTg1QjAwN0ZDMEFD
IC8qIERPTU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRUQx
MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTWVzc2FnZUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1lc3Nh
Z2VFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1RjZDRkMw
MTFGNDY3MzQwMEI3MzMxRCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVGNkNGQzExMUY0NjczNDAwQjczMzFEIC8qIFNw
ZWVjaElucHV0Q2xpZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYz
N0M1NDAxMTJFN0I3NDAwM0Q2Q0RDIC8qIFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MzdDNTQyMTEyRTdCN0Uw
MDNENkNEQyAvKiBXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzY3Rjk5QkQxMUExMTk0QTAwODBDNTFEIC8qIFdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyMzUwLDYgKzEyMzU0LDggQEAKIAkJCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXQuaCAqLywKIAkJCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCAqLywKIAkJCQk3NTc4RjkxRDExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oICovLAorCQkJCTc1RjZDRkMwMTFGNDY3MzQwMEI3MzMx
RCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwICovLAorCQkJCTc1RjZDRkMxMTFGNDY3MzQw
MEI3MzMxRCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLywKIAkJCQk3NTc4RjkxRTExRTRF
MzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovLAogCQkJCTYyQzEyMTdBMTFB
QjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjEx
QUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLApAQCAtMTk4MDAsNiArMTk4
MDYsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRp
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZFOENFMDA2MkE1MzMgLyogWm9v
bU1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RjZDRkMzMTFGNDY3MzQwMEI3MzMxRCAvKiBT
cGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjIxODksNiArMjIxOTYs
NyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yTGlieHNs
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNM
VFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZERjRENkUwMEVD
RjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1RjZDRkMyMTFGNDY3
MzQwMEI3MzMxRCAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxYjVmZWExOWU4
YWY1ODU0MzZiNGY3ZmU0MzdjZmVhZGQ5OGUwNTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgorCisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKKworI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hJbnB1dENsaWVudE1vY2s6OlNwZWVjaElucHV0
Q2xpZW50TW9jaygpCisgICAgOiBtX3JlY29yZGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhp
cywgJlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZCkKKyAgICAsIG1fbGlzdGVuZXIo
MCkKK3sKK30KKworYm9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0YXJ0UmVjb2duaXRpb24o
U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgbV9saXN0ZW5lciA9
IGxpc3RlbmVyOworICAgIG1fcmVjb3JkaW5nID0gdHJ1ZTsKKyAgICBtX3RpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTcGVlY2hJbnB1dENsaWVudE1v
Y2s6OnRpbWVyRmlyZWQoVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopCit7CisgICAgaWYg
KG1fcmVjb3JkaW5nKSB7CisgICAgICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1f
bGlzdGVuZXItPnJlY29yZGluZ0NvbXBsZXRlKCk7CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KDApOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9u
UmVzdWx0KG1fcmVjb2duaXRpb25SZXN1bHQpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hJbnB1
dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQor
eworICAgIG1fcmVjb2duaXRpb25SZXN1bHQgPSByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdhZWJkNTcxYTBiMDQ1ZTE0ZmUyOWZlYmEw
YmFlYzE0NjQ5MGI3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dENsaWVudE1vY2suaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hJbnB1dENsaWVudE1vY2tfaAor
I2RlZmluZSBTcGVlY2hJbnB1dENsaWVudE1vY2tfaAorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRD
bGllbnQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXI7CisKK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50
TW9jayA6IHB1YmxpYyBTcGVlY2hJbnB1dENsaWVudCB7CitwdWJsaWM6CisgICAgU3BlZWNoSW5w
dXRDbGllbnRNb2NrKCk7CisKKyAgICAvLyBTZXRzIHRoZSBtb2NrIHJlY29nbml0aW9uIHJlc3Vs
dCB0byBnaXZlIHRoZSBsaXN0ZW5lciB3aGVuIHJlcXVpcmVkLgorICAgIHZvaWQgc2V0UmVjb2du
aXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBTcGVlY2hJbnB1dENsaWVudCBt
ZXRob2RzLgorICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJbnB1dENsaWVudExpc3Rl
bmVyKik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCB0
aW1lckZpcmVkKFRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4qKTsKKworICAgIGJvb2wgbV9y
ZWNvcmRpbmc7CisgICAgVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiBtX3RpbWVyOworICAg
IFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIqIG1fbGlzdGVuZXI7CisgICAgU3RyaW5nIG1fcmVj
b2duaXRpb25SZXN1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRDbGllbnRNb2Nr
X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDM1MWE3MWVhOTk1NjI5OGIyZjMyOGYyNWU5MjZhOThhN2YxOGQw
MzEuLjhjNDdjN2FhNGJhNzRkZmJmNWM0MTkwMzZhOGM0NTlkOTFkNzQzZmUgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA3LTE5ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbW9jayBhbmQgTGF5b3V0VGVzdENvbnRyb2xsZXIgYmluZGluZ3MgZm9yIHNw
ZWVjaCBpbnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyNjAzCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNb2NrU3Bl
ZWNoSW5wdXRSZXN1bHQpOiBDcmVhdGVzIHRoZSBtb2NrIGlmIHJlcXVpcmVkIGFuZCBzZXRzIHRo
YXQgYXMgdGhlCisgICAgICAgIHNwZWVjaCBpbnB1dCBjbGllbnQgaW4gV2ViQ29yZS4KKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wNy0xOSAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAppbmRleCAyNmQ3MjY5MzI0MzRiODJlYTE4OGI5ZDU1MDRkZTU2ZDJi
M2JkNDZhLi41OGEyZTI1YjdhZDZmMzExNThhODZkOGI5NGYyOWNhMDYzNjJhMzlmIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaApAQCAtMzM5LDYgKzMzOSw5IEBAIHB1YmxpYzoKICAgICAvLyBj
cmVhdGVkIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KICAgICB2aXJ0dWFsIFdlYkdMRVMy
Q29udGV4dCogZ2xlczJDb250ZXh0KCkgPSAwOwogCisgICAgLy8gU3BlZWNoIGlucHV0IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
dmlydHVhbCB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJl
c3VsdCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQogfTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggODNjODgyMjg2NWJiM2ZlMDkzYTM2NmJjYmFhMGFl
ZTg1ZjYwMjA2NS4uNGMwNmEzNjM2MmFlNzFmYzJmMzFjZDMyOWEwYzhiNDc2MGFiMWFiZiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHlwaW5nQ29tbWFuZC5oIgogI2luY2x1ZGUg
IlZlY3Rvci5oIgpAQCAtMjE4OCw0ICsyMTg5LDE1IEBAIFdlYkdMRVMyQ29udGV4dCogV2ViVmll
d0ltcGw6OmdsZXMyQ29udGV4dCgpCiAgICAgcmV0dXJuIG1fZ2xlczJDb250ZXh0LmdldCgpOwog
fQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgV2Vi
U3RyaW5nJiByZXN1bHQpCit7CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAoIW1f
c3BlZWNoSW5wdXRDbGllbnRNb2NrKSB7CisgICAgICAgIG1fc3BlZWNoSW5wdXRDbGllbnRNb2Nr
LnNldChuZXcgV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKCkpOworICAgICAgICBwYWdl
KCktPnNldFNwZWVjaElucHV0Q2xpZW50KG1fc3BlZWNoSW5wdXRDbGllbnRNb2NrLmdldCgpKTsK
KyAgICB9CisgICAgbV9zcGVlY2hJbnB1dENsaWVudE1vY2stPnNldFJlY29nbml0aW9uUmVzdWx0
KHJlc3VsdCk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKaW5kZXggMzEyZjIwZjY0N2I5NjNkZjEwNzM2OTMyZTZlNjVkMjkyMTZi
YzJhZS4uMjM3Y2Y5MDhhMzY5M2E4ZmMyMTk0Y2MwN2ZhZDY3NzhjODM4NTk4OCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBQb3B1cENvbnRhaW5l
cjsKIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFJhbmdlOwogY2xhc3MgUmVuZGVyVGhl
bWU7CitjbGFzcyBTcGVlY2hJbnB1dENsaWVudE1vY2s7CiBjbGFzcyBXaWRnZXQ7CiB9CiAKQEAg
LTI5OSw2ICszMDAsOCBAQCBwdWJsaWM6CiAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCog
bm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCgpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldE1vY2tT
cGVlY2hJbnB1dFJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCk7CisKICAgICAvLyBUcmll
cyB0byBzY3JvbGwgYSBmcmFtZSBvciBhbnkgcGFyZW50IG9mIGEgZnJhbWUuIFJldHVybnMgdHJ1
ZSBpZiB0aGUgdmlldwogICAgIC8vIHdhcyBzY3JvbGxlZC4KICAgICBib29sIHByb3BhZ2F0ZVNj
cm9sbChXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5
KTsKQEAgLTUwMiw2ICs1MDUsMTAgQEAgcHJpdmF0ZToKICAgICBOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorICAgIE93blB0cjxXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s+IG1f
c3BlZWNoSW5wdXRDbGllbnRNb2NrOworI2VuZGlmCisKICAgICAvLyBJZiBzZXQsIHRoZSAocGx1
Z2luKSBub2RlIHdoaWNoIGhhcyBtb3VzZSBjYXB0dXJlLgogICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBtX21vdXNlQ2FwdHVyZU5vZGU7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjNlNzMyZDc4OTA2ZGM3ZjcxMGJjZmQw
NDUxNGQwOWU3ODQ4YjJiYy4uZWI1ZDJlZDMzMDJkNjViYjZmMjExMDEzMjIwYTQyOTc4ZTUzYmM2
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wNy0xOSAgU2F0aXNoIFNhbXBhdGggIDxzYXRp
c2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIG1vY2sgYW5kIExheW91dFRlc3RDb250cm9sbGVyIGJpbmRpbmdzIGZv
ciBzcGVlY2ggaW5wdXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjYwMworCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdDpdKTogQ3JlYXRlcyB0aGUgbW9jayBp
ZiByZXF1aXJlZCBhbmQgc2V0cyB0aGF0IGFzIHRoZQorICAgICAgICBzcGVlY2ggaW5wdXQgY2xp
ZW50IGluIFdlYkNvcmUuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oOgorCiAyMDEwLTA3LTE5ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggYTcxNWFhZDhjMDZkMDM0OGQwMDNiYzBjMDM2MmM0ZjQzMWY5MWQxOC4uOTViNGRkZTY1YWI3
MTIwZmQ4MDA1ZDRiYWY2NzIxOTRjNjk1ZmQ1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE0
Niw2ICsxNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TZWxlY3Rpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRp
bmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWVjaElucHV0Q2xpZW50TW9jay5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVh
ZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CkBAIC00MjU0
LDYgKzQyNTUsMTcgQEAgc3RhdGljIFdlYkZyYW1lICppbmNyZW1lbnRGcmFtZShXZWJGcmFtZSAq
ZnJhbWUsIEJPT0wgZm9yd2FyZCwgQk9PTCB3cmFwRmxhZykKICAgICByZXR1cm4gY29yZUZyYW1l
LT5sb2FkZXIoKS0+c2hvdWxkQ2xvc2UoKTsKIH0KIAorLSAodm9pZClzZXRNb2NrU3BlZWNoSW5w
dXRSZXN1bHQ6KE5TU3RyaW5nKil2YWx1ZQoreworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisg
ICAgaWYgKCFfcHJpdmF0ZS0+c3BlZWNoSW5wdXRDbGllbnRNb2NrKSB7CisgICAgICAgIF9wcml2
YXRlLT5zcGVlY2hJbnB1dENsaWVudE1vY2suc2V0KG5ldyBXZWJDb3JlOjpTcGVlY2hJbnB1dENs
aWVudE1vY2soKSk7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRTcGVlY2hJbnB1dENsaWVu
dChfcHJpdmF0ZS0+c3BlZWNoSW5wdXRDbGllbnRNb2NrLmdldCgpKTsKKyAgICB9CisgICAgX3By
aXZhdGUtPnNwZWVjaElucHV0Q2xpZW50TW9jay0+c2V0UmVjb2duaXRpb25SZXN1bHQodmFsdWUp
OworI2VuZGlmCit9CisKIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9t
SlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNWYWx1ZSkKIHsKICAgICBOU0FwcGxl
RXZlbnREZXNjcmlwdG9yKiBhZURlc2MgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdEYXRhLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRl
eCBkMDk3YzRjMTkxNTIzMjJjZTUzOWU1MjUwYzU0NjkxMzQyYThmODM0Li5jNTEzY2JhYWQzOTM5
NTA0ODgzNmRlYjZkNGY0ZjQ4YTZkNDY0NGJmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApA
QCAtMzIsMTAgKzMyLDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2ltcG9ydCA8d3RmL0hh
c2hNYXAuaD4KKyNpbXBvcnQgPHd0Zi9Pd25QdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrOwogfQogCiBAY2xhc3MgV2ViSW5zcGVjdG9yOwpAQCAtMTc0LDUg
KzE3Niw4IEBAIGV4dGVybiBpbnQgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudDsKICAgICBDRlJ1
bkxvb3BPYnNlcnZlclJlZiBnbGliUnVuTG9vcE9ic2VydmVyOwogI2VuZGlmCiAgICAgaWQ8V2Vi
R2VvbG9jYXRpb25Qcm92aWRlcj4gX2dlb2xvY2F0aW9uUHJvdmlkZXI7CisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKKyAgICBPd25QdHI8V2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrPiBz
cGVlY2hJbnB1dENsaWVudE1vY2s7CisjZW5kaWYKIH0KIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbQppbmRleCAwNmRhNThmODcwYzlkZDg1NzczNjQzNWM0OGQwY2JlNzQzZDY3YTU4Li41
MGFlYjg1ZWUxZTY0NTJmNjA0YzlmZmYyYzdjM2Q1NmNkYWUwODkzIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBvcnQgIldlYktpdExvZ2dpbmcu
aCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9TcGVlY2hJbnB1dENsaWVudE1vY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1hdXRvLmg+CiAjaW1wb3J0IDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXgg
OWQ0N2E0ZGJjOGM5YTMxNzQ3ZDExYTgwMzJmNTk4MzQxYjUwMTdkZC4uZTJlMzU0OTFkZGE0MzQ4
ZTYwYmY5YWNkMDU4YTM5ODBkMjlhOWQ4MyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgKQEAgLTE2OCw2ICsxNjgsMTIgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKEJPT0wpc2hvdWxkQ2xv
c2U7CiAKIC8qIQorICAgIEBtZXRob2Qgc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0OgorICAgIEBw
YXJhbSB2YWx1ZSBUaGUgbW9jayByZXN1bHQgdmFsdWUgdG8gYmUgdXNlZCBmb3Igc3BlZWNoIGlu
cHV0LgorKi8KKy0gKHZvaWQpc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0OihOU1N0cmluZyAqKXZh
bHVlOworCisvKiEKICAgICBAbWV0aG9kIGFlRGVzY0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9t
U3RyaW5nOgogICAgIEBwYXJhbSBzY3JpcHQgVGhlIHRleHQgb2YgdGhlIEphdmFTY3JpcHQuCiAg
ICAgQHJlc3VsdCBUaGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQsIGNvbnZlcnRlZCB0byBhbiBOU0Fw
cGxlRXZlbnREZXNjcmlwdG9yLCBvciBuaWwgZm9yIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYjhlMDhjMmVh
NzhiMTE3YWIzZmNjNWU3ZmM2MTdiN2Q5MmEyY2YwYy4uNDFhNTcxOTVmMGRmMDEwNzI0NDUxMDc2
NTE4N2NjMjk1MmQ0MzEwMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA3LTE5ICBTYXRp
c2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbW9jayBhbmQgTGF5b3V0VGVzdENvbnRy
b2xsZXIgYmluZGluZ3MgZm9yIHNwZWVjaCBpbnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNjAzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRNb2NrU3BlZWNoSW5wdXRS
ZXN1bHRDYWxsYmFjayk6IEludm9rZSB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgTGF5b3V0VGVzdENv
bnRyb2xsZXIgbWV0aG9kIGZvciBzZXR0aW5nIHRoZSBtb2NrIHJlc3VsdC4KKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOiBQYXNzIG9uIG1vY2sgcmVzdWx0IHN0
cmluZyBmcm9tIGxheW91dCB0ZXN0IHRvIFdlYlZpZXcuCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KTogUGFzcyBvbiBtb2NrIHJlc3Vs
dCBzdHJpbmcgZnJvbSBsYXlvdXQgdGVzdCB0byBXZWJWaWV3LgorCiAyMDEwLTA3LTE5ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJv
YmVuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDZhOTU3YzEyNmVmNjE3NzFhMjg2YjBlZGZkMzRiNzMwYWM1NjhiMmIu
LjI2MjdmYzQ2ZWE2ZWI1ZDJhNDE0ZjFlM2RmMTRmYTAxZDYzOWUyYWIgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTk3
MCw2ICs5NzAsMjAgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZUNhbGxiYWNrKEpTQ29udGV4dFJlZgogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHZhbHVlKEFk
b3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVy
KiBjb250cm9sbGVyID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0KHZhbHVlLmdldCgpKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAzKQpAQCAtMTgyNiw2ICsxODQwLDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
InNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIiLCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9u
ZGVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3Ii
LCBzZXRNb2NrR2VvbG9jYXRpb25FcnJvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCBzZXRN
b2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXROZXdX
aW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdCIsIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRM
aXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UE9TSVhMb2NhbGUiLCBzZXRQT1NJ
WExvY2FsZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBlcnNpc3RlbnRVc2VyU3R5
bGVTaGVldExvY2F0aW9uIiwgc2V0UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb25DYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggMzBlYjliZDRmODQ0ZDRjYTljM2VlY2FiN2M2NmVkMGU3Nzkz
ODc4Zi4uOWNmMDRjNzVjODRjNDI5MjZiZTQ4NDRkOTNiODg1YTNhY2RkMWM5MyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0x
MDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1Jl
ZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KTsKICAgICB2b2lkIHNldEVkaXRpbmdC
ZWhhdmlvcihjb25zdCBjaGFyKiBlZGl0aW5nQmVoYXZpb3IpOworICAgIHZvaWQgc2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHZhbHVlKTsKIAogICAgIHZvaWQgd2FpdEZvclBv
bGljeURlbGVnYXRlKCk7CiAgICAgc2l6ZV90IHdlYkhpc3RvcnlJdGVtQ291bnQoKTsKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCAwYTA2YzE5YTg2ZGM3OWRhYjNhNjlhMDU5MzhmOGZhZGQ5
NDM1YTEyLi5hNTIwNjU3NDUzYjhiM2NjMTMzNDY1ZjFjOGMzMjNlZDczOTZiMTFiIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjksNiArMTY5LDggQEAgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhv
ZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1v
Y2tHZW9sb2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0aG9kKCJhYm9ydE1vZGFsIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKTsKIAorICAgIGJpbmRNZXRob2QoInNldE1vY2tT
cGVlY2hJbnB1dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElu
cHV0UmVzdWx0KTsKKwogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4g
YW4gdW5rbm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxh
eW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CiAKQEAgLTEzMzcsMyArMTMzOSwx
MSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwog
fQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sK
KyAgICByZXN1bHQtPnNldE51bGwoKTsKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8
ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc2hlbGwt
PndlYlZpZXcoKS0+c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KGNwcFZhcmlhbnRUb1dlYlN0cmlu
Zyhhcmd1bWVudHNbMF0pKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDQ2YTE0ZGVkZjNl
OTNmOTFkODJhMGUwMWJlYmVmZDI3ZjY1YTY4ZmIuLjc3M2FlZTQ5ZGI0MmNhZGY4ZmFlYjZkOTEz
NDcyNjNkZGY1YjgxMjMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjkwLDYgKzI5MCw5IEBA
IHB1YmxpYzoKICAgICAvLyBFbXB0eSBzdHViIG1ldGhvZCB0byBrZWVwIHBhcml0eSB3aXRoIG9i
amVjdCBtb2RlbCBleHBvc2VkIGJ5IGdsb2JhbCBMYXlvdXRUZXN0Q29udHJvbGxlci4KICAgICB2
b2lkIGFib3J0TW9kYWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisg
ICAgLy8gU3BlZWNoIGlucHV0IHJlbGF0ZWQgZnVuY3Rpb25zLgorICAgIHZvaWQgc2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwog
cHVibGljOgogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgbm90IGV4cG9zZWQgdG8g
SmF2YVNjcmlwdC4KICAgICB2b2lkIHNldFdvcmtRdWV1ZUZyb3plbihib29sIGZyb3plbikgeyBt
X3dvcmtRdWV1ZS5zZXRGcm96ZW4oZnJvemVuKTsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXgg
NWM5NDJkM2UyOWQ0M2RkMGY4NGMzOWFhNmZjZGRhMDgxYjY0ODhhNC4uNGFiOTFlZDMyZDA5Y2Fh
Y2JiMjM3MmYwZGQ3NmViNjY4ZjcxY2JmNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC03Mjcs
MyArNzI3LDkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9y
KGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcikKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFib3J0TW9kYWwoKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2Nr
U3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgdmFsdWUpCit7CisgICAgLy8gSW1wbGVtZW50
IHRoaXMgd2hlbiB0aGUgR3RrIHBvcnQgZ2V0cyBzcGVlY2ggaW5wdXQgZmVhdHVyZS4KK30KKwpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tCmluZGV4IDZiOTIxZjA3YjMwOTUzYTgzMWRhZGM5NjE4YTI4YTA2Y2Zj
NTQyODAuLmQ3NWIzYjBhYjc1MzE2ZDU0NmRiMTIxYTRjOWNhYzllOTU4MmZhODAgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0KQEAgLTMzNSw2ICszMzUsMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UK
ICAgICBbW01vY2tHZW9sb2NhdGlvblByb3ZpZGVyIHNoYXJlZF0gc2V0RXJyb3I6ZXJyb3JdOwog
fQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQo
SlNTdHJpbmdSZWYgdmFsdWUpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB2YWx1ZUNG
KEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHZhbHVl
KSk7CisgICAgTlNTdHJpbmcgKnZhbHVlTlMgPSAoTlNTdHJpbmcgKil2YWx1ZUNGLmdldCgpOwor
ICAgIHJldHVybiBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQ6
dmFsdWVOU107Cit9CisKKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFi
YXNlRW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpCiB7CiAgICAgLy8gRklYTUU6IFdv
cmthcm91bmQgPHJkYXI6Ly9wcm9ibGVtLzY0ODAxMDg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62750</attachid>
            <date>2010-07-27 14:52:49 -0700</date>
            <delta_ts>2010-07-29 12:50:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42603-20100727225247.patch</filename>
            <type>text/plain</type>
            <size>33855</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVj
aGJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZlMjI3M2M4OWU4ZjU1YmVjNGE4ZTEx
OTlmYTZmZDBjNDdlYWRmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAor
VGVzdHMgZm9yIHNwZWVjaCBidXR0b24gY2xpY2sgd2l0aCA8aW5wdXQgdHlwZT10ZXh0IHNwZWVj
aD4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnZhbHVlIGlz
ICJQaWN0dXJlcyBvZiB0aGUgbW9vbiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTBlOTA3MmU2ZTQ1NTRh
YTQzZTYyYTg5OTk5NWVjZTUwYjc2MTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0idGVzdCI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0
b24uanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRv
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMmYxMmY2OGI1OThiODllYzU2NjU3YzA3OGQwYmU4Mzg2YzcxOTVj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtdGV4dC1zcGVlY2hidXR0b24uanMKQEAgLTAsMCArMSwyNiBAQAorZGVzY3JpcHRpb24o
J1Rlc3RzIGZvciBzcGVlY2ggYnV0dG9uIGNsaWNrIHdpdGggJmx0O2lucHV0IHR5cGU9dGV4dCBz
cGVlY2g+LicpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0
aGUgbW9vbicpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKK2lucHV0LnNw
ZWVjaCA9ICdzcGVlY2gnOworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFu
Z2UsIGZhbHNlKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpOworCitmdW5jdGlv
biBvbkNoYW5nZSgpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywg
J1BpY3R1cmVzIG9mIHRoZSBtb29uJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCisv
LyBDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1y
ZWNvZ25pemVkIHRleHQuCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgdmFyIHggPSBp
bnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lkdGggLSA0OworICAgIHZhciB5ID0gaW5w
dXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ4N2JkYWIxZmY5YjgxZTFiYzhlNzIwZDAwYzBl
Mzk4ZWNkYmQ5ODAuLmU2MTgwYjcyNWYwN2EzNzJhZThjZmU1YzJjMGYwOGYxYTJmNjhjM2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zMDE1LDYgKzMwMTUsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVn
aXN0cnkuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2su
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vUGFzdGVib2FyZC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1
dENsaWVudE1vY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2N2FiMjA2MWE3NGY1ZWZmZmQ3ODlhMzRjZTFi
NGE3MWFhY2NjNTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgorCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q29udHJvbGxlci5oIgorCisjaWYgRU5BQkxFKElOUFVU
X1NQRUVDSCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hJbnB1dENsaWVudE1vY2s6
OlNwZWVjaElucHV0Q2xpZW50TW9jaygpCisgICAgOiBtX3JlY29yZGluZyhmYWxzZSkKKyAgICAs
IG1fdGltZXIodGhpcywgJlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZCkKKyAgICAs
IG1fbGlzdGVuZXIoMCkKK3sKK30KKworYm9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0YXJ0
UmVjb2duaXRpb24oKQoreworICAgIEFTU0VSVChtX3BhZ2UpOworICAgIGlmIChtX3RpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX3JlY29yZGluZyA9IHRydWU7
CisgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzdG9wUmVjb3JkaW5nKCkKK3sKKyAgICBpZiAobV90
aW1lci5pc0FjdGl2ZSgpICYmIG1fcmVjb3JkaW5nKSB7CisgICAgICAgIG1fdGltZXIuc3RvcCgp
OworICAgICAgICB0aW1lckZpcmVkKCZtX3RpbWVyKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNo
SW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1fdGltZXIu
aXNBY3RpdmUoKSkgeworICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICAgICAgbV9yZWNvcmRp
bmcgPSBmYWxzZTsKKyAgICAgICAgbV9wYWdlLT5zcGVlY2hJbnB1dENvbnRyb2xsZXIoKS0+ZGlk
Q29tcGxldGVSZWNvZ25pdGlvbigpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hJbnB1dENsaWVu
dE1vY2s6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQoreworICAg
IG1fcmVjb2duaXRpb25SZXN1bHQgPSByZXN1bHQ7Cit9CisKK3ZvaWQgU3BlZWNoSW5wdXRDbGll
bnRNb2NrOjpzZXRQYWdlKFBhZ2UqIHBhZ2UpCit7CisgICAgbV9wYWdlID0gcGFnZTsKK30KKwor
dm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U3Bl
ZWNoSW5wdXRDbGllbnRNb2NrPiopCit7CisgICAgaWYgKG1fcmVjb3JkaW5nKSB7CisgICAgICAg
IG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fcGFnZS0+c3BlZWNoSW5wdXRDb250cm9s
bGVyKCktPmRpZENvbXBsZXRlUmVjb3JkaW5nKCk7CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KDApOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fcGFnZS0+c3BlZWNoSW5wdXRDb250cm9s
bGVyKCktPnNldFJlY29nbml0aW9uUmVzdWx0KG1fcmVjb2duaXRpb25SZXN1bHQpOworICAgICAg
ICBtX3BhZ2UtPnNwZWVjaElucHV0Q29udHJvbGxlcigpLT5kaWRDb21wbGV0ZVJlY29nbml0aW9u
KCk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAgLy8gRU5B
QkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suaCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENs
aWVudE1vY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDViZWNjNGRkOTJhMjljODVhNDFhYTVlNTAxMmQ2ZWZj
MzVkNDVjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElu
cHV0Q2xpZW50TW9jay5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0Q2xpZW50
TW9ja19oCisjZGVmaW5lIFNwZWVjaElucHV0Q2xpZW50TW9ja19oCisKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCisjaW5jbHVkZSAi
VGltZXIuaCIKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGFnZTsKK2NsYXNzIFNwZWVjaElucHV0TGlzdGVuZXI7CisKKy8vIFByb3Zp
ZGVzIGEgbW9jayBvYmplY3QgZm9yIHRoZSBzcGVlY2ggaW5wdXQgZW1iZWRkZXIgQVBJIGNhbGxl
ZCBieSBXZWJDb3JlLgorY2xhc3MgU3BlZWNoSW5wdXRDbGllbnRNb2NrIDogcHVibGljIFNwZWVj
aElucHV0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBTcGVlY2hJbnB1dENsaWVudE1vY2soKTsKKwor
ICAgIHZvaWQgc2V0UGFnZShQYWdlKik7CisgICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChj
b25zdCBTdHJpbmcmIHJlc3VsdCk7CisKKyAgICAvLyBTcGVlY2hJbnB1dENsaWVudCBtZXRob2Rz
LgorICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbigpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygp
OworICAgIHZvaWQgY2FuY2VsUmVjb2duaXRpb24oKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRp
bWVyRmlyZWQoVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopOworCisgICAgYm9vbCBtX3Jl
Y29yZGluZzsKKyAgICBUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+IG1fdGltZXI7CisgICAg
U3BlZWNoSW5wdXRMaXN0ZW5lciogbV9saXN0ZW5lcjsKKyAgICBTdHJpbmcgbV9yZWNvZ25pdGlv
blJlc3VsdDsKKyAgICBQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5w
dXRDbGllbnRNb2NrX2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNzk1YWJiYjhiMGE5MWY5ZDc0ODdhMTE1
N2VhMjgxYjVkNGI2N2NlNy4uZTEzZTk1MmRjM2ZkNjBhZjZiYTk1ZjU3YmYzYWE0MWVmYTAwMTkx
MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKQEAgLTk1LDYgKzk1LDggQEAKICAgICAgICAgICAgICAgICAnPChj
aHJvbWl1bV9zcmNfZGlyKS90aGlyZF9wYXJ0eS9ucGFwaS9ucGFwaS5neXA6bnBhcGknLAogICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICAg
ICAgJy4uL2NvbW1vbi9wdWJsaWMnLAorICAgICAgICAgICAgICAgICcuLi9jb21tb24vc3JjJywK
ICAgICAgICAgICAgICAgICAncHVibGljJywKICAgICAgICAgICAgICAgICAnc3JjJywKICAgICAg
ICAgICAgIF0sCkBAIC0xMDIsNiArMTA0LDEyIEBACiAgICAgICAgICAgICAgICAgJ1dFQktJVF9J
TVBMRU1FTlRBVElPTj0xJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnc291cmNlcyc6
IFsKKyAgICAgICAgICAgICAgICAnLi4vY29tbW9uL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENsaWVu
dE1vY2suaCcsCisgICAgICAgICAgICAgICAgJy4uL2NvbW1vbi9wdWJsaWMvV2ViVmlld01vY2tz
LmgnLAorICAgICAgICAgICAgICAgICcuLi9jb21tb24vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50
TW9ja0ltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnLi4vY29tbW9uL3NyYy9XZWJTcGVlY2hJ
bnB1dENsaWVudE1vY2tJbXBsLmgnLAorICAgICAgICAgICAgICAgICcuLi9jb21tb24vc3JjL1dl
YlZpZXdNb2Nrc0ltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnLi4vY29tbW9uL3NyYy9XZWJW
aWV3TW9ja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvZ3RrL1dlYklucHV0RXZl
bnRGYWN0b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbGludXgvV2ViRm9udFJlbmRl
cmluZy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHls
ZS5oJywKQEAgLTY4OSw2ICs2OTcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgJzwoY2hy
b21pdW1fc3JjX2RpcikvZ3B1L2dwdS5neXA6Z2xlczJfY19saWInLAogICAgICAgICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWworICAgICAgICAg
ICAgICAgICAgICAgICAgJy4uL2NvbW1vbi9wdWJsaWMnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJy4uL2NvbW1vbi9zcmMnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYycsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAnc3JjJywKICAgICAgICAgICAgICAgICAgICAgXSwKQEAg
LTc0OSw2ICs3NTksNyBAQAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdpbmNsdWRlX2Rp
cnMnOiBbCiAgICAgICAgICAgICAgICAgJy4nLAorICAgICAgICAgICAgICAgICcuLi9jb21tb24n
LAogICAgICAgICAgICAgICAgICcuLi8uLi9KYXZhU2NyaXB0Q29yZScsCiAgICAgICAgICAgICAg
ICAgJy4uLy4uL0phdmFTY3JpcHRDb3JlL3d0ZicsICMgd3RmL3RleHQvKi5oIHJlZmVycyBoZWFk
ZXJzIGluIHd0Zi8gd2l0aG91dCB3dGYvLgogICAgICAgICAgICAgICAgICc8KERFUFRIKScsCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDI2ZDcyNjkzMjQzNGI4MmVhMTg4YjlkNTUwNGRl
NTZkMmIzYmQ0NmEuLjc0MTZhNTYyNzA4MTU0OWJkNmI3YTM0OGM4ODdmOTJlOGY5ZmEzYzAgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC01MSw2ICs1MSw3IEBAIGNsYXNzIFdlYlN0cmlu
ZzsKIGNsYXNzIFdlYlZpZXdDbGllbnQ7CiBzdHJ1Y3QgV2ViTWVkaWFQbGF5ZXJBY3Rpb247CiBz
dHJ1Y3QgV2ViUG9pbnQ7CitjbGFzcyBXZWJWaWV3TW9ja3M7CiAKIGNsYXNzIFdlYlZpZXcgOiBw
dWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKQEAgLTMzOSw2ICszNDAsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gY3JlYXRlZCBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCiAgICAgdmlydHVhbCBX
ZWJHTEVTMkNvbnRleHQqIGdsZXMyQ29udGV4dCgpID0gMDsKIAorICAgIHZpcnR1YWwgV2ViVmll
d01vY2tzKiBnZXRNb2NrcygpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30K
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDQ2MjhjMmY0NDNk
MzUwMmZlNTJiNzY0MmJhNDg1YjAzN2RhNTUyNTQuLjFmM2IxODczMDA1NGMxYThkODZlYmNiNGI5
YWFhYzE3M2VlMjJhNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBA
IC0xMTEsNiArMTExLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydExvYWRp
bmcoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcExvYWRpbmcoKSB7IH0KIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VNb2NrcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBF
ZGl0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBlYzcxZWJk
ZDAwZGVmNmVjYjBjYTU2OWRmZDdmMDc3NWVkMjJjOWRkLi4zMGU4YjlhODYyMjEwOWJjYzMwNTg2
MTI2ZWFhMzgwYjgxOWMzMTY0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAt
ODUsNiArODUsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoSW5wdXRDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUeXBp
bmdDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmVjdG9yLmgiCkBAIC0xMTAsNiArMTExLDggQEAKICNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJX
ZWJWaWV3Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViVmlld01vY2tzSW1wbC5oIgorI2luY2x1ZGUg
IldlYlNwZWVjaElucHV0Q2xpZW50TW9ja0ltcGwuaCIKICNpbmNsdWRlICJ3dGYvT3duUHRyLmgi
CiAKICNpZiBPUyhXSU5ET1dTKQpAQCAtMjI2LDYgKzIyOSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmluaXRpYWxpemVNYWluRnJhbWUoV2ViRnJhbWVDbGllbnQqIGZyYW1lQ2xpZW50KQogCiBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LCBXZWJEZXZUb29sc0Fn
ZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAs
IG1fbW9ja3MoY2xpZW50LT5zaG91bGRVc2VNb2NrcygpID8gbmV3IFdlYlZpZXdNb2Nrc0ltcGwo
KSA6IDApCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdENsaWVudEltcGwodGhpcykKICAgICAsIG1f
Y2hyb21lQ2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9jb250ZXh0TWVudUNsaWVudEltcGwodGhp
cykKQEAgLTI1OCw5ICsyNjIsNiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0Ns
aWVudCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29scwogICAgICwgbV9s
YXllclJlbmRlcmVyKDApCiAgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShm
YWxzZSkKICNlbmRpZgotI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0gICAgLCBtX3NwZWVjaElu
cHV0Q2xpZW50KHRoaXMpCi0jZW5kaWYKICAgICAsIG1fZ2xlczJDb250ZXh0KDApCiB7CiAgICAg
Ly8gV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBkb2VzIHRoZSBzYW1lIHRoaW5nLCBleGNlcHQgdGhl
eSBjYWxsIHRoZQpAQCAtMjc3LDcgKzI3OCwxMiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwo
V2ViVmlld0NsaWVudCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29scwog
CiAgICAgV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50ID0gMDsK
ICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQotICAgIHNwZWVjaElucHV0Q2xpZW50ID0gJm1fc3Bl
ZWNoSW5wdXRDbGllbnQ7CisgICAgaWYgKG1fbW9ja3MuZ2V0KCkpIHsKKyAgICAgICAgc3BlZWNo
SW5wdXRDbGllbnQgPSBtX21vY2tzLT5zcGVlY2hJbnB1dENsaWVudE1vY2soKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBtX3NwZWVjaElucHV0Q2xpZW50LnNldChuZXcgU3BlZWNoSW5wdXRDbGll
bnRJbXBsKHRoaXMpKTsKKyAgICAgICAgc3BlZWNoSW5wdXRDbGllbnQgPSBtX3NwZWVjaElucHV0
Q2xpZW50LmdldCgpOworICAgIH0KICNlbmRpZgogCiAgICAgbV9wYWdlLnNldChuZXcgUGFnZSgm
bV9jaHJvbWVDbGllbnRJbXBsLCAmbV9jb250ZXh0TWVudUNsaWVudEltcGwsICZtX2VkaXRvckNs
aWVudEltcGwsICZtX2RyYWdDbGllbnRJbXBsLCAmbV9pbnNwZWN0b3JDbGllbnRJbXBsLCAwLCAw
LCAwLCAwLCBzcGVlY2hJbnB1dENsaWVudCkpOwpAQCAtMjg2LDYgKzI5MiwxMCBAQCBXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50
Q2xpZW50KiBkZXZUb29scwogCiAgICAgbV9wYWdlLT5iYWNrRm9yd2FyZExpc3QoKS0+c2V0Q2xp
ZW50KCZtX2JhY2tGb3J3YXJkTGlzdENsaWVudEltcGwpOwogICAgIG1fcGFnZS0+c2V0R3JvdXBO
YW1lKHBhZ2VHcm91cE5hbWUpOworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgaWYgKG1f
bW9ja3MuZ2V0KCkpCisgICAgICAgIG1fbW9ja3MtPnNwZWVjaElucHV0Q2xpZW50TW9jaygpLT5z
ZXRQYWdlKG1fcGFnZS5nZXQoKSk7CisjZW5kaWYKIAogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NN
YXAuc2V0KG5ldyBTZXR0aW5nc01hcCk7CiB9CkBAIC0yMTk2LDQgKzIyMDYsOSBAQCBXZWJHTEVT
MkNvbnRleHQqIFdlYlZpZXdJbXBsOjpnbGVzMkNvbnRleHQoKQogICAgIHJldHVybiBtX2dsZXMy
Q29udGV4dC5nZXQoKTsKIH0KIAorV2ViVmlld01vY2tzKiBXZWJWaWV3SW1wbDo6Z2V0TW9ja3Mo
KQoreworICAgIHJldHVybiBtX21vY2tzLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBkMGZkYTkyNTc2OGRlZjg5MDQ0NDI1
Zjg3OGZhODUwNmI1OWNlYzFiLi4xYTNiYjE1YWE4NjI0ODNiYTdmZWIxNTNjY2M5NzYxNDRiODA2
ZGQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJv
bWl1bS5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKLSNpbmNsdWRl
ICJTcGVlY2hJbnB1dENsaWVudEltcGwuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNjQsNiArNjMsNyBAQCBjbGFzcyBQb3B1cENv
bnRhaW5lcjsKIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFJhbmdlOwogY2xhc3MgUmVu
ZGVyVGhlbWU7CitjbGFzcyBTcGVlY2hJbnB1dENsaWVudDsKIGNsYXNzIFdpZGdldDsKIH0KIApA
QCAtNzIsNiArNzIsNyBAQCBjbGFzcyBBdXRvY29tcGxldGVQb3B1cE1lbnVDbGllbnQ7CiBjbGFz
cyBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50SW1wbDsK
IGNsYXNzIERyYWdTY3JvbGxUaW1lcjsKK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50SW1wbDsKIGNs
YXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50Q2xpZW50
OwogY2xhc3MgV2ViRGV2VG9vbHNBZ2VudFByaXZhdGU7CkBAIC04Miw2ICs4Myw3IEBAIGNsYXNz
IFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CiBjbGFzcyBXZWJTZXR0
aW5nc0ltcGw7CiBjbGFzcyBXZWJUb3VjaEV2ZW50OworY2xhc3MgV2ViVmlld01vY2tzSW1wbDsK
IAogY2xhc3MgV2ViVmlld0ltcGwgOiBwdWJsaWMgV2ViVmlldywgcHVibGljIFJlZkNvdW50ZWQ8
V2ViVmlld0ltcGw+IHsKIHB1YmxpYzoKQEAgLTMzOCw2ICszNDAsOCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiog
c2Nyb2xsRGlyZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJD
b3JlOjpTY3JvbGxHcmFudWxhcml0eSogc2Nyb2xsR3JhbnVsYXJpdHkpOwogCisgICAgV2ViVmll
d01vY2tzKiBnZXRNb2NrcygpOworCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJWaWV3
OyAgLy8gU28gV2ViVmlldzo6Q3JlYXRlIGNhbiBjYWxsIG91ciBjb25zdHJ1Y3RvcgogICAgIGZy
aWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8V2ViVmlld0ltcGw+OwpAQCAtNTEzLDEwICs1MTcs
MTIgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgV2ViSW5wdXRFdmVudCogbV9jdXJyZW50
SW5wdXRFdmVudDsKIAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0gICAgU3BlZWNoSW5wdXRD
bGllbnRJbXBsIG1fc3BlZWNoSW5wdXRDbGllbnQ7CisgICAgT3duUHRyPFNwZWVjaElucHV0Q2xp
ZW50SW1wbD4gbV9zcGVlY2hJbnB1dENsaWVudDsKICNlbmRpZgogCiAgICAgT3duUHRyPFdlYkdM
RVMyQ29udGV4dD4gbV9nbGVzMkNvbnRleHQ7CisKKyAgICBPd25QdHI8V2ViVmlld01vY2tzSW1w
bD4gbV9tb2NrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2NvbW1vbi9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggYi9XZWJLaXQvY29t
bW9uL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENsaWVudE1vY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmVkNmE0
NDdhZDJiYzUzMGVkODY4NmU2MzcxNDY2OWYxNmFiMWVlCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2NvbW1vbi9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gKKyNkZWZpbmUgV2ViU3BlZWNo
SW5wdXRDbGllbnRNb2NrX2gKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYlNwZWVjaElucHV0Q2xp
ZW50TW9jayB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0
KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2NvbW1vbi9wdWJsaWMvV2ViVmlld01vY2tzLmggYi9XZWJLaXQvY29tbW9uL3B1
YmxpYy9XZWJWaWV3TW9ja3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGE0NWYyOTg5NmM2MjlkYWMxMmQ0YWZi
M2UxMDlhY2IyMWIzY2QyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2NvbW1vbi9wdWJsaWMv
V2ViVmlld01vY2tzLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVmlld01vY2tzX2gKKyNk
ZWZpbmUgV2ViVmlld01vY2tzX2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNw
ZWVjaElucHV0Q2xpZW50TW9jazsKKworY2xhc3MgV2ViVmlld01vY2tzIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIFdlYlNwZWVjaElucHV0Q2xpZW50TW9jayogc3BlZWNoSW5wdXRDbGllbnQoKSA9
IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY29tbW9uL3NyYy9XZWJTcGVlY2hJbnB1dENsaWVudE1vY2tJbXBsLmNwcCBiL1dlYktp
dC9jb21tb24vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50TW9ja0ltcGwuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmExZGExZTBiZTFmNWFlYzZjNDY1OTUzMzNkOTdmNGJhNGM0NTBkZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvY29tbW9uL3NyYy9XZWJTcGVlY2hJbnB1dENsaWVudE1vY2tJbXBsLmNwcApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNwZWVjaElu
cHV0Q2xpZW50TW9ja0ltcGwuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbDo6V2ViU3BlZWNoSW5w
dXRDbGllbnRNb2NrSW1wbCgpCisgICAgOiBXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2so
KQoreworfQorCit2b2lkIFdlYlNwZWVjaElucHV0Q2xpZW50TW9ja0ltcGw6OnNldFJlY29nbml0
aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0KQoreworICAgIFdlYkNvcmU6OlNwZWVj
aElucHV0Q2xpZW50TW9jazo6c2V0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2NvbW1vbi9zcmMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbC5o
IGIvV2ViS2l0L2NvbW1vbi9zcmMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM2NDIwYzhkODMzNmE1MDNhYWRkOWYwMWU1OTBjOWRhYTAwMWM4MTgKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY29tbW9uL3NyYy9XZWJTcGVlY2hJbnB1dENsaWVudE1vY2tJbXBs
LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
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
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbF9o
CisjZGVmaW5lIFdlYlNwZWVjaElucHV0Q2xpZW50TW9ja0ltcGxfaAorCisjaW5jbHVkZSAiV2Vi
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbAorICAgIDogcHVibGljIFdlYkNvcmU6
OlNwZWVjaElucHV0Q2xpZW50TW9jaywKKyAgICAgIHB1YmxpYyBXZWJTcGVlY2hJbnB1dENsaWVu
dE1vY2sgeworcHVibGljOgorICAgIFdlYlNwZWVjaElucHV0Q2xpZW50TW9ja0ltcGwoKTsKKwor
ICAgIC8vIFdlYlNwZWVjaElucHV0Q2xpZW50TW9jayBtZXRob2RzLgorICAgIHZvaWQgc2V0UmVj
b2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jb21tb24vc3JjL1dlYlZpZXdNb2Nrc0ltcGwuY3BwIGIvV2Vi
S2l0L2NvbW1vbi9zcmMvV2ViVmlld01vY2tzSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiM2U5NTJk
Y2JkZDc2YTIwOGQ1MDA2MzNiZDNjZGZkNzBmNGI3MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jb21tb24vc3JjL1dlYlZpZXdNb2Nrc0ltcGwuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlld01vY2tzSW1wbC5oIgorCisjaW5jbHVkZSAi
V2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViVmlld01vY2tzSW1wbDo6V2ViVmlld01vY2tzSW1wbCgpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2NvbW1vbi9zcmMvV2ViVmlld01vY2tzSW1w
bC5oIGIvV2ViS2l0L2NvbW1vbi9zcmMvV2ViVmlld01vY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
MzMxNmRkOTk4ODFkMmNjZWRiNjc4YzJkMWE4ZmM3NGFhNTJhM2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQvY29tbW9uL3NyYy9XZWJWaWV3TW9ja3NJbXBsLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViVmlld01vY2tzSW1wbF9oCisjZGVmaW5lIFdlYlZpZXdNb2Nrc0ltcGxfaAorCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlld01vY2tzLmgiCisKKyNpbmNsdWRl
ICJXZWJTcGVlY2hJbnB1dENsaWVudE1vY2tJbXBsLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJWaWV3TW9ja3NJbXBsIDogcHVibGljIFdlYlZpZXdNb2NrcyB7CitwdWJsaWM6
CisgICAgV2ViVmlld01vY2tzSW1wbCgpOworCisgICAgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2Nr
SW1wbCogc3BlZWNoSW5wdXRDbGllbnRNb2NrKCkgeyByZXR1cm4gJm1fc3BlZWNoSW5wdXRDbGll
bnQ7IH0KKworICAgIC8vIFdlYlZpZXdNb2NrcyBtZXRob2RzCisgICAgV2ViU3BlZWNoSW5wdXRD
bGllbnRNb2NrKiBzcGVlY2hJbnB1dENsaWVudCgpIHsgcmV0dXJuICZtX3NwZWVjaElucHV0Q2xp
ZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrSW1wbCBtX3Nw
ZWVjaElucHV0Q2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGVhMWZkMDE5OGMyZmFlMjRlZTBiYjcxMTkzODVk
ZDcxNWZjYTJiMWQuLmM0ZjlhYWQ2MzQ3NjJlZTNjN2VjNmRjNzRkNWM5ZjNhNjJjMTJkYjMgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTUwLDYgKzUwLDggQEAKICNpbmNsdWRlICJwdWJs
aWMvV2ViU2l6ZS5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJVUkwuaCIKICNpbmNsdWRlICJwdWJs
aWMvV2ViVmlldy5oIgorI2luY2x1ZGUgInB1YmxpYy9XZWJWaWV3TW9ja3MuaCIKKyNpbmNsdWRl
ICJwdWJsaWMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAid2Via2l0L3N1
cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IApAQCAtMTY4LDYgKzE3MCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0
aG9kKCJhYm9ydE1vZGFsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKTsKKyAg
ICBiaW5kTWV0aG9kKCJzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk7CiAKICAgICAvLyBUaGUgZmFsbGJhY2sg
bWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIHVua25vd24gbWV0aG9kIGlzIGludm9rZWQuCiAgICAg
YmluZEZhbGxiYWNrTWV0aG9kKCZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmFsbGJhY2tNZXRob2Qp
OwpAQCAtMTMzOCwzICsxMzQxLDE0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFib3J0
TW9kYWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhCiB7CiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFdlYktpdDo6V2ViVmlld01vY2tzKiBtb2NrcyA9IG1fc2hlbGwtPndlYlZp
ZXcoKS0+Z2V0TW9ja3MoKTsKKyAgICBpZiAobW9ja3MgJiYgbW9ja3MtPnNwZWVjaElucHV0Q2xp
ZW50KCkpCisgICAgICAgIG1vY2tzLT5zcGVlY2hJbnB1dENsaWVudCgpLT5zZXRSZWNvZ25pdGlv
blJlc3VsdChjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAppbmRleCA0NmExNGRlZGYzZTkzZjkxZDgyYTBlMDFiZWJlZmQyN2Y2NWE2OGZi
Li43NzNhZWU0OWRiNDJjYWRmOGZhZWI2ZDkxMzQ3MjYzZGRmNWI4MTIzIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKQEAgLTI5MCw2ICsyOTAsOSBAQCBwdWJsaWM6CiAgICAgLy8gRW1wdHkgc3R1YiBt
ZXRob2QgdG8ga2VlcCBwYXJpdHkgd2l0aCBvYmplY3QgbW9kZWwgZXhwb3NlZCBieSBnbG9iYWwg
TGF5b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdm9pZCBhYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIFNwZWVjaCBpbnB1dCByZWxhdGVkIGZ1
bmN0aW9ucy4KKyAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5n
IG1ldGhvZHMgYXJlIG5vdCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCiAgICAgdm9pZCBzZXRXb3Jr
UXVldWVGcm96ZW4oYm9vbCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3plbik7
IH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5oCmluZGV4IDFlNTFiZTcxNGRiMDA5MjU0Nzc0Nzc0NjQyZGMwYWZlNTExYzJlNGUuLjQxODMx
OGFiZjdkNDIyZjk4YzkxM2U4OGI2ZDAyMWZlNjVmYzVhZDIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTI2LDYgKzEyNiw3
IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVi
bGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzQWNjZXNz
aWJpbGl0eU9iamVjdChjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKICAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25Q
cmVzZW50ZXIoKTsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlKiBn
ZW9sb2NhdGlvblNlcnZpY2UoKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlTW9ja3MoKSB7
IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBXZWJLaXQ6OldlYldpZGdldENsaWVudAogICAgIHZp
cnR1YWwgdm9pZCBkaWRJbnZhbGlkYXRlUmVjdChjb25zdCBXZWJLaXQ6OldlYlJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62977</attachid>
            <date>2010-07-29 12:51:03 -0700</date>
            <delta_ts>2010-07-30 03:58:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42603-20100729205100.patch</filename>
            <type>text/plain</type>
            <size>14934</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjZTEwNzY5ZWMwNmFhZmNkNDA4MDJmZmRhYmU1MmY3ZjQ1YWIzZDBkLi4zMWYyNWNhMTVkNjk4
ZWQ3OWQ5YTJkY2Y2NjBmNjdhZjRhMTE5OTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01MTcsNiArNTE3LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5jcHAgXAorCXBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cCBcCiAJXAogCXBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCBcCiAJcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFlYWM5ZTRkNTliMDQyNGRk
NWEzNTMzMWVlNDg5YzNlMDVhZDk3MmQuLjRiNmI5ZmM3YmJhZGY4YTA3ZDlmYmFlOGJiZTBiOGZh
NTlmYTQ2MGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDctMjkgIFNhdGlzaCBTYW1wYXRoICA8c2F0
aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBtb2NrIGluIFdlYkNvcmUgZm9yIHRlc3Rpbmcgc3BlZWNoIGlucHV0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjYwMwor
CisgICAgICAgIExheW91dCB0ZXN0cyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aCB1c2luZyB0aGlzIG1vY2suCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaElucHV0Q2xpZW50TW9jazo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0b3BSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9u
UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDog
QWRkZWQuCisKIDIwMTAtMDctMjkgIFZpY3RvciBXYW5nICA8dmljdG9yd0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY0MjcwLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggODM4
OWVkNjBkNmEyY2U5NDQ0N2RmNDAxYTQzMWU4NDdlNTM3MzM1MC4uMjAzNzczZjJkZjAxM2NmMThk
OGUwYjQ5MDZjODZmOTRjMDVmODkxMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xODk5LDYgKzE4OTksOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgXAogCVdl
YkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAorCVdlYkNvcmUv
cGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIFwKKwlXZWJDb3JlL3BsYXRm
b3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vTm90
SW1wbGVtZW50ZWQuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggXAogCVdlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2OThlMzAyNTZiYjdm
YmRlNzMyNjYwYjFhYWUwNmE4YTMyNjRhOGYyLi5hOTRjZjZmODhiMmU2ZDRkYmE0YzNhNzBkZmE5
ZmIwMTM1NjM5NWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzAxNCw2ICszMDE0LDggQEAKICAgICAgICAgICAgICdwbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL05vdEltcGxlbWVudGVk
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYjdmMTUyZTJlMzM5ODdmNDM1
NDEwYzlmYWQyYmVmYTQ0Y2FmMDU3OC4uMjg2MGE1ZTdjMTg1ZDI3ZWRlYzE0OGE2OTZmMmM4NmY1
ZmQ5YmEzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC05MTMsNiArOTEzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0v
TG9nZ2luZy5jcHAgXAogICAgIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKICAgICBw
bGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKKyAgICBwbGF0Zm9ybS9t
b2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9DcmVk
ZW50aWFsLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgXApAQCAtMTYz
MSw2ICsxNjMyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmggXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCBcCisgICAgcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggMTY3YmE4Y2E2MTlkZDZjNGYzNGYxYjJjYzNhMTFmYWI1M2JmNmRjZi4u
ZTBlNzFmYjAyYmRiYWI0NjM0NjcyZGM3MjU5OGIzMWE4YzY1MTU2OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODE3OSw2ICsyODE3OSwxNCBAQAogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIg0KIAkJ
CQkJPg0KIAkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXG1vY2tcU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCINCisJCQkJCT4NCisJCQkJPC9G
aWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXFNw
ZWVjaElucHV0Q2xpZW50TW9jay5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0
ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDdhZjYzODc4ODJlZjQ4NDI5MmVmNDY5MGVhMDE2MzhmMWNm
ZDcxNTIuLmFjMDZiNjZlMzFiODAwOTQ4OTVmZDA0NzJmM2RlYTQwMDRiMjEyOGYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQ5LDYgKzEzNDksOCBA
QAogCQk3NTBEMDI5MzExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyOTExMUQw
RTdGMzAwQkQxQjI3IC8qIFJlbmRlcklucHV0U3BlZWNoLmNwcCAqLzsgfTsKIAkJNzUwRDAyOTQx
MUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRlcklucHV0U3BlZWNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTBEMDI5MjExRDBFN0YzMDBCRDFCMjcgLyog
UmVuZGVySW5wdXRTcGVlY2guaCAqLzsgfTsKIAkJNzUwRDAyQzExMUQwRUU3RDAwQkQxQjI3IC8q
IGlucHV0U3BlZWNoLnRpZmYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1MEQwMkMwMTFEMEVFN0QwMEJEMUIyNyAvKiBpbnB1dFNwZWVjaC50aWZmICov
OyB9OworCQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MzVC
QzkyMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwICovOyB9Owor
CQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MzEyMDIw
Q0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi87IH07CiAJCTc1NDEzM0E4
MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxMzNBNzEwMkUwMEU4MDAwNzVE
MDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oICovOyB9OwogCQk3NTQxMzNBQTEwMkUwMEY0
MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKQEAgLTcxMjgsNiArNzEzMCw4IEBACiAJCTc1MEQwMjkx
MTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJJbnB1dFNwZWVjaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1MEQwMjkyMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1
dFNwZWVjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJJbnB1dFNw
ZWVjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTBEMDJDMDExRDBFRTdEMDBC
RDFCMjcgLyogaW5wdXRTcGVlY2gudGlmZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnRpZmY7IHBhdGggPSBpbnB1dFNwZWVjaC50aWZmOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTM1QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyog
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHA7IHBhdGggPSBtb2NrL1NwZWVjaElucHV0
Q2xpZW50TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MzVCQzkzMTIw
MjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3BlZWNoSW5wdXRDbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL1Nw
ZWVjaElucHV0Q2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQx
MzNBNzEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIwNDQsNiArMTIwNDgsOCBAQAogCQk1
OUM3N0YxMDEwNTQ1OTFDMDA1MDYxMDQgLyogbW9jayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAgKi8sCisJCQkJNzUzNUJDOTMxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBtb2NrOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE5ODcxLDYgKzE5ODc3LDcgQEAKIAkJCQkwODRE
MEUzRDExRjU4MTYxMDAwODFFMUEgLyogU1ZHUmVzb3VyY2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODREMEUzRjExRjU4MTYxMDAwODFFMUEgLyogU1ZHUmVzb3VyY2VzQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NUIwNUMzMTFGQUUxNkMwMDRENjVGNiAvKiBTVkdSZXNvdXJjZXNDeWNs
ZVNvbHZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMjI3MCw2ICsyMjI3
Nyw3IEBACiAJCQkJMDg0RDBFM0UxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4NkE0MDA2MTFGNkQ2QjcwMDJDRUM1MyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODVCMDVDMjEx
RkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9T
cGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElu
cHV0Q2xpZW50TW9jay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExMDJlNTNkNDUyZTAwNTVlZmJlNDZiZTMy
ZDQ2NGI0YjNkY2I3YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9T
cGVlY2hJbnB1dENsaWVudE1vY2suY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgiCisKKyNpbmNsdWRlICJTcGVl
Y2hJbnB1dExpc3RlbmVyLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1NwZWVjaElucHV0Q2xpZW50TW9jazo6U3BlZWNoSW5wdXRDbGllbnRN
b2NrKCkKKyAgICA6IG1fcmVjb3JkaW5nKGZhbHNlKQorICAgICwgbV90aW1lcih0aGlzLCAmU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKQorICAgICwgbV9saXN0ZW5lcigwKQorewor
fQorCitib29sIFNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJ
bnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9saXN0ZW5lciA9IGxpc3RlbmVyOworICAgIG1f
cmVjb3JkaW5nID0gdHJ1ZTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwLjEpOworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RvcFJlY29yZGlu
ZygpCit7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSAmJiBtX3JlY29yZGluZykgeworICAg
ICAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICAgICAgdGltZXJGaXJlZCgmbV90aW1lcik7CisgICAg
fQorfQorCit2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6Y2FuY2VsUmVjb2duaXRpb24oKQor
eworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7
CisgICAgICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENv
bXBsZXRlUmVjb2duaXRpb24oKTsKKyAgICAgICAgbV9saXN0ZW5lciA9IDA7CisgICAgfQorfQor
Cit2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6c2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3Qg
U3RyaW5nJiByZXN1bHQpCit7CisgICAgbV9yZWNvZ25pdGlvblJlc3VsdCA9IHJlc3VsdDsKK30K
Kwordm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8
U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopCit7CisgICAgaWYgKG1fcmVjb3JkaW5nKSB7CisgICAg
ICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRl
UmVjb3JkaW5nKCk7CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDAuMSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQobV9yZWNvZ25p
dGlvblJlc3VsdCk7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24o
KTsKKyAgICAgICAgbV9saXN0ZW5lciA9IDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhY2E0NDQwMzdi
ODI0OGU0OTNjM2ViOGNlODY3MzcyMjA5ZDVkYmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKQEAgLTAsMCArMSw2OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRN
b2NrX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5w
dXRDbGllbnQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyOwor
CisvLyBQcm92aWRlcyBhIG1vY2sgb2JqZWN0IGZvciB0aGUgc3BlZWNoIGlucHV0IGVtYmVkZGVy
IEFQSSBjYWxsZWQgYnkgV2ViQ29yZS4KK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50TW9jayA6IHB1
YmxpYyBTcGVlY2hJbnB1dENsaWVudCB7CitwdWJsaWM6CisgICAgU3BlZWNoSW5wdXRDbGllbnRN
b2NrKCk7CisKKyAgICB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVz
dWx0KTsKKworICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhvZHMuCisgICAgYm9vbCBzdGFy
dFJlY29nbml0aW9uKFNwZWVjaElucHV0TGlzdGVuZXIqKTsKKyAgICB2b2lkIHN0b3BSZWNvcmRp
bmcoKTsKKyAgICB2b2lkIGNhbmNlbFJlY29nbml0aW9uKCk7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCB0aW1lckZpcmVkKFRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4qKTsKKworICAgIGJvb2wg
bV9yZWNvcmRpbmc7CisgICAgVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiBtX3RpbWVyOwor
ICAgIFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7CisgICAgU3RyaW5nIG1fcmVjb2du
aXRpb25SZXN1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63045</attachid>
            <date>2010-07-30 03:58:57 -0700</date>
            <delta_ts>2010-07-30 04:14:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42603-20100730115855.patch</filename>
            <type>text/plain</type>
            <size>14929</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBlNDhmZjJjYzk2MjQ2N2Y4Yjg4NjAxMzA5ZmUzMDMyMGRkZmI3ZDhlLi4yODBhZjU1N2QyYjRh
OTk5MjhlYmZlMzZjMzc3NTY0MzBjOTgwNjJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01MTcsNiArNTE3LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5jcHAgXAorCXBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cCBcCiAJXAogCXBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCBcCiAJcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU3ZTA2N2ZjNDhhNDNiMGFh
YzJhMjA2MjQ1YjZmNjZjNzY3NjJhNzkuLjBlYmZhNjU5N2VmYjU5YzY2OGUxMzAyNzQwMGQ3MGRj
NzQwNTgzNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDctMjkgIFNhdGlzaCBTYW1wYXRoICA8c2F0
aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBtb2NrIGluIFdlYkNvcmUgZm9yIHRlc3Rpbmcgc3BlZWNoIGlucHV0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjYwMwor
CisgICAgICAgIExheW91dCB0ZXN0cyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aCB1c2luZyB0aGlzIG1vY2suCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaElucHV0Q2xpZW50TW9jazo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0b3BSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9u
UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDog
QWRkZWQuCisKIDIwMTAtMDctMjYgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDJjNzI0ODM3
NWJiOGMxMGM5OGUxNjE0MDYwNDc0MDk5ZmUzOTI3MWIuLmVmZmEyMjA0ODg1YWI1YjJiZGE1OTg3
NTA4M2QwYzViM2MwYWJiOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTg5OSw2ICsxODk5LDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKKwlXZWJDb3JlL3BsYXRm
b3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL05vdEltcGxl
bWVudGVkLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWUxZjY1MGZhOGRhY2ViOWFm
NmE2YzI2ODc5NmQ0YTYwMDczYjhkMC4uODQ4YWExMWE2N2I4NzhhZjE4YWI4YTFlMzA0NzU4ZjU0
MGIzOTZhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMwMTQsNiArMzAxNCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uU2VydmljZU1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uU2VydmljZU1vY2suaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1
dENsaWVudE1vY2suY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0
Q2xpZW50TW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9QYXN0ZWJvYXJkLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU2NWI0YWFhNWU3OGM0YzdlNzkxYTI0
YzA2ODE0YTY1ZmI3OTg2YTIuLjY1YzI4NWU1OTczNWM4NzEyYzU4YTY4MzViZWM1ZDhjMzkxYzFh
YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtOTEzLDYgKzkxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0xvZ2dp
bmcuY3BwIFwKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9T
cGVlY2hJbnB1dENsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIFwKQEAgLTE2MzEsNiAr
MTYzMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5o
IFwKICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBcCiAgICAgcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAorICAgIHBsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGMyYWZmNGExODJkNDNlZDJlM2ZiYjM3MGQ5NTkzOWNhNzRlYzFiOTIuLjU4NTVm
YTFmYmNiN2IyZjQyZGIyMWNjOTIxOTlkOGJlMmRjMTQ5YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMjgxNzksNiArMjgxNzksMTQgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxtb2NrXFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xTcGVlY2hJ
bnB1dENsaWVudE1vY2suaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KIAkJCTwvRmlsdGVyPg0K
IAkJPC9GaWx0ZXI+DQogCQk8RmlsdGVyDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjNjIzMjJkZDBiNWZhYzZhY2ZhNDM2Yzk0ZGYwYWRjY2E0ZDkxOTE0
Li42YTNlMTAxMzkwYTBjMjk5N2UzMmFiNjM5MzdkNWJiYThmNjgyNDI3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0OSw2ICsxMzQ5LDggQEAKIAkJ
NzUwRDAyOTMxMUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRlcklucHV0U3BlZWNoLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MEQwMjkxMTFEMEU3RjMw
MEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgKi87IH07CiAJCTc1MEQwMjk0MTFEMEU3
RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyOTIxMUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRl
cklucHV0U3BlZWNoLmggKi87IH07CiAJCTc1MEQwMkMxMTFEMEVFN0QwMEJEMUIyNyAvKiBpbnB1
dFNwZWVjaC50aWZmIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTBEMDJDMDExRDBFRTdEMDBCRDFCMjcgLyogaW5wdXRTcGVlY2gudGlmZiAqLzsgfTsK
KwkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MjEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLzsgfTsKKwkJNzUz
NUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTMxMjAyMENGRjAw
MzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovOyB9OwogCQk3NTQxMzNBODEwMkUw
MEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8q
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLzsgfTsKIAkJNzU0MTMzQUExMDJFMDBGNDAwMDc1
RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUg
LyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmggKi87IH07CkBAIC03MTI4LDYgKzcxMzAsOCBAQAogCQk3NTBEMDI5MTExRDBF
N0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2guY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVl
Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUwRDAyQzAxMUQwRUU3RDAwQkQxQjI3
IC8qIGlucHV0U3BlZWNoLnRpZmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS50aWZmOyBwYXRoID0gaW5wdXRTcGVlY2gudGlmZjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJbnB1dENsaWVu
dE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTM1QkM5MzEyMDIwQ0ZG
MDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0MTMzQTcx
MDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDQ0LDYgKzEyMDQ4LDggQEAKIAkJNTlDNzdG
MTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTc1MzVCQzkyMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1
dENsaWVudE1vY2suY3BwICovLAorCQkJCTc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVl
Y2hJbnB1dENsaWVudE1vY2suaCAqLywKIAkJCSk7CiAJCQluYW1lID0gbW9jazsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTg3MSw2ICsxOTg3Nyw3IEBACiAJCQkJMDg0RDBFM0Qx
MUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0
RDBFM0YxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODVCMDVDMzExRkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVl
Y2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjIyNzAsNiArMjIyNzcsNyBA
QAogCQkJCTA4NEQwRTNFMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXNDYWNoZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwODZBNDAwNjExRjZENkI3MDAyQ0VDNTMgLyogUmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg1QjA1QzIxMUZBRTE2
QzAwNEQ2NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1MzVCQzk0MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENs
aWVudE1vY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNThkNWRiYjQyNWYyZDM4ZTMwNGU5YjU5OTZkNjE5
MzQ2NmI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
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
I2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKworI2luY2x1ZGUgIlNwZWVjaElucHV0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitTcGVlY2hJbnB1dENsaWVudE1vY2s6OlNwZWVjaElucHV0Q2xpZW50TW9jaygp
CisgICAgOiBtX3JlY29yZGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlNwZWVjaElu
cHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZCkKKyAgICAsIG1fbGlzdGVuZXIoMCkKK3sKK30KKwor
Ym9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5wdXRM
aXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICBtX3JlY29y
ZGluZyA9IHRydWU7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QoMC4xKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0b3BSZWNvcmRpbmcoKQor
eworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkgJiYgbV9yZWNvcmRpbmcpIHsKKyAgICAgICAg
bV90aW1lci5zdG9wKCk7CisgICAgICAgIHRpbWVyRmlyZWQoJm1fdGltZXIpOworICAgIH0KK30K
Kwordm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OmNhbmNlbFJlY29nbml0aW9uKCkKK3sKKyAg
ICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIG1fdGltZXIuc3RvcCgpOworICAg
ICAgICBtX3JlY29yZGluZyA9IGZhbHNlOworICAgICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0
ZVJlY29nbml0aW9uKCk7CisgICAgICAgIG1fbGlzdGVuZXIgPSAwOworICAgIH0KK30KKwordm9p
ZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgcmVzdWx0KQoreworICAgIG1fcmVjb2duaXRpb25SZXN1bHQgPSByZXN1bHQ7Cit9CisKK3Zv
aWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFNwZWVj
aElucHV0Q2xpZW50TW9jaz4qKQoreworICAgIGlmIChtX3JlY29yZGluZykgeworICAgICAgICBt
X3JlY29yZGluZyA9IGZhbHNlOworICAgICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29y
ZGluZygpOworICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwLjEpOworICAgIH0gZWxzZSB7
CisgICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KG1fcmVjb2duaXRpb25S
ZXN1bHQpOworICAgICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29nbml0aW9uKCk7Cisg
ICAgICAgIG1fbGlzdGVuZXIgPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaCBiL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWNhNDQ0MDM3YjgyNDhl
NDkzYzNlYjhjZTg2NzM3MjIwOWQ1ZGJlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFNwZWVjaElucHV0Q2xpZW50TW9ja19oCisjZGVmaW5lIFNwZWVjaElucHV0Q2xpZW50TW9ja19o
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xp
ZW50LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lcjsKKworLy8g
UHJvdmlkZXMgYSBtb2NrIG9iamVjdCBmb3IgdGhlIHNwZWVjaCBpbnB1dCBlbWJlZGRlciBBUEkg
Y2FsbGVkIGJ5IFdlYkNvcmUuCitjbGFzcyBTcGVlY2hJbnB1dENsaWVudE1vY2sgOiBwdWJsaWMg
U3BlZWNoSW5wdXRDbGllbnQgeworcHVibGljOgorICAgIFNwZWVjaElucHV0Q2xpZW50TW9jaygp
OworCisgICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCk7
CisKKyAgICAvLyBTcGVlY2hJbnB1dENsaWVudCBtZXRob2RzLgorICAgIGJvb2wgc3RhcnRSZWNv
Z25pdGlvbihTcGVlY2hJbnB1dExpc3RlbmVyKik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7
CisgICAgdm9pZCBjYW5jZWxSZWNvZ25pdGlvbigpOworCitwcml2YXRlOgorICAgIHZvaWQgdGlt
ZXJGaXJlZChUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+Kik7CisKKyAgICBib29sIG1fcmVj
b3JkaW5nOworICAgIFRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4gbV90aW1lcjsKKyAgICBT
cGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworICAgIFN0cmluZyBtX3JlY29nbml0aW9u
UmVzdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1NQRUVDSCkKKworI2VuZGlmIC8vIFNwZWVjaElucHV0Q2xpZW50TW9ja19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63046</attachid>
            <date>2010-07-30 04:14:10 -0700</date>
            <delta_ts>2010-07-30 05:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42603-20100730121408.patch</filename>
            <type>text/plain</type>
            <size>14925</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBlNDhmZjJjYzk2MjQ2N2Y4Yjg4NjAxMzA5ZmUzMDMyMGRkZmI3ZDhlLi4yODBhZjU1N2QyYjRh
OTk5MjhlYmZlMzZjMzc3NTY0MzBjOTgwNjJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01MTcsNiArNTE3LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5jcHAgXAorCXBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cCBcCiAJXAogCXBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCBcCiAJcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU3ZTA2N2ZjNDhhNDNiMGFh
YzJhMjA2MjQ1YjZmNjZjNzY3NjJhNzkuLjBlYmZhNjU5N2VmYjU5YzY2OGUxMzAyNzQwMGQ3MGRj
NzQwNTgzNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDctMjkgIFNhdGlzaCBTYW1wYXRoICA8c2F0
aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBtb2NrIGluIFdlYkNvcmUgZm9yIHRlc3Rpbmcgc3BlZWNoIGlucHV0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjYwMwor
CisgICAgICAgIExheW91dCB0ZXN0cyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBwYXRj
aCB1c2luZyB0aGlzIG1vY2suCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaElucHV0Q2xpZW50TW9jazo6U3BlZWNoSW5wdXRDbGllbnRNb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0b3BSZWNvcmRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9u
UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDog
QWRkZWQuCisKIDIwMTAtMDctMjYgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDJjNzI0ODM3
NWJiOGMxMGM5OGUxNjE0MDYwNDc0MDk5ZmUzOTI3MWIuLmVmZmEyMjA0ODg1YWI1YjJiZGE1OTg3
NTA4M2QwYzViM2MwYWJiOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTg5OSw2ICsxODk5LDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKKwlXZWJDb3JlL3BsYXRm
b3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL05vdEltcGxl
bWVudGVkLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWUxZjY1MGZhOGRhY2ViOWFm
NmE2YzI2ODc5NmQ0YTYwMDczYjhkMC4uODQ4YWExMWE2N2I4NzhhZjE4YWI4YTFlMzA0NzU4ZjU0
MGIzOTZhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMwMTQsNiArMzAxNCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uU2VydmljZU1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uU2VydmljZU1vY2suaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1
dENsaWVudE1vY2suY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0
Q2xpZW50TW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9QYXN0ZWJvYXJkLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU2NWI0YWFhNWU3OGM0YzdlNzkxYTI0
YzA2ODE0YTY1ZmI3OTg2YTIuLjY1YzI4NWU1OTczNWM4NzEyYzU4YTY4MzViZWM1ZDhjMzkxYzFh
YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtOTEzLDYgKzkxMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0xvZ2dp
bmcuY3BwIFwKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9T
cGVlY2hJbnB1dENsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bC5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIFwKQEAgLTE2MzEsNiAr
MTYzMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5o
IFwKICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBcCiAgICAgcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAorICAgIHBsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGMyYWZmNGExODJkNDNlZDJlM2ZiYjM3MGQ5NTkzOWNhNzRlYzFiOTIuLjU4NTVm
YTFmYmNiN2IyZjQyZGIyMWNjOTIxOTlkOGJlMmRjMTQ5YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMjgxNzksNiArMjgxNzksMTQgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxtb2NrXFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xTcGVlY2hJ
bnB1dENsaWVudE1vY2suaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KIAkJCTwvRmlsdGVyPg0K
IAkJPC9GaWx0ZXI+DQogCQk8RmlsdGVyDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjNjIzMjJkZDBiNWZhYzZhY2ZhNDM2Yzk0ZGYwYWRjY2E0ZDkxOTE0
Li42YTNlMTAxMzkwYTBjMjk5N2UzMmFiNjM5MzdkNWJiYThmNjgyNDI3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0OSw2ICsxMzQ5LDggQEAKIAkJ
NzUwRDAyOTMxMUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRlcklucHV0U3BlZWNoLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MEQwMjkxMTFEMEU3RjMw
MEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgKi87IH07CiAJCTc1MEQwMjk0MTFEMEU3
RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyOTIxMUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRl
cklucHV0U3BlZWNoLmggKi87IH07CiAJCTc1MEQwMkMxMTFEMEVFN0QwMEJEMUIyNyAvKiBpbnB1
dFNwZWVjaC50aWZmIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTBEMDJDMDExRDBFRTdEMDBCRDFCMjcgLyogaW5wdXRTcGVlY2gudGlmZiAqLzsgfTsK
KwkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MjEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLzsgfTsKKwkJNzUz
NUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTMxMjAyMENGRjAw
MzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovOyB9OwogCQk3NTQxMzNBODEwMkUw
MEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8q
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLzsgfTsKIAkJNzU0MTMzQUExMDJFMDBGNDAwMDc1
RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUg
LyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmggKi87IH07CkBAIC03MTI4LDYgKzcxMzAsOCBAQAogCQk3NTBEMDI5MTExRDBF
N0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2guY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVl
Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUwRDAyQzAxMUQwRUU3RDAwQkQxQjI3
IC8qIGlucHV0U3BlZWNoLnRpZmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS50aWZmOyBwYXRoID0gaW5wdXRTcGVlY2gudGlmZjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJbnB1dENsaWVu
dE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTM1QkM5MzEyMDIwQ0ZG
MDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0MTMzQTcx
MDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDQ0LDYgKzEyMDQ4LDggQEAKIAkJNTlDNzdG
MTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTc1MzVCQzkyMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1
dENsaWVudE1vY2suY3BwICovLAorCQkJCTc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVl
Y2hJbnB1dENsaWVudE1vY2suaCAqLywKIAkJCSk7CiAJCQluYW1lID0gbW9jazsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTg3MSw2ICsxOTg3Nyw3IEBACiAJCQkJMDg0RDBFM0Qx
MUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0
RDBFM0YxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNlc0NhY2hlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODVCMDVDMzExRkFFMTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVl
Y2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjIyNzAsNiArMjIyNzcsNyBA
QAogCQkJCTA4NEQwRTNFMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXNDYWNoZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwODZBNDAwNjExRjZENkI3MDAyQ0VDNTMgLyogUmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg1QjA1QzIxMUZBRTE2
QzAwNEQ2NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1MzVCQzk0MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENs
aWVudE1vY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YTMxNTFjYjY0MjIxZjlhODlkNjgxMWJiZDNlMzBm
NjQyMTg3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
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
I2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKworI2luY2x1ZGUgIlNwZWVjaElucHV0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitTcGVlY2hJbnB1dENsaWVudE1vY2s6OlNwZWVjaElucHV0Q2xpZW50TW9jaygp
CisgICAgOiBtX3JlY29yZGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlNwZWVjaElu
cHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZCkKKyAgICAsIG1fbGlzdGVuZXIoMCkKK3sKK30KKwor
Ym9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5wdXRM
aXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICBtX3JlY29y
ZGluZyA9IHRydWU7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzdG9wUmVjb3JkaW5nKCkKK3sK
KyAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpICYmIG1fcmVjb3JkaW5nKSB7CisgICAgICAgIG1f
dGltZXIuc3RvcCgpOworICAgICAgICB0aW1lckZpcmVkKCZtX3RpbWVyKTsKKyAgICB9Cit9CisK
K3ZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbigpCit7CisgICAg
aWYgKG1fdGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICAg
ICAgbV9yZWNvcmRpbmcgPSBmYWxzZTsKKyAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVS
ZWNvZ25pdGlvbigpOworICAgICAgICBtX2xpc3RlbmVyID0gMDsKKyAgICB9Cit9CisKK3ZvaWQg
U3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcm
IHJlc3VsdCkKK3sKKyAgICBtX3JlY29nbml0aW9uUmVzdWx0ID0gcmVzdWx0OworfQorCit2b2lk
IFNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxTcGVlY2hJ
bnB1dENsaWVudE1vY2s+KikKK3sKKyAgICBpZiAobV9yZWNvcmRpbmcpIHsKKyAgICAgICAgbV9y
ZWNvcmRpbmcgPSBmYWxzZTsKKyAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvcmRp
bmcoKTsKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQobV9yZWNvZ25pdGlvblJlc3Vs
dCk7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24oKTsKKyAgICAg
ICAgbV9saXN0ZW5lciA9IDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1NwZWVjaElucHV0Q2xpZW50TW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhY2E0NDQwMzdiODI0OGU0OTNj
M2ViOGNlODY3MzcyMjA5ZDVkYmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrX2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gKKwor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQu
aCIKKyNpbmNsdWRlICJUaW1lci5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyOworCisvLyBQcm92
aWRlcyBhIG1vY2sgb2JqZWN0IGZvciB0aGUgc3BlZWNoIGlucHV0IGVtYmVkZGVyIEFQSSBjYWxs
ZWQgYnkgV2ViQ29yZS4KK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50TW9jayA6IHB1YmxpYyBTcGVl
Y2hJbnB1dENsaWVudCB7CitwdWJsaWM6CisgICAgU3BlZWNoSW5wdXRDbGllbnRNb2NrKCk7CisK
KyAgICB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KTsKKwor
ICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhvZHMuCisgICAgYm9vbCBzdGFydFJlY29nbml0
aW9uKFNwZWVjaElucHV0TGlzdGVuZXIqKTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKKyAg
ICB2b2lkIGNhbmNlbFJlY29nbml0aW9uKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCB0aW1lckZp
cmVkKFRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4qKTsKKworICAgIGJvb2wgbV9yZWNvcmRp
bmc7CisgICAgVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiBtX3RpbWVyOworICAgIFNwZWVj
aElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7CisgICAgU3RyaW5nIG1fcmVjb2duaXRpb25SZXN1
bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>