<?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>45313</bug_id>
          
          <creation_ts>2010-09-07 11:27:22 -0700</creation_ts>
          <short_desc>[chromium] Port test shell geolocation fixes to DRT</short_desc>
          <delta_ts>2010-09-13 07:21:09 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43480</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Dixon">joth</reporter>
          <assigned_to name="Jonathan Dixon">joth</assigned_to>
          <cc>bulach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>275179</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-07 11:27:22 -0700</bug_when>
    <thetext>[chromium] Port test shell geolocation fixes to DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275181</commentid>
    <comment_count>1</comment_count>
      <attachid>66743</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-07 11:29:14 -0700</bug_when>
    <thetext>Created attachment 66743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275182</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-07 11:30:22 -0700</bug_when>
    <thetext>Pulls test shell fixes from http://codereview.chromium.org/3294007/show and http://codereview.chromium.org/3338008/show into DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275185</commentid>
    <comment_count>3</comment_count>
      <attachid>66744</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-07 11:34:35 -0700</bug_when>
    <thetext>Created attachment 66744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275187</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-07 11:35:25 -0700</bug_when>
    <thetext>NOTE patch set 1 does the callback async like test shell does, however this does not seem to be needed to I uploaded the simpler patchset 2 without this. Let me know which seems better....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275200</commentid>
    <comment_count>5</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-09-07 12:00:49 -0700</bug_when>
    <thetext>thanks joth! looks good overall, just a couple of nits and one suggestion below. please, ask jorlow for a sanity check as well..

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

&gt; LayoutTests/platform/chromium/drt_expectations.txt:174
&gt; +//BUG_DRT LINUX   : fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html = TEXT TIMEOUT
remove these lines rather than comment?

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:145
&gt; +    // In addition to an instnace pointer, we need to keep the setPermission state
typo, instance

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:149
&gt; +    static bool s_mockGeolocationPermissionIsSet;
would it make sense to have a single enum {UNSET, ALLOWED, DENIED} instead of two bools?

(In reply to comment #4)
&gt; NOTE patch set 1 does the callback async like test shell does, however this does not seem to be needed to I uploaded the simpler patchset 2 without this. Let me know which seems better....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275690</commentid>
    <comment_count>6</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-08 02:08:09 -0700</bug_when>
    <thetext>LGTM

&gt; NOTE patch set 1 does the callback async like test shell does, however this does not seem to be needed
&gt; to I uploaded the simpler patchset 2 without this. Let me know which seems better....
There&apos;s certainly no need for the response to requestPermissionForFrame() to be asynchronous - WebCore::Geolocation is designed to handle this case. I think it&apos;s also safe for calls to layoutTestController.setMockGeolocationPermission() to cause synchronous calls straight through to WebCore::Geolocation, as that object will never make synchronous callbacks to script in response anyway.

Other platforms have decided to make both cases asynchronous, however, to closer match the behaviour in &apos;real&apos; use, where the browser responds to requestPermissionForFrame() asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275723</commentid>
    <comment_count>7</comment_count>
      <attachid>66867</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-08 03:41:39 -0700</bug_when>
    <thetext>Created attachment 66867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275734</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-08 03:59:54 -0700</bug_when>
    <thetext>Thanks for the comments Marcus, Steve.
I decided to keep DRT using the synchronous callbacks, as it works fine whereas I found async callbacks with &gt;0 delay actually introduces new failures...

This is now ready to go from my side.

Jeremy, want to take a final pass and add it to the commit queue if OK?
Cheers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275891</commentid>
    <comment_count>9</comment_count>
      <attachid>66867</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-08 09:47:13 -0700</bug_when>
    <thetext>Comment on attachment 66867
Patch

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

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:231
&gt; +            m_pendingPermissionRequests.remove(i);
Is this horribly slow?  Maybe better to swap this with the last item?  Or maybe it really doesn&apos;t matter since this is only for testing code?

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:243
&gt; +         it != pendingPermissionRequests.end(); ++it) {
dont&apos; wrap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275960</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-08 11:36:00 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=66867&amp;action=prettypatch

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:231
&gt; +            m_pendingPermissionRequests.remove(i);
Horrible yes, slow probably not in practice as the normal case will be that the vector has zero or at most one item in it. So yes, I think correctness trumps speed as it&apos;s a test-code only corner case.

Ah. Actually, given the if() on line 246, I could ditch this whole loop, and just let any stale entries work their way out naturally. Inconsistent with test shell, but perhaps simpler.

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:243
&gt; +         it != pendingPermissionRequests.end(); ++it) {
oh yes.
And line 196.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277131</commentid>
    <comment_count>11</comment_count>
      <attachid>67169</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 05:32:36 -0700</bug_when>
    <thetext>Created attachment 67169
Unified patch, merged in unrollout of http://trac.webkit.org/changeset/66886 and fixes the expectations files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277134</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 05:38:23 -0700</bug_when>
    <thetext>Patch 4 now fixes up the DRT and relands http://trac.webkit.org/changeset/66886 which was rolled out in http://trac.webkit.org/changeset/66892 due to said DRT failures.

In addition, I&apos;m now cleaning up the expectations files in this patch too, to make DRT (and test shell) run clean. This obsoletes the patch in https://bugs.webkit.org/show_bug.cgi?id=43480</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277137</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 05:41:33 -0700</bug_when>
    <thetext>*** Bug 43480 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277139</commentid>
    <comment_count>14</comment_count>
      <attachid>67169</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-10 05:43:38 -0700</bug_when>
    <thetext>Comment on attachment 67169
Unified patch, merged in unrollout of http://trac.webkit.org/changeset/66886 and fixes the expectations files

This is rather hard to follow, as it seems to be an amalgamation of three bugs/patches. Do you need them all to go in one patch? If not, I think it would be much simpler to submit them separately. If they must go in as one, I think you should update the bugs by marking some as duplicates so that they all point to one bug. Then we can add a clear explanation to that bug of what&apos;s going on and make sure all the ChangeLog entries in this patch point to that same bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277167</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 07:16:18 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 67169 [details])
&gt; This is rather hard to follow, as it seems to be an amalgamation of three bugs/patches. Do you need them all to go in one patch? If not, I think it would be much simpler to submit them separately. If they must go in as one, I think you should update the bugs by marking some as duplicates so that they all point to one bug. Then we can add a clear explanation to that bug of what&apos;s going on and make sure all the ChangeLog entries in this patch point to that same bug.

Agree it&apos;s a bit confusing, but it is just a merge of 3 already reviewed patches.

But yes, they need to go in at once, as the rollout happened because it broke DRT; landing them together ensures this won&apos;t happen again. Likewise, the expectations files need to be updated when the fixes land.

The original bug https://bugs.webkit.org/show_bug.cgi?id=45112 was already closed when it landed the first time. (I&apos;ll add note to it about the rollout and link here for the re-land)

I already marked https://bugs.webkit.org/show_bug.cgi?id=43480 as a duplicate of this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277169</commentid>
    <comment_count>16</comment_count>
      <attachid>67169</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-10 07:20:42 -0700</bug_when>
    <thetext>Comment on attachment 67169
Unified patch, merged in unrollout of http://trac.webkit.org/changeset/66886 and fixes the expectations files

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

&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:211
&gt; +      notifyPendingPermissions();
4 spaces

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277172</commentid>
    <comment_count>17</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-10 07:24:04 -0700</bug_when>
    <thetext>&gt; But yes, they need to go in at once, as the rollout happened because it broke
&gt; DRT; landing them together ensures this won&apos;t happen again. Likewise, the
&gt; expectations files need to be updated when the fixes land.
OK, fair enough. I think though that all the ChangeLogs should point to this single bug - I don&apos;t know of any other cases of a patch pointing to multiple bugs. Jeremy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277174</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-10 07:27:43 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; But yes, they need to go in at once, as the rollout happened because it broke
&gt; &gt; DRT; landing them together ensures this won&apos;t happen again. Likewise, the
&gt; &gt; expectations files need to be updated when the fixes land.
&gt; OK, fair enough. I think though that all the ChangeLogs should point to this single bug - I don&apos;t know of any other cases of a patch pointing to multiple bugs. Jeremy?

This was all already reviewed.  Technically it didn&apos;t need to even be given a bug or be reviewed, but Joth isn&apos;t a committer, so this way it can go through the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277175</commentid>
    <comment_count>19</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-10 07:28:04 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; &gt; But yes, they need to go in at once, as the rollout happened because it broke
&gt; &gt; &gt; DRT; landing them together ensures this won&apos;t happen again. Likewise, the
&gt; &gt; &gt; expectations files need to be updated when the fixes land.
&gt; &gt; OK, fair enough. I think though that all the ChangeLogs should point to this single bug - I don&apos;t know of any other cases of a patch pointing to multiple bugs. Jeremy?
&gt; 
&gt; This was all already reviewed.  Technically it didn&apos;t need to even be given a bug or be reviewed, but Joth isn&apos;t a committer, so this way it can go through the commit queue.

And there is a lot of precedent for landing multiple things at once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277178</commentid>
    <comment_count>20</comment_count>
      <attachid>67179</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 07:30:39 -0700</bug_when>
    <thetext>Created attachment 67179
jorlows and steve&apos;s comments; fixup ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277181</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-10 07:33:15 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=67179) [details]
&gt; jorlows and steve&apos;s comments; fixup ChangeLogs

I&apos;ve left in the reference to the original bug where needed, but made this one the &quot;main&quot; bug for each ChangeLog entry and removed all reference to obsolete https://bugs.webkit.org/show_bug.cgi?id=43480

Hope that works... please commit-queue it.
Cheers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277182</commentid>
    <comment_count>22</comment_count>
      <attachid>67179</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-10 07:34:43 -0700</bug_when>
    <thetext>Comment on attachment 67179
jorlows and steve&apos;s comments; fixup ChangeLogs

rubber stamp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277620</commentid>
    <comment_count>23</comment_count>
      <attachid>67179</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-10 20:05:25 -0700</bug_when>
    <thetext>Comment on attachment 67179
jorlows and steve&apos;s comments; fixup ChangeLogs

Rejecting patch 67179 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Jeremy Orlow&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
locationServiceChromium.cpp
patching file WebCore/platform/chromium/GeolocationServiceChromium.h
patching file WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebKit/chromium/public/WebGeolocationService.h
patching file WebKit/chromium/public/WebGeolocationServiceBridge.h
patching file WebKit/chromium/public/WebGeolocationServiceMock.h
patching file WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
patching file WebKit/chromium/src/WebGeolocationServiceMock.cpp

Full output: http://queues.webkit.org/results/3952350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278165</commentid>
    <comment_count>24</comment_count>
      <attachid>67402</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-09-13 06:15:55 -0700</bug_when>
    <thetext>Created attachment 67402
Rebase patch after drt_expectations reorg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278169</commentid>
    <comment_count>25</comment_count>
      <attachid>67402</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-13 06:24:34 -0700</bug_when>
    <thetext>Comment on attachment 67402
Rebase patch after drt_expectations reorg

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278194</commentid>
    <comment_count>26</comment_count>
      <attachid>67402</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-13 07:21:03 -0700</bug_when>
    <thetext>Comment on attachment 67402
Rebase patch after drt_expectations reorg

Clearing flags on attachment: 67402

Committed r67387: &lt;http://trac.webkit.org/changeset/67387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278195</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-13 07:21:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66743</attachid>
            <date>2010-09-07 11:29:14 -0700</date>
            <delta_ts>2010-09-07 11:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45313-20100907192912.patch</filename>
            <type>text/plain</type>
            <size>7719</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlv
bnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50
eHQKaW5kZXggOTYzZGExYTNhNmM2M2JlM2Y0YzVhMmYzOTlhMTU4Y2RjMDJlMjY5NC4uNDg5YjFj
OTc3YWZkM2VmNGI1NWExNzQyY2Q4YTM0N2NmY2ExOTY2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTE3MCw4ICsxNzAs
OCBAQCBCVUdfRFJUIFdJTiA6IGZhc3QvY29tcGFjdC8wMDMuaHRtbCA9IElNQUdFK1RFWFQgUEFT
UwogQlVHX0RSVCBXSU4gOiBmYXN0L2RvbS9IVE1MRWxlbWVudC9iZG8uaHRtbCA9IElNQUdFK1RF
WFQgUEFTUwogQlVHX0RSVCBXSU4gOiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVz
dC5odG1sID0gVEVYVCBUSU1FT1VUIFBBU1MKIEJVR19EUlQgTUFDIExJTlVYIDogaHR0cC90ZXN0
cy9taXNjL3Nsb3ctbG9hZGluZy1pbWFnZS1pbi1wYXR0ZXJuLmh0bWwgPSBJTUFHRSBQQVNTCi1C
VUdfRFJUIFdJTiBNQUMgOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24t
YWxsb3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRJTUVPVVQKLUJVR19EUlQgTElO
VVggICA6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWZv
ci1tdWx0aXBsZS1yZXF1ZXN0cy5odG1sID0gVEVYVCBUSU1FT1VUCisvL0JVR19EUlQgV0lOIE1B
QyA6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWZvci1t
dWx0aXBsZS1yZXF1ZXN0cy5odG1sID0gVElNRU9VVAorLy9CVUdfRFJUIExJTlVYICAgOiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1mb3ItbXVsdGlwbGUt
cmVxdWVzdHMuaHRtbCA9IFRFWFQgVElNRU9VVAogQlVHX0RSVCA6IHBsYXRmb3JtL2Nocm9taXVt
L2FjY2Vzc2liaWxpdHkvY2hpbGRyZW4tY2hhbmdlZC1ub3RpZmljYXRpb24uaHRtbCA9IFBBU1MK
IEJVR19EUlQgTElOVVggOiBmYXN0L2ltYWdlcy9hbmltYXRlZC1zdmctYXMtaW1hZ2UuaHRtbCA9
IElNQUdFCiBCVUdfRFJUIExJTlVYIDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdGhhaS1saW5l
LWJyZWFrcy5odG1sID0gSU1BR0UKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgKaW5kZXggNDA3ZmU5ZDM3ODNmNGE3N2NhNzZhODUyMGFj
OTljYzcwOTBjNWMxNC4uODIwOTc1ZTExMDllY2FjODE3NjAwZGJkM2IyODNlMTdlMzk4YmY2MSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmgKQEAgLTQ0LDkgKzQ0LDYgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93ZWQpOwogICAgIFdFQktJ
VF9BUEkgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOwogICAgIFdFQktJVF9BUEkg
c3RhdGljIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
V2ViU3RyaW5nJiBtZXNzYWdlKTsKLQotcHJvdGVjdGVkOgotICAgIHN0YXRpYyBib29sIHNfbW9j
a0dlb2xvY2F0aW9uUGVybWlzc2lvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKaW5k
ZXggMDU2MmZhYmQ0M2RiNWM5NjU5NmE5ZmQ3ZjBjMzhhY2E1MGQ1MWQwZC4uMTM2MDFkMjg3NzAw
ZTk2ZDNjOTFiODRhNzQ5N2YxNWJhNDM2YjMyYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCkBAIC0zNCwxMCArMzQsMTIgQEAKICNp
bmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZp
Y2VDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKyNpbmNs
dWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZS5oIgog
I2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQogCkBAIC01Miw2ICs1NCw3IEBAIHVzaW5nIFdlYkNvcmU6Okdlb3Bv
c2l0aW9uOwogdXNpbmcgV2ViQ29yZTo6UG9zaXRpb25FcnJvcjsKIHVzaW5nIFdlYkNvcmU6OlBv
c2l0aW9uT3B0aW9uczsKIHVzaW5nIFdURjo6U3RyaW5nOwordXNpbmcgV1RGOjpWZWN0b3I7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9j
ayA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bSwgcHVibGljIEdlb2xvY2F0aW9u
U2VydmljZUNsaWVudCB7CkBAIC0xMjUsMTcgKzEyOCwzNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwgOiBwdWJsaWMgV2ViR2VvbG9j
YXRpb25TZXJ2aWNlTW9jayB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9ja0ltcGwoKSB7IH0KKyAgICBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCgp
OworICAgIHZpcnR1YWwgfldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yRnJhbWUoaW50IGJyaWRnZUlkLCBjb25zdCBX
ZWJVUkwmIHVybCk7CiAgICAgdmlydHVhbCBpbnQgYXR0YWNoQnJpZGdlKFdlYkdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZSopOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hCcmlkZ2UoaW50IGJyaWRn
ZUlkKTsKIAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jazsKKworICAgIHZvaWQgdHJ5VG9TZW5kUGVybWlzc2lvbnMoKTsKKyAgICB2b2lkIHNlbmRQ
ZXJtaXNzaW9uc05vdyhXZWJDb3JlOjpUaW1lcjxXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1w
bD4qIHRpbWVyKTsKKwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdlYkdlb2xvY2F0aW9uU2Vy
dmljZUJyaWRnZSo+IElkVG9CcmlkZ2VNYXA7CiAgICAgSWRUb0JyaWRnZU1hcCBtX2lkVG9Ccmlk
Z2VNYXA7CisgICAgVmVjdG9yPGludD4gbV9wZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzOworICAg
IFdlYkNvcmU6OlRpbWVyPFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsPiBtX3RpbWVyOwor
CisgICAgLy8gSW4gYWRkaXRpb24gdG8gYW4gaW5zdG5hY2UgcG9pbnRlciwgd2UgbmVlZCB0byBr
ZWVwIHRoZSBzZXRQZXJtaXNzaW9uIHN0YXRlCisgICAgLy8gaW4gc3RhdGljcyAobm90IG9iamVj
dCBtZW1iZXJzKSBhcyB0aGF0IGNhbGwgbWF5IGNvbWUgaW4gYmVmb3JlIHRoZSBzZXJ2aWNlCisg
ICAgLy8gaGFzIGJlZW4gY3JlYXRlZC4KKyAgICBzdGF0aWMgYm9vbCBzX21vY2tHZW9sb2NhdGlv
blBlcm1pc3Npb247CisgICAgc3RhdGljIGJvb2wgc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9u
SXNTZXQ7CisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBzX2luc3Rh
bmNlOwogfTsKIAotYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX21vY2tHZW9sb2Nh
dGlvblBlcm1pc3Npb24gPSBmYWxzZTsKK2Jvb2wgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0lt
cGw6OnNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbiA9IGZhbHNlOworYm9vbCBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrSW1wbDo6c19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uSXNTZXQgPSBm
YWxzZTsKK1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrSW1wbDo6c19pbnN0YW5jZSA9IDA7CiAKIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sq
IFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZVdlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2soKQogewpAQCAtMTQ0LDcgKzE2NCwxMCBAQCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrKiBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGVXZWJHZW9sb2NhdGlvblNlcnZpYwogCiB2
b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24oYm9vbCBhbGxvd2VkKQogewotICAgIHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbiA9IGFs
bG93ZWQ7CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfbW9ja0dlb2xvY2F0
aW9uUGVybWlzc2lvbiA9IGFsbG93ZWQ7CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0lt
cGw6OnNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbklzU2V0ID0gdHJ1ZTsKKyAgICBpZiAoV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfaW5zdGFuY2UpCisgICAgICAgIFdlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2tJbXBsOjpzX2luc3RhbmNlLT50cnlUb1NlbmRQZXJtaXNzaW9ucygp
OwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3Vy
YWN5KQpAQCAtMTYxLDEyICsxODQsMjkgQEAgdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWIKICAgICBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihwb3NpdGlvbkVycm9yKTsKIH0KIAorV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBs
KCkKKyAgICA6IG1fdGltZXIodGhpcywgJldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpz
ZW5kUGVybWlzc2lvbnNOb3cpCit7CisgICAgQVNTRVJUKCFzX2luc3RhbmNlKTsKKyAgICBzX2lu
c3RhbmNlID0gdGhpczsKK30KKworV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6On5XZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCgpCit7CisgICAgQVNTRVJUKHRoaXMgPT0gc19pbnN0
YW5jZSk7CisgICAgc19pbnN0YW5jZSA9IDA7CisgICAgZm9yIChJZFRvQnJpZGdlTWFwOjppdGVy
YXRvciBpdCA9IG1faWRUb0JyaWRnZU1hcC5iZWdpbigpOworICAgICAgICAgaXQgIT0gbV9pZFRv
QnJpZGdlTWFwLmVuZCgpOyArK2l0KQorICAgICAgICBpdC0+c2Vjb25kLT5vbldlYkdlb2xvY2F0
aW9uU2VydmljZURlc3Ryb3llZCgpOworICAgIC8vIFJlc2V0IHRoZSBwZXJtaXNzaW9uIGlzIHNl
dCBzdGF0ZSwgc28gYW55IGZ1dHVyZSBzZXJ2aWNlIGluc3RhbmNlIChlLmcuIHJ1bm5pbmcKKyAg
ICAvLyBtdWx0aXBsZSB0ZXN0cyBpbiBhIHNpbmdsZSBEUlQgcnVuKSB3aWxsIHNlZSBhIGNsZWFu
IGNhbGwgc2VxdWVuY2UuCisgICAgc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uSXNTZXQgPSBm
YWxzZTsKK30KKwogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JGcmFtZShpbnQgYnJpZGdlSWQsIGNvbnN0IFdlYlVSTCYgdXJsKQogewotICAg
IElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9CcmlkZ2VNYXAuZmluZChicmlk
Z2VJZCk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pZFRvQnJpZGdlTWFwLmVuZCgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaXRlci0+c2Vjb25kLT5zZXRJc0FsbG93ZWQoc19tb2NrR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKTsKKyAgICBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKGJyaWRn
ZUlkKTsKKyAgICB0cnlUb1NlbmRQZXJtaXNzaW9ucygpOwogfQogCiBpbnQgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9ja0ltcGw6OmF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2UqIGJyaWRnZSkKQEAgLTE4Miw2ICsyMjIsMzUgQEAgaW50IFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2tJbXBsOjphdHRhY2hCcmlkZ2UoV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlKiBicmkK
IHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OmRldGFjaEJyaWRnZShpbnQgYnJp
ZGdlSWQpCiB7CiAgICAgbV9pZFRvQnJpZGdlTWFwLnJlbW92ZShicmlkZ2VJZCk7CisgICAgc2l6
ZV90IGkgPSAwOworICAgIHdoaWxlIChtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuc2l6ZSgp
ID4gaSkgeworICAgICAgICBpZiAobV9wZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzW2ldID09IGJy
aWRnZUlkKQorICAgICAgICAgICAgbV9wZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLnJlbW92ZShp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKytpOworICAgIH0KK30KKwordm9pZCBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6dHJ5VG9TZW5kUGVybWlzc2lvbnMoKQoreworICAg
IGlmIChzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb25Jc1NldCkKKyAgICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDApOworfQorICAgIAorICAgIAordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrSW1wbDo6c2VuZFBlcm1pc3Npb25zTm93KFdlYkNvcmU6OlRpbWVyPFdlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2tJbXBsPiogdGltZXIpCit7CisgICAgQVNTRVJUKCZtX3RpbWVyID09IHRpbWVy
KTsKKyAgICBBU1NFUlQoc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uSXNTZXQpOworICAgIFZl
Y3RvcjxpbnQ+IHBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHM7CisgICAgcGVuZGluZ1Blcm1pc3Np
b25SZXF1ZXN0cy5zd2FwKG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyk7CisgICAgZm9yIChW
ZWN0b3I8aW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
LmJlZ2luKCk7CisgICAgICAgICBpdCAhPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmVuZCgp
OyArK2l0KSB7CisgICAgICAgIEFTU0VSVCgqaXQgPiAwKTsKKyAgICAgICAgSWRUb0JyaWRnZU1h
cDo6aXRlcmF0b3IgaXRlciA9IG1faWRUb0JyaWRnZU1hcC5maW5kKCppdCk7CisgICAgICAgIGlm
IChpdGVyICE9IG1faWRUb0JyaWRnZU1hcC5lbmQoKSkKKyAgICAgICAgICAgIGl0ZXItPnNlY29u
ZC0+c2V0SXNBbGxvd2VkKHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik7CisgICAgfQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66744</attachid>
            <date>2010-09-07 11:34:35 -0700</date>
            <delta_ts>2010-09-08 03:41:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45313-20100907193433.patch</filename>
            <type>text/plain</type>
            <size>8856</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyM2NmNDk3MmM2NDI3ZmU1ZWYyMThhMzg2NzA2MzA0MTBhN2VmY2UzLi42MWUxNjZk
MmE5YWRjN2NiZWVhMTdlYzA2NWI0OTVjNjllMDNmNzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMDcgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0
IHRlc3Qgc2hlbGwgZ2VvbG9jYXRpb24gZml4ZXMgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMworCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTAtMDktMDcgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkg
T3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhw
ZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3Rh
dGlvbnMudHh0CmluZGV4IDk2M2RhMWEzYTZjNjNiZTNmNGM1YTJmMzk5YTE1OGNkYzAyZTI2OTQu
LjQ4OWIxYzk3N2FmZDNlZjRiNTVhMTc0MmNkOGEzNDdjZmNhMTk2NmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0CkBAIC0xNzAs
OCArMTcwLDggQEAgQlVHX0RSVCBXSU4gOiBmYXN0L2NvbXBhY3QvMDAzLmh0bWwgPSBJTUFHRStU
RVhUIFBBU1MKIEJVR19EUlQgV0lOIDogZmFzdC9kb20vSFRNTEVsZW1lbnQvYmRvLmh0bWwgPSBJ
TUFHRStURVhUIFBBU1MKIEJVR19EUlQgV0lOIDogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxvYWQt
aW1nLXRlc3QuaHRtbCA9IFRFWFQgVElNRU9VVCBQQVNTCiBCVUdfRFJUIE1BQyBMSU5VWCA6IGh0
dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sID0gSU1BR0Ug
UEFTUwotQlVHX0RSVCBXSU4gTUFDIDogZmFzdC9kb20vR2VvbG9jYXRpb24vZGVsYXllZC1wZXJt
aXNzaW9uLWFsbG93ZWQtZm9yLW11bHRpcGxlLXJlcXVlc3RzLmh0bWwgPSBUSU1FT1VUCi1CVUdf
RFJUIExJTlVYICAgOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxs
b3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRFWFQgVElNRU9VVAorLy9CVUdfRFJU
IFdJTiBNQUMgOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dl
ZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRJTUVPVVQKKy8vQlVHX0RSVCBMSU5VWCAg
IDogZmFzdC9kb20vR2VvbG9jYXRpb24vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZm9yLW11
bHRpcGxlLXJlcXVlc3RzLmh0bWwgPSBURVhUIFRJTUVPVVQKIEJVR19EUlQgOiBwbGF0Zm9ybS9j
aHJvbWl1bS9hY2Nlc3NpYmlsaXR5L2NoaWxkcmVuLWNoYW5nZWQtbm90aWZpY2F0aW9uLmh0bWwg
PSBQQVNTCiBCVUdfRFJUIExJTlVYIDogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtc3ZnLWFzLWltYWdl
Lmh0bWwgPSBJTUFHRQogQlVHX0RSVCBMSU5VWCA6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3Ro
YWktbGluZS1icmVha3MuaHRtbCA9IElNQUdFCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ZWRmYzAxZGIyZjQz
MDY5YjVkNjc2MTBmMDk3YmQwNTMzOWY2Y2JiLi44Y2EzZjBjZWJiMTJjOWJlNTk5Y2FkMDYyOTgy
ZWFiZWMzZjk4OTZhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNCArMSwyMSBAQAogMjAxMC0wOS0wNyAg
Sm9uYXRoYW4gRGl4b24gIDxqb3RoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIFBvcnQgdGVzdCBzaGVsbCBn
ZW9sb2NhdGlvbiBmaXhlcyB0byBEUlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MzEzCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5oOgorICAgICAgICAqIHNyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0TW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2tJbXBsOjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjp+V2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
SW1wbDo6cmVxdWVzdFBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpkZXRhY2hCcmlkZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6dHJ5VG9TZW5kUGVybWlzc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6c2VuZFBlcm1p
c3Npb25zTm93KToKKworMjAxMC0wOS0wNyAgSm9uYXRoYW4gRGl4b24gIDxqb3RoQGNocm9taXVt
Lm9yZz4KICAgICAgICAgCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KICAgICAg
ICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2suaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5oCmluZGV4IDQwN2ZlOWQzNzgzZjRhNzdjYTc2YTg1MjBhYzk5Y2M3MDkwYzVjMTQuLjgy
MDk3NWUxMTA5ZWNhYzgxNzYwMGRiZDNiMjgzZTE3ZTM5OGJmNjEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCkBAIC00NCw5ICs0
NCw2IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2Nh
dGlvblBlcm1pc3Npb24oYm9vbCBhbGxvd2VkKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lk
IHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZG91YmxlIGFjY3VyYWN5KTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1v
Y2tHZW9sb2NhdGlvbkVycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2Fn
ZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgYm9vbCBzX21vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCmluZGV4IDA1NjJmYWJkNDNkYjVj
OTY1OTZhOWZkN2YwYzM4YWNhNTBkNTFkMGQuLmZiOWUxMmZhMWZjODNmNjc2MDYzMmM4MTcxY2Zl
ZjI5MTM3NzJhNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9jay5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlN0cmluZy5o
IgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCkBA
IC01Miw2ICs1Myw3IEBAIHVzaW5nIFdlYkNvcmU6Okdlb3Bvc2l0aW9uOwogdXNpbmcgV2ViQ29y
ZTo6UG9zaXRpb25FcnJvcjsKIHVzaW5nIFdlYkNvcmU6OlBvc2l0aW9uT3B0aW9uczsKIHVzaW5n
IFdURjo6U3RyaW5nOwordXNpbmcgV1RGOjpWZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jayA6IHB1YmxpYyBHZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bSwgcHVibGljIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCB7CkBAIC0x
MjUsMTcgKzEyNywzMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9ja0ltcGwgOiBwdWJsaWMgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwoKSB7IH0K
KyAgICBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCgpOworICAgIHZpcnR1YWwgfldlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uRm9yRnJhbWUoaW50IGJyaWRnZUlkLCBjb25zdCBXZWJVUkwmIHVybCk7CiAgICAgdmly
dHVhbCBpbnQgYXR0YWNoQnJpZGdlKFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSopOwogICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2hCcmlkZ2UoaW50IGJyaWRnZUlkKTsKIAogcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKKworICAgIHZvaWQgdHJ5
VG9TZW5kUGVybWlzc2lvbnMoKTsKKwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdlYkdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZSo+IElkVG9CcmlkZ2VNYXA7CiAgICAgSWRUb0JyaWRnZU1hcCBt
X2lkVG9CcmlkZ2VNYXA7CisgICAgVmVjdG9yPGludD4gbV9wZW5kaW5nUGVybWlzc2lvblJlcXVl
c3RzOworCisgICAgLy8gSW4gYWRkaXRpb24gdG8gYW4gaW5zdG5hY2UgcG9pbnRlciwgd2UgbmVl
ZCB0byBrZWVwIHRoZSBzZXRQZXJtaXNzaW9uIHN0YXRlCisgICAgLy8gaW4gc3RhdGljcyAobm90
IG9iamVjdCBtZW1iZXJzKSBhcyB0aGF0IGNhbGwgbWF5IGNvbWUgaW4gYmVmb3JlIHRoZSBzZXJ2
aWNlCisgICAgLy8gaGFzIGJlZW4gY3JlYXRlZC4KKyAgICBzdGF0aWMgYm9vbCBzX21vY2tHZW9s
b2NhdGlvblBlcm1pc3Npb247CisgICAgc3RhdGljIGJvb2wgc19tb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uSXNTZXQ7CisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBz
X2luc3RhbmNlOwogfTsKIAotYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX21vY2tH
ZW9sb2NhdGlvblBlcm1pc3Npb24gPSBmYWxzZTsKK2Jvb2wgV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9ja0ltcGw6OnNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbiA9IGZhbHNlOworYm9vbCBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6c19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uSXNT
ZXQgPSBmYWxzZTsKK1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBXZWJHZW9sb2NhdGlv
blNlcnZpY2VNb2NrSW1wbDo6c19pbnN0YW5jZSA9IDA7CiAKIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2sqIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZVdlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2soKQogewpAQCAtMTQ0LDcgKzE2MSwxMCBAQCBXZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrKiBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGVXZWJHZW9sb2NhdGlvblNlcnZp
YwogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBl
cm1pc3Npb24oYm9vbCBhbGxvd2VkKQogewotICAgIHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lv
biA9IGFsbG93ZWQ7CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfbW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbiA9IGFsbG93ZWQ7CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9ja0ltcGw6OnNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbklzU2V0ID0gdHJ1ZTsKKyAgICBp
ZiAoV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfaW5zdGFuY2UpCisgICAgICAgIFdl
Ykdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzX2luc3RhbmNlLT50cnlUb1NlbmRQZXJtaXNz
aW9ucygpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KQpAQCAtMTYxLDEyICsxODEsMjggQEAgdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWIK
ICAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihwb3NpdGlvbkVycm9yKTsKIH0K
IAorV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OldlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2tJbXBsKCkKK3sKKyAgICBBU1NFUlQoIXNfaW5zdGFuY2UpOworICAgIHNfaW5zdGFuY2UgPSB0
aGlzOworfQorCitXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2tJbXBsKCkKK3sKKyAgICBBU1NFUlQodGhpcyA9PSBzX2luc3RhbmNlKTsKKyAg
ICBzX2luc3RhbmNlID0gMDsKKyAgICBmb3IgKElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9pZFRvQnJpZGdlTWFwLmJlZ2luKCk7CisgICAgICAgICBpdCAhPSBtX2lkVG9CcmlkZ2VNYXAu
ZW5kKCk7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPm9uV2ViR2VvbG9jYXRpb25TZXJ2aWNl
RGVzdHJveWVkKCk7CisgICAgLy8gUmVzZXQgdGhlIHBlcm1pc3Npb24gaXMgc2V0IHN0YXRlLCBz
byBhbnkgZnV0dXJlIHNlcnZpY2UgaW5zdGFuY2UgKGUuZy4gcnVubmluZworICAgIC8vIG11bHRp
cGxlIHRlc3RzIGluIGEgc2luZ2xlIERSVCBydW4pIHdpbGwgc2VlIGEgY2xlYW4gY2FsbCBzZXF1
ZW5jZS4KKyAgICBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb25Jc1NldCA9IGZhbHNlOworfQor
CiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpyZXF1ZXN0UGVybWlzc2lvbkZv
ckZyYW1lKGludCBicmlkZ2VJZCwgY29uc3QgV2ViVVJMJiB1cmwpCiB7Ci0gICAgSWRUb0JyaWRn
ZU1hcDo6aXRlcmF0b3IgaXRlciA9IG1faWRUb0JyaWRnZU1hcC5maW5kKGJyaWRnZUlkKTsKLSAg
ICBpZiAoaXRlciA9PSBtX2lkVG9CcmlkZ2VNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICBpdGVyLT5zZWNvbmQtPnNldElzQWxsb3dlZChzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24p
OworICAgIG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cy5hcHBlbmQoYnJpZGdlSWQpOworICAg
IHRyeVRvU2VuZFBlcm1pc3Npb25zKCk7CiB9CiAKIGludCBXZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrSW1wbDo6YXR0YWNoQnJpZGdlKFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSogYnJpZGdl
KQpAQCAtMTgyLDYgKzIxOCwyOSBAQCBpbnQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6
OmF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UqIGJyaQogdm9pZCBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6ZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCkKIHsK
ICAgICBtX2lkVG9CcmlkZ2VNYXAucmVtb3ZlKGJyaWRnZUlkKTsKKyAgICBzaXplX3QgaSA9IDA7
CisgICAgd2hpbGUgKG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cy5zaXplKCkgPiBpKSB7Cisg
ICAgICAgIGlmIChtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHNbaV0gPT0gYnJpZGdlSWQpCisg
ICAgICAgICAgICBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMucmVtb3ZlKGkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICArK2k7CisgICAgfQorfQorCit2b2lkIFdlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2tJbXBsOjp0cnlUb1NlbmRQZXJtaXNzaW9ucygpCit7CisgICAgaWYgKCFzX21v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb25Jc1NldCkKKyAgICAgIHJldHVybjsKKworICAgIFZlY3Rv
cjxpbnQ+IHBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHM7CisgICAgcGVuZGluZ1Blcm1pc3Npb25S
ZXF1ZXN0cy5zd2FwKG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyk7CisgICAgZm9yIChWZWN0
b3I8aW50Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmJl
Z2luKCk7CisgICAgICAgICBpdCAhPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmVuZCgpOyAr
K2l0KSB7CisgICAgICAgIEFTU0VSVCgqaXQgPiAwKTsKKyAgICAgICAgSWRUb0JyaWRnZU1hcDo6
aXRlcmF0b3IgaXRlciA9IG1faWRUb0JyaWRnZU1hcC5maW5kKCppdCk7CisgICAgICAgIGlmIChp
dGVyICE9IG1faWRUb0JyaWRnZU1hcC5lbmQoKSkKKyAgICAgICAgICAgIGl0ZXItPnNlY29uZC0+
c2V0SXNBbGxvd2VkKHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik7CisgICAgfQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66867</attachid>
            <date>2010-09-08 03:41:39 -0700</date>
            <delta_ts>2010-09-10 05:32:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45313-20100908114136.patch</filename>
            <type>text/plain</type>
            <size>11875</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyM2NmNDk3MmM2NDI3ZmU1ZWYyMThhMzg2NzA2MzA0MTBhN2VmY2UzLi5jNjEzODk1
OTY5OWY3ZGUzYWUxMWRiZTFlNzU4MDYwMmI4MWM0MzMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDktMDcgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0
IHRlc3Qgc2hlbGwgZ2VvbG9jYXRpb24gZml4ZXMgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMworCisgICAgICAgIFRlc3RzIG5vdyBh
bGwgcGFzcyBvbiBEUlQgc28gcmVtb3ZpbmcgZXhjZXB0aW9uLgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTAtMDktMDcgIFNhdGlzaCBT
YW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJl
bXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRf
ZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBl
Y3RhdGlvbnMudHh0CmluZGV4IDk2M2RhMWEzYTZjNjNiZTNmNGM1YTJmMzk5YTE1OGNkYzAyZTI2
OTQuLjkxMzU4MGFjNTJiNTYxMGNkZTNlYmQ4N2Y1MjkzYjAwZmUwODFlNDEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0CkBAIC0x
NzAsOCArMTcwLDYgQEAgQlVHX0RSVCBXSU4gOiBmYXN0L2NvbXBhY3QvMDAzLmh0bWwgPSBJTUFH
RStURVhUIFBBU1MKIEJVR19EUlQgV0lOIDogZmFzdC9kb20vSFRNTEVsZW1lbnQvYmRvLmh0bWwg
PSBJTUFHRStURVhUIFBBU1MKIEJVR19EUlQgV0lOIDogaHR0cC90ZXN0cy9sb2FkaW5nL3ByZWxv
YWQtaW1nLXRlc3QuaHRtbCA9IFRFWFQgVElNRU9VVCBQQVNTCiBCVUdfRFJUIE1BQyBMSU5VWCA6
IGh0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sID0gSU1B
R0UgUEFTUwotQlVHX0RSVCBXSU4gTUFDIDogZmFzdC9kb20vR2VvbG9jYXRpb24vZGVsYXllZC1w
ZXJtaXNzaW9uLWFsbG93ZWQtZm9yLW11bHRpcGxlLXJlcXVlc3RzLmh0bWwgPSBUSU1FT1VUCi1C
VUdfRFJUIExJTlVYICAgOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24t
YWxsb3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRFWFQgVElNRU9VVAogQlVHX0RS
VCA6IHBsYXRmb3JtL2Nocm9taXVtL2FjY2Vzc2liaWxpdHkvY2hpbGRyZW4tY2hhbmdlZC1ub3Rp
ZmljYXRpb24uaHRtbCA9IFBBU1MKIEJVR19EUlQgTElOVVggOiBmYXN0L2ltYWdlcy9hbmltYXRl
ZC1zdmctYXMtaW1hZ2UuaHRtbCA9IElNQUdFCiBCVUdfRFJUIExJTlVYIDogZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvdGhhaS1saW5lLWJyZWFrcy5odG1sID0gSU1BR0UKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDllZGZjMDFkYjJmNDMwNjliNWQ2NzYxMGYwOTdiZDA1MzM5ZjZjYmIuLjQ3ZjI4ZGY0ZjhjNjIw
Nzg0ZjcwMTk3ZDMzMjdiMjcwNDk1NTY2NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDI3IEBA
CiAyMDEwLTA5LTA3ICBKb25hdGhhbiBEaXhvbiAgPGpvdGhAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gUG9y
dCB0ZXN0IHNoZWxsIGdlb2xvY2F0aW9uIGZpeGVzIHRvIERSVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzMTMKKworICAgICAgICBQb3J0IG92ZXIg
Zml4ZXMgZnJvbSB0ZXN0IHNoZWxsOgorICAgICAgICAtIGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9t
aXVtLm9yZy8zMjk0MDA3CisgICAgICAgIC0gaHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3Jn
LzMzMzgwMDgKKworICAgICAgICBBbHNvIHJlc2V0cyBzdGF0ZSBiZXR3ZWVuIHNlcnZpY2UgaW5z
dGFuY2VzLCB3aGljaCBmaXhlcyBkZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1mb3ItbXVsdGlw
bGUtcmVxdWVzdHMuaHRtbAorCisgICAgICAgICogcHVibGljL1dlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suaDoKKyAgICAgICAgKiBzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2Nh
dGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2tJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6
OnJlcXVlc3RQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrSW1wbDo6ZGV0YWNoQnJpZGdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnRyeVRvU2VuZFBlcm1pc3Npb25zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNlbmRQZXJtaXNzaW9u
c05vdyk6CisKKzIwMTAtMDktMDcgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+
CiAgICAgICAgIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCiAgICAgICAgIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VC
cmlkZ2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJp
ZGdlLmgKaW5kZXggNDIyYjMyYmNlMjgyYTA4MGE5YzljMDJkZDg4MTNiYjBkNzU1ZGEwOC4uZDIw
OWMyMzBhNzkyMDg3OGZhMGI0NGViNDYyZWQ0MTlmOWM0NzFlNiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZS5oCkBAIC00Nyw3
ICs0NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElzQWxsb3dlZChib29sIGFs
bG93ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRp
bmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBsb25nIGxvbmcgdGltZXN0YW1w
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25z
dCBXZWJTdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25XZWJHZW9sb2Nh
dGlvblNlcnZpY2VEZXN0cm95ZWQoKSA9IDA7CisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkdl
b2xvY2F0aW9uU2VydmljZSB0byB3aGljaCB0aGlzIGJyaWRnZSBpcyBhdHRhY2hlZCBpcyBnb2lu
ZyBvdXQgb2Ygc2NvcGUuIE9uIHJlY2VpdmluZworICAgIC8vIHRoaXMgY2FsbCB0aGUgYnJpZGdl
IGltcGxlbWVudGF0aW9uIG11c3Qgbm90IG1ha2UgYW55IGZ1cnRoZXIgYWNjZXNzIHRvIHRoZSBz
ZXJ2aWNlLgorICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCkg
PSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBiYWRseSBuYW1lZCBtZXRob2Qgd2hlbiBh
bGwgY2FsbGVycyBhcmUgdXNpbmcgZGlkRGVzdHJveUdlb2xvY2F0aW9uU2VydmljZSBkaXJlY3Rs
eS4KKyAgICB2b2lkIG9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKCkgeyBkaWREZXN0
cm95R2VvbG9jYXRpb25TZXJ2aWNlKCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldl
Ykdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSgpIHt9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCmluZGV4IDQwN2ZlOWQzNzgzZjRhNzdj
YTc2YTg1MjBhYzk5Y2M3MDkwYzVjMTQuLjgyMDk3NWUxMTA5ZWNhYzgxNzYwMGRiZDNiMjgzZTE3
ZTM5OGJmNjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9jay5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9jay5oCkBAIC00NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvd2VkKTsK
ICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KTsKICAgICBX
RUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBlcnJvckNv
ZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBzdGF0aWMg
Ym9vbCBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2
aWNlQnJpZGdlSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2Vy
dmljZUJyaWRnZUltcGwuY3BwCmluZGV4IDRlN2E0YjY1NjQyY2E1OWQ0NjZkNTBkZTk0OTc5MDI1
YzA3MTE2MDEuLmI1NGM2ZDgyYjg0NzQ4YWI3MzE0NzA0MDlhMThiZGE2OTFjYTU0M2QgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1w
bC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2VJbXBsLmNwcApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dElzQWxsb3dlZChib29sIGFsbG93ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0UG9zaXRp
b24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1
ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1
ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5n
LCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQsIGxvbmcg
bG9uZyB0aW1lc3RhbXApOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0RXJyb3IoaW50IGVycm9y
Q29kZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25XZWJH
ZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJv
eUdlb2xvY2F0aW9uU2VydmljZSgpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNBdHRhY2hlZCgp
IGNvbnN0OwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJp
ZGdlSW1wbDo6c2V0TGFzdEVycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFdlYlN0cmluCiAgICAg
bV9nZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+c2V0TGFzdEVycm9yKGVycm9yQ29kZSwgbWVz
c2FnZSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6b25XZWJH
ZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKQordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VC
cmlkZ2VJbXBsOjpkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCkKIHsKICAgICBtX2JyaWRn
ZUlkID0gMDsKICAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZSA9IDA7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAppbmRleCAwNTYyZmFi
ZDQzZGI1Yzk2NTk2YTlmZDdmMGMzOGFjYTUwZDUxZDBkLi41Yjg2ZDE3ZjFiNDU5YmU2ZjBhNjQ1
Mzk4MTZiOTFkNDhjODlkZDJiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2suY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShHRU9MT0NBVElP
TikKIApAQCAtNTIsNiArNTMsNyBAQCB1c2luZyBXZWJDb3JlOjpHZW9wb3NpdGlvbjsKIHVzaW5n
IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I7CiB1c2luZyBXZWJDb3JlOjpQb3NpdGlvbk9wdGlvbnM7
CiB1c2luZyBXVEY6OlN0cmluZzsKK3VzaW5nIFdURjo6VmVjdG9yOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2sgOiBwdWJsaWMgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0sIHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQg
ewpAQCAtMTI1LDE3ICsxMjcsMzQgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsIDogcHVibGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2sgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBs
KCkgeyB9CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwoKTsKKyAgICB2aXJ0dWFs
IH5XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCgpOworICAgIHN0YXRpYyB2b2lkIHNldE1v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvd2VkKTsKKworICAgIC8vIFdlYkdlb2xv
Y2F0aW9uU2VydmljZQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvckZyYW1l
KGludCBicmlkZ2VJZCwgY29uc3QgV2ViVVJMJiB1cmwpOwogICAgIHZpcnR1YWwgaW50IGF0dGFj
aEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCBub3RpZnlQ
ZW5kaW5nUGVybWlzc2lvbnMoKTsKKwogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdlYkdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZSo+IElkVG9CcmlkZ2VNYXA7CiAgICAgSWRUb0JyaWRnZU1hcCBt
X2lkVG9CcmlkZ2VNYXA7CisgICAgVmVjdG9yPGludD4gbV9wZW5kaW5nUGVybWlzc2lvblJlcXVl
c3RzOworCisgICAgLy8gSW4gYWRkaXRpb24gdG8gdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBwb2lu
dGVyLCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oKSBz
dGF0ZQorICAgIC8vIGFzIGEgc3RhdGljIChub3Qgb2JqZWN0IG1lbWJlcnMpIGFzIHRoaXMgY2Fs
bCBtYXkgY29tZSBpbiBiZWZvcmUgdGhlIHNlcnZpY2UgaGFzIGJlZW4gY3JlYXRlZC4KKyAgICBz
dGF0aWMgZW51bSBQZXJtaXNzaW9uU3RhdGUgeworICAgICAgICBQZXJtaXNzaW9uU3RhdGVVbnNl
dCwKKyAgICAgICAgUGVybWlzc2lvblN0YXRlQWxsb3dlZCwKKyAgICAgICAgUGVybWlzc2lvblN0
YXRlRGVuaWVkLAorICAgIH0gc19wZXJtaXNzaW9uU3RhdGU7CisgICAgc3RhdGljIFdlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2tJbXBsKiBzX2luc3RhbmNlOwogfTsKIAotYm9vbCBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24gPSBmYWxzZTsKK1dl
Ykdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpQZXJtaXNzaW9uU3RhdGUgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9ja0ltcGw6OnNfcGVybWlzc2lvblN0YXRlID0gV2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGw6OlBlcm1pc3Npb25TdGF0ZVVuc2V0OworV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9ja0ltcGwqIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzX2luc3RhbmNlID0gMDsK
IAogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6
Y3JlYXRlV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jaygpCiB7CkBAIC0xNDQsNyArMTYzLDcgQEAg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3Jl
YXRlV2ViR2VvbG9jYXRpb25TZXJ2aWMKIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCkKIHsKLSAgICBzX21v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb24gPSBhbGxvd2VkOworICAgIFdlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2tJbXBsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGFsbG93ZWQpOwogfQog
CiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQpA
QCAtMTYxLDEyICsxODAsMzYgQEAgdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRN
b2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWIKICAgICBHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihwb3NpdGlvbkVycm9yKTsKIH0KIAorV2ViR2VvbG9j
YXRpb25TZXJ2aWNlTW9ja0ltcGw6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCkKK3sK
KyAgICBBU1NFUlQoIXNfaW5zdGFuY2UpOworICAgIHNfaW5zdGFuY2UgPSB0aGlzOworfQorCitX
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJ
bXBsKCkKK3sKKyAgICBBU1NFUlQodGhpcyA9PSBzX2luc3RhbmNlKTsKKyAgICBzX2luc3RhbmNl
ID0gMDsKKyAgICAvLyBSZXNldCB0aGUgcGVybWlzc2lvbiBzdGF0ZSwgc28gYW55IGZ1dHVyZSBz
ZXJ2aWNlIGluc3RhbmNlIChlLmcuIHJ1bm5pbmcKKyAgICAvLyBtdWx0aXBsZSB0ZXN0cyBpbiBh
IHNpbmdsZSBEUlQgcnVuKSB3aWxsIHNlZSBhIGNsZWFuIGNhbGwgc2VxdWVuY2UuCisgICAgc19w
ZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9uU3RhdGVVbnNldDsKKyAgICBmb3IgKElkVG9Ccmlk
Z2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvQnJpZGdlTWFwLmJlZ2luKCk7CisgICAgICAgICBp
dCAhPSBtX2lkVG9CcmlkZ2VNYXAuZW5kKCk7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmRp
ZERlc3Ryb3lHZW9sb2NhdGlvblNlcnZpY2UoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblNl
cnZpY2VNb2NrSW1wbDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93ZWQp
Cit7CisgICAgc19wZXJtaXNzaW9uU3RhdGUgPSBhbGxvd2VkID8gUGVybWlzc2lvblN0YXRlQWxs
b3dlZCA6IFBlcm1pc3Npb25TdGF0ZURlbmllZDsKKyAgICBpZiAoc19pbnN0YW5jZSkKKyAgICAg
ICAgc19pbnN0YW5jZS0+bm90aWZ5UGVuZGluZ1Blcm1pc3Npb25zKCk7Cit9CisKIHZvaWQgV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnJlcXVlc3RQZXJtaXNzaW9uRm9yRnJhbWUoaW50
IGJyaWRnZUlkLCBjb25zdCBXZWJVUkwmIHVybCkKIHsKLSAgICBJZFRvQnJpZGdlTWFwOjppdGVy
YXRvciBpdGVyID0gbV9pZFRvQnJpZGdlTWFwLmZpbmQoYnJpZGdlSWQpOwotICAgIGlmIChpdGVy
ID09IG1faWRUb0JyaWRnZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGl0ZXItPnNl
Y29uZC0+c2V0SXNBbGxvd2VkKHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik7CisgICAgbV9w
ZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmFwcGVuZChicmlkZ2VJZCk7CisgICAgaWYgKHNfcGVy
bWlzc2lvblN0YXRlICE9IFBlcm1pc3Npb25TdGF0ZVVuc2V0KQorICAgICAgbm90aWZ5UGVuZGlu
Z1Blcm1pc3Npb25zKCk7CiB9CiAKIGludCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6
YXR0YWNoQnJpZGdlKFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSogYnJpZGdlKQpAQCAtMTgy
LDYgKzIyNSwyNyBAQCBpbnQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OmF0dGFjaEJy
aWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UqIGJyaQogdm9pZCBXZWJHZW9sb2NhdGlv
blNlcnZpY2VNb2NrSW1wbDo6ZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCkKIHsKICAgICBtX2lk
VG9CcmlkZ2VNYXAucmVtb3ZlKGJyaWRnZUlkKTsKKyAgICBzaXplX3QgaSA9IDA7CisgICAgd2hp
bGUgKG1fcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cy5zaXplKCkgPiBpKSB7CisgICAgICAgIGlm
IChtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHNbaV0gPT0gYnJpZGdlSWQpCisgICAgICAgICAg
ICBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMucmVtb3ZlKGkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICArK2k7CisgICAgfQorfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2tJbXBsOjpub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMoKQoreworICAgIEFTU0VSVChzX3Blcm1p
c3Npb25TdGF0ZSA9PSBQZXJtaXNzaW9uU3RhdGVBbGxvd2VkIHx8IHNfcGVybWlzc2lvblN0YXRl
ID09ICBQZXJtaXNzaW9uU3RhdGVEZW5pZWQpOworICAgIFZlY3RvcjxpbnQ+IHBlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHM7CisgICAgcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cy5zd2FwKG1fcGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyk7CisgICAgZm9yIChWZWN0b3I8aW50Pjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmJlZ2luKCk7CisgICAgICAgICBp
dCAhPSBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIEFT
U0VSVCgqaXQgPiAwKTsKKyAgICAgICAgSWRUb0JyaWRnZU1hcDo6aXRlcmF0b3IgaXRlciA9IG1f
aWRUb0JyaWRnZU1hcC5maW5kKCppdCk7CisgICAgICAgIGlmIChpdGVyICE9IG1faWRUb0JyaWRn
ZU1hcC5lbmQoKSkKKyAgICAgICAgICAgIGl0ZXItPnNlY29uZC0+c2V0SXNBbGxvd2VkKHNfcGVy
bWlzc2lvblN0YXRlID09IFBlcm1pc3Npb25TdGF0ZUFsbG93ZWQpOworICAgIH0KIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67169</attachid>
            <date>2010-09-10 05:32:36 -0700</date>
            <delta_ts>2010-09-10 07:30:33 -0700</delta_ts>
            <desc>Unified patch, merged in unrollout of http://trac.webkit.org/changeset/66886 and fixes the expectations files</desc>
            <filename>bug-45313-20100910133234.patch</filename>
            <type>text/plain</type>
            <size>23867</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzg3MDRkZWY5OTBhNDlkODBkMWI5ZTlkZGZjNjM0NTQ2ZTkwY2JkLi42NTg4ZjVl
ZmUxODY2NjcxY2U2OGY0ODA4NmZjNTQ3ODU4YzNlZjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDktMTAgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0
IHRlc3Qgc2hlbGwgZ2VvbG9jYXRpb24gZml4ZXMgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMworCisgICAgICAgIFtDaHJvbWl1bV0g
RHVtcFJlbmRlclRyZWUgbGFja3MgZnVuY3Rpb25hbGl0eSBmb3IgbmV3IEdlb2xvY2F0aW9uIGRl
bGF5ZWQgcGVybWlzc2lvbiB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDM0ODAKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2RydF9l
eHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDoKKwogMjAxMC0wOS0xMCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNjBiYWZj
NmUwZmVmZWY0ZGU5NWM0MmM5M2I0ZTQxZDU1MGM0ZGQwMS4uYzc2YTNiYjQ1NDM2ZWZiM2JlNzIw
NzlmYmIyOTY5M2ZlNmYzODk2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTEzNSw4ICsxMzUsNiBAQCBCVUdfRFJUIExJ
TlVYIDogc3ZnL2N1c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Muc3ZnID0gSU1BR0UgUEFT
UwogQlVHX0RSVCBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLmh0bWwgPSBJTUFHRQogQlVHX0RSVCBX
SU4gOiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVzdC5odG1sID0gVEVYVCBUSU1F
T1VUIFBBU1MKIEJVR19EUlQgTUFDIExJTlVYIDogaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGlu
Zy1pbWFnZS1pbi1wYXR0ZXJuLmh0bWwgPSBJTUFHRSBQQVNTCi1CVUdfRFJUIFdJTiBNQUMgOiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1mb3ItbXVsdGlw
bGUtcmVxdWVzdHMuaHRtbCA9IFRJTUVPVVQKLUJVR19EUlQgTElOVVggICA6IGZhc3QvZG9tL0dl
b2xvY2F0aW9uL2RlbGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWZvci1tdWx0aXBsZS1yZXF1ZXN0
cy5odG1sID0gVEVYVCBUSU1FT1VUCiBCVUdfRFJUIDogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNz
aWJpbGl0eS9jaGlsZHJlbi1jaGFuZ2VkLW5vdGlmaWNhdGlvbi5odG1sID0gUEFTUwogQlVHX0RS
VCBMSU5VWCA6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3RoYWktbGluZS1icmVha3MuaHRtbCA9
IElNQUdFCiBCVUdfRFJUIFdJTiA6IHN2Zy9iYXRpay90ZXh0L3RleHRGZWF0dXJlcy5zdmcgPSBJ
TUFHRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CmluZGV4IGU3Y2IyYjE1OTM0MDlmMWM2Y2JlNDgwMDY3MDc2Y2M0M2Q2YjViOTIu
LjVlZmExOTVjMDVjOTU3YjIyODA4NTU4YWNmYzYxYzEwMWRlYTU3NDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI5
NzgsMTAgKzI5NzgsNiBAQCBCVUc1MDYzNyA6IGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5j
ZS5odG1sID0gRkFJTAogLy8gQXBwbGljYXRpb24gQ2FjaGUgUXVvdGFzCiBCVUdXSzQzNDU5IDog
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbCA9IFRFWFQgTUlTU0lORwogCi0v
LyBNaXNzaW5nIExheW91dFRlc3RDb250cm9sbGVyIGhhcm5lc3MuCi1CVUdXSzQzNDgwIFNLSVAg
OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sID0g
VEVYVCBUSU1FT1VUIFBBU1MKLUJVR1dLNDM0ODAgU0tJUCA6IGZhc3QvZG9tL0dlb2xvY2F0aW9u
L2RlbGF5ZWQtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCA9IFRFWFQgVElNRU9VVCBQQVNTCi0KIEJV
RzUxMTYxIExJTlVYIERFQlVHIDogc3ZnL1czQy1TVkctMS4xL21hc2tpbmctbWFzay0wMS1iLnN2
ZyA9IENSQVNICiBCVUc1MTE2MSBMSU5VWCBERUJVRyA6IHN2Zy9jbGlwLXBhdGgvY2xpcC1wYXRo
LXRleHQuc3ZnID0gQ1JBU0gKIApAQCAtMzAyMywxMCArMzAxOSw2IEBAIEJVR0pBUEhFVCBNQUMg
OiBmYXN0L2NhbnZhcy93ZWJnbC90ZXh0dXJlLW5wb3QuaHRtbCA9IFRFWFQKIC8vIFRoaXMgdGVz
dCBjYXVzZXMgdGhlIG5leHQgb25lIHRvIHJ1biB0byBBU1NFUlQKIEJVR1dLNDQwNzkgREVCVUcg
U0tJUCA6IGZhc3QvZXZlbnRzL3BvcHVwLWFsbG93ZWQtZnJvbS1nZXN0dXJlLWluaXRpYXRlZC1m
b3JtLXN1Ym1pdC5odG1sID0gUEFTUwogCi0vLyBEdWUgdG8gaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvNjU1MTEKLUJVR1dLNDQxMTggOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxh
eWVkLXBlcm1pc3Npb24tYWxsb3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRFWFQK
LUJVR1dLNDQxMTggOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tZGVu
aWVkLWZvci1tdWx0aXBsZS1yZXF1ZXN0cy5odG1sID0gVElNRU9VVAotCiAvLyBGbGFreS4gTm90
IHN1cmUgd2hlbiBpdCBzdGFydGVkIHRvIGZhaWwuCiBCVUc1MjU3MiBXSU4gTElOVVggREVCVUcg
OiBodHRwL3Rlc3RzL21pc2MvaW1hZ2UtYmxvY2tlZC1zcmMtY2hhbmdlLmh0bWwgPSBQQVNTIFRF
WFQKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3MzAzMDhhMzkyODg2OGZjZjMwNjc2YWIzZmRmZWZlYmQ5NmZlZWY1Li4yMTVkMjAxNWE1
YzI4NjZkZDQ5N2I3MTdlZDlmN2Q4YmZkZjVlZWU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA5LTEw
ICBKb25hdGhhbiBEaXhvbiAgPGpvdGhAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VzcyB0byBvdXQtb2Ytc2NvcGUgV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxMTIKKworICAgICAgICBBZGQgbWlzc2luZyB2aXJ0dWFs
IGRlc3RydWN0b3IgdG8gdGhlIGFic3RyYWN0IGJhc2UgY2xhc3MuCisKKyAgICAgICAgUmUtYXBw
bHkgcm9sbGVkIG91dCBwYXRjaCBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82Njg4
NgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlOjp+R2Vv
bG9jYXRpb25TZXJ2aWNlQnJpZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9HZW9s
b2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oOgorCiAyMDEwLTA5LTEwICBEaXJrIFByYW5rZSAgPGRw
cmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2Vydmlj
ZUNocm9taXVtLmNwcAppbmRleCA5MzMzOTk5NzQzNjVjNDBkZDE5MmRlZjZjZWJjM2MyM2FiMmIy
NDM3Li5iNjRmNWViNGE3Y2Q3Y2I1NzFlMmUwZGI5YWNiZjE1ZDVjOGQ0NzU4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9t
aXVtLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2U6On5HZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoKQoreworfQor
CiBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0o
R2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjKQogICAgICAgICA6IEdlb2xvY2F0aW9uU2Vydmlj
ZShjKSwKICAgICAgICAgICBtX2dlb2xvY2F0aW9uKHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uKj4o
YykpLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bS5oCmluZGV4IGYxMzkyMjBlODgzMDE3Y2QxMDlmMzQ3YWNiN2Q2Y2VhMzQy
OTA1MWUuLjdlNmY2MzNmZjcxNjRmYTRjYjYzMGVhZjk4NzA4YTEyNzk4M2NiZTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0u
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9t
aXVtLmgKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gUHJvdmlkZXMg
YW4gaW50ZXJmYWNlIGZvciBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bSB0byBjYWxsIGludG8g
dGhlIGVtYmVkZGVyLgogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlIHsKIHB1YmxpYzoK
KyAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoKTsKICAgICAvLyBDYWxsZWQg
YnkgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uCiAgICAgdmlydHVhbCBib29sIHN0YXJ0VXBk
YXRpbmcoUG9zaXRpb25PcHRpb25zKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKSA9IDA7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlOWY2MzU0YjhkOThhNWRiZDU3ZDkyZjYwNzVlMmFj
NjA0NjBmOGY2Li5kZmFlNDIzMTkwOGNjY2QyNTI0ZDhmMTNiNzhiNDQ4NjMyNzdjMzNmIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMC0wOS0xMCAgSm9uYXRoYW4gRGl4b24gIDxq
b3RoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbY2hyb21pdW1dIFBvcnQgdGVzdCBzaGVsbCBnZW9sb2NhdGlvbiBmaXhlcyB0
byBEUlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MzEzCisKKyAgICAgICAgUG9ydHMgb3ZlciBmaXhlcyBmcm9tIHRlc3Qgc2hlbGw6CisgICAgICAg
ICAtIGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8zMjk0MDA3CisgICAgICAgICAtIGh0
dHA6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8zMzM4MDAKKworICAgICAgICBSZXNldHMgc3Rh
dGUgYmV0d2VlbiBzZXJ2aWNlIGluc3RhbmNlcywgd2hpY2ggZml4ZXMgZGVsYXllZC1wZXJtaXNz
aW9uLWFsbG93ZWQtZm9yLW11bHRpcGxlLXJlcXVlc3RzLmh0bWwKKworICAgICAgICBBbHNvIGVl
LWFwcGx5IHJvbGxlZCBvdXQgcGF0Y2ggaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
NjY4ODYgOi0KKyAgICAgICAgQWNjZXNzIHRvIG91dC1vZi1zY29wZSBXZWJHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTExMgorCisgICAgICAgIEtlZXAgdGhlIFdlYkdlb2xvY2F0aW9uU2VydmljZSBw
b2ludGVyIGZvciBsaWZldGltZSBvZiB0aGUgYnJpZGdlLCB0bworICAgICAgICBlbnN1cmUgaXQg
Y2FuIGJlIGRldGFjaGVkIHJlbGlhYmx5CisKKyAgICAgICAgSW5jbHVkZXMgZm9sbG93LXVwIHJl
dmlldyBjb21tZW50IHRvIHJlbmFtZSBvbldlYkdlb2xvY2F0aW9uU2VydmljZURlc3Ryb3llZCB0
byBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2Vydmlj
ZTo6fldlYkdlb2xvY2F0aW9uU2VydmljZSk6CisgICAgICAgICogcHVibGljL1dlYkdlb2xvY2F0
aW9uU2VydmljZUJyaWRnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2U6Om9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOgorICAgICAgICAqIHNyYy9XZWJHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9j
YXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6On5XZWJH
ZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9j
YXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN0b3BVcGRhdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN1c3BlbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpyZXN1bWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjphdHRhY2hC
cmlkZ2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJy
aWRnZUltcGw6OnNldElzQWxsb3dlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZUltcGw6OnNldExhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnNldExhc3RFcnJvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OmRpZERlc3Ryb3lHZW9sb2Nh
dGlvblNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2VJbXBsOjppc0F0dGFjaGVkKToKKyAgICAgICAgKiBzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNl
dE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdlb2xvY2F0
aW9uU2VydmljZU1vY2tJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVxdWVzdFBlcm1pc3Npb25Gb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpu
b3RpZnlQZW5kaW5nUGVybWlzc2lvbnMpOgorCiAyMDEwLTA5LTA4ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2UuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgKaW5kZXggZWQ4YzRl
ODM1MThlMTgyNDYxYmZiYTAwYTg1NGViNTY4NGM4MDkxNS4uZWE5MWI1ODM0ZjJkNTY5YWUxYzFm
ODA2YzcxNjNlMWUwMGM4ZDFlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJHZW9sb2NhdGlvblNlcnZpY2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdl
b2xvY2F0aW9uU2VydmljZS5oCkBAIC0zMSwxMCArMzEsOSBAQAogI2lmbmRlZiBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VfaAogI2RlZmluZSBXZWJHZW9sb2NhdGlvblNlcnZpY2VfaAogCi0jaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CitjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U7CiBjbGFzcyBXZWJTdHJpbmc7CiBj
bGFzcyBXZWJVUkw7CiAKQEAgLTUwLDEwICs0OSwxNCBAQCBwdWJsaWM6CiAKICAgICAvLyBBdHRh
Y2hlcyB0aGUgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlIHRvIHRoZSBlbWJlZGRlciBhbmQg
cmV0dXJucyBpdHMKICAgICAvLyBpZCwgd2hpY2ggc2hvdWxkIGJlIHVzZWQgb24gc3Vic2VxdWVu
dCBjYWxscyBmb3IgdGhlIG1ldGhvZHMgYWJvdmUuCisgICAgLy8gQW4gSUQgb2YgemVybyBpbmRp
Y2F0ZXMgdGhlIGF0dGFjaCBmYWlsZWQuCiAgICAgdmlydHVhbCBpbnQgYXR0YWNoQnJpZGdlKFdl
Ykdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSopIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIERldGFj
aGVzIHRoZSBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UgZnJvbSB0aGUgZW1iZWRkZXIuCiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaEJyaWRnZShpbnQgYnJpZGdlSWQpIHsgfQorCitwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25TZXJ2aWNlKCkge30KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJH
ZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgKaW5kZXggNDIyYjMyYmNlMjgyYTA4MGE5YzljMDJkZDg4
MTNiYjBkNzU1ZGEwOC4uZDIwOWMyMzBhNzkyMDg3OGZhMGI0NGViNDYyZWQ0MTlmOWM0NzFlNiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VC
cmlkZ2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2Vydmlj
ZUJyaWRnZS5oCkBAIC00Nyw3ICs0NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dElzQWxsb3dlZChib29sIGFsbG93ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFBv
c2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBwcm92aWRlc0Fs
dGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0Fs
dGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVh
ZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBs
b25nIGxvbmcgdGltZXN0YW1wKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RFcnJvcihp
bnQgZXJyb3JDb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgb25XZWJHZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKSA9IDA7CisgICAgLy8gQ2Fs
bGVkIHdoZW4gdGhlIFdlYkdlb2xvY2F0aW9uU2VydmljZSB0byB3aGljaCB0aGlzIGJyaWRnZSBp
cyBhdHRhY2hlZCBpcyBnb2luZyBvdXQgb2Ygc2NvcGUuIE9uIHJlY2VpdmluZworICAgIC8vIHRo
aXMgY2FsbCB0aGUgYnJpZGdlIGltcGxlbWVudGF0aW9uIG11c3Qgbm90IG1ha2UgYW55IGZ1cnRo
ZXIgYWNjZXNzIHRvIHRoZSBzZXJ2aWNlLgorICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95R2Vv
bG9jYXRpb25TZXJ2aWNlKCkgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBiYWRseSBu
YW1lZCBtZXRob2Qgd2hlbiBhbGwgY2FsbGVycyBhcmUgdXNpbmcgZGlkRGVzdHJveUdlb2xvY2F0
aW9uU2VydmljZSBkaXJlY3RseS4KKyAgICB2b2lkIG9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVz
dHJveWVkKCkgeyBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCk7IH0KIAogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgfldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSgpIHt9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCmluZGV4
IDQwN2ZlOWQzNzgzZjRhNzdjYTc2YTg1MjBhYzk5Y2M3MDkwYzVjMTQuLjgyMDk3NWUxMTA5ZWNh
YzgxNzYwMGRiZDNiMjgzZTE3ZTM5OGJmNjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCkBAIC00NCw5ICs0NCw2IEBAIHB1Ymxp
YzoKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24oYm9vbCBhbGxvd2VkKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlv
bkVycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7Ci0KLXByb3Rl
Y3RlZDoKLSAgICBzdGF0aWMgYm9vbCBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGwuY3BwCmluZGV4IGJiYjcxNjJjYmNhNzVi
NGY4OWRmOTQxMzAzYjdiMWE1ZTEzYTBkMjAuLmJiYzg1MmZkNmVkZGRiZTcyY2U2MzFlNmI4NjIx
NTVmODk1MmVmZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRp
b25TZXJ2aWNlQnJpZGdlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsLmNwcApAQCAtNzksMTMgKzc5LDE1IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBbGxvd2VkKGJvb2wgYWxsb3dlZCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldExhc3RQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUs
IGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ks
IGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwg
Ym9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQs
IGRvdWJsZSBzcGVlZCwgbG9uZyBsb25nIHRpbWVzdGFtcCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dExhc3RFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwotICAg
IHZpcnR1YWwgdm9pZCBvbldlYkdlb2xvY2F0aW9uU2VydmljZURlc3Ryb3llZCgpOworICAgIHZp
cnR1YWwgdm9pZCBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgV2ViVmlld0NsaWVudCogZ2V0V2ViVmlld0NsaWVudCgpOwotCisgICAgYm9vbCBpc0F0dGFj
aGVkKCkgY29uc3Q7CisgICAgLy8gUG9pbnRlciBiYWNrIHRvIHRoZSBXZWJLaXQgZ2VvbG9jYXRp
b24gY2xpZW50LiBXZSBvYnRhaW4gdGhpcyB2aWEgdGhlIGZyYW1lJ3MgcGFnZSwgYnV0IG5lZWQg
dG8gY2FjaGUgaXQKKyAgICAvLyBhcyBpdCBtYXkgc3RpbGwgYmUgYWxpdmUgYWZ0ZXIgdGhlIHBh
Z2UgaGFzIGRldGFjaGVkIGZyb20gdGhlIGZyYW1lLgorICAgIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZSogbV93ZWJHZW9sb2NhdGlvblNlcnZpY2U7CiAgICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2hy
b21pdW0gb3ducyB1cywgd2Ugb25seSBoYXZlIGEgcG9pbnRlciBiYWNrIHRvIGl0LgotICAgIEdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtKiBtX0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOwor
ICAgIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKiBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9t
aXVtOwogICAgIGludCBtX2JyaWRnZUlkOwogfTsKIApAQCAtOTUsNDkgKzk3LDQ3IEBAIEdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZSogY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbChH
ZW9sb2NhdGlvblNlcnZpY2VDCiB9CiAKIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6
OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0qIGdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKQotICAgIDogbV9HZW9sb2NhdGlvblNlcnZp
Y2VDaHJvbWl1bShnZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bSkKKyAgICA6IG1fd2ViR2VvbG9j
YXRpb25TZXJ2aWNlKDApCisgICAgLCBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKGdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtKQogICAgICwgbV9icmlkZ2VJZCgwKQogewogfQogCiBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjp+V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdl
SW1wbCgpCiB7Ci0gICAgV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50ID0gZ2V0
V2ViVmlld0NsaWVudCgpOwotICAgIC8vIEdlb2xvY2F0aW9uIGhhcyBhbiBPd25QdHIgdG8gdXMs
IGFuZCBpdCdzIGRlc3Ryb3llZCBhZnRlciB0aGUgZnJhbWUgaGFzCi0gICAgLy8gYmVlbiBwb3Rl
bnRpYWxseSBkaXNjb25uZWN0ZWQuIEluIHRoaXMgY2FzZSwgaXQgY2FsbHMgc3RvcFVwZGF0aW5n
KCkKLSAgICAvLyBoYXMgYmVlbiBjYWxsZWQgYW5kIHdlIGhhdmUgYWxyZWFkeSBkZXRhY2hlZCBv
dXJzZWx2ZXMuCi0gICAgaWYgKCF3ZWJWaWV3Q2xpZW50KQotICAgICAgICBBU1NFUlQoIW1fYnJp
ZGdlSWQpOwotICAgIGVsc2UgaWYgKG1fYnJpZGdlSWQpCi0gICAgICAgIHdlYlZpZXdDbGllbnQt
Pmdlb2xvY2F0aW9uU2VydmljZSgpLT5kZXRhY2hCcmlkZ2UobV9icmlkZ2VJZCk7CisgICAgaWYg
KGlzQXR0YWNoZWQoKSkKKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPmRldGFjaEJy
aWRnZShtX2JyaWRnZUlkKTsKIH0KIAogYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJ
bXBsOjpzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyogcG9zaXRpb25PcHRpb25zKQogewog
ICAgIGF0dGFjaEJyaWRnZUlmTmVlZGVkKCk7Ci0gICAgZ2V0V2ViVmlld0NsaWVudCgpLT5nZW9s
b2NhdGlvblNlcnZpY2UoKS0+c3RhcnRVcGRhdGluZyhtX2JyaWRnZUlkLCBtX0dlb2xvY2F0aW9u
U2VydmljZUNocm9taXVtLT5mcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKSwgcG9zaXRpb25PcHRp
b25zLT5lbmFibGVIaWdoQWNjdXJhY3koKSk7CisgICAgaWYgKCFpc0F0dGFjaGVkKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+c3RhcnRVcGRh
dGluZyhtX2JyaWRnZUlkLCBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLT5mcmFtZSgpLT5k
b2N1bWVudCgpLT51cmwoKSwgcG9zaXRpb25PcHRpb25zLT5lbmFibGVIaWdoQWNjdXJhY3koKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdl
SW1wbDo6c3RvcFVwZGF0aW5nKCkKIHsKLSAgICBXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50
ID0gZ2V0V2ViVmlld0NsaWVudCgpOwotICAgIGlmIChtX2JyaWRnZUlkICYmIHdlYlZpZXdDbGll
bnQpIHsKLSAgICAgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlKiBnZW9sb2NhdGlvblNlcnZpY2Ug
PSB3ZWJWaWV3Q2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2UoKTsKLSAgICAgICAgZ2VvbG9jYXRp
b25TZXJ2aWNlLT5zdG9wVXBkYXRpbmcobV9icmlkZ2VJZCk7Ci0gICAgICAgIGdlb2xvY2F0aW9u
U2VydmljZS0+ZGV0YWNoQnJpZGdlKG1fYnJpZGdlSWQpOworICAgIGlmIChpc0F0dGFjaGVkKCkp
IHsKKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPnN0b3BVcGRhdGluZyhtX2JyaWRn
ZUlkKTsKKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPmRldGFjaEJyaWRnZShtX2Jy
aWRnZUlkKTsKKyAgICAgICAgbV9icmlkZ2VJZCA9IDA7CisgICAgICAgIG1fd2ViR2VvbG9jYXRp
b25TZXJ2aWNlID0gMDsKICAgICB9Ci0gICAgbV9icmlkZ2VJZCA9IDA7CiB9CiAKIHZvaWQgV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6c3VzcGVuZCgpCiB7Ci0gICAgZ2V0V2ViVmll
d0NsaWVudCgpLT5nZW9sb2NhdGlvblNlcnZpY2UoKS0+c3VzcGVuZChtX2JyaWRnZUlkKTsKKyAg
ICBpZiAoaXNBdHRhY2hlZCgpKQorICAgICAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+c3Vz
cGVuZChtX2JyaWRnZUlkKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJ
bXBsOjpyZXN1bWUoKQogewotICAgIGdldFdlYlZpZXdDbGllbnQoKS0+Z2VvbG9jYXRpb25TZXJ2
aWNlKCktPnJlc3VtZShtX2JyaWRnZUlkKTsKKyAgICBpZiAoaXNBdHRhY2hlZCgpKQorICAgICAg
ICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+cmVzdW1lKG1fYnJpZGdlSWQpOwogfQogCiBpbnQg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6Z2V0QnJpZGdlSWQoKSBjb25zdApAQCAt
MTQ3LDM4ICsxNDcsNTQgQEAgaW50IFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6Omdl
dEJyaWRnZUlkKCkgY29uc3QKIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBs
OjphdHRhY2hCcmlkZ2VJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKCFtX2JyaWRnZUlkKQotICAgICAg
ICBtX2JyaWRnZUlkID0gZ2V0V2ViVmlld0NsaWVudCgpLT5nZW9sb2NhdGlvblNlcnZpY2UoKS0+
YXR0YWNoQnJpZGdlKHRoaXMpOworICAgIGlmIChpc0F0dGFjaGVkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICAvLyBMYXp5IGF0dGFjaCB0byB0aGUgZ2VvbG9jYXRpb24gc2VydmljZSBvZiB0aGUg
YXNzb2NpYXRlZCBwYWdlIGlmIHRoZXJlIGlzIG9uZS4KKyAgICBGcmFtZSogZnJhbWUgPSBtX2dl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUgfHwgIWZy
YW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6OkNocm9tZUNsaWVudElt
cGwqIGNocm9tZUNsaWVudEltcGwgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudElt
cGwqPihmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOworICAgIFdlYktpdDo6V2Vi
Vmlld0NsaWVudCogd2ViVmlld0NsaWVudCA9IGNocm9tZUNsaWVudEltcGwtPndlYlZpZXcoKS0+
Y2xpZW50KCk7CisgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UgPSB3ZWJWaWV3Q2xpZW50LT5n
ZW9sb2NhdGlvblNlcnZpY2UoKTsKKyAgICBBU1NFUlQobV93ZWJHZW9sb2NhdGlvblNlcnZpY2Up
OworICAgIG1fYnJpZGdlSWQgPSBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+YXR0YWNoQnJpZGdl
KHRoaXMpOworICAgIGlmICghbV9icmlkZ2VJZCkgeworICAgICAgICAvLyBBdHRhY2ggZmFpbGVk
LiBSZWxlYXNlIGFzc29jaWF0aW9uIHdpdGggdGhpcyBzZXJ2aWNlLgorICAgICAgICBtX3dlYkdl
b2xvY2F0aW9uU2VydmljZSA9IDA7CisgICAgfQogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2Vy
dmljZUJyaWRnZUltcGw6OnNldElzQWxsb3dlZChib29sIGFsbG93ZWQpCiB7Ci0gICAgbV9HZW9s
b2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+c2V0SXNBbGxvd2VkKGFsbG93ZWQpOworICAgIG1fZ2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0tPnNldElzQWxsb3dlZChhbGxvd2VkKTsKIH0KIAogdm9p
ZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpzZXRMYXN0UG9zaXRpb24oZG91Ymxl
IGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJs
ZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUg
aGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQsIGxvbmcgbG9uZyB0aW1l
c3RhbXApCiB7CiAgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBnZW9wb3NpdGlvbiA9IEdlb3Bvc2l0
aW9uOjpjcmVhdGUoQ29vcmRpbmF0ZXM6OmNyZWF0ZShsYXRpdHVkZSwgbG9uZ2l0dWRlLCBwcm92
aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFj
eSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92aWRlc1Nw
ZWVkLCBzcGVlZCksIHRpbWVzdGFtcCk7Ci0gICAgbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1
bS0+c2V0TGFzdFBvc2l0aW9uKGdlb3Bvc2l0aW9uKTsKKyAgICBtX2dlb2xvY2F0aW9uU2Vydmlj
ZUNocm9taXVtLT5zZXRMYXN0UG9zaXRpb24oZ2VvcG9zaXRpb24pOwogfQogCiB2b2lkIFdlYkdl
b2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnNldExhc3RFcnJvcihpbnQgZXJyb3JDb2RlLCBj
b25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bS0+c2V0TGFzdEVycm9yKGVycm9yQ29kZSwgbWVzc2FnZSk7CisgICAgbV9nZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bS0+c2V0TGFzdEVycm9yKGVycm9yQ29kZSwgbWVzc2FnZSk7CiB9CiAK
LVdlYlZpZXdDbGllbnQqIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OmdldFdlYlZp
ZXdDbGllbnQoKQordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpkaWREZXN0
cm95R2VvbG9jYXRpb25TZXJ2aWNlKCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBtX0dlb2xvY2F0
aW9uU2VydmljZUNocm9taXVtLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbCog
Y2hyb21lQ2xpZW50SW1wbCA9IHN0YXRpY19jYXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbCo+
KGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7Ci0gICAgV2ViS2l0OjpXZWJWaWV3
Q2xpZW50KiB3ZWJWaWV3Q2xpZW50ID0gY2hyb21lQ2xpZW50SW1wbC0+d2ViVmlldygpLT5jbGll
bnQoKTsKLSAgICByZXR1cm4gd2ViVmlld0NsaWVudDsKKyAgICBtX2JyaWRnZUlkID0gMDsKKyAg
ICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZSA9IDA7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlQnJpZGdlSW1wbDo6b25XZWJHZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKQorYm9v
bCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjppc0F0dGFjaGVkKCkgY29uc3QKIHsK
KyAgICAvLyBUZXN0IHRoZSBjbGFzcyBpbnZhcmlhbnQuCisgICAgaWYgKG1fd2ViR2VvbG9jYXRp
b25TZXJ2aWNlKQorICAgICAgICBBU1NFUlQobV9icmlkZ2VJZCk7CisgICAgZWxzZQorICAgICAg
ICBBU1NFUlQoIW1fYnJpZGdlSWQpOworCisgICAgcmV0dXJuIG1fd2ViR2VvbG9jYXRpb25TZXJ2
aWNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCmluZGV4IDJhMTBjOTY2NzI5NzNkYjc3
NzQ2MjdlYThmYjMzZGFjZjE5ZjhmZTQuLjg5MDcxZjRhNDMzMzFkOThmNmJmNzA2MGI4ODUwODk4
MjFmNTQ1YmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmNwcApAQCAtMzQsOSArMzQsMTEgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblNl
cnZpY2UuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2UuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIApAQCAtNTEsNiArNTMsNyBAQCB1c2lu
ZyBXZWJDb3JlOjpHZW9wb3NpdGlvbjsKIHVzaW5nIFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I7CiB1
c2luZyBXZWJDb3JlOjpQb3NpdGlvbk9wdGlvbnM7CiB1c2luZyBXVEY6OlN0cmluZzsKK3VzaW5n
IFdURjo6VmVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bU1vY2sgOiBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0sIHB1
YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQgewpAQCAtMTI0LDE3ICsxMjcsMzQgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsIDog
cHVibGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sgewogcHVibGljOgotICAgIHZpcnR1YWwg
fldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCkgeyB9CisgICAgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9ja0ltcGwoKTsKKyAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
SW1wbCgpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9v
bCBhbGxvd2VkKTsKKworICAgIC8vIFdlYkdlb2xvY2F0aW9uU2VydmljZQogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvckZyYW1lKGludCBicmlkZ2VJZCwgY29uc3QgV2ViVVJM
JiB1cmwpOwogICAgIHZpcnR1YWwgaW50IGF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCBub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMoKTsKKwogICAg
IHR5cGVkZWYgSGFzaE1hcDxpbnQsIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSo+IElkVG9C
cmlkZ2VNYXA7CiAgICAgSWRUb0JyaWRnZU1hcCBtX2lkVG9CcmlkZ2VNYXA7CisgICAgVmVjdG9y
PGludD4gbV9wZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzOworCisgICAgLy8gSW4gYWRkaXRpb24g
dG8gdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBwb2ludGVyLCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHNl
dE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oKSBzdGF0ZQorICAgIC8vIGFzIGEgc3RhdGljIChu
b3Qgb2JqZWN0IG1lbWJlcnMpIGFzIHRoaXMgY2FsbCBtYXkgY29tZSBpbiBiZWZvcmUgdGhlIHNl
cnZpY2UgaGFzIGJlZW4gY3JlYXRlZC4KKyAgICBzdGF0aWMgZW51bSBQZXJtaXNzaW9uU3RhdGUg
eworICAgICAgICBQZXJtaXNzaW9uU3RhdGVVbnNldCwKKyAgICAgICAgUGVybWlzc2lvblN0YXRl
QWxsb3dlZCwKKyAgICAgICAgUGVybWlzc2lvblN0YXRlRGVuaWVkLAorICAgIH0gc19wZXJtaXNz
aW9uU3RhdGU7CisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBzX2lu
c3RhbmNlOwogfTsKIAotYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX21vY2tHZW9s
b2NhdGlvblBlcm1pc3Npb24gPSBmYWxzZTsKK1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBs
OjpQZXJtaXNzaW9uU3RhdGUgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfcGVybWlz
c2lvblN0YXRlID0gV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OlBlcm1pc3Npb25TdGF0
ZVVuc2V0OworV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwqIFdlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2tJbXBsOjpzX2luc3RhbmNlID0gMDsKIAogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ayogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jaygpCiB7CkBAIC0xNDMsNyArMTYzLDcgQEAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayog
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlV2ViR2VvbG9jYXRpb25TZXJ2aWMKIAog
dm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKGJvb2wgYWxsb3dlZCkKIHsKLSAgICBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24gPSBh
bGxvd2VkOworICAgIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzZXRNb2NrR2VvbG9j
YXRpb25QZXJtaXNzaW9uKGFsbG93ZWQpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91Ymxl
IGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQpAQCAtMTYwLDEyICsxODAsMzUgQEAgdm9pZCBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJy
b3JDb2RlLCBjb25zdCBXZWIKICAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihw
b3NpdGlvbkVycm9yKTsKIH0KIAorV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OldlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCkKK3sKKyAgICBBU1NFUlQoIXNfaW5zdGFuY2UpOwor
ICAgIHNfaW5zdGFuY2UgPSB0aGlzOworfQorCitXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1w
bDo6fldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCkKK3sKKyAgICBBU1NFUlQodGhpcyA9
PSBzX2luc3RhbmNlKTsKKyAgICBzX2luc3RhbmNlID0gMDsKKyAgICAvLyBSZXNldCB0aGUgcGVy
bWlzc2lvbiBzdGF0ZSwgc28gYW55IGZ1dHVyZSBzZXJ2aWNlIGluc3RhbmNlIChlLmcuIHJ1bm5p
bmcKKyAgICAvLyBtdWx0aXBsZSB0ZXN0cyBpbiBhIHNpbmdsZSBEUlQgcnVuKSB3aWxsIHNlZSBh
IGNsZWFuIGNhbGwgc2VxdWVuY2UuCisgICAgc19wZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9u
U3RhdGVVbnNldDsKKyAgICBmb3IgKElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRv
QnJpZGdlTWFwLmJlZ2luKCk7IGl0ICE9IG1faWRUb0JyaWRnZU1hcC5lbmQoKTsgKytpdCkKKyAg
ICAgICAgaXQtPnNlY29uZC0+ZGlkRGVzdHJveUdlb2xvY2F0aW9uU2VydmljZSgpOworfQorCit2
b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uKGJvb2wgYWxsb3dlZCkKK3sKKyAgICBzX3Blcm1pc3Npb25TdGF0ZSA9IGFsbG93ZWQg
PyBQZXJtaXNzaW9uU3RhdGVBbGxvd2VkIDogUGVybWlzc2lvblN0YXRlRGVuaWVkOworICAgIGlm
IChzX2luc3RhbmNlKQorICAgICAgICBzX2luc3RhbmNlLT5ub3RpZnlQZW5kaW5nUGVybWlzc2lv
bnMoKTsKK30KKwogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JGcmFtZShpbnQgYnJpZGdlSWQsIGNvbnN0IFdlYlVSTCYgdXJsKQogewotICAg
IElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9CcmlkZ2VNYXAuZmluZChicmlk
Z2VJZCk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pZFRvQnJpZGdlTWFwLmVuZCgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaXRlci0+c2Vjb25kLT5zZXRJc0FsbG93ZWQoc19tb2NrR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKTsKKyAgICBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKGJyaWRn
ZUlkKTsKKyAgICBpZiAoc19wZXJtaXNzaW9uU3RhdGUgIT0gUGVybWlzc2lvblN0YXRlVW5zZXQp
CisgICAgICBub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMoKTsKIH0KIAogaW50IFdlYkdlb2xvY2F0
aW9uU2VydmljZU1vY2tJbXBsOjphdHRhY2hCcmlkZ2UoV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJp
ZGdlKiBicmlkZ2UpCkBAIC0xODMsNiArMjI2LDE5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGw6OmRldGFjaEJyaWRnZShpbnQgYnJpZGdlSWQpCiAgICAgbV9pZFRvQnJpZGdl
TWFwLnJlbW92ZShicmlkZ2VJZCk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
a0ltcGw6Om5vdGlmeVBlbmRpbmdQZXJtaXNzaW9ucygpCit7CisgICAgQVNTRVJUKHNfcGVybWlz
c2lvblN0YXRlID09IFBlcm1pc3Npb25TdGF0ZUFsbG93ZWQgfHwgc19wZXJtaXNzaW9uU3RhdGUg
PT0gIFBlcm1pc3Npb25TdGF0ZURlbmllZCk7CisgICAgVmVjdG9yPGludD4gcGVuZGluZ1Blcm1p
c3Npb25SZXF1ZXN0czsKKyAgICBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLnN3YXAobV9wZW5k
aW5nUGVybWlzc2lvblJlcXVlc3RzKTsKKyAgICBmb3IgKFZlY3RvcjxpbnQ+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IHBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYmVnaW4oKTsgaXQgIT0gcGVuZGlu
Z1Blcm1pc3Npb25SZXF1ZXN0cy5lbmQoKTsgKytpdCkgeworICAgICAgICBBU1NFUlQoKml0ID4g
MCk7CisgICAgICAgIElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9CcmlkZ2VN
YXAuZmluZCgqaXQpOworICAgICAgICBpZiAoaXRlciAhPSBtX2lkVG9CcmlkZ2VNYXAuZW5kKCkp
CisgICAgICAgICAgICBpdGVyLT5zZWNvbmQtPnNldElzQWxsb3dlZChzX3Blcm1pc3Npb25TdGF0
ZSA9PSBQZXJtaXNzaW9uU3RhdGVBbGxvd2VkKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67179</attachid>
            <date>2010-09-10 07:30:39 -0700</date>
            <delta_ts>2010-09-13 06:15:49 -0700</delta_ts>
            <desc>jorlows and steve&apos;s comments; fixup ChangeLogs</desc>
            <filename>bug-45313-20100910153037.patch</filename>
            <type>text/plain</type>
            <size>23803</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzg3MDRkZWY5OTBhNDlkODBkMWI5ZTlkZGZjNjM0NTQ2ZTkwY2JkLi5hODliY2Q1
OTBkYTFhZjQ1NTQ1NzAyYjZjZjgxMGZmZDRiOWExNDkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDktMTAgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0
IHRlc3Qgc2hlbGwgZ2VvbG9jYXRpb24gZml4ZXMgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMworCisgICAgICAgIFJlbW92ZSBleGNl
cHRpb25zIGZvciB0ZXN0cyB0aGF0IG5vdyBwYXNzIChpbiBEUlQgYW5kIGRvd25zdHJlYW0gdGVz
dF9zaGVsbCkKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoK
KwogMjAxMC0wOS0xMCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNjBiYWZjNmUwZmVmZWY0ZGU5
NWM0MmM5M2I0ZTQxZDU1MGM0ZGQwMS4uYzc2YTNiYjQ1NDM2ZWZiM2JlNzIwNzlmYmIyOTY5M2Zl
NmYzODk2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4
cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4
cGVjdGF0aW9ucy50eHQKQEAgLTEzNSw4ICsxMzUsNiBAQCBCVUdfRFJUIExJTlVYIDogc3ZnL2N1
c3RvbS9wYXR0ZXJuLWV4Y2Vzc2l2ZS1tYWxsb2Muc3ZnID0gSU1BR0UgUEFTUwogQlVHX0RSVCBM
SU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWxp
Z2h0aW5nLWNvbG9yLWNzcy1wcm9wLmh0bWwgPSBJTUFHRQogQlVHX0RSVCBXSU4gOiBodHRwL3Rl
c3RzL2xvYWRpbmcvcHJlbG9hZC1pbWctdGVzdC5odG1sID0gVEVYVCBUSU1FT1VUIFBBU1MKIEJV
R19EUlQgTUFDIExJTlVYIDogaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGluZy1pbWFnZS1pbi1w
YXR0ZXJuLmh0bWwgPSBJTUFHRSBQQVNTCi1CVUdfRFJUIFdJTiBNQUMgOiBmYXN0L2RvbS9HZW9s
b2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMu
aHRtbCA9IFRJTUVPVVQKLUJVR19EUlQgTElOVVggICA6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rl
bGF5ZWQtcGVybWlzc2lvbi1hbGxvd2VkLWZvci1tdWx0aXBsZS1yZXF1ZXN0cy5odG1sID0gVEVY
VCBUSU1FT1VUCiBCVUdfRFJUIDogcGxhdGZvcm0vY2hyb21pdW0vYWNjZXNzaWJpbGl0eS9jaGls
ZHJlbi1jaGFuZ2VkLW5vdGlmaWNhdGlvbi5odG1sID0gUEFTUwogQlVHX0RSVCBMSU5VWCA6IGZh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3RoYWktbGluZS1icmVha3MuaHRtbCA9IElNQUdFCiBCVUdf
RFJUIFdJTiA6IHN2Zy9iYXRpay90ZXh0L3RleHRGZWF0dXJlcy5zdmcgPSBJTUFHRQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cmlu
ZGV4IGU3Y2IyYjE1OTM0MDlmMWM2Y2JlNDgwMDY3MDc2Y2M0M2Q2YjViOTIuLjVlZmExOTVjMDVj
OTU3YjIyODA4NTU4YWNmYzYxYzEwMWRlYTU3NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI5NzgsMTAgKzI5Nzgs
NiBAQCBCVUc1MDYzNyA6IGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5odG1sID0gRkFJ
TAogLy8gQXBwbGljYXRpb24gQ2FjaGUgUXVvdGFzCiBCVUdXSzQzNDU5IDogaHR0cC90ZXN0cy9h
cHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbCA9IFRFWFQgTUlTU0lORwogCi0vLyBNaXNzaW5nIExh
eW91dFRlc3RDb250cm9sbGVyIGhhcm5lc3MuCi1CVUdXSzQzNDgwIFNLSVAgOiBmYXN0L2RvbS9H
ZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sID0gVEVYVCBUSU1FT1VU
IFBBU1MKLUJVR1dLNDM0ODAgU0tJUCA6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2RlbGF5ZWQtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbCA9IFRFWFQgVElNRU9VVCBQQVNTCi0KIEJVRzUxMTYxIExJTlVY
IERFQlVHIDogc3ZnL1czQy1TVkctMS4xL21hc2tpbmctbWFzay0wMS1iLnN2ZyA9IENSQVNICiBC
VUc1MTE2MSBMSU5VWCBERUJVRyA6IHN2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLXRleHQuc3ZnID0g
Q1JBU0gKIApAQCAtMzAyMywxMCArMzAxOSw2IEBAIEJVR0pBUEhFVCBNQUMgOiBmYXN0L2NhbnZh
cy93ZWJnbC90ZXh0dXJlLW5wb3QuaHRtbCA9IFRFWFQKIC8vIFRoaXMgdGVzdCBjYXVzZXMgdGhl
IG5leHQgb25lIHRvIHJ1biB0byBBU1NFUlQKIEJVR1dLNDQwNzkgREVCVUcgU0tJUCA6IGZhc3Qv
ZXZlbnRzL3BvcHVwLWFsbG93ZWQtZnJvbS1nZXN0dXJlLWluaXRpYXRlZC1mb3JtLXN1Ym1pdC5o
dG1sID0gUEFTUwogCi0vLyBEdWUgdG8gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
NjU1MTEKLUJVR1dLNDQxMTggOiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Np
b24tYWxsb3dlZC1mb3ItbXVsdGlwbGUtcmVxdWVzdHMuaHRtbCA9IFRFWFQKLUJVR1dLNDQxMTgg
OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLWZvci1tdWx0
aXBsZS1yZXF1ZXN0cy5odG1sID0gVElNRU9VVAotCiAvLyBGbGFreS4gTm90IHN1cmUgd2hlbiBp
dCBzdGFydGVkIHRvIGZhaWwuCiBCVUc1MjU3MiBXSU4gTElOVVggREVCVUcgOiBodHRwL3Rlc3Rz
L21pc2MvaW1hZ2UtYmxvY2tlZC1zcmMtY2hhbmdlLmh0bWwgPSBQQVNTIFRFWFQKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MzAzMDhh
MzkyODg2OGZjZjMwNjc2YWIzZmRmZWZlYmQ5NmZlZWY1Li44ZmJlNDVkOWZiY2Q2YzliYTMxYmMx
NjBlYjNkZTc5M2IwMDU2ZWNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA5LTEwICBKb25hdGhhbiBE
aXhvbiAgPGpvdGhAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gUG9ydCB0ZXN0IHNoZWxsIGdlb2xvY2F0aW9u
IGZpeGVzIHRvIERSVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDUzMTMKKworICAgICAgICBBbHNvIHJlLWFwcGx5IHJvbGxlZCBvdXQgcGF0Y2ggaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjY4ODYgOi0KKyAgICAgICAgQWRkIG1pc3Np
bmcgdmlydHVhbCBkZXN0cnVjdG9yIHRvIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzLgorCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlOjp+R2VvbG9jYXRpb25T
ZXJ2aWNlQnJpZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bS5oOgorCiAyMDEwLTA5LTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVt
LmNwcAppbmRleCA5MzMzOTk5NzQzNjVjNDBkZDE5MmRlZjZjZWJjM2MyM2FiMmIyNDM3Li5iNjRm
NWViNGE3Y2Q3Y2I1NzFlMmUwZGI5YWNiZjE1ZDVjOGQ0NzU4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcApA
QCAtMzUsNiArMzUsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2U6On5HZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoKQoreworfQorCiBHZW9sb2Nh
dGlvblNlcnZpY2VDaHJvbWl1bTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0oR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50KiBjKQogICAgICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjKSwKICAg
ICAgICAgICBtX2dlb2xvY2F0aW9uKHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uKj4oYykpLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bS5oCmluZGV4IGYxMzkyMjBlODgzMDE3Y2QxMDlmMzQ3YWNiN2Q2Y2VhMzQyOTA1MWUuLjdl
NmY2MzNmZjcxNjRmYTRjYjYzMGVhZjk4NzA4YTEyNzk4M2NiZTcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmgKQEAg
LTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gUHJvdmlkZXMgYW4gaW50ZXJm
YWNlIGZvciBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bSB0byBjYWxsIGludG8gdGhlIGVtYmVk
ZGVyLgogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlIHsKIHB1YmxpYzoKKyAgICB2aXJ0
dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoKTsKICAgICAvLyBDYWxsZWQgYnkgR2VvbG9j
YXRpb25TZXJ2aWNlQ2hyb21pdW0uCiAgICAgdmlydHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9z
aXRpb25PcHRpb25zKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBlOWY2MzU0YjhkOThhNWRiZDU3ZDkyZjYwNzVlMmFjNjA0NjBmOGY2
Li5jZDVmZjM4YTk3YjVkMDU1NTYxYjIzN2I1OGIwZGJhZjdiNmVmOGM2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1MSBAQAorMjAxMC0wOS0xMCAgSm9uYXRoYW4gRGl4b24gIDxqb3RoQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbY2hyb21pdW1dIFBvcnQgdGVzdCBzaGVsbCBnZW9sb2NhdGlvbiBmaXhlcyB0byBEUlQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzEzCisKKyAg
ICAgICAgUG9ydHMgb3ZlciBmaXhlcyBmcm9tIHRlc3Qgc2hlbGw6CisgICAgICAgICAtIGh0dHA6
Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8zMjk0MDA3CisgICAgICAgICAtIGh0dHA6Ly9jb2Rl
cmV2aWV3LmNocm9taXVtLm9yZy8zMzM4MDAKKworICAgICAgICBSZXNldHMgc3RhdGUgYmV0d2Vl
biBzZXJ2aWNlIGluc3RhbmNlcywgd2hpY2ggZml4ZXMgZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93
ZWQtZm9yLW11bHRpcGxlLXJlcXVlc3RzLmh0bWwKKworICAgICAgICBBbHNvIHJlLWFwcGx5IHJv
bGxlZCBvdXQgcGF0Y2ggaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjY4ODYgOi0K
KyAgICAgICAgQWNjZXNzIHRvIG91dC1vZi1zY29wZSBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTExMgorCisgICAgICAgIEtlZXAgdGhlIFdlYkdlb2xvY2F0aW9uU2VydmljZSBwb2ludGVyIGZv
ciBsaWZldGltZSBvZiB0aGUgYnJpZGdlLCB0bworICAgICAgICBlbnN1cmUgaXQgY2FuIGJlIGRl
dGFjaGVkIHJlbGlhYmx5CisKKyAgICAgICAgSW5jbHVkZXMgZm9sbG93LXVwIHJldmlldyBjb21t
ZW50IHRvIHJlbmFtZSBvbldlYkdlb2xvY2F0aW9uU2VydmljZURlc3Ryb3llZCB0byBkaWREZXN0
cm95R2VvbG9jYXRpb25TZXJ2aWNlCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZTo6fldlYkdl
b2xvY2F0aW9uU2VydmljZSk6CisgICAgICAgICogcHVibGljL1dlYkdlb2xvY2F0aW9uU2Vydmlj
ZUJyaWRnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U6
Om9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOgorICAgICAgICAqIHNyYy9XZWJHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2
aWNlQnJpZGdlSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6On5XZWJHZW9sb2NhdGlv
blNlcnZpY2VCcmlkZ2VJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2
aWNlQnJpZGdlSW1wbDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN1c3BlbmQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpyZXN1bWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjphdHRhY2hCcmlkZ2VJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6
OnNldElzQWxsb3dlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJy
aWRnZUltcGw6OnNldExhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uU2VydmljZUJyaWRnZUltcGw6OnNldExhc3RFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OmRpZERlc3Ryb3lHZW9sb2NhdGlvblNlcnZp
Y2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpp
c0F0dGFjaGVkKToKKyAgICAgICAgKiBzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9s
b2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2tJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0lt
cGw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVxdWVzdFBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpub3RpZnlQZW5k
aW5nUGVybWlzc2lvbnMpOgorCiAyMDEwLTA5LTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2UuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgKaW5kZXggZWQ4YzRlODM1MThlMTgy
NDYxYmZiYTAwYTg1NGViNTY4NGM4MDkxNS4uZWE5MWI1ODM0ZjJkNTY5YWUxYzFmODA2YzcxNjNl
MWUwMGM4ZDFlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2Nh
dGlvblNlcnZpY2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9u
U2VydmljZS5oCkBAIC0zMSwxMCArMzEsOSBAQAogI2lmbmRlZiBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VfaAogI2RlZmluZSBXZWJHZW9sb2NhdGlvblNlcnZpY2VfaAogCi0jaW5jbHVkZSAiV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJV
Ukw7CiAKQEAgLTUwLDEwICs0OSwxNCBAQCBwdWJsaWM6CiAKICAgICAvLyBBdHRhY2hlcyB0aGUg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlIHRvIHRoZSBlbWJlZGRlciBhbmQgcmV0dXJucyBp
dHMKICAgICAvLyBpZCwgd2hpY2ggc2hvdWxkIGJlIHVzZWQgb24gc3Vic2VxdWVudCBjYWxscyBm
b3IgdGhlIG1ldGhvZHMgYWJvdmUuCisgICAgLy8gQW4gSUQgb2YgemVybyBpbmRpY2F0ZXMgdGhl
IGF0dGFjaCBmYWlsZWQuCiAgICAgdmlydHVhbCBpbnQgYXR0YWNoQnJpZGdlKFdlYkdlb2xvY2F0
aW9uU2VydmljZUJyaWRnZSopIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIERldGFjaGVzIHRoZSBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UgZnJvbSB0aGUgZW1iZWRkZXIuCiAgICAgdmlydHVh
bCB2b2lkIGRldGFjaEJyaWRnZShpbnQgYnJpZGdlSWQpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB+V2ViR2VvbG9jYXRpb25TZXJ2aWNlKCkge30KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlv
blNlcnZpY2VCcmlkZ2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlQnJpZGdlLmgKaW5kZXggNDIyYjMyYmNlMjgyYTA4MGE5YzljMDJkZDg4MTNiYjBkNzU1
ZGEwOC4uZDIwOWMyMzBhNzkyMDg3OGZhMGI0NGViNDYyZWQ0MTlmOWM0NzFlNiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZS5o
CkBAIC00Nyw3ICs0NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElzQWxsb3dl
ZChib29sIGFsbG93ZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBk
b3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNj
dXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91
YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBsb25nIGxvbmcg
dGltZXN0YW1wKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RFcnJvcihpbnQgZXJyb3JD
b2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25X
ZWJHZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKSA9IDA7CisgICAgLy8gQ2FsbGVkIHdoZW4g
dGhlIFdlYkdlb2xvY2F0aW9uU2VydmljZSB0byB3aGljaCB0aGlzIGJyaWRnZSBpcyBhdHRhY2hl
ZCBpcyBnb2luZyBvdXQgb2Ygc2NvcGUuIE9uIHJlY2VpdmluZworICAgIC8vIHRoaXMgY2FsbCB0
aGUgYnJpZGdlIGltcGxlbWVudGF0aW9uIG11c3Qgbm90IG1ha2UgYW55IGZ1cnRoZXIgYWNjZXNz
IHRvIHRoZSBzZXJ2aWNlLgorICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95R2VvbG9jYXRpb25T
ZXJ2aWNlKCkgPSAwOworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBiYWRseSBuYW1lZCBtZXRo
b2Qgd2hlbiBhbGwgY2FsbGVycyBhcmUgdXNpbmcgZGlkRGVzdHJveUdlb2xvY2F0aW9uU2Vydmlj
ZSBkaXJlY3RseS4KKyAgICB2b2lkIG9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKCkg
eyBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgfldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSgpIHt9CmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCmluZGV4IDQwN2ZlOWQz
NzgzZjRhNzdjYTc2YTg1MjBhYzk5Y2M3MDkwYzVjMTQuLjgyMDk3NWUxMTA5ZWNhYzgxNzYwMGRi
ZDNiMjgzZTE3ZTM5OGJmNjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCkBAIC00NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAgICBX
RUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBh
bGxvd2VkKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5
KTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGlu
dCBlcnJvckNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7Ci0KLXByb3RlY3RlZDoKLSAg
ICBzdGF0aWMgYm9vbCBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9j
YXRpb25TZXJ2aWNlQnJpZGdlSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZUltcGwuY3BwCmluZGV4IGJiYjcxNjJjYmNhNzViNGY4OWRmOTQx
MzAzYjdiMWE1ZTEzYTBkMjAuLmJiYzg1MmZkNmVkZGRiZTcyY2U2MzFlNmI4NjIxNTVmODk1MmVm
ZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
QnJpZGdlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2VJbXBsLmNwcApAQCAtNzksMTMgKzc5LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SXNBbGxvd2VkKGJvb2wgYWxsb3dlZCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dExhc3RQb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92
aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBz
cGVlZCwgbG9uZyBsb25nIHRpbWVzdGFtcCk7CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RFcnJv
cihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZpcnR1YWwg
dm9pZCBvbldlYkdlb2xvY2F0aW9uU2VydmljZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViVmll
d0NsaWVudCogZ2V0V2ViVmlld0NsaWVudCgpOwotCisgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29u
c3Q7CisgICAgLy8gUG9pbnRlciBiYWNrIHRvIHRoZSBXZWJLaXQgZ2VvbG9jYXRpb24gY2xpZW50
LiBXZSBvYnRhaW4gdGhpcyB2aWEgdGhlIGZyYW1lJ3MgcGFnZSwgYnV0IG5lZWQgdG8gY2FjaGUg
aXQKKyAgICAvLyBhcyBpdCBtYXkgc3RpbGwgYmUgYWxpdmUgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGRl
dGFjaGVkIGZyb20gdGhlIGZyYW1lLgorICAgIFdlYkdlb2xvY2F0aW9uU2VydmljZSogbV93ZWJH
ZW9sb2NhdGlvblNlcnZpY2U7CiAgICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0gb3du
cyB1cywgd2Ugb25seSBoYXZlIGEgcG9pbnRlciBiYWNrIHRvIGl0LgotICAgIEdlb2xvY2F0aW9u
U2VydmljZUNocm9taXVtKiBtX0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOworICAgIEdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtKiBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOwogICAg
IGludCBtX2JyaWRnZUlkOwogfTsKIApAQCAtOTUsNDkgKzk3LDQ3IEBAIEdlb2xvY2F0aW9uU2Vy
dmljZUJyaWRnZSogY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbChHZW9sb2NhdGlv
blNlcnZpY2VDCiB9CiAKIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OldlYkdlb2xv
Y2F0aW9uU2VydmljZUJyaWRnZUltcGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0qIGdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtKQotICAgIDogbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1
bShnZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bSkKKyAgICA6IG1fd2ViR2VvbG9jYXRpb25TZXJ2
aWNlKDApCisgICAgLCBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKGdlb2xvY2F0aW9uU2Vy
dmljZUNocm9taXVtKQogICAgICwgbV9icmlkZ2VJZCgwKQogewogfQogCiBXZWJHZW9sb2NhdGlv
blNlcnZpY2VCcmlkZ2VJbXBsOjp+V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbCgpCiB7
Ci0gICAgV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50ID0gZ2V0V2ViVmlld0Ns
aWVudCgpOwotICAgIC8vIEdlb2xvY2F0aW9uIGhhcyBhbiBPd25QdHIgdG8gdXMsIGFuZCBpdCdz
IGRlc3Ryb3llZCBhZnRlciB0aGUgZnJhbWUgaGFzCi0gICAgLy8gYmVlbiBwb3RlbnRpYWxseSBk
aXNjb25uZWN0ZWQuIEluIHRoaXMgY2FzZSwgaXQgY2FsbHMgc3RvcFVwZGF0aW5nKCkKLSAgICAv
LyBoYXMgYmVlbiBjYWxsZWQgYW5kIHdlIGhhdmUgYWxyZWFkeSBkZXRhY2hlZCBvdXJzZWx2ZXMu
Ci0gICAgaWYgKCF3ZWJWaWV3Q2xpZW50KQotICAgICAgICBBU1NFUlQoIW1fYnJpZGdlSWQpOwot
ICAgIGVsc2UgaWYgKG1fYnJpZGdlSWQpCi0gICAgICAgIHdlYlZpZXdDbGllbnQtPmdlb2xvY2F0
aW9uU2VydmljZSgpLT5kZXRhY2hCcmlkZ2UobV9icmlkZ2VJZCk7CisgICAgaWYgKGlzQXR0YWNo
ZWQoKSkKKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPmRldGFjaEJyaWRnZShtX2Jy
aWRnZUlkKTsKIH0KIAogYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpzdGFy
dFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyogcG9zaXRpb25PcHRpb25zKQogewogICAgIGF0dGFj
aEJyaWRnZUlmTmVlZGVkKCk7Ci0gICAgZ2V0V2ViVmlld0NsaWVudCgpLT5nZW9sb2NhdGlvblNl
cnZpY2UoKS0+c3RhcnRVcGRhdGluZyhtX2JyaWRnZUlkLCBtX0dlb2xvY2F0aW9uU2VydmljZUNo
cm9taXVtLT5mcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKSwgcG9zaXRpb25PcHRpb25zLT5lbmFi
bGVIaWdoQWNjdXJhY3koKSk7CisgICAgaWYgKCFpc0F0dGFjaGVkKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+c3RhcnRVcGRhdGluZyhtX2Jy
aWRnZUlkLCBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLT5mcmFtZSgpLT5kb2N1bWVudCgp
LT51cmwoKSwgcG9zaXRpb25PcHRpb25zLT5lbmFibGVIaWdoQWNjdXJhY3koKSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6c3Rv
cFVwZGF0aW5nKCkKIHsKLSAgICBXZWJWaWV3Q2xpZW50KiB3ZWJWaWV3Q2xpZW50ID0gZ2V0V2Vi
Vmlld0NsaWVudCgpOwotICAgIGlmIChtX2JyaWRnZUlkICYmIHdlYlZpZXdDbGllbnQpIHsKLSAg
ICAgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlKiBnZW9sb2NhdGlvblNlcnZpY2UgPSB3ZWJWaWV3
Q2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2UoKTsKLSAgICAgICAgZ2VvbG9jYXRpb25TZXJ2aWNl
LT5zdG9wVXBkYXRpbmcobV9icmlkZ2VJZCk7Ci0gICAgICAgIGdlb2xvY2F0aW9uU2VydmljZS0+
ZGV0YWNoQnJpZGdlKG1fYnJpZGdlSWQpOworICAgIGlmIChpc0F0dGFjaGVkKCkpIHsKKyAgICAg
ICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPnN0b3BVcGRhdGluZyhtX2JyaWRnZUlkKTsKKyAg
ICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPmRldGFjaEJyaWRnZShtX2JyaWRnZUlkKTsK
KyAgICAgICAgbV9icmlkZ2VJZCA9IDA7CisgICAgICAgIG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNl
ID0gMDsKICAgICB9Ci0gICAgbV9icmlkZ2VJZCA9IDA7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlQnJpZGdlSW1wbDo6c3VzcGVuZCgpCiB7Ci0gICAgZ2V0V2ViVmlld0NsaWVudCgp
LT5nZW9sb2NhdGlvblNlcnZpY2UoKS0+c3VzcGVuZChtX2JyaWRnZUlkKTsKKyAgICBpZiAoaXNB
dHRhY2hlZCgpKQorICAgICAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+c3VzcGVuZChtX2Jy
aWRnZUlkKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpyZXN1
bWUoKQogewotICAgIGdldFdlYlZpZXdDbGllbnQoKS0+Z2VvbG9jYXRpb25TZXJ2aWNlKCktPnJl
c3VtZShtX2JyaWRnZUlkKTsKKyAgICBpZiAoaXNBdHRhY2hlZCgpKQorICAgICAgICBtX3dlYkdl
b2xvY2F0aW9uU2VydmljZS0+cmVzdW1lKG1fYnJpZGdlSWQpOwogfQogCiBpbnQgV2ViR2VvbG9j
YXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6Z2V0QnJpZGdlSWQoKSBjb25zdApAQCAtMTQ3LDM4ICsx
NDcsNTQgQEAgaW50IFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OmdldEJyaWRnZUlk
KCkgY29uc3QKIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjphdHRhY2hC
cmlkZ2VJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKCFtX2JyaWRnZUlkKQotICAgICAgICBtX2JyaWRn
ZUlkID0gZ2V0V2ViVmlld0NsaWVudCgpLT5nZW9sb2NhdGlvblNlcnZpY2UoKS0+YXR0YWNoQnJp
ZGdlKHRoaXMpOworICAgIGlmIChpc0F0dGFjaGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICAv
LyBMYXp5IGF0dGFjaCB0byB0aGUgZ2VvbG9jYXRpb24gc2VydmljZSBvZiB0aGUgYXNzb2NpYXRl
ZCBwYWdlIGlmIHRoZXJlIGlzIG9uZS4KKyAgICBGcmFtZSogZnJhbWUgPSBtX2dlb2xvY2F0aW9u
U2VydmljZUNocm9taXVtLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdl
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6OkNocm9tZUNsaWVudEltcGwqIGNocm9t
ZUNsaWVudEltcGwgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudEltcGwqPihmcmFt
ZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOworICAgIFdlYktpdDo6V2ViVmlld0NsaWVu
dCogd2ViVmlld0NsaWVudCA9IGNocm9tZUNsaWVudEltcGwtPndlYlZpZXcoKS0+Y2xpZW50KCk7
CisgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UgPSB3ZWJWaWV3Q2xpZW50LT5nZW9sb2NhdGlv
blNlcnZpY2UoKTsKKyAgICBBU1NFUlQobV93ZWJHZW9sb2NhdGlvblNlcnZpY2UpOworICAgIG1f
YnJpZGdlSWQgPSBtX3dlYkdlb2xvY2F0aW9uU2VydmljZS0+YXR0YWNoQnJpZGdlKHRoaXMpOwor
ICAgIGlmICghbV9icmlkZ2VJZCkgeworICAgICAgICAvLyBBdHRhY2ggZmFpbGVkLiBSZWxlYXNl
IGFzc29jaWF0aW9uIHdpdGggdGhpcyBzZXJ2aWNlLgorICAgICAgICBtX3dlYkdlb2xvY2F0aW9u
U2VydmljZSA9IDA7CisgICAgfQogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRn
ZUltcGw6OnNldElzQWxsb3dlZChib29sIGFsbG93ZWQpCiB7Ci0gICAgbV9HZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bS0+c2V0SXNBbGxvd2VkKGFsbG93ZWQpOworICAgIG1fZ2VvbG9jYXRpb25T
ZXJ2aWNlQ2hyb21pdW0tPnNldElzQWxsb3dlZChhbGxvd2VkKTsKIH0KIAogdm9pZCBXZWJHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpzZXRMYXN0UG9zaXRpb24oZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91Ymxl
IGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywg
Ym9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQsIGxvbmcgbG9uZyB0aW1lc3RhbXApCiB7
CiAgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBnZW9wb3NpdGlvbiA9IEdlb3Bvc2l0aW9uOjpjcmVh
dGUoQ29vcmRpbmF0ZXM6OmNyZWF0ZShsYXRpdHVkZSwgbG9uZ2l0dWRlLCBwcm92aWRlc0FsdGl0
dWRlLCBhbHRpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1
ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92aWRlc1NwZWVkLCBzcGVl
ZCksIHRpbWVzdGFtcCk7Ci0gICAgbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+c2V0TGFz
dFBvc2l0aW9uKGdlb3Bvc2l0aW9uKTsKKyAgICBtX2dlb2xvY2F0aW9uU2VydmljZUNocm9taXVt
LT5zZXRMYXN0UG9zaXRpb24oZ2VvcG9zaXRpb24pOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZUltcGw6OnNldExhc3RFcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWJT
dHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+c2V0
TGFzdEVycm9yKGVycm9yQ29kZSwgbWVzc2FnZSk7CisgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bS0+c2V0TGFzdEVycm9yKGVycm9yQ29kZSwgbWVzc2FnZSk7CiB9CiAKLVdlYlZpZXdD
bGllbnQqIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OmdldFdlYlZpZXdDbGllbnQo
KQordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpkaWREZXN0cm95R2VvbG9j
YXRpb25TZXJ2aWNlKCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBtX0dlb2xvY2F0aW9uU2Vydmlj
ZUNocm9taXVtLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCi0g
ICAgICAgIHJldHVybiAwOwotICAgIFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbCogY2hyb21lQ2xp
ZW50SW1wbCA9IHN0YXRpY19jYXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbCo+KGZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7Ci0gICAgV2ViS2l0OjpXZWJWaWV3Q2xpZW50KiB3
ZWJWaWV3Q2xpZW50ID0gY2hyb21lQ2xpZW50SW1wbC0+d2ViVmlldygpLT5jbGllbnQoKTsKLSAg
ICByZXR1cm4gd2ViVmlld0NsaWVudDsKKyAgICBtX2JyaWRnZUlkID0gMDsKKyAgICBtX3dlYkdl
b2xvY2F0aW9uU2VydmljZSA9IDA7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJp
ZGdlSW1wbDo6b25XZWJHZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKQorYm9vbCBXZWJHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjppc0F0dGFjaGVkKCkgY29uc3QKIHsKKyAgICAvLyBU
ZXN0IHRoZSBjbGFzcyBpbnZhcmlhbnQuCisgICAgaWYgKG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNl
KQorICAgICAgICBBU1NFUlQobV9icmlkZ2VJZCk7CisgICAgZWxzZQorICAgICAgICBBU1NFUlQo
IW1fYnJpZGdlSWQpOworCisgICAgcmV0dXJuIG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNlOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2suY3BwCmluZGV4IDJhMTBjOTY2NzI5NzNkYjc3NzQ2MjdlYThm
YjMzZGFjZjE5ZjhmZTQuLmUxNDljZjFiN2ViNDVhZWM4OTA1ZmRhNmM1ZWM4MjU5NThlZDM5Y2Eg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
LmNwcApAQCAtMzQsOSArMzQsMTEgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIK
ICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uU2VydmljZU1vY2suaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2UuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKIApAQCAtNTEsNiArNTMsNyBAQCB1c2luZyBXZWJDb3Jl
OjpHZW9wb3NpdGlvbjsKIHVzaW5nIFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I7CiB1c2luZyBXZWJD
b3JlOjpQb3NpdGlvbk9wdGlvbnM7CiB1c2luZyBXVEY6OlN0cmluZzsKK3VzaW5nIFdURjo6VmVj
dG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bU1vY2sgOiBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0sIHB1YmxpYyBHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQgewpAQCAtMTI0LDE3ICsxMjcsMzQgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsIDogcHVibGljIFdl
Ykdlb2xvY2F0aW9uU2VydmljZU1vY2sgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2tJbXBsKCkgeyB9CisgICAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
a0ltcGwoKTsKKyAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCgpOwor
ICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvd2Vk
KTsKKworICAgIC8vIFdlYkdlb2xvY2F0aW9uU2VydmljZQogICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvckZyYW1lKGludCBicmlkZ2VJZCwgY29uc3QgV2ViVVJMJiB1cmwpOwog
ICAgIHZpcnR1YWwgaW50IGF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2Uq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCk7CiAKIHByaXZh
dGU6CisgICAgdm9pZCBub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMoKTsKKwogICAgIHR5cGVkZWYg
SGFzaE1hcDxpbnQsIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSo+IElkVG9CcmlkZ2VNYXA7
CiAgICAgSWRUb0JyaWRnZU1hcCBtX2lkVG9CcmlkZ2VNYXA7CisgICAgVmVjdG9yPGludD4gbV9w
ZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzOworCisgICAgLy8gSW4gYWRkaXRpb24gdG8gdGhlIHNp
bmdsZXRvbiBpbnN0YW5jZSBwb2ludGVyLCB3ZSBuZWVkIHRvIGtlZXAgdGhlIHNldE1vY2tHZW9s
b2NhdGlvblBlcm1pc3Npb24oKSBzdGF0ZQorICAgIC8vIGFzIGEgc3RhdGljIChub3Qgb2JqZWN0
IG1lbWJlcnMpIGFzIHRoaXMgY2FsbCBtYXkgY29tZSBpbiBiZWZvcmUgdGhlIHNlcnZpY2UgaGFz
IGJlZW4gY3JlYXRlZC4KKyAgICBzdGF0aWMgZW51bSBQZXJtaXNzaW9uU3RhdGUgeworICAgICAg
ICBQZXJtaXNzaW9uU3RhdGVVbnNldCwKKyAgICAgICAgUGVybWlzc2lvblN0YXRlQWxsb3dlZCwK
KyAgICAgICAgUGVybWlzc2lvblN0YXRlRGVuaWVkLAorICAgIH0gc19wZXJtaXNzaW9uU3RhdGU7
CisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBzX2luc3RhbmNlOwog
fTsKIAotYm9vbCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX21vY2tHZW9sb2NhdGlvblBl
cm1pc3Npb24gPSBmYWxzZTsKK1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpQZXJtaXNz
aW9uU3RhdGUgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNfcGVybWlzc2lvblN0YXRl
ID0gV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OlBlcm1pc3Npb25TdGF0ZVVuc2V0Owor
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwqIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJ
bXBsOjpzX2luc3RhbmNlID0gMDsKIAogV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayogV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jaygpCiB7
CkBAIC0xNDMsNyArMTYzLDcgQEAgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jayogV2ViR2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlV2ViR2VvbG9jYXRpb25TZXJ2aWMKIAogdm9pZCBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wg
YWxsb3dlZCkKIHsKLSAgICBzX21vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24gPSBhbGxvd2VkOwor
ICAgIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uKGFsbG93ZWQpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5KQpAQCAtMTYwLDEyICsxODAsMzUgQEAgdm9pZCBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJyb3JDb2RlLCBj
b25zdCBXZWIKICAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihwb3NpdGlvbkVy
cm9yKTsKIH0KIAorV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OldlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2tJbXBsKCkKK3sKKyAgICBBU1NFUlQoIXNfaW5zdGFuY2UpOworICAgIHNfaW5z
dGFuY2UgPSB0aGlzOworfQorCitXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6fldlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKCkKK3sKKyAgICBBU1NFUlQodGhpcyA9PSBzX2luc3Rh
bmNlKTsKKyAgICBzX2luc3RhbmNlID0gMDsKKyAgICAvLyBSZXNldCB0aGUgcGVybWlzc2lvbiBz
dGF0ZSwgc28gYW55IGZ1dHVyZSBzZXJ2aWNlIGluc3RhbmNlIChlLmcuIHJ1bm5pbmcKKyAgICAv
LyBtdWx0aXBsZSB0ZXN0cyBpbiBhIHNpbmdsZSBEUlQgcnVuKSB3aWxsIHNlZSBhIGNsZWFuIGNh
bGwgc2VxdWVuY2UuCisgICAgc19wZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9uU3RhdGVVbnNl
dDsKKyAgICBmb3IgKElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvQnJpZGdlTWFw
LmJlZ2luKCk7IGl0ICE9IG1faWRUb0JyaWRnZU1hcC5lbmQoKTsgKytpdCkKKyAgICAgICAgaXQt
PnNlY29uZC0+ZGlkRGVzdHJveUdlb2xvY2F0aW9uU2VydmljZSgpOworfQorCit2b2lkIFdlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGJv
b2wgYWxsb3dlZCkKK3sKKyAgICBzX3Blcm1pc3Npb25TdGF0ZSA9IGFsbG93ZWQgPyBQZXJtaXNz
aW9uU3RhdGVBbGxvd2VkIDogUGVybWlzc2lvblN0YXRlRGVuaWVkOworICAgIGlmIChzX2luc3Rh
bmNlKQorICAgICAgICBzX2luc3RhbmNlLT5ub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMoKTsKK30K
Kwogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVxdWVzdFBlcm1pc3Npb25G
b3JGcmFtZShpbnQgYnJpZGdlSWQsIGNvbnN0IFdlYlVSTCYgdXJsKQogewotICAgIElkVG9Ccmlk
Z2VNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9CcmlkZ2VNYXAuZmluZChicmlkZ2VJZCk7Ci0g
ICAgaWYgKGl0ZXIgPT0gbV9pZFRvQnJpZGdlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgaXRlci0+c2Vjb25kLT5zZXRJc0FsbG93ZWQoc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9u
KTsKKyAgICBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKGJyaWRnZUlkKTsKKyAg
ICBpZiAoc19wZXJtaXNzaW9uU3RhdGUgIT0gUGVybWlzc2lvblN0YXRlVW5zZXQpCisgICAgICAg
IG5vdGlmeVBlbmRpbmdQZXJtaXNzaW9ucygpOwogfQogCiBpbnQgV2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGw6OmF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UqIGJy
aWRnZSkKQEAgLTE4Myw2ICsyMjYsMTkgQEAgdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
SW1wbDo6ZGV0YWNoQnJpZGdlKGludCBicmlkZ2VJZCkKICAgICBtX2lkVG9CcmlkZ2VNYXAucmVt
b3ZlKGJyaWRnZUlkKTsKIH0KIAordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6
bm90aWZ5UGVuZGluZ1Blcm1pc3Npb25zKCkKK3sKKyAgICBBU1NFUlQoc19wZXJtaXNzaW9uU3Rh
dGUgPT0gUGVybWlzc2lvblN0YXRlQWxsb3dlZCB8fCBzX3Blcm1pc3Npb25TdGF0ZSA9PSAgUGVy
bWlzc2lvblN0YXRlRGVuaWVkKTsKKyAgICBWZWN0b3I8aW50PiBwZW5kaW5nUGVybWlzc2lvblJl
cXVlc3RzOworICAgIHBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuc3dhcChtX3BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMpOworICAgIGZvciAoVmVjdG9yPGludD46OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cy5iZWdpbigpOyBpdCAhPSBwZW5kaW5nUGVybWlz
c2lvblJlcXVlc3RzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIEFTU0VSVCgqaXQgPiAwKTsKKyAg
ICAgICAgSWRUb0JyaWRnZU1hcDo6aXRlcmF0b3IgaXRlciA9IG1faWRUb0JyaWRnZU1hcC5maW5k
KCppdCk7CisgICAgICAgIGlmIChpdGVyICE9IG1faWRUb0JyaWRnZU1hcC5lbmQoKSkKKyAgICAg
ICAgICAgIGl0ZXItPnNlY29uZC0+c2V0SXNBbGxvd2VkKHNfcGVybWlzc2lvblN0YXRlID09IFBl
cm1pc3Npb25TdGF0ZUFsbG93ZWQpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67402</attachid>
            <date>2010-09-13 06:15:55 -0700</date>
            <delta_ts>2010-09-13 07:21:02 -0700</delta_ts>
            <desc>Rebase patch after drt_expectations reorg</desc>
            <filename>bug-45313-20100913141553.patch</filename>
            <type>text/plain</type>
            <size>22943</size>
            <attacher name="Jonathan Dixon">joth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOGFlNjNkN2VmN2U5YTVjYzRmZmNiMTcwMzFjYzM0MTJiY2I3ZWE3Li43NWM5NDA0
MDQ4MDdmMmEyNGVkYWM3YmQxMDE1ZjE3ODM5NTY3ZTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDktMTAgIEpvbmF0aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBQb3J0
IHRlc3Qgc2hlbGwgZ2VvbG9jYXRpb24gZml4ZXMgdG8gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMxMworCisgICAgICAgIFJlbW92ZSBleGNl
cHRpb25zIGZvciB0ZXN0cyB0aGF0IG5vdyBwYXNzIChpbiBEUlQgYW5kIGRvd25zdHJlYW0gdGVz
dF9zaGVsbCkKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoK
KwogMjAxMC0wOS0xMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBleHBlY3RhdGlvbnMgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwZDA3ZmU5NzIy
MTQ3NGU0NjJiZmFhZWRkOTRlMmNhNGFlOGRkNTNhLi45MWYzNDZkZWQzMjgxNjY0NDEzZjc1OWY4
NDcxMzkzZGMzM2E2OGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9kcnRfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9kcnRfZXhwZWN0YXRpb25zLnR4dApAQCAtMTEwLDcgKzExMCw2IEBAIEJVR19EUlQgTElOVVgg
OiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC8wMDMuaHRtbCA9IElNQUdFCiBCVUdfRFJUIExJTlVY
IDogc3ZnL2JhdGlrL3RleHQvdmVydGljYWxUZXh0LnN2ZyA9IElNQUdFK1RFWFQKIAogLy8gTWlz
Yy4KLUJVR19EUlQgV0lOIE1BQyBMSU5VWCA6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2RlbGF5ZWQt
cGVybWlzc2lvbi1hbGxvd2VkLWZvci1tdWx0aXBsZS1yZXF1ZXN0cy5odG1sID0gVElNRU9VVAog
QlVHX0RSVCBXSU4gTUFDIExJTlVYIDogZmFzdC9keW5hbWljL3dpbmRvdy1yZXNpemUtc2Nyb2xs
YmFycy10ZXN0Lmh0bWwgPSBJTUFHRStURVhUCiBCVUdfRFJUIFdJTiBNQUMgTElOVVggOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbGluay1vcGVucy1uZXctd2luZG93Lmh0bWwgPSBU
RVhUCiBCVUdfRFJUIFdJTiBNQUMgTElOVVggOiBzdG9yYWdlL2RvbXN0b3JhZ2UvcXVvdGEuaHRt
bCA9IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAppbmRleCAzNDEzMWNlNDVjODVmOWZhN2Y5MDBlOTlmYWE1ZDM3MTBhNDcx
MTQ5Li42MmY3OTRhNTE1MDRhMzhlN2VlOTQ4MjBjNjJmNWVmYmYwZjA1YmYyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0yOTYxLDEwICsyOTYxLDYgQEAgQlVHNTA2MzcgOiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UuaHRtbCA9IEZBSUwKIC8vIEFwcGxpY2F0aW9uIENhY2hlIFF1b3RhcwogQlVHV0s0MzQ1
OSA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwgPSBURVhUIE1JU1NJTkcK
IAotLy8gTWlzc2luZyBMYXlvdXRUZXN0Q29udHJvbGxlciBoYXJuZXNzLgotQlVHV0s0MzQ4MCBT
S0lQIDogZmFzdC9kb20vR2VvbG9jYXRpb24vZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQuaHRt
bCA9IFRFWFQgVElNRU9VVCBQQVNTCi1CVUdXSzQzNDgwIFNLSVAgOiBmYXN0L2RvbS9HZW9sb2Nh
dGlvbi9kZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgPSBURVhUIFRJTUVPVVQgUEFTUwot
CiBCVUc1MTE2MSBMSU5VWCBERUJVRyA6IHN2Zy9XM0MtU1ZHLTEuMS9tYXNraW5nLW1hc2stMDEt
Yi5zdmcgPSBDUkFTSAogQlVHNTExNjEgTElOVVggREVCVUcgOiBzdmcvY2xpcC1wYXRoL2NsaXAt
cGF0aC10ZXh0LnN2ZyA9IENSQVNICiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNlODg3MzZmMjQ5N2Y1M2NlZjQ2Mjk0NDhiMGQyNTdj
NWMyMzdiNC4uZjdkMDNmZTcyOTJlNjg5ZGQyYzJhMmI4NjYwNmJiNTQ3MGJjNDk4OSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMC0wOS0xMCAgSm9uYXRoYW4gRGl4b24gIDxqb3RoQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21p
dW1dIFBvcnQgdGVzdCBzaGVsbCBnZW9sb2NhdGlvbiBmaXhlcyB0byBEUlQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzEzCisKKyAgICAgICAgQWxz
byByZS1hcHBseSByb2xsZWQgb3V0IHBhdGNoIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzY2ODg2IDotCisgICAgICAgIEFkZCBtaXNzaW5nIHZpcnR1YWwgZGVzdHJ1Y3RvciB0byB0
aGUgYWJzdHJhY3QgYmFzZSBjbGFzcy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0dl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0
aW9uU2VydmljZUJyaWRnZTo6fkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uaDoKKwogMjAxMC0w
OS0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9H
ZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcAppbmRleCA5MzMzOTk5NzQzNjVjNDBkZDE5
MmRlZjZjZWJjM2MyM2FiMmIyNDM3Li5iNjRmNWViNGE3Y2Q3Y2I1NzFlMmUwZGI5YWNiZjE1ZDVj
OGQ0NzU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9u
U2VydmljZUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U6On5HZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2UoKQoreworfQorCiBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTo6R2VvbG9jYXRp
b25TZXJ2aWNlQ2hyb21pdW0oR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjKQogICAgICAgICA6
IEdlb2xvY2F0aW9uU2VydmljZShjKSwKICAgICAgICAgICBtX2dlb2xvY2F0aW9uKHN0YXRpY19j
YXN0PEdlb2xvY2F0aW9uKj4oYykpLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oCmluZGV4IGYxMzkyMjBlODgzMDE3Y2Qx
MDlmMzQ3YWNiN2Q2Y2VhMzQyOTA1MWUuLjdlNmY2MzNmZjcxNjRmYTRjYjYzMGVhZjk4NzA4YTEy
Nzk4M2NiZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRp
b25TZXJ2aWNlQ2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtLmgKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogLy8gUHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBHZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bSB0byBjYWxsIGludG8gdGhlIGVtYmVkZGVyLgogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNl
QnJpZGdlIHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2Uo
KTsKICAgICAvLyBDYWxsZWQgYnkgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uCiAgICAgdmly
dHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0NzNjMTEyMTIwZjA4
ZTBhZmRlNzM4OTFhODJkOGNkMTcxNzVhMDA5Li5hN2VlZmJhZWZhY2RmN2Y3MDQ3ZjIwZTE1YThk
MWMyMTk4ZDI1YzhiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMC0wOS0xMCAg
Sm9uYXRoYW4gRGl4b24gIDxqb3RoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIFBvcnQgdGVzdCBzaGVsbCBn
ZW9sb2NhdGlvbiBmaXhlcyB0byBEUlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MzEzCisKKyAgICAgICAgUG9ydHMgb3ZlciBmaXhlcyBmcm9tIHRl
c3Qgc2hlbGw6CisgICAgICAgICAtIGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8zMjk0
MDA3CisgICAgICAgICAtIGh0dHA6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy8zMzM4MDAKKwor
ICAgICAgICBSZXNldHMgc3RhdGUgYmV0d2VlbiBzZXJ2aWNlIGluc3RhbmNlcywgd2hpY2ggZml4
ZXMgZGVsYXllZC1wZXJtaXNzaW9uLWFsbG93ZWQtZm9yLW11bHRpcGxlLXJlcXVlc3RzLmh0bWwK
KworICAgICAgICBBbHNvIHJlLWFwcGx5IHJvbGxlZCBvdXQgcGF0Y2ggaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvNjY4ODYgOi0KKyAgICAgICAgQWNjZXNzIHRvIG91dC1vZi1zY29w
ZSBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTExMgorCisgICAgICAgIEtlZXAgdGhlIFdlYkdl
b2xvY2F0aW9uU2VydmljZSBwb2ludGVyIGZvciBsaWZldGltZSBvZiB0aGUgYnJpZGdlLCB0bwor
ICAgICAgICBlbnN1cmUgaXQgY2FuIGJlIGRldGFjaGVkIHJlbGlhYmx5CisKKyAgICAgICAgSW5j
bHVkZXMgZm9sbG93LXVwIHJldmlldyBjb21tZW50IHRvIHJlbmFtZSBvbldlYkdlb2xvY2F0aW9u
U2VydmljZURlc3Ryb3llZCB0byBkaWREZXN0cm95R2VvbG9jYXRpb25TZXJ2aWNlCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykdlb2xvY2F0aW9uU2VydmljZTo6fldlYkdlb2xvY2F0aW9uU2VydmljZSk6CisgICAgICAgICog
cHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U6Om9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJv
eWVkKToKKyAgICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOgorICAg
ICAgICAqIHNyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6V2ViR2VvbG9jYXRpb25T
ZXJ2aWNlQnJpZGdlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2Vydmlj
ZUJyaWRnZUltcGw6On5XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6c3RhcnRVcGRhdGluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN0b3BV
cGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUlt
cGw6OnN1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2VJbXBsOjpyZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VC
cmlkZ2VJbXBsOjphdHRhY2hCcmlkZ2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnNldElzQWxsb3dlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnNldExhc3RQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnNldExhc3RF
cnJvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6
OmRpZERlc3Ryb3lHZW9sb2NhdGlvblNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjppc0F0dGFjaGVkKToKKyAgICAgICAgKiBzcmMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6V2ViR2VvbG9jYXRpb25TZXJ2
aWNlTW9ja0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
SW1wbDo6fldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6cmVx
dWVzdFBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2tJbXBsOjpub3RpZnlQZW5kaW5nUGVybWlzc2lvbnMpOgorCiAyMDEwLTA5LTEw
ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZS5oCmluZGV4IGVkOGM0ZTgzNTE4ZTE4MjQ2MWJm
YmEwMGE4NTRlYjU2ODRjODA5MTUuLmVhOTFiNTgzNGYyZDU2OWFlMWMxZjgwNmM3MTYzZTFlMDBj
OGQxZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZp
Y2UuaApAQCAtMzEsMTAgKzMxLDkgQEAKICNpZm5kZWYgV2ViR2VvbG9jYXRpb25TZXJ2aWNlX2gK
ICNkZWZpbmUgV2ViR2VvbG9jYXRpb25TZXJ2aWNlX2gKIAotI2luY2x1ZGUgIldlYkdlb2xvY2F0
aW9uU2VydmljZUJyaWRnZS5oIgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlQnJpZGdlOwogY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwog
CkBAIC01MCwxMCArNDksMTQgQEAgcHVibGljOgogCiAgICAgLy8gQXR0YWNoZXMgdGhlIFdlYkdl
b2xvY2F0aW9uU2VydmljZUJyaWRnZSB0byB0aGUgZW1iZWRkZXIgYW5kIHJldHVybnMgaXRzCiAg
ICAgLy8gaWQsIHdoaWNoIHNob3VsZCBiZSB1c2VkIG9uIHN1YnNlcXVlbnQgY2FsbHMgZm9yIHRo
ZSBtZXRob2RzIGFib3ZlLgorICAgIC8vIEFuIElEIG9mIHplcm8gaW5kaWNhdGVzIHRoZSBhdHRh
Y2ggZmFpbGVkLgogICAgIHZpcnR1YWwgaW50IGF0dGFjaEJyaWRnZShXZWJHZW9sb2NhdGlvblNl
cnZpY2VCcmlkZ2UqKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBEZXRhY2hlcyB0aGUgV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlQnJpZGdlIGZyb20gdGhlIGVtYmVkZGVyLgogICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hCcmlkZ2UoaW50IGJyaWRnZUlkKSB7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgfldlYkdlb2xvY2F0aW9uU2VydmljZSgpIHt9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2
aWNlQnJpZGdlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2Vydmlj
ZUJyaWRnZS5oCmluZGV4IDQyMmIzMmJjZTI4MmEwODBhOWM5YzAyZGQ4ODEzYmIwZDc1NWRhMDgu
LmQyMDljMjMwYTc5MjA4NzhmYTBiNDRlYjQ2MmVkNDE5ZjljNDcxZTYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaApAQCAt
NDcsNyArNDcsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0FsbG93ZWQoYm9v
bCBhbGxvd2VkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RQb3NpdGlvbihkb3VibGUg
bGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91Ymxl
IGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5
LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBo
ZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCwgbG9uZyBsb25nIHRpbWVz
dGFtcCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0RXJyb3IoaW50IGVycm9yQ29kZSwg
Y29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9uV2ViR2Vv
bG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKCkgPSAwOworICAgIC8vIENhbGxlZCB3aGVuIHRoZSBX
ZWJHZW9sb2NhdGlvblNlcnZpY2UgdG8gd2hpY2ggdGhpcyBicmlkZ2UgaXMgYXR0YWNoZWQgaXMg
Z29pbmcgb3V0IG9mIHNjb3BlLiBPbiByZWNlaXZpbmcKKyAgICAvLyB0aGlzIGNhbGwgdGhlIGJy
aWRnZSBpbXBsZW1lbnRhdGlvbiBtdXN0IG5vdCBtYWtlIGFueSBmdXJ0aGVyIGFjY2VzcyB0byB0
aGUgc2VydmljZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveUdlb2xvY2F0aW9uU2Vydmlj
ZSgpID0gMDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYmFkbHkgbmFtZWQgbWV0aG9kIHdo
ZW4gYWxsIGNhbGxlcnMgYXJlIHVzaW5nIGRpZERlc3Ryb3lHZW9sb2NhdGlvblNlcnZpY2UgZGly
ZWN0bHkuCisgICAgdm9pZCBvbldlYkdlb2xvY2F0aW9uU2VydmljZURlc3Ryb3llZCgpIHsgZGlk
RGVzdHJveUdlb2xvY2F0aW9uU2VydmljZSgpOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IH5XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaAppbmRleCA0MDdmZTlkMzc4M2Y0
YTc3Y2E3NmE4NTIwYWM5OWNjNzA5MGM1YzE0Li44MjA5NzVlMTEwOWVjYWM4MTc2MDBkYmQzYjI4
M2UxN2UzOThiZjYxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2suaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2suaApAQCAtNDQsOSArNDQsNiBAQCBwdWJsaWM6CiAgICAgV0VCS0lU
X0FQSSBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3dl
ZCk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
bihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CiAg
ICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJy
b3JDb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3Rh
dGljIGJvb2wgc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlv
blNlcnZpY2VCcmlkZ2VJbXBsLmNwcAppbmRleCBiYmI3MTYyY2JjYTc1YjRmODlkZjk0MTMwM2I3
YjFhNWUxM2EwZDIwLi5iYmM4NTJmZDZlZGRkYmU3MmNlNjMxZTZiODYyMTU1Zjg5NTJlZmQ2IDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRn
ZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
QnJpZGdlSW1wbC5jcHAKQEAgLTc5LDEzICs3OSwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldElzQWxsb3dlZChib29sIGFsbG93ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQs
IGxvbmcgbG9uZyB0aW1lc3RhbXApOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0RXJyb3IoaW50
IGVycm9yQ29kZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2aXJ0dWFsIHZvaWQg
b25XZWJHZW9sb2NhdGlvblNlcnZpY2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RGVzdHJveUdlb2xvY2F0aW9uU2VydmljZSgpOwogCiBwcml2YXRlOgotICAgIFdlYlZpZXdDbGll
bnQqIGdldFdlYlZpZXdDbGllbnQoKTsKLQorICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0Owor
ICAgIC8vIFBvaW50ZXIgYmFjayB0byB0aGUgV2ViS2l0IGdlb2xvY2F0aW9uIGNsaWVudC4gV2Ug
b2J0YWluIHRoaXMgdmlhIHRoZSBmcmFtZSdzIHBhZ2UsIGJ1dCBuZWVkIHRvIGNhY2hlIGl0Cisg
ICAgLy8gYXMgaXQgbWF5IHN0aWxsIGJlIGFsaXZlIGFmdGVyIHRoZSBwYWdlIGhhcyBkZXRhY2hl
ZCBmcm9tIHRoZSBmcmFtZS4KKyAgICBXZWJHZW9sb2NhdGlvblNlcnZpY2UqIG1fd2ViR2VvbG9j
YXRpb25TZXJ2aWNlOwogICAgIC8vIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtIG93bnMgdXMs
IHdlIG9ubHkgaGF2ZSBhIHBvaW50ZXIgYmFjayB0byBpdC4KLSAgICBHZW9sb2NhdGlvblNlcnZp
Y2VDaHJvbWl1bSogbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTsKKyAgICBHZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bSogbV9nZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTsKICAgICBpbnQg
bV9icmlkZ2VJZDsKIH07CiAKQEAgLTk1LDQ5ICs5Nyw0NyBAQCBHZW9sb2NhdGlvblNlcnZpY2VC
cmlkZ2UqIGNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGwoR2VvbG9jYXRpb25TZXJ2
aWNlQwogfQogCiBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpXZWJHZW9sb2NhdGlv
blNlcnZpY2VCcmlkZ2VJbXBsKEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKiBnZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bSkKLSAgICA6IG1fR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0oZ2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0pCisgICAgOiBtX3dlYkdlb2xvY2F0aW9uU2VydmljZSgw
KQorICAgICwgbV9nZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bShnZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bSkKICAgICAsIG1fYnJpZGdlSWQoMCkKIHsKIH0KIAogV2ViR2VvbG9jYXRpb25TZXJ2
aWNlQnJpZGdlSW1wbDo6fldlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGwoKQogewotICAg
IFdlYktpdDo6V2ViVmlld0NsaWVudCogd2ViVmlld0NsaWVudCA9IGdldFdlYlZpZXdDbGllbnQo
KTsKLSAgICAvLyBHZW9sb2NhdGlvbiBoYXMgYW4gT3duUHRyIHRvIHVzLCBhbmQgaXQncyBkZXN0
cm95ZWQgYWZ0ZXIgdGhlIGZyYW1lIGhhcwotICAgIC8vIGJlZW4gcG90ZW50aWFsbHkgZGlzY29u
bmVjdGVkLiBJbiB0aGlzIGNhc2UsIGl0IGNhbGxzIHN0b3BVcGRhdGluZygpCi0gICAgLy8gaGFz
IGJlZW4gY2FsbGVkIGFuZCB3ZSBoYXZlIGFscmVhZHkgZGV0YWNoZWQgb3Vyc2VsdmVzLgotICAg
IGlmICghd2ViVmlld0NsaWVudCkKLSAgICAgICAgQVNTRVJUKCFtX2JyaWRnZUlkKTsKLSAgICBl
bHNlIGlmIChtX2JyaWRnZUlkKQotICAgICAgICB3ZWJWaWV3Q2xpZW50LT5nZW9sb2NhdGlvblNl
cnZpY2UoKS0+ZGV0YWNoQnJpZGdlKG1fYnJpZGdlSWQpOworICAgIGlmIChpc0F0dGFjaGVkKCkp
CisgICAgICAgIG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNlLT5kZXRhY2hCcmlkZ2UobV9icmlkZ2VJ
ZCk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6c3RhcnRVcGRh
dGluZyhQb3NpdGlvbk9wdGlvbnMqIHBvc2l0aW9uT3B0aW9ucykKIHsKICAgICBhdHRhY2hCcmlk
Z2VJZk5lZWRlZCgpOwotICAgIGdldFdlYlZpZXdDbGllbnQoKS0+Z2VvbG9jYXRpb25TZXJ2aWNl
KCktPnN0YXJ0VXBkYXRpbmcobV9icmlkZ2VJZCwgbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1
bS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCksIHBvc2l0aW9uT3B0aW9ucy0+ZW5hYmxlSGln
aEFjY3VyYWN5KCkpOworICAgIGlmICghaXNBdHRhY2hlZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPnN0YXJ0VXBkYXRpbmcobV9icmlkZ2VJ
ZCwgbV9nZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJs
KCksIHBvc2l0aW9uT3B0aW9ucy0+ZW5hYmxlSGlnaEFjY3VyYWN5KCkpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUltcGw6OnN0b3BVcGRh
dGluZygpCiB7Ci0gICAgV2ViVmlld0NsaWVudCogd2ViVmlld0NsaWVudCA9IGdldFdlYlZpZXdD
bGllbnQoKTsKLSAgICBpZiAobV9icmlkZ2VJZCAmJiB3ZWJWaWV3Q2xpZW50KSB7Ci0gICAgICAg
IFdlYkdlb2xvY2F0aW9uU2VydmljZSogZ2VvbG9jYXRpb25TZXJ2aWNlID0gd2ViVmlld0NsaWVu
dC0+Z2VvbG9jYXRpb25TZXJ2aWNlKCk7Ci0gICAgICAgIGdlb2xvY2F0aW9uU2VydmljZS0+c3Rv
cFVwZGF0aW5nKG1fYnJpZGdlSWQpOwotICAgICAgICBnZW9sb2NhdGlvblNlcnZpY2UtPmRldGFj
aEJyaWRnZShtX2JyaWRnZUlkKTsKKyAgICBpZiAoaXNBdHRhY2hlZCgpKSB7CisgICAgICAgIG1f
d2ViR2VvbG9jYXRpb25TZXJ2aWNlLT5zdG9wVXBkYXRpbmcobV9icmlkZ2VJZCk7CisgICAgICAg
IG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNlLT5kZXRhY2hCcmlkZ2UobV9icmlkZ2VJZCk7CisgICAg
ICAgIG1fYnJpZGdlSWQgPSAwOworICAgICAgICBtX3dlYkdlb2xvY2F0aW9uU2VydmljZSA9IDA7
CiAgICAgfQotICAgIG1fYnJpZGdlSWQgPSAwOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uU2Vy
dmljZUJyaWRnZUltcGw6OnN1c3BlbmQoKQogewotICAgIGdldFdlYlZpZXdDbGllbnQoKS0+Z2Vv
bG9jYXRpb25TZXJ2aWNlKCktPnN1c3BlbmQobV9icmlkZ2VJZCk7CisgICAgaWYgKGlzQXR0YWNo
ZWQoKSkKKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPnN1c3BlbmQobV9icmlkZ2VJ
ZCk7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6cmVzdW1lKCkK
IHsKLSAgICBnZXRXZWJWaWV3Q2xpZW50KCktPmdlb2xvY2F0aW9uU2VydmljZSgpLT5yZXN1bWUo
bV9icmlkZ2VJZCk7CisgICAgaWYgKGlzQXR0YWNoZWQoKSkKKyAgICAgICAgbV93ZWJHZW9sb2Nh
dGlvblNlcnZpY2UtPnJlc3VtZShtX2JyaWRnZUlkKTsKIH0KIAogaW50IFdlYkdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZUltcGw6OmdldEJyaWRnZUlkKCkgY29uc3QKQEAgLTE0NywzOCArMTQ3LDU0
IEBAIGludCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpnZXRCcmlkZ2VJZCgpIGNv
bnN0CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6YXR0YWNoQnJpZGdl
SWZOZWVkZWQoKQogewotICAgIGlmICghbV9icmlkZ2VJZCkKLSAgICAgICAgbV9icmlkZ2VJZCA9
IGdldFdlYlZpZXdDbGllbnQoKS0+Z2VvbG9jYXRpb25TZXJ2aWNlKCktPmF0dGFjaEJyaWRnZSh0
aGlzKTsKKyAgICBpZiAoaXNBdHRhY2hlZCgpKQorICAgICAgICByZXR1cm47CisgICAgLy8gTGF6
eSBhdHRhY2ggdG8gdGhlIGdlb2xvY2F0aW9uIHNlcnZpY2Ugb2YgdGhlIGFzc29jaWF0ZWQgcGFn
ZSBpZiB0aGVyZSBpcyBvbmUuCisgICAgRnJhbWUqIGZyYW1lID0gbV9nZW9sb2NhdGlvblNlcnZp
Y2VDaHJvbWl1bS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQor
ICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKiBjaHJvbWVDbGll
bnRJbXBsID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKj4oZnJhbWUtPnBh
Z2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKKyAgICBXZWJLaXQ6OldlYlZpZXdDbGllbnQqIHdl
YlZpZXdDbGllbnQgPSBjaHJvbWVDbGllbnRJbXBsLT53ZWJWaWV3KCktPmNsaWVudCgpOworICAg
IG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNlID0gd2ViVmlld0NsaWVudC0+Z2VvbG9jYXRpb25TZXJ2
aWNlKCk7CisgICAgQVNTRVJUKG1fd2ViR2VvbG9jYXRpb25TZXJ2aWNlKTsKKyAgICBtX2JyaWRn
ZUlkID0gbV93ZWJHZW9sb2NhdGlvblNlcnZpY2UtPmF0dGFjaEJyaWRnZSh0aGlzKTsKKyAgICBp
ZiAoIW1fYnJpZGdlSWQpIHsKKyAgICAgICAgLy8gQXR0YWNoIGZhaWxlZC4gUmVsZWFzZSBhc3Nv
Y2lhdGlvbiB3aXRoIHRoaXMgc2VydmljZS4KKyAgICAgICAgbV93ZWJHZW9sb2NhdGlvblNlcnZp
Y2UgPSAwOworICAgIH0KIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBs
OjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxvd2VkKQogewotICAgIG1fR2VvbG9jYXRpb25TZXJ2aWNl
Q2hyb21pdW0tPnNldElzQWxsb3dlZChhbGxvd2VkKTsKKyAgICBtX2dlb2xvY2F0aW9uU2Vydmlj
ZUNocm9taXVtLT5zZXRJc0FsbG93ZWQoYWxsb3dlZCk7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlQnJpZGdlSW1wbDo6c2V0TGFzdFBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91
YmxlIGxvbmdpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRp
dHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wg
cHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBsb25nIGxvbmcgdGltZXN0YW1wKQogewogICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gZ2VvcG9zaXRpb24gPSBHZW9wb3NpdGlvbjo6Y3JlYXRlKENv
b3JkaW5hdGVzOjpjcmVhdGUobGF0aXR1ZGUsIGxvbmdpdHVkZSwgcHJvdmlkZXNBbHRpdHVkZSwg
YWx0aXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNj
dXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQpLCB0
aW1lc3RhbXApOwotICAgIG1fR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0tPnNldExhc3RQb3Np
dGlvbihnZW9wb3NpdGlvbik7CisgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS0+c2V0
TGFzdFBvc2l0aW9uKGdlb3Bvc2l0aW9uKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2VJbXBsOjpzZXRMYXN0RXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgV2ViU3RyaW5n
JiBtZXNzYWdlKQogewotICAgIG1fR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0tPnNldExhc3RF
cnJvcihlcnJvckNvZGUsIG1lc3NhZ2UpOworICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0tPnNldExhc3RFcnJvcihlcnJvckNvZGUsIG1lc3NhZ2UpOwogfQogCi1XZWJWaWV3Q2xpZW50
KiBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsOjpnZXRXZWJWaWV3Q2xpZW50KCkKK3Zv
aWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbDo6ZGlkRGVzdHJveUdlb2xvY2F0aW9u
U2VydmljZSgpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gbV9HZW9sb2NhdGlvblNlcnZpY2VDaHJv
bWl1bS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQotICAgICAg
ICByZXR1cm4gMDsKLSAgICBXZWJLaXQ6OkNocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVudElt
cGwgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudEltcGwqPihmcmFtZS0+cGFnZSgp
LT5jaHJvbWUoKS0+Y2xpZW50KCkpOwotICAgIFdlYktpdDo6V2ViVmlld0NsaWVudCogd2ViVmll
d0NsaWVudCA9IGNocm9tZUNsaWVudEltcGwtPndlYlZpZXcoKS0+Y2xpZW50KCk7Ci0gICAgcmV0
dXJuIHdlYlZpZXdDbGllbnQ7CisgICAgbV9icmlkZ2VJZCA9IDA7CisgICAgbV93ZWJHZW9sb2Nh
dGlvblNlcnZpY2UgPSAwOwogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9uU2VydmljZUJyaWRnZUlt
cGw6Om9uV2ViR2VvbG9jYXRpb25TZXJ2aWNlRGVzdHJveWVkKCkKK2Jvb2wgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlQnJpZGdlSW1wbDo6aXNBdHRhY2hlZCgpIGNvbnN0CiB7CisgICAgLy8gVGVzdCB0
aGUgY2xhc3MgaW52YXJpYW50LgorICAgIGlmIChtX3dlYkdlb2xvY2F0aW9uU2VydmljZSkKKyAg
ICAgICAgQVNTRVJUKG1fYnJpZGdlSWQpOworICAgIGVsc2UKKyAgICAgICAgQVNTRVJUKCFtX2Jy
aWRnZUlkKTsKKworICAgIHJldHVybiBtX3dlYkdlb2xvY2F0aW9uU2VydmljZTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmNwcAppbmRleCAyYTEwYzk2NjcyOTczZGI3Nzc0NjI3ZWE4ZmIzM2Rh
Y2YxOWY4ZmU0Li5lMTQ5Y2YxYjdlYjQ1YWVjODkwNWZkYTZjNWVjODI1OTU4ZWQzOWNhIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3Bw
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAK
QEAgLTM0LDkgKzM0LDExIEBACiAjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgiCiAjaW5j
bHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uaCIKICNpbmNsdWRlICJHZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgi
CiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pCiAKQEAgLTUxLDYgKzUzLDcgQEAgdXNpbmcgV2ViQ29yZTo6R2Vv
cG9zaXRpb247CiB1c2luZyBXZWJDb3JlOjpQb3NpdGlvbkVycm9yOwogdXNpbmcgV2ViQ29yZTo6
UG9zaXRpb25PcHRpb25zOwogdXNpbmcgV1RGOjpTdHJpbmc7Cit1c2luZyBXVEY6OlZlY3RvcjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1N
b2NrIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLCBwdWJsaWMgR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50IHsKQEAgLTEyNCwxNyArMTI3LDM0IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCA6IHB1YmxpYyBXZWJHZW9s
b2NhdGlvblNlcnZpY2VNb2NrIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlv
blNlcnZpY2VNb2NrSW1wbCgpIHsgfQorICAgIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBs
KCk7CisgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGwoKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CisK
KyAgICAvLyBXZWJHZW9sb2NhdGlvblNlcnZpY2UKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb25Gb3JGcmFtZShpbnQgYnJpZGdlSWQsIGNvbnN0IFdlYlVSTCYgdXJsKTsKICAgICB2
aXJ0dWFsIGludCBhdHRhY2hCcmlkZ2UoV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaEJyaWRnZShpbnQgYnJpZGdlSWQpOwogCiBwcml2YXRlOgor
ICAgIHZvaWQgbm90aWZ5UGVuZGluZ1Blcm1pc3Npb25zKCk7CisKICAgICB0eXBlZGVmIEhhc2hN
YXA8aW50LCBXZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UqPiBJZFRvQnJpZGdlTWFwOwogICAg
IElkVG9CcmlkZ2VNYXAgbV9pZFRvQnJpZGdlTWFwOworICAgIFZlY3RvcjxpbnQ+IG1fcGVuZGlu
Z1Blcm1pc3Npb25SZXF1ZXN0czsKKworICAgIC8vIEluIGFkZGl0aW9uIHRvIHRoZSBzaW5nbGV0
b24gaW5zdGFuY2UgcG9pbnRlciwgd2UgbmVlZCB0byBrZWVwIHRoZSBzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKCkgc3RhdGUKKyAgICAvLyBhcyBhIHN0YXRpYyAobm90IG9iamVjdCBtZW1i
ZXJzKSBhcyB0aGlzIGNhbGwgbWF5IGNvbWUgaW4gYmVmb3JlIHRoZSBzZXJ2aWNlIGhhcyBiZWVu
IGNyZWF0ZWQuCisgICAgc3RhdGljIGVudW0gUGVybWlzc2lvblN0YXRlIHsKKyAgICAgICAgUGVy
bWlzc2lvblN0YXRlVW5zZXQsCisgICAgICAgIFBlcm1pc3Npb25TdGF0ZUFsbG93ZWQsCisgICAg
ICAgIFBlcm1pc3Npb25TdGF0ZURlbmllZCwKKyAgICB9IHNfcGVybWlzc2lvblN0YXRlOworICAg
IHN0YXRpYyBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbCogc19pbnN0YW5jZTsKIH07CiAK
LWJvb2wgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19tb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uID0gZmFsc2U7CitXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6UGVybWlzc2lvblN0
YXRlIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpzX3Blcm1pc3Npb25TdGF0ZSA9IFdl
Ykdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpQZXJtaXNzaW9uU3RhdGVVbnNldDsKK1dlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tJbXBsKiBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6
c19pbnN0YW5jZSA9IDA7CiAKIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sqIFdlYkdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OmNyZWF0ZVdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2soKQogewpAQCAt
MTQzLDcgKzE2Myw3IEBAIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sqIFdlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OmNyZWF0ZVdlYkdlb2xvY2F0aW9uU2VydmljCiAKIHZvaWQgV2ViR2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93
ZWQpCiB7Ci0gICAgc19tb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uID0gYWxsb3dlZDsKKyAgICBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrSW1wbDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lv
bihhbGxvd2VkKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSkKQEAgLTE2MCwxMiArMTgwLDM1IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
V2ViCiAgICAgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0RXJyb3IocG9zaXRpb25FcnJvcik7
CiB9CiAKK1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2tJbXBsOjpXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrSW1wbCgpCit7CisgICAgQVNTRVJUKCFzX2luc3RhbmNlKTsKKyAgICBzX2luc3RhbmNl
ID0gdGhpczsKK30KKworV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6On5XZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrSW1wbCgpCit7CisgICAgQVNTRVJUKHRoaXMgPT0gc19pbnN0YW5jZSk7
CisgICAgc19pbnN0YW5jZSA9IDA7CisgICAgLy8gUmVzZXQgdGhlIHBlcm1pc3Npb24gc3RhdGUs
IHNvIGFueSBmdXR1cmUgc2VydmljZSBpbnN0YW5jZSAoZS5nLiBydW5uaW5nCisgICAgLy8gbXVs
dGlwbGUgdGVzdHMgaW4gYSBzaW5nbGUgRFJUIHJ1bikgd2lsbCBzZWUgYSBjbGVhbiBjYWxsIHNl
cXVlbmNlLgorICAgIHNfcGVybWlzc2lvblN0YXRlID0gUGVybWlzc2lvblN0YXRlVW5zZXQ7Cisg
ICAgZm9yIChJZFRvQnJpZGdlTWFwOjppdGVyYXRvciBpdCA9IG1faWRUb0JyaWRnZU1hcC5iZWdp
bigpOyBpdCAhPSBtX2lkVG9CcmlkZ2VNYXAuZW5kKCk7ICsraXQpCisgICAgICAgIGl0LT5zZWNv
bmQtPmRpZERlc3Ryb3lHZW9sb2NhdGlvblNlcnZpY2UoKTsKK30KKwordm9pZCBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrSW1wbDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFs
bG93ZWQpCit7CisgICAgc19wZXJtaXNzaW9uU3RhdGUgPSBhbGxvd2VkID8gUGVybWlzc2lvblN0
YXRlQWxsb3dlZCA6IFBlcm1pc3Npb25TdGF0ZURlbmllZDsKKyAgICBpZiAoc19pbnN0YW5jZSkK
KyAgICAgICAgc19pbnN0YW5jZS0+bm90aWZ5UGVuZGluZ1Blcm1pc3Npb25zKCk7Cit9CisKIHZv
aWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6OnJlcXVlc3RQZXJtaXNzaW9uRm9yRnJh
bWUoaW50IGJyaWRnZUlkLCBjb25zdCBXZWJVUkwmIHVybCkKIHsKLSAgICBJZFRvQnJpZGdlTWFw
OjppdGVyYXRvciBpdGVyID0gbV9pZFRvQnJpZGdlTWFwLmZpbmQoYnJpZGdlSWQpOwotICAgIGlm
IChpdGVyID09IG1faWRUb0JyaWRnZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGl0
ZXItPnNlY29uZC0+c2V0SXNBbGxvd2VkKHNfbW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik7Cisg
ICAgbV9wZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLmFwcGVuZChicmlkZ2VJZCk7CisgICAgaWYg
KHNfcGVybWlzc2lvblN0YXRlICE9IFBlcm1pc3Npb25TdGF0ZVVuc2V0KQorICAgICAgICBub3Rp
ZnlQZW5kaW5nUGVybWlzc2lvbnMoKTsKIH0KIAogaW50IFdlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2tJbXBsOjphdHRhY2hCcmlkZ2UoV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlKiBicmlkZ2Up
CkBAIC0xODMsNiArMjI2LDE5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6
OmRldGFjaEJyaWRnZShpbnQgYnJpZGdlSWQpCiAgICAgbV9pZFRvQnJpZGdlTWFwLnJlbW92ZShi
cmlkZ2VJZCk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja0ltcGw6Om5vdGlm
eVBlbmRpbmdQZXJtaXNzaW9ucygpCit7CisgICAgQVNTRVJUKHNfcGVybWlzc2lvblN0YXRlID09
IFBlcm1pc3Npb25TdGF0ZUFsbG93ZWQgfHwgc19wZXJtaXNzaW9uU3RhdGUgPT0gIFBlcm1pc3Np
b25TdGF0ZURlbmllZCk7CisgICAgVmVjdG9yPGludD4gcGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0
czsKKyAgICBwZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzLnN3YXAobV9wZW5kaW5nUGVybWlzc2lv
blJlcXVlc3RzKTsKKyAgICBmb3IgKFZlY3RvcjxpbnQ+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHBl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYmVnaW4oKTsgaXQgIT0gcGVuZGluZ1Blcm1pc3Npb25S
ZXF1ZXN0cy5lbmQoKTsgKytpdCkgeworICAgICAgICBBU1NFUlQoKml0ID4gMCk7CisgICAgICAg
IElkVG9CcmlkZ2VNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2lkVG9CcmlkZ2VNYXAuZmluZCgqaXQp
OworICAgICAgICBpZiAoaXRlciAhPSBtX2lkVG9CcmlkZ2VNYXAuZW5kKCkpCisgICAgICAgICAg
ICBpdGVyLT5zZWNvbmQtPnNldElzQWxsb3dlZChzX3Blcm1pc3Npb25TdGF0ZSA9PSBQZXJtaXNz
aW9uU3RhdGVBbGxvd2VkKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>