<?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>42091</bug_id>
          
          <creation_ts>2010-07-12 10:17:13 -0700</creation_ts>
          <short_desc>Web Inspector: provide starts and ends for network phases instead of duration.</short_desc>
          <delta_ts>2010-07-12 21:04:40 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41824</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>pecoraro</cc>
    
    <cc>tonyg</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>249896</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 10:17:13 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249897</commentid>
    <comment_count>1</comment_count>
      <attachid>61242</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 10:23:04 -0700</bug_when>
    <thetext>Created attachment 61242
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249904</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 10:39:09 -0700</bug_when>
    <thetext>Thanks for the update, Pavel. This looks like it will work perfectly for Web Timing.

FYI, Here&apos;s how Web Timing will make use of this API:
domainLookupStart = dnsStart
domainLookupEnd = dnsEnd
connectStart = connectStart
connectEnd = connectEnd
requestStart = sendStart
requestEnd = sendEnd
responseStart = receiveHeadersStart

Then it will convert -1s to 0s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249910</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 10:55:28 -0700</bug_when>
    <thetext>&gt; responseStart == receiveHeadersStart
&gt; 
From what I see,

responseStart != receiveHeadersStart.

In most of the cases,

responseStart = requestEnd instead.

So you need to use receiveHeadersEnd as responseStart for more realistic picture. That&apos;s what I do in inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249918</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 11:10:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; responseStart == receiveHeadersStart
&gt; &gt; 
&gt; From what I see,
&gt; 
&gt; responseStart != receiveHeadersStart.
&gt; 
&gt; In most of the cases,
&gt; 
&gt; responseStart = requestEnd instead.
&gt; 
&gt; So you need to use receiveHeadersEnd as responseStart for more realistic picture. That&apos;s what I do in inspector.

In the Web Timing definition responseStart marks the time when the first byte of data is received from the network. From the names alone, I&apos;d expect that requestEnd marks the time when the last byte of the request is sent. Then there should be a non-trivial amount network + server latency. After that, the first packet of the response should contain all or some of the HTTP headers and possibly some of the response body. I expect the time this first packet is received corresponds to receiveHeadersStart, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249945</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 12:00:28 -0700</bug_when>
    <thetext>&gt; In the Web Timing definition responseStart marks the time when the first byte of data is received from the network. From the names alone, I&apos;d expect that requestEnd marks the time when the last byte of the request is sent. Then there should be a non-trivial amount network + server latency. After that, the first packet of the response should contain all or some of the HTTP headers and possibly some of the response body. I expect the time this first packet is received corresponds to receiveHeadersStart, no?

Couple of things here:
- receiveHeadersStart and receiveHeadersEnd would be equal in majority of cases (all headers would fit into a packet).
- chromium&apos;s stack considers receiving headers to start once it issued the request.

These two reasons made me mimic chromium&apos;s understanding of things here. So you are right, we could fix it and remove receiveHeadersStart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249946</commentid>
    <comment_count>6</comment_count>
      <attachid>61242</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-12 12:02:39 -0700</bug_when>
    <thetext>Comment on attachment 61242
[PATCH] Proposed change.

This looks good. Thanks for the IRC explanation of the m_cached in updateResponse.

&gt;  private:
&gt; +        , receiveHeadersStart(0)
&gt; +        , receiveHeadersEnd(0)
&gt; +        , sslStart(-1)
&gt; +        , sslEnd(-1)

I know the old code had -1.0 and 0.0. It might
be clearer if -1 was given a constant. &quot;NoValue&quot;
or something. But I&apos;m perfectly fine with -1, as
that is what the old code had.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249963</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 12:28:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; In the Web Timing definition responseStart marks the time when the first byte of data is received from the network. From the names alone, I&apos;d expect that requestEnd marks the time when the last byte of the request is sent. Then there should be a non-trivial amount network + server latency. After that, the first packet of the response should contain all or some of the HTTP headers and possibly some of the response body. I expect the time this first packet is received corresponds to receiveHeadersStart, no?
&gt; 
&gt; Couple of things here:
&gt; - receiveHeadersStart and receiveHeadersEnd would be equal in majority of cases (all headers would fit into a packet).
&gt; - chromium&apos;s stack considers receiving headers to start once it issued the request.
&gt; 
&gt; These two reasons made me mimic chromium&apos;s understanding of things here. So you are right, we could fix it and remove receiveHeadersStart.

Thank you for the explanation. If that is the case, then based on the chromium implementation, I do want receiveHeadersEnd for now.

However, we need to make sure ResourceLoadTiming.h is a clear and generic API that can be implemented by any of the network platforms (and not tied to chromium quirks). I&apos;d argue that receiveHeadersStart is a misleading name for &quot;finished sending request&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249969</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 12:37:55 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; &gt; In the Web Timing definition responseStart marks the time when the first byte of data is received from the network. From the names alone, I&apos;d expect that requestEnd marks the time when the last byte of the request is sent. Then there should be a non-trivial amount network + server latency. After that, the first packet of the response should contain all or some of the HTTP headers and possibly some of the response body. I expect the time this first packet is received corresponds to receiveHeadersStart, no?
&gt; &gt; 
&gt; &gt; Couple of things here:
&gt; &gt; - receiveHeadersStart and receiveHeadersEnd would be equal in majority of cases (all headers would fit into a packet).
&gt; &gt; - chromium&apos;s stack considers receiving headers to start once it issued the request.
&gt; &gt; 
&gt; &gt; These two reasons made me mimic chromium&apos;s understanding of things here. So you are right, we could fix it and remove receiveHeadersStart.
&gt; 
&gt; Thank you for the explanation. If that is the case, then based on the chromium implementation, I do want receiveHeadersEnd for now.
&gt; 
&gt; However, we need to make sure ResourceLoadTiming.h is a clear and generic API that can be implemented by any of the network platforms (and not tied to chromium quirks). I&apos;d argue that receiveHeadersStart is a misleading name for &quot;finished sending request&quot;.

I agree. I am not saying that receiveHeadersStart is a name for &quot;finished sending request&quot;. There is a requestEnd that is a name for that. So our options are:
1) remove receiveHeadersStart as a whole
2) leave it and allow embedders filling it properly (chromium will most likely fake it using same value as receiveHeadersEnd for now).

(2) Is the right thing to do according to the spec - it requires the real first byte delivery time. So if you go with the spec in other places, you should be consistent. It is just me who thinks the spec is wrong, so I am suggesting (1) :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249971</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 12:39:22 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; In the Web Timing definition responseStart marks the time when the first byte of data is received from the network. From the names alone, I&apos;d expect that requestEnd marks the time when the last byte of the request is sent. Then there should be a non-trivial amount network + server latency. After that, the first packet of the response should contain all or some of the HTTP headers and possibly some of the response body. I expect the time this first packet is received corresponds to receiveHeadersStart, no?
&gt; &gt; &gt; 
&gt; &gt; &gt; Couple of things here:
&gt; &gt; &gt; - receiveHeadersStart and receiveHeadersEnd would be equal in majority of cases (all headers would fit into a packet).
&gt; &gt; &gt; - chromium&apos;s stack considers receiving headers to start once it issued the request.
&gt; &gt; &gt; 
&gt; &gt; &gt; These two reasons made me mimic chromium&apos;s understanding of things here. So you are right, we could fix it and remove receiveHeadersStart.
&gt; &gt; 
&gt; &gt; Thank you for the explanation. If that is the case, then based on the chromium implementation, I do want receiveHeadersEnd for now.
&gt; &gt; 
&gt; &gt; However, we need to make sure ResourceLoadTiming.h is a clear and generic API that can be implemented by any of the network platforms (and not tied to chromium quirks). I&apos;d argue that receiveHeadersStart is a misleading name for &quot;finished sending request&quot;.
&gt; 
&gt; I agree. I am not saying that receiveHeadersStart is a name for &quot;finished sending request&quot;. There is a requestEnd that is a name for that. So our options are:
&gt; 1) remove receiveHeadersStart as a whole
&gt; 2) leave it and allow embedders filling it properly (chromium will most likely fake it using same value as receiveHeadersEnd for now).
&gt; 
&gt; (2) Is the right thing to do according to the spec - it requires the real first byte delivery time. So if you go with the spec in other places, you should be consistent. It is just me who thinks the spec is wrong, so I am suggesting (1) :).

#1 sounds good to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250046</commentid>
    <comment_count>10</comment_count>
      <attachid>61269</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-12 14:14:44 -0700</bug_when>
    <thetext>Created attachment 61269
[PATCH] For landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250174</commentid>
    <comment_count>11</comment_count>
      <attachid>61269</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-12 17:23:40 -0700</bug_when>
    <thetext>Comment on attachment 61269
[PATCH] For landing.

Rejecting patch 61269 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 61269, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
ing: https://bugs.webkit.org/show_bug.cgi?id=42091&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 61269 from bug 42091.
 Reviewed by Joseph Pecoraro found in /Users/eseidel/Projects/CommitQueue/WebKit/chromium/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /Users/eseidel/Projects/CommitQueue/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250198</commentid>
    <comment_count>12</comment_count>
      <attachid>61303</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 17:56:41 -0700</bug_when>
    <thetext>Created attachment 61303
Fix Reviewed by line in WebKit/chromium/ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250200</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-07-12 17:58:53 -0700</bug_when>
    <thetext>This failed the cq because of a mangled &quot;Reviewed by&quot; line. So I took the liberty of fixing that bit and putting it back in the queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250277</commentid>
    <comment_count>14</comment_count>
      <attachid>61303</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-12 21:04:35 -0700</bug_when>
    <thetext>Comment on attachment 61303
Fix Reviewed by line in WebKit/chromium/ChangeLog

Clearing flags on attachment: 61303

Committed r63166: &lt;http://trac.webkit.org/changeset/63166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250278</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-12 21:04:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61242</attachid>
            <date>2010-07-12 10:23:04 -0700</date>
            <delta_ts>2010-07-12 14:14:44 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>start_end</filename>
            <type>text/plain</type>
            <size>19264</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTlhYWJiZi4uYTNmYTlmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMiAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIHN0YXJ0cyBhbmQgZW5k
cyBmb3IgbmV0d29yayBwaGFzZXMgaW5zdGVhZCBvZiBkdXJhdGlvbi4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIwOTEKKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UmVzb3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSZXNvdXJjZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OlJl
c291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZUJhc2U6Ondhc0NhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFz
ZTo6c2V0V2FzQ2FjaGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmg6CisKIDIwMTAtMDctMTIgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAppbmRleCBhZGM2YmFkLi5lNDU4YjRjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCkBAIC0xMzIsMTcgKzEzMiwx
MSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlOjp1cGRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIAogICAgIG1fY29ubmVjdGlvbklEID0gcmVzcG9uc2UuY29u
bmVjdGlvbklEKCk7CiAgICAgbV9sb2FkVGltaW5nID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCk7Ci0gICAgaWYgKG1fbG9hZFRpbWluZyAmJiBtX2xvYWRUaW1pbmctPnJlcXVlc3RUaW1l
KSB7Ci0gICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSA9IG1fbG9hZFRpbWluZy0+cmVxdWVz
dFRpbWU7Ci0gICAgICAgaWYgKG1fbG9hZFRpbWluZy0+cHJveHlEdXJhdGlvbiAhPSAtMSkKLSAg
ICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGltaW5nLT5wcm94eUR1cmF0
aW9uOwotICAgICAgIGlmIChtX2xvYWRUaW1pbmctPmRuc0R1cmF0aW9uICE9IC0xKQotICAgICAg
ICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSArPSBtX2xvYWRUaW1pbmctPmRuc0R1cmF0aW9uOwot
ICAgICAgIGlmIChtX2xvYWRUaW1pbmctPmNvbm5lY3REdXJhdGlvbiAhPSAtMSkKLSAgICAgICAg
IG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGltaW5nLT5jb25uZWN0RHVyYXRpb247
Ci0gICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSArPSBtX2xvYWRUaW1pbmctPnNlbmREdXJh
dGlvbjsKLSAgICAgICBtX3Jlc3BvbnNlUmVjZWl2ZWRUaW1lICs9IG1fbG9hZFRpbWluZy0+cmVj
ZWl2ZUhlYWRlcnNEdXJhdGlvbjsKLSAgICB9IGVsc2UKKyAgICBtX2NhY2hlZCA9IHJlc3BvbnNl
Lndhc0NhY2hlZCgpOworCisgICAgaWYgKCFtX2NhY2hlZCAmJiBtX2xvYWRUaW1pbmcgJiYgbV9s
b2FkVGltaW5nLT5yZXF1ZXN0VGltZSkKKyAgICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSA9
IG1fbG9hZFRpbWluZy0+cmVxdWVzdFRpbWUgKyBtX2xvYWRUaW1pbmctPnJlY2VpdmVIZWFkZXJz
RW5kIC8gMTAwMC4wOworICAgIGVsc2UKICAgICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSA9
IGN1cnJlbnRUaW1lKCk7CiAKICAgICBtX2NoYW5nZXMuc2V0KFRpbWluZ0NoYW5nZSk7CkBAIC0x
NzcsNyArMTcxLDYgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlU2NyaXB0T2JqZWN0
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICAgICAganNvbk9iamVjdC5zZXQoInJl
cXVlc3RNZXRob2QiLCBtX3JlcXVlc3RNZXRob2QpOwogICAgICAgICBqc29uT2JqZWN0LnNldCgi
cmVxdWVzdEZvcm1EYXRhIiwgbV9yZXF1ZXN0Rm9ybURhdGEpOwogICAgICAgICBqc29uT2JqZWN0
LnNldCgiZGlkUmVxdWVzdENoYW5nZSIsIHRydWUpOwotICAgICAgICBqc29uT2JqZWN0LnNldCgi
Y2FjaGVkIiwgbV9jYWNoZWQpOwogICAgIH0KIAogICAgIGlmIChtX2NoYW5nZXMuaGFzQ2hhbmdl
KFJlc3BvbnNlQ2hhbmdlKSkgewpAQCAtMTkwLDcgKzE4Myw4IEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAg
ICAgICAgIHBvcHVsYXRlSGVhZGVyc09iamVjdCgmcmVzcG9uc2VIZWFkZXJzLCBtX3Jlc3BvbnNl
SGVhZGVyRmllbGRzKTsKICAgICAgICAganNvbk9iamVjdC5zZXQoInJlc3BvbnNlSGVhZGVycyIs
IHJlc3BvbnNlSGVhZGVycyk7CiAgICAgICAgIGpzb25PYmplY3Quc2V0KCJjb25uZWN0aW9uSUQi
LCBtX2Nvbm5lY3Rpb25JRCk7Ci0gICAgICAgIGlmIChtX2xvYWRUaW1pbmcpCisgICAgICAgIGpz
b25PYmplY3Quc2V0KCJjYWNoZWQiLCBtX2NhY2hlZCk7CisgICAgICAgIGlmIChtX2xvYWRUaW1p
bmcgJiYgIW1fY2FjaGVkKQogICAgICAgICAgICAganNvbk9iamVjdC5zZXQoInRpbWluZyIsIGJ1
aWxkT2JqZWN0Rm9yVGltaW5nKGZyb250ZW5kLCBtX2xvYWRUaW1pbmcuZ2V0KCkpKTsKICAgICAg
ICAganNvbk9iamVjdC5zZXQoImRpZFJlc3BvbnNlQ2hhbmdlIiwgdHJ1ZSk7CiAgICAgfQpAQCAt
Mzk3LDEyICszOTEsMTIgQEAgU2NyaXB0T2JqZWN0IEluc3BlY3RvclJlc291cmNlOjpidWlsZE9i
amVjdEZvclRpbWluZyhJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQKIHsKICAgICBTY3JpcHRP
YmplY3QganNvbk9iamVjdCA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKICAgICBqc29u
T2JqZWN0LnNldCgicmVxdWVzdFRpbWUiLCB0aW1pbmctPnJlcXVlc3RUaW1lKTsKLSAgICBqc29u
T2JqZWN0LnNldCgicHJveHlEdXJhdGlvbiIsIHRpbWluZy0+cHJveHlEdXJhdGlvbik7Ci0gICAg
anNvbk9iamVjdC5zZXQoImRuc0R1cmF0aW9uIiwgdGltaW5nLT5kbnNEdXJhdGlvbik7Ci0gICAg
anNvbk9iamVjdC5zZXQoImNvbm5lY3REdXJhdGlvbiIsIHRpbWluZy0+Y29ubmVjdER1cmF0aW9u
KTsKLSAgICBqc29uT2JqZWN0LnNldCgic2VuZER1cmF0aW9uIiwgdGltaW5nLT5zZW5kRHVyYXRp
b24pOwotICAgIGpzb25PYmplY3Quc2V0KCJyZWNlaXZlSGVhZGVyc0R1cmF0aW9uIiwgdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0R1cmF0aW9uKTsKLSAgICBqc29uT2JqZWN0LnNldCgic3NsRHVyYXRp
b24iLCB0aW1pbmctPnNzbER1cmF0aW9uKTsKKyAgICBqc29uT2JqZWN0LnNldCgicHJveHlEdXJh
dGlvbiIsIHRpbWluZy0+cHJveHlTdGFydCA9PSAtMSA/IC0xIDogKHRpbWluZy0+cHJveHlFbmQg
LSB0aW1pbmctPnByb3h5U3RhcnQpIC8gMTAwMC4wKTsKKyAgICBqc29uT2JqZWN0LnNldCgiZG5z
RHVyYXRpb24iLCB0aW1pbmctPmRuc1N0YXJ0ID09IC0xID8gLTEgOiAodGltaW5nLT5kbnNFbmQg
LSB0aW1pbmctPmRuc1N0YXJ0KSAvIDEwMDAuMCk7CisgICAganNvbk9iamVjdC5zZXQoImNvbm5l
Y3REdXJhdGlvbiIsIHRpbWluZy0+Y29ubmVjdFN0YXJ0ID09IC0xID8gLTEgOiAodGltaW5nLT5j
b25uZWN0RW5kIC0gdGltaW5nLT5jb25uZWN0U3RhcnQpIC8gMTAwMC4wKTsKKyAgICBqc29uT2Jq
ZWN0LnNldCgic2VuZER1cmF0aW9uIiwgKHRpbWluZy0+c2VuZEVuZCAtIHRpbWluZy0+c2VuZFN0
YXJ0KSAvIDEwMDAuMCk7CisgICAganNvbk9iamVjdC5zZXQoInJlY2VpdmVIZWFkZXJzRHVyYXRp
b24iLCAodGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCAtIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNT
dGFydCkgIC8gMTAwMC4wKTsKKyAgICBqc29uT2JqZWN0LnNldCgic3NsRHVyYXRpb24iLCAodGlt
aW5nLT5zc2xFbmQgLSB0aW1pbmctPnNzbFN0YXJ0KSAvIDEwMDAuMCk7CiAgICAgcmV0dXJuIGpz
b25PYmplY3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUxvYWRUaW1pbmcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRU
aW1pbmcuaAppbmRleCA2M2I0NWRhLi5iYzdlMGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCkBAIC00MywyNCArNDMsMzYgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRl
KCk7CiAgICAgICAgIHRpbWluZy0+cmVxdWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAg
dGltaW5nLT5wcm94eUR1cmF0aW9uID0gcHJveHlEdXJhdGlvbjsKLSAgICAgICAgdGltaW5nLT5k
bnNEdXJhdGlvbiA9IGRuc0R1cmF0aW9uOwotICAgICAgICB0aW1pbmctPmNvbm5lY3REdXJhdGlv
biA9IGNvbm5lY3REdXJhdGlvbjsKLSAgICAgICAgdGltaW5nLT5zZW5kRHVyYXRpb24gPSBzZW5k
RHVyYXRpb247Ci0gICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbiA9IHJlY2Vp
dmVIZWFkZXJzRHVyYXRpb247Ci0gICAgICAgIHRpbWluZy0+c3NsRHVyYXRpb24gPSBzc2xEdXJh
dGlvbjsKKyAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0ID0gcHJveHlTdGFydDsKKyAgICAgICAg
dGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOworICAgICAgICB0aW1pbmctPmRuc1N0YXJ0ID0g
ZG5zU3RhcnQ7CisgICAgICAgIHRpbWluZy0+ZG5zRW5kID0gZG5zRW5kOworICAgICAgICB0aW1p
bmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsKKyAgICAgICAgdGltaW5nLT5jb25uZWN0
RW5kID0gY29ubmVjdEVuZDsKKyAgICAgICAgdGltaW5nLT5zZW5kU3RhcnQgPSBzZW5kU3RhcnQ7
CisgICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRFbmQ7CisgICAgICAgIHRpbWluZy0+cmVj
ZWl2ZUhlYWRlcnNTdGFydCA9IHJlY2VpdmVIZWFkZXJzU3RhcnQ7CisgICAgICAgIHRpbWluZy0+
cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0VuZDsKKyAgICAgICAgdGltaW5nLT5z
c2xTdGFydCA9IHNzbFN0YXJ0OworICAgICAgICB0aW1pbmctPnNzbEVuZCA9IHNzbEVuZDsKICAg
ICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYm
IHByb3h5RHVyYXRpb24gPT0gb3RoZXIucHJveHlEdXJhdGlvbgotICAgICAgICAgICAgJiYgZG5z
RHVyYXRpb24gPT0gb3RoZXIuZG5zRHVyYXRpb24KLSAgICAgICAgICAgICYmIGNvbm5lY3REdXJh
dGlvbiA9PSBvdGhlci5jb25uZWN0RHVyYXRpb24KLSAgICAgICAgICAgICYmIHNlbmREdXJhdGlv
biA9PSBvdGhlci5zZW5kRHVyYXRpb24KLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRHVy
YXRpb24gPT0gb3RoZXIucmVjZWl2ZUhlYWRlcnNEdXJhdGlvbgotICAgICAgICAgICAgJiYgc3Ns
RHVyYXRpb24gPT0gb3RoZXIuc3NsRHVyYXRpb247CisgICAgICAgICAgICAmJiBwcm94eVN0YXJ0
ID09IG90aGVyLnByb3h5U3RhcnQKKyAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnBy
b3h5RW5kCisgICAgICAgICAgICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAorICAgICAg
ICAgICAgJiYgZG5zRW5kID09IG90aGVyLmRuc0VuZAorICAgICAgICAgICAgJiYgY29ubmVjdFN0
YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAorICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9PSBv
dGhlci5jb25uZWN0RW5kCisgICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0
YXJ0CisgICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKKyAgICAgICAgICAg
ICYmIHJlY2VpdmVIZWFkZXJzU3RhcnQgPT0gb3RoZXIucmVjZWl2ZUhlYWRlcnNTdGFydAorICAg
ICAgICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0gb3RoZXIucmVjZWl2ZUhlYWRlcnNFbmQK
KyAgICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVyLnNzbFN0YXJ0CisgICAgICAgICAgICAm
JiBzc2xFbmQgPT0gb3RoZXIuc3NsRW5kOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdApAQCAtNjksMjIgKzgxLDM0IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICBkb3VibGUgcmVxdWVzdFRpbWU7Ci0gICAgZG91YmxlIHBy
b3h5RHVyYXRpb247Ci0gICAgZG91YmxlIGRuc0R1cmF0aW9uOwotICAgIGRvdWJsZSBjb25uZWN0
RHVyYXRpb247Ci0gICAgZG91YmxlIHNlbmREdXJhdGlvbjsKLSAgICBkb3VibGUgcmVjZWl2ZUhl
YWRlcnNEdXJhdGlvbjsKLSAgICBkb3VibGUgc3NsRHVyYXRpb247CisgICAgaW50IHByb3h5U3Rh
cnQ7CisgICAgaW50IHByb3h5RW5kOworICAgIGludCBkbnNTdGFydDsKKyAgICBpbnQgZG5zRW5k
OworICAgIGludCBjb25uZWN0U3RhcnQ7CisgICAgaW50IGNvbm5lY3RFbmQ7CisgICAgaW50IHNl
bmRTdGFydDsKKyAgICBpbnQgc2VuZEVuZDsKKyAgICBpbnQgcmVjZWl2ZUhlYWRlcnNTdGFydDsK
KyAgICBpbnQgcmVjZWl2ZUhlYWRlcnNFbmQ7CisgICAgaW50IHNzbFN0YXJ0OworICAgIGludCBz
c2xFbmQ7CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKCkKLSAgICAgICAgOiBy
ZXF1ZXN0VGltZSgwLjApCi0gICAgICAgICwgcHJveHlEdXJhdGlvbigtMS4wKQotICAgICAgICAs
IGRuc0R1cmF0aW9uKC0xLjApCi0gICAgICAgICwgY29ubmVjdER1cmF0aW9uKC0xLjApCi0gICAg
ICAgICwgc2VuZER1cmF0aW9uKDAuMCkKLSAgICAgICAgLCByZWNlaXZlSGVhZGVyc0R1cmF0aW9u
KDAuMCkKLSAgICAgICAgLCBzc2xEdXJhdGlvbigtMS4wKQorICAgICAgICA6IHJlcXVlc3RUaW1l
KDApCisgICAgICAgICwgcHJveHlTdGFydCgtMSkKKyAgICAgICAgLCBwcm94eUVuZCgtMSkKKyAg
ICAgICAgLCBkbnNTdGFydCgtMSkKKyAgICAgICAgLCBkbnNFbmQoLTEpCisgICAgICAgICwgY29u
bmVjdFN0YXJ0KC0xKQorICAgICAgICAsIGNvbm5lY3RFbmQoLTEpCisgICAgICAgICwgc2VuZFN0
YXJ0KDApCisgICAgICAgICwgc2VuZEVuZCgwKQorICAgICAgICAsIHJlY2VpdmVIZWFkZXJzU3Rh
cnQoMCkKKyAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQorICAgICAgICAsIHNzbFN0YXJ0
KC0xKQorICAgICAgICAsIHNzbEVuZCgtMSkKICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGEzYjFi
ZTguLjg5ZDMxZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmNwcApAQCAtNDMsNiArNDMsOCBAQCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2UoKQogICAgIDogbV9leHBlY3RlZENvbnRlbnRMZW5ndGgoMCkK
ICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKICAgICAsIG1fbGFzdE1vZGlmaWVkRGF0ZSgwKQor
ICAgICwgbV93YXNDYWNoZWQoZmFsc2UpCisgICAgLCBtX2Nvbm5lY3Rpb25JRCgwKQogICAgICwg
bV9pc051bGwodHJ1ZSkKICAgICAsIG1faGF2ZVBhcnNlZENhY2hlQ29udHJvbEhlYWRlcihmYWxz
ZSkKICAgICAsIG1faGF2ZVBhcnNlZEFnZUhlYWRlcihmYWxzZSkKQEAgLTY4LDYgKzcwLDggQEAg
UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHkKICAgICAsIG1fc3VnZ2VzdGVkRmlsZW5hbWUoZmlsZW5h
bWUpCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCiAgICAgLCBtX2xhc3RNb2RpZmllZERhdGUo
MCkKKyAgICAsIG1fd2FzQ2FjaGVkKGZhbHNlKQorICAgICwgbV9jb25uZWN0aW9uSUQoMCkKICAg
ICAsIG1faXNOdWxsKGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2VkQ2FjaGVDb250cm9sSGVhZGVy
KGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2VkQWdlSGVhZGVyKGZhbHNlKQpAQCAtNDU1LDYgKzQ1
OSwxOCBAQCB0aW1lX3QgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZERhdGUoKSBj
b25zdAogICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGU7CiB9CiAKK2Jvb2wgUmVzb3VyY2VS
ZXNwb25zZUJhc2U6Ondhc0NhY2hlZCgpIGNvbnN0Cit7CisgICAgbGF6eUluaXQoKTsKKworICAg
IHJldHVybiBtX3dhc0NhY2hlZDsKK30KKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0
V2FzQ2FjaGVkKGJvb2wgdmFsdWUpCit7CisgICAgbV93YXNDYWNoZWQgPSB2YWx1ZTsKK30KKwog
dW5zaWduZWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvbm5lY3Rpb25JRCgpIGNvbnN0CiB7CiAg
ICAgbGF6eUluaXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlc3BvbnNlQmFzZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmgKaW5kZXggMWIxNzhkNC4uODU4YTYxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAgLTEwMCw2ICsxMDAsOSBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgY29ubmVjdGlvbklEKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRD
b25uZWN0aW9uSUQodW5zaWduZWQpOwogCisgICAgYm9vbCB3YXNDYWNoZWQoKSBjb25zdDsKKyAg
ICB2b2lkIHNldFdhc0NhY2hlZChib29sKTsKKwogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVz
b3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRUaW1pbmco
UGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+KTsKIApAQCAtMTMzLDYgKzEzNiw3IEBAIHBy
b3RlY3RlZDoKICAgICBTdHJpbmcgbV9odHRwU3RhdHVzVGV4dDsKICAgICBIVFRQSGVhZGVyTWFw
IG1faHR0cEhlYWRlckZpZWxkczsKICAgICB0aW1lX3QgbV9sYXN0TW9kaWZpZWREYXRlOworICAg
IGJvb2wgbV93YXNDYWNoZWQ7CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uSUQ7CiAgICAgUmVm
UHRyPFJlc291cmNlTG9hZFRpbWluZz4gbV9yZXNvdXJjZUxvYWRUaW1pbmc7CiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IGNjYTdiNjkuLmRjZDNmNDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisy
MDEwLTA3LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IHByb3ZpZGUgc3RhcnRzIGFuZCBlbmRzIGZvciBuZXR3b3JrIHBoYXNlcyBpbnN0ZWFkIG9mIGR1
cmF0aW9uLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjA5MQorCisgICAgICAgICogcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMvV2ViVVJMTG9hZFRpbWlu
Zy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnByb3h5U3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRQcm94eVN0YXJ0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cHJveHlFbmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRQcm94eUVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TExvYWRUaW1pbmc6OmRuc1N0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWlu
Zzo6c2V0RE5TU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpkbnNF
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRETlNFbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRDb25uZWN0U3RhcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxMb2FkVGltaW5nOjpjb25uZWN0RW5kKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMTG9hZFRpbWluZzo6c2V0Q29ubmVjdEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExv
YWRUaW1pbmc6OnNlbmRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6
OnNldFNlbmRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNlbmRF
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRTZW5kRW5kKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNTdGFydCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzU3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpyZWNlaXZlSGVhZGVyc0VuZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzRW5k
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c3NsU3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRTU0xTdGFydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlVSTExvYWRUaW1pbmc6OnNzbEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExv
YWRUaW1pbmc6OnNldFNTTEVuZCk6CisgICAgICAgICogc3JjL1dlYlVSTFJlc3BvbnNlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6Ondhc0NhY2hlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpzZXRXYXNDYWNoZWQpOgorCiAyMDEwLTA3LTEyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVVJMTG9hZFRpbWluZy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGlt
aW5nLmgKaW5kZXggN2ViNTYzNi4uN2M1NjIzMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJVUkxMb2FkVGltaW5nLmgKQEAgLTYwLDIzICs2MCw0MSBAQCBwdWJsaWM6CiAgICAgV0VCS0lU
X0FQSSBkb3VibGUgcmVxdWVzdFRpbWUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
UmVxdWVzdFRpbWUoZG91YmxlIHRpbWUpOwogCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgcHJveHlE
dXJhdGlvbigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRQcm94eUR1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbik7CisgICAgV0VCS0lUX0FQSSBpbnQgcHJveHlTdGFydCgpIGNvbnN0Owor
ICAgIFdFQktJVF9BUEkgdm9pZCBzZXRQcm94eVN0YXJ0KGludCBzdGFydCk7CiAKLSAgICBXRUJL
SVRfQVBJIGRvdWJsZSBkbnNEdXJhdGlvbigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBz
ZXRETlNEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdFQktJVF9BUEkgaW50IHByb3h5
RW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFByb3h5RW5kKGludCBlbmQpOwog
Ci0gICAgV0VCS0lUX0FQSSBkb3VibGUgY29ubmVjdER1cmF0aW9uKCkgY29uc3Q7Ci0gICAgV0VC
S0lUX0FQSSB2b2lkIHNldENvbm5lY3REdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdF
QktJVF9BUEkgaW50IGRuc1N0YXJ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldERO
U1N0YXJ0KGludCBzdGFydCk7CiAKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSBzZW5kRHVyYXRpb24o
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2VuZER1cmF0aW9uKGRvdWJsZSBkdXJh
dGlvbik7CisgICAgV0VCS0lUX0FQSSBpbnQgZG5zRW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQ
SSB2b2lkIHNldEROU0VuZChpbnQgZW5kKTsKIAotICAgIFdFQktJVF9BUEkgZG91YmxlIHJlY2Vp
dmVIZWFkZXJzRHVyYXRpb24oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UmVjZWl2
ZUhlYWRlcnNEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdFQktJVF9BUEkgaW50IGNv
bm5lY3RTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRDb25uZWN0U3RhcnQo
aW50IHN0YXJ0KTsKIAotICAgIFdFQktJVF9BUEkgZG91YmxlIHNzbER1cmF0aW9uKCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFNTTER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7Cisg
ICAgV0VCS0lUX0FQSSBpbnQgY29ubmVjdEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRDb25uZWN0RW5kKGludCBlbmQpOworCisgICAgV0VCS0lUX0FQSSBpbnQgc2VuZFN0YXJ0
KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFNlbmRTdGFydChpbnQgc3RhcnQpOwor
CisgICAgV0VCS0lUX0FQSSBpbnQgc2VuZEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRTZW5kRW5kKGludCBlbmQpOworCisgICAgV0VCS0lUX0FQSSBpbnQgcmVjZWl2ZUhlYWRl
cnNTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZWNlaXZlSGVhZGVyc1N0
YXJ0KGludCBzdGFydCk7CisKKyAgICBXRUJLSVRfQVBJIGludCByZWNlaXZlSGVhZGVyc0VuZCgp
IGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZWNlaXZlSGVhZGVyc0VuZChpbnQgZW5k
KTsKKworICAgIFdFQktJVF9BUEkgaW50IHNzbFN0YXJ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQ
SSB2b2lkIHNldFNTTFN0YXJ0KGludCBzdGFydCk7CisKKyAgICBXRUJLSVRfQVBJIGludCBzc2xF
bmQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U1NMRW5kKGludCBlbmQpOwogCiAj
aWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViVVJMTG9hZFRpbWluZyhjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nPiYpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCmluZGV4IGJiNWMxMmIuLjJhYTYwM2QgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgKQEAgLTEyOCw2ICsxMjgsMTAgQEAgcHVi
bGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHRvUmVzb3VyY2VSZXNw
b25zZSgpIGNvbnN0OwogI2VuZGlmCiAKKyAgICAvLyBGbGFnIHdoZXRoZXIgdGhpcyByZXF1ZXN0
IHdhcyBzZXJ2ZWQgZnJvbSB0aGUgZGlzayBjYWNoZSBlbnRyeS4KKyAgICBXRUJLSVRfQVBJIGJv
b2wgd2FzQ2FjaGVkKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFdhc0NhY2hlZChi
b29sKTsKKwogICAgIC8vIEZsYWcgd2hldGhlciB0aGlzIHJlcXVlc3Qgd2FzIGxvYWRlZCB2aWEg
dGhlIFNQRFkgcHJvdG9jb2wgb3Igbm90LgogICAgIC8vIFNQRFkgaXMgYW4gZXhwZXJpbWVudGFs
IHdlYiBwcm90b2NvbCwgc2VlIGh0dHA6Ly9kZXYuY2hyb21pdW0ub3JnL3NwZHkKICAgICBXRUJL
SVRfQVBJIGJvb2wgd2FzRmV0Y2hlZFZpYVNQRFkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVVJMTG9hZFRpbWluZy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlVSTExvYWRUaW1pbmcuY3BwCmluZGV4IDliNWQzZjUuLjkzODcxZWEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMTG9hZFRpbWluZy5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJVUkxMb2FkVGltaW5nLmNwcApAQCAtNjMsNjQgKzYzLDEyNCBAQCB2b2lk
IFdlYlVSTExvYWRUaW1pbmc6OnNldFJlcXVlc3RUaW1lKGRvdWJsZSB0aW1lKQogICAgIG1fcHJp
dmF0ZS0+cmVxdWVzdFRpbWUgPSB0aW1lOwogfQogCi1kb3VibGUgV2ViVVJMTG9hZFRpbWluZzo6
cHJveHlEdXJhdGlvbigpIGNvbnN0CitpbnQgV2ViVVJMTG9hZFRpbWluZzo6cHJveHlTdGFydCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+cHJveHlEdXJhdGlvbjsKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5wcm94eVN0YXJ0OwogfQogCi12b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNl
dFByb3h5RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpz
ZXRQcm94eVN0YXJ0KGludCBzdGFydCkKIHsKLSAgICBtX3ByaXZhdGUtPnByb3h5RHVyYXRpb24g
PSBkdXJhdGlvbjsKKyAgICBtX3ByaXZhdGUtPnByb3h5U3RhcnQgPSBzdGFydDsKIH0KLWRvdWJs
ZSBXZWJVUkxMb2FkVGltaW5nOjpkbnNEdXJhdGlvbigpIGNvbnN0CisKK2ludCBXZWJVUkxMb2Fk
VGltaW5nOjpwcm94eUVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cHJveHlF
bmQ7Cit9CisKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0UHJveHlFbmQoaW50IGVuZCkKK3sK
KyAgICBtX3ByaXZhdGUtPnByb3h5RW5kID0gZW5kOworfQorCitpbnQgV2ViVVJMTG9hZFRpbWlu
Zzo6ZG5zU3RhcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmRuc1N0YXJ0Owor
fQorCit2b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldEROU1N0YXJ0KGludCBzdGFydCkKK3sKKyAg
ICBtX3ByaXZhdGUtPmRuc1N0YXJ0ID0gc3RhcnQ7Cit9CisKK2ludCBXZWJVUkxMb2FkVGltaW5n
OjpkbnNFbmQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmRuc0VuZDsKK30KKwor
dm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRETlNFbmQoaW50IGVuZCkKK3sKKyAgICBtX3ByaXZh
dGUtPmRuc0VuZCA9IGVuZDsKK30KKworaW50IFdlYlVSTExvYWRUaW1pbmc6OmNvbm5lY3RTdGFy
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29ubmVjdFN0YXJ0OworfQorCit2
b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydChpbnQgc3RhcnQpCit7CisgICAg
bV9wcml2YXRlLT5jb25uZWN0U3RhcnQgPSBzdGFydDsKK30KKworaW50IFdlYlVSTExvYWRUaW1p
bmc6OmNvbm5lY3RFbmQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbm5lY3RF
bmQ7Cit9CisKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0Q29ubmVjdEVuZChpbnQgZW5kKQog
ewotICAgIHJldHVybiBtX3ByaXZhdGUtPmRuc0R1cmF0aW9uOworICAgIG1fcHJpdmF0ZS0+Y29u
bmVjdEVuZCA9IGVuZDsKIH0KIAotdm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRETlNEdXJhdGlv
bihkb3VibGUgZHVyYXRpb24pCitpbnQgV2ViVVJMTG9hZFRpbWluZzo6c2VuZFN0YXJ0KCkgY29u
c3QKIHsKLSAgICBtX3ByaXZhdGUtPmRuc0R1cmF0aW9uID0gZHVyYXRpb247CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+c2VuZFN0YXJ0OwogfQogCi1kb3VibGUgV2ViVVJMTG9hZFRpbWluZzo6Y29u
bmVjdER1cmF0aW9uKCkgY29uc3QKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U2VuZFN0YXJ0
KGludCBzdGFydCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jb25uZWN0RHVyYXRpb247Cisg
ICAgbV9wcml2YXRlLT5zZW5kU3RhcnQgPSBzdGFydDsKIH0KIAotdm9pZCBXZWJVUkxMb2FkVGlt
aW5nOjpzZXRDb25uZWN0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQoraW50IFdlYlVSTExvYWRU
aW1pbmc6OnNlbmRFbmQoKSBjb25zdAogewotICAgIG1fcHJpdmF0ZS0+Y29ubmVjdER1cmF0aW9u
ID0gZHVyYXRpb247CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2VuZEVuZDsKIH0KIAotZG91Ymxl
IFdlYlVSTExvYWRUaW1pbmc6OnNlbmREdXJhdGlvbigpIGNvbnN0Cit2b2lkIFdlYlVSTExvYWRU
aW1pbmc6OnNldFNlbmRFbmQoaW50IGVuZCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5zZW5k
RHVyYXRpb247CisgICAgbV9wcml2YXRlLT5zZW5kRW5kID0gZW5kOwogfQogCi12b2lkIFdlYlVS
TExvYWRUaW1pbmc6OnNldFNlbmREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCitpbnQgV2ViVVJM
TG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNTdGFydCgpIGNvbnN0CiB7Ci0gICAgbV9wcml2YXRl
LT5zZW5kRHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yZWNlaXZl
SGVhZGVyc1N0YXJ0OwogfQogCi1kb3VibGUgV2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRl
cnNEdXJhdGlvbigpIGNvbnN0Cit2b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFk
ZXJzU3RhcnQoaW50IHN0YXJ0KQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPnJlY2VpdmVIZWFk
ZXJzRHVyYXRpb247CisgICAgbV9wcml2YXRlLT5yZWNlaXZlSGVhZGVyc1N0YXJ0ID0gc3RhcnQ7
CiB9CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0UmVjZWl2ZUhlYWRlcnNEdXJhdGlvbihk
b3VibGUgZHVyYXRpb24pCitpbnQgV2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNFbmQo
KSBjb25zdAogewotICAgIG1fcHJpdmF0ZS0+cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbiA9IGR1cmF0
aW9uOworICAgIHJldHVybiBtX3ByaXZhdGUtPnJlY2VpdmVIZWFkZXJzRW5kOwogfQogCit2b2lk
IFdlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzRW5kKGludCBlbmQpCit7CisgICAg
bV9wcml2YXRlLT5yZWNlaXZlSGVhZGVyc0VuZCA9IGVuZDsKK30KKworaW50IFdlYlVSTExvYWRU
aW1pbmc6OnNzbFN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zc2xTdGFy
dDsKK30KKwordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRTU0xTdGFydChpbnQgc3RhcnQpCit7
CisgICAgbV9wcml2YXRlLT5zc2xTdGFydCA9IHN0YXJ0OworfQogCi1kb3VibGUgV2ViVVJMTG9h
ZFRpbWluZzo6c3NsRHVyYXRpb24oKSBjb25zdAoraW50IFdlYlVSTExvYWRUaW1pbmc6OnNzbEVu
ZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3NsRHVyYXRpb247CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c3NsRW5kOwogfQogCi12b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldFNT
TER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U1NM
RW5kKGludCBlbmQpCiB7Ci0gICAgbV9wcml2YXRlLT5zc2xEdXJhdGlvbiA9IGR1cmF0aW9uOwor
ICAgIG1fcHJpdmF0ZS0+c3NsRW5kID0gZW5kOwogfQogCiBXZWJVUkxMb2FkVGltaW5nOjpXZWJV
UkxMb2FkVGltaW5nKGNvbnN0IFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiYgdmFsdWUp
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwCmluZGV4IDYyYWJkMzcuLjJiN2Zh
Y2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwCkBAIC0yOTIsNiArMjky
LDE2IEBAIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIFdlYlVSTFJlc3BvbnNlOjp0b1Jlc291cmNl
UmVzcG9uc2UoKSBjb25zdAogICAgIHJldHVybiAqbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9u
c2U7CiB9CiAKK2Jvb2wgV2ViVVJMUmVzcG9uc2U6Ondhc0NhY2hlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT53YXNDYWNoZWQoKTsKK30KKwor
dm9pZCBXZWJVUkxSZXNwb25zZTo6c2V0V2FzQ2FjaGVkKGJvb2wgdmFsdWUpCit7CisgICAgbV9w
cml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPnNldFdhc0NhY2hlZCh2YWx1ZSk7Cit9CisKIGJv
b2wgV2ViVVJMUmVzcG9uc2U6Ondhc0ZldGNoZWRWaWFTUERZKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPndhc0ZldGNoZWRWaWFTUERZKCk7Cg==
</data>
<flag name="review"
          id="49228"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61269</attachid>
            <date>2010-07-12 14:14:44 -0700</date>
            <delta_ts>2010-07-12 17:56:36 -0700</delta_ts>
            <desc>[PATCH] For landing.</desc>
            <filename>for_landing</filename>
            <type>text/plain</type>
            <size>19944</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjQ2OGQwMi4uYjAxZWYzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMiAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGgg
UGVjb3Jhcm8uCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBzdGFydHMgYW5kIGVu
ZHMgZm9yIG5ldHdvcmsgcGhhc2VzIGluc3RlYWQgb2YgZHVyYXRpb24uCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDkxCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2U6OnVwZGF0ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjp1cGRhdGVTY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2U6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1p
bmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpS
ZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6
OlJlc291cmNlUmVzcG9uc2VCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2VCYXNlOjp3YXNDYWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJh
c2U6OnNldFdhc0NhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5oOgorCiAyMDEwLTA3LTEyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGlu
Z0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggYWRjNmJhZC4uOTFhNTdlMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAtMTMyLDE3ICsxMzIsMTEg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiAKICAgICBtX2Nvbm5lY3Rpb25JRCA9IHJlc3BvbnNlLmNvbm5l
Y3Rpb25JRCgpOwogICAgIG1fbG9hZFRpbWluZyA9IHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpOwotICAgIGlmIChtX2xvYWRUaW1pbmcgJiYgbV9sb2FkVGltaW5nLT5yZXF1ZXN0VGltZSkg
ewotICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgPSBtX2xvYWRUaW1pbmctPnJlcXVlc3RU
aW1lOwotICAgICAgIGlmIChtX2xvYWRUaW1pbmctPnByb3h5RHVyYXRpb24gIT0gLTEpCi0gICAg
ICAgICBtX3Jlc3BvbnNlUmVjZWl2ZWRUaW1lICs9IG1fbG9hZFRpbWluZy0+cHJveHlEdXJhdGlv
bjsKLSAgICAgICBpZiAobV9sb2FkVGltaW5nLT5kbnNEdXJhdGlvbiAhPSAtMSkKLSAgICAgICAg
IG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGltaW5nLT5kbnNEdXJhdGlvbjsKLSAg
ICAgICBpZiAobV9sb2FkVGltaW5nLT5jb25uZWN0RHVyYXRpb24gIT0gLTEpCi0gICAgICAgICBt
X3Jlc3BvbnNlUmVjZWl2ZWRUaW1lICs9IG1fbG9hZFRpbWluZy0+Y29ubmVjdER1cmF0aW9uOwot
ICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGltaW5nLT5zZW5kRHVyYXRp
b247Ci0gICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSArPSBtX2xvYWRUaW1pbmctPnJlY2Vp
dmVIZWFkZXJzRHVyYXRpb247Ci0gICAgfSBlbHNlCisgICAgbV9jYWNoZWQgPSByZXNwb25zZS53
YXNDYWNoZWQoKTsKKworICAgIGlmICghbV9jYWNoZWQgJiYgbV9sb2FkVGltaW5nICYmIG1fbG9h
ZFRpbWluZy0+cmVxdWVzdFRpbWUpCisgICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgPSBt
X2xvYWRUaW1pbmctPnJlcXVlc3RUaW1lICsgbV9sb2FkVGltaW5nLT5yZWNlaXZlSGVhZGVyc0Vu
ZCAvIDEwMDAuMDsKKyAgICBlbHNlCiAgICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgPSBj
dXJyZW50VGltZSgpOwogCiAgICAgbV9jaGFuZ2VzLnNldChUaW1pbmdDaGFuZ2UpOwpAQCAtMTc3
LDcgKzE3MSw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVNjcmlwdE9iamVjdChJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgICAgIGpzb25PYmplY3Quc2V0KCJyZXF1
ZXN0TWV0aG9kIiwgbV9yZXF1ZXN0TWV0aG9kKTsKICAgICAgICAganNvbk9iamVjdC5zZXQoInJl
cXVlc3RGb3JtRGF0YSIsIG1fcmVxdWVzdEZvcm1EYXRhKTsKICAgICAgICAganNvbk9iamVjdC5z
ZXQoImRpZFJlcXVlc3RDaGFuZ2UiLCB0cnVlKTsKLSAgICAgICAganNvbk9iamVjdC5zZXQoImNh
Y2hlZCIsIG1fY2FjaGVkKTsKICAgICB9CiAKICAgICBpZiAobV9jaGFuZ2VzLmhhc0NoYW5nZShS
ZXNwb25zZUNoYW5nZSkpIHsKQEAgLTE5MCw3ICsxODMsOCBAQCB2b2lkIEluc3BlY3RvclJlc291
cmNlOjp1cGRhdGVTY3JpcHRPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAg
ICAgICBwb3B1bGF0ZUhlYWRlcnNPYmplY3QoJnJlc3BvbnNlSGVhZGVycywgbV9yZXNwb25zZUhl
YWRlckZpZWxkcyk7CiAgICAgICAgIGpzb25PYmplY3Quc2V0KCJyZXNwb25zZUhlYWRlcnMiLCBy
ZXNwb25zZUhlYWRlcnMpOwogICAgICAgICBqc29uT2JqZWN0LnNldCgiY29ubmVjdGlvbklEIiwg
bV9jb25uZWN0aW9uSUQpOwotICAgICAgICBpZiAobV9sb2FkVGltaW5nKQorICAgICAgICBqc29u
T2JqZWN0LnNldCgiY2FjaGVkIiwgbV9jYWNoZWQpOworICAgICAgICBpZiAobV9sb2FkVGltaW5n
ICYmICFtX2NhY2hlZCkKICAgICAgICAgICAgIGpzb25PYmplY3Quc2V0KCJ0aW1pbmciLCBidWls
ZE9iamVjdEZvclRpbWluZyhmcm9udGVuZCwgbV9sb2FkVGltaW5nLmdldCgpKSk7CiAgICAgICAg
IGpzb25PYmplY3Quc2V0KCJkaWRSZXNwb25zZUNoYW5nZSIsIHRydWUpOwogICAgIH0KQEAgLTM5
NywxMiArMzkxLDEyIEBAIFNjcmlwdE9iamVjdCBJbnNwZWN0b3JSZXNvdXJjZTo6YnVpbGRPYmpl
Y3RGb3JUaW1pbmcoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kCiB7CiAgICAgU2NyaXB0T2Jq
ZWN0IGpzb25PYmplY3QgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7CiAgICAganNvbk9i
amVjdC5zZXQoInJlcXVlc3RUaW1lIiwgdGltaW5nLT5yZXF1ZXN0VGltZSk7Ci0gICAganNvbk9i
amVjdC5zZXQoInByb3h5RHVyYXRpb24iLCB0aW1pbmctPnByb3h5RHVyYXRpb24pOwotICAgIGpz
b25PYmplY3Quc2V0KCJkbnNEdXJhdGlvbiIsIHRpbWluZy0+ZG5zRHVyYXRpb24pOwotICAgIGpz
b25PYmplY3Quc2V0KCJjb25uZWN0RHVyYXRpb24iLCB0aW1pbmctPmNvbm5lY3REdXJhdGlvbik7
Ci0gICAganNvbk9iamVjdC5zZXQoInNlbmREdXJhdGlvbiIsIHRpbWluZy0+c2VuZER1cmF0aW9u
KTsKLSAgICBqc29uT2JqZWN0LnNldCgicmVjZWl2ZUhlYWRlcnNEdXJhdGlvbiIsIHRpbWluZy0+
cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbik7Ci0gICAganNvbk9iamVjdC5zZXQoInNzbER1cmF0aW9u
IiwgdGltaW5nLT5zc2xEdXJhdGlvbik7CisgICAganNvbk9iamVjdC5zZXQoInByb3h5RHVyYXRp
b24iLCB0aW1pbmctPnByb3h5U3RhcnQgPT0gLTEgPyAtMSA6ICh0aW1pbmctPnByb3h5RW5kIC0g
dGltaW5nLT5wcm94eVN0YXJ0KSAvIDEwMDAuMCk7CisgICAganNvbk9iamVjdC5zZXQoImRuc0R1
cmF0aW9uIiwgdGltaW5nLT5kbnNTdGFydCA9PSAtMSA/IC0xIDogKHRpbWluZy0+ZG5zRW5kIC0g
dGltaW5nLT5kbnNTdGFydCkgLyAxMDAwLjApOworICAgIGpzb25PYmplY3Quc2V0KCJjb25uZWN0
RHVyYXRpb24iLCB0aW1pbmctPmNvbm5lY3RTdGFydCA9PSAtMSA/IC0xIDogKHRpbWluZy0+Y29u
bmVjdEVuZCAtIHRpbWluZy0+Y29ubmVjdFN0YXJ0KSAvIDEwMDAuMCk7CisgICAganNvbk9iamVj
dC5zZXQoInNlbmREdXJhdGlvbiIsICh0aW1pbmctPnNlbmRFbmQgLSB0aW1pbmctPnNlbmRTdGFy
dCkgLyAxMDAwLjApOworICAgIGpzb25PYmplY3Quc2V0KCJ3YWl0RHVyYXRpb24iLCAodGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCAtIHRpbWluZy0+c2VuZEVuZCkgIC8gMTAwMC4wKTsKKyAgICBq
c29uT2JqZWN0LnNldCgic3NsRHVyYXRpb24iLCAodGltaW5nLT5zc2xFbmQgLSB0aW1pbmctPnNz
bFN0YXJ0KSAvIDEwMDAuMCk7CiAgICAgcmV0dXJuIGpzb25PYmplY3Q7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBiY2ZkOTdkLi44
YWYxNTA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVs
LmpzCkBAIC03NTYsNyArNzU2LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJETlMg
TG9va3VwIiksIHJlc291cmNlLnRpbWluZy5kbnNEdXJhdGlvbiA9PSAtMSA/IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiKHJldXNlZCkiKSA6IE51bWJlci5zZWNvbmRzVG9TdHJpbmcocmVzb3VyY2Uu
dGltaW5nLmRuc0R1cmF0aW9uKSwKICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJDb25uZWN0aW5nIiksIHJlc291cmNlLnRpbWluZy5jb25uZWN0RHVyYXRpb24gPT0g
LTEgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihyZXVzZWQpIikgOiBOdW1iZXIuc2Vjb25kc1Rv
U3RyaW5nKHJlc291cmNlLnRpbWluZy5jb25uZWN0RHVyYXRpb24pLAogICAgICAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlbmRpbmciKSwgTnVtYmVyLnNlY29uZHNUb1N0
cmluZyhyZXNvdXJjZS50aW1pbmcuc2VuZER1cmF0aW9uKSwKLSAgICAgICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXYWl0aW5nIiksIE51bWJlci5zZWNvbmRzVG9TdHJpbmco
cmVzb3VyY2UudGltaW5nLnJlY2VpdmVIZWFkZXJzRHVyYXRpb24pLAorICAgICAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldhaXRpbmciKSwgTnVtYmVyLnNlY29uZHNUb1N0
cmluZyhyZXNvdXJjZS50aW1pbmcud2FpdER1cmF0aW9uKSwKICAgICAgICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNlaXZpbmciKSwgTnVtYmVyLnNlY29uZHNUb1N0cmlu
ZyhyZXNvdXJjZS5lbmRUaW1lIC0gcmVzb3VyY2UucmVzcG9uc2VSZWNlaXZlZFRpbWUpXTsKIAog
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICs9IDIpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAppbmRleCA2M2I0NWRh
Li4yNjlmYWQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5oCkBAIC00MywyNCArNDMsMzQgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgUmVmUHRy
PFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7CiAgICAgICAgIHRpbWluZy0+
cmVxdWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGltaW5nLT5wcm94eUR1cmF0aW9u
ID0gcHJveHlEdXJhdGlvbjsKLSAgICAgICAgdGltaW5nLT5kbnNEdXJhdGlvbiA9IGRuc0R1cmF0
aW9uOwotICAgICAgICB0aW1pbmctPmNvbm5lY3REdXJhdGlvbiA9IGNvbm5lY3REdXJhdGlvbjsK
LSAgICAgICAgdGltaW5nLT5zZW5kRHVyYXRpb24gPSBzZW5kRHVyYXRpb247Ci0gICAgICAgIHRp
bWluZy0+cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbiA9IHJlY2VpdmVIZWFkZXJzRHVyYXRpb247Ci0g
ICAgICAgIHRpbWluZy0+c3NsRHVyYXRpb24gPSBzc2xEdXJhdGlvbjsKKyAgICAgICAgdGltaW5n
LT5wcm94eVN0YXJ0ID0gcHJveHlTdGFydDsKKyAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHBy
b3h5RW5kOworICAgICAgICB0aW1pbmctPmRuc1N0YXJ0ID0gZG5zU3RhcnQ7CisgICAgICAgIHRp
bWluZy0+ZG5zRW5kID0gZG5zRW5kOworICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNv
bm5lY3RTdGFydDsKKyAgICAgICAgdGltaW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKKyAg
ICAgICAgdGltaW5nLT5zZW5kU3RhcnQgPSBzZW5kU3RhcnQ7CisgICAgICAgIHRpbWluZy0+c2Vu
ZEVuZCA9IHNlbmRFbmQ7CisgICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNl
aXZlSGVhZGVyc0VuZDsKKyAgICAgICAgdGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OworICAg
ICAgICB0aW1pbmctPnNzbEVuZCA9IHNzbEVuZDsKICAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxl
YXNlKCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRp
bWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0g
b3RoZXIucmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5RHVyYXRpb24gPT0gb3RoZXIu
cHJveHlEdXJhdGlvbgotICAgICAgICAgICAgJiYgZG5zRHVyYXRpb24gPT0gb3RoZXIuZG5zRHVy
YXRpb24KLSAgICAgICAgICAgICYmIGNvbm5lY3REdXJhdGlvbiA9PSBvdGhlci5jb25uZWN0RHVy
YXRpb24KLSAgICAgICAgICAgICYmIHNlbmREdXJhdGlvbiA9PSBvdGhlci5zZW5kRHVyYXRpb24K
LSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRHVyYXRpb24gPT0gb3RoZXIucmVjZWl2ZUhl
YWRlcnNEdXJhdGlvbgotICAgICAgICAgICAgJiYgc3NsRHVyYXRpb24gPT0gb3RoZXIuc3NsRHVy
YXRpb247CisgICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3RhcnQKKyAg
ICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCisgICAgICAgICAgICAmJiBk
bnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAorICAgICAgICAgICAgJiYgZG5zRW5kID09IG90aGVy
LmRuc0VuZAorICAgICAgICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFy
dAorICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCisgICAgICAg
ICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0YXJ0CisgICAgICAgICAgICAmJiBzZW5k
RW5kID09IG90aGVyLnNlbmRFbmQKKyAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09
IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCisgICAgICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhl
ci5zc2xTdGFydAorICAgICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsKICAgICB9
CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikg
Y29uc3QKQEAgLTY5LDIyICs3OSwzMiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgZG91YmxlIHJl
cXVlc3RUaW1lOwotICAgIGRvdWJsZSBwcm94eUR1cmF0aW9uOwotICAgIGRvdWJsZSBkbnNEdXJh
dGlvbjsKLSAgICBkb3VibGUgY29ubmVjdER1cmF0aW9uOwotICAgIGRvdWJsZSBzZW5kRHVyYXRp
b247Ci0gICAgZG91YmxlIHJlY2VpdmVIZWFkZXJzRHVyYXRpb247Ci0gICAgZG91YmxlIHNzbER1
cmF0aW9uOworICAgIGludCBwcm94eVN0YXJ0OworICAgIGludCBwcm94eUVuZDsKKyAgICBpbnQg
ZG5zU3RhcnQ7CisgICAgaW50IGRuc0VuZDsKKyAgICBpbnQgY29ubmVjdFN0YXJ0OworICAgIGlu
dCBjb25uZWN0RW5kOworICAgIGludCBzZW5kU3RhcnQ7CisgICAgaW50IHNlbmRFbmQ7CisgICAg
aW50IHJlY2VpdmVIZWFkZXJzRW5kOworICAgIGludCBzc2xTdGFydDsKKyAgICBpbnQgc3NsRW5k
OwogCiBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZFRpbWluZygpCi0gICAgICAgIDogcmVxdWVz
dFRpbWUoMC4wKQotICAgICAgICAsIHByb3h5RHVyYXRpb24oLTEuMCkKLSAgICAgICAgLCBkbnNE
dXJhdGlvbigtMS4wKQotICAgICAgICAsIGNvbm5lY3REdXJhdGlvbigtMS4wKQotICAgICAgICAs
IHNlbmREdXJhdGlvbigwLjApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNEdXJhdGlvbigwLjAp
Ci0gICAgICAgICwgc3NsRHVyYXRpb24oLTEuMCkKKyAgICAgICAgOiByZXF1ZXN0VGltZSgwKQor
ICAgICAgICAsIHByb3h5U3RhcnQoLTEpCisgICAgICAgICwgcHJveHlFbmQoLTEpCisgICAgICAg
ICwgZG5zU3RhcnQoLTEpCisgICAgICAgICwgZG5zRW5kKC0xKQorICAgICAgICAsIGNvbm5lY3RT
dGFydCgtMSkKKyAgICAgICAgLCBjb25uZWN0RW5kKC0xKQorICAgICAgICAsIHNlbmRTdGFydCgw
KQorICAgICAgICAsIHNlbmRFbmQoMCkKKyAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQor
ICAgICAgICAsIHNzbFN0YXJ0KC0xKQorICAgICAgICAsIHNzbEVuZCgtMSkKICAgICB7CiAgICAg
fQogfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuY3BwCmluZGV4IGEzYjFiZTguLjg5ZDMxZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtNDMsNiArNDMsOCBAQCBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSZXNwb25zZUJhc2UoKQogICAgIDogbV9leHBlY3Rl
ZENvbnRlbnRMZW5ndGgoMCkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKICAgICAsIG1fbGFz
dE1vZGlmaWVkRGF0ZSgwKQorICAgICwgbV93YXNDYWNoZWQoZmFsc2UpCisgICAgLCBtX2Nvbm5l
Y3Rpb25JRCgwKQogICAgICwgbV9pc051bGwodHJ1ZSkKICAgICAsIG1faGF2ZVBhcnNlZENhY2hl
Q29udHJvbEhlYWRlcihmYWxzZSkKICAgICAsIG1faGF2ZVBhcnNlZEFnZUhlYWRlcihmYWxzZSkK
QEAgLTY4LDYgKzcwLDggQEAgUmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VC
YXNlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHkKICAgICAsIG1fc3VnZ2Vz
dGVkRmlsZW5hbWUoZmlsZW5hbWUpCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCiAgICAgLCBt
X2xhc3RNb2RpZmllZERhdGUoMCkKKyAgICAsIG1fd2FzQ2FjaGVkKGZhbHNlKQorICAgICwgbV9j
b25uZWN0aW9uSUQoMCkKICAgICAsIG1faXNOdWxsKGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2Vk
Q2FjaGVDb250cm9sSGVhZGVyKGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2VkQWdlSGVhZGVyKGZh
bHNlKQpAQCAtNDU1LDYgKzQ1OSwxOCBAQCB0aW1lX3QgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxh
c3RNb2RpZmllZERhdGUoKSBjb25zdAogICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGU7CiB9
CiAKK2Jvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6Ondhc0NhY2hlZCgpIGNvbnN0Cit7CisgICAg
bGF6eUluaXQoKTsKKworICAgIHJldHVybiBtX3dhc0NhY2hlZDsKK30KKwordm9pZCBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6c2V0V2FzQ2FjaGVkKGJvb2wgdmFsdWUpCit7CisgICAgbV93YXNDYWNo
ZWQgPSB2YWx1ZTsKK30KKwogdW5zaWduZWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvbm5lY3Rp
b25JRCgpIGNvbnN0CiB7CiAgICAgbGF6eUluaXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXggMWIxNzhkNC4uODU4YTYxMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAg
LTEwMCw2ICsxMDAsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY29ubmVjdGlvbklEKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRDb25uZWN0aW9uSUQodW5zaWduZWQpOwogCisgICAgYm9vbCB3YXND
YWNoZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFdhc0NhY2hlZChib29sKTsKKwogICAgIFJlc291
cmNlTG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRS
ZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+KTsKIApAQCAt
MTMzLDYgKzEzNiw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9odHRwU3RhdHVzVGV4dDsK
ICAgICBIVFRQSGVhZGVyTWFwIG1faHR0cEhlYWRlckZpZWxkczsKICAgICB0aW1lX3QgbV9sYXN0
TW9kaWZpZWREYXRlOworICAgIGJvb2wgbV93YXNDYWNoZWQ7CiAgICAgdW5zaWduZWQgbV9jb25u
ZWN0aW9uSUQ7CiAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gbV9yZXNvdXJjZUxvYWRU
aW1pbmc7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjYTdiNjkuLjJjMDg3NWQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDEwLTA3LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5ICBSZXZpZXdlZCBieSBKb3NlcGggUGVj
b3Jhcm8uCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBzdGFydHMgYW5kIGVuZHMg
Zm9yIG5ldHdvcmsgcGhhc2VzIGluc3RlYWQgb2YgZHVyYXRpb24uCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDkxCisKKyAgICAgICAgKiBwdWJs
aWMvV2ViVVJMTG9hZFRpbWluZy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxSZXNwb25zZS5o
OgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMTG9hZFRpbWluZzo6cHJveHlTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExv
YWRUaW1pbmc6OnNldFByb3h5U3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGlt
aW5nOjpwcm94eUVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFBy
b3h5RW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6ZG5zU3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRETlNTdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OmRuc0VuZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTExvYWRUaW1pbmc6OnNldEROU0VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRU
aW1pbmc6OmNvbm5lY3RTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6
OnNldENvbm5lY3RTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OmNv
bm5lY3RFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRDb25uZWN0
RW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2VuZFN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2V0U2VuZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2VuZEVuZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTExvYWRUaW1pbmc6OnNldFNlbmRFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2Fk
VGltaW5nOjpyZWNlaXZlSGVhZGVyc1N0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9h
ZFRpbWluZzo6c2V0UmVjZWl2ZUhlYWRlcnNTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TExvYWRUaW1pbmc6OnJlY2VpdmVIZWFkZXJzRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJM
TG9hZFRpbWluZzo6c2V0UmVjZWl2ZUhlYWRlcnNFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxMb2FkVGltaW5nOjpzc2xTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1p
bmc6OnNldFNTTFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c3Ns
RW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2V0U1NMRW5kKToKKyAg
ICAgICAgKiBzcmMvV2ViVVJMUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxS
ZXNwb25zZTo6d2FzQ2FjaGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnNl
dFdhc0NhY2hlZCk6CisKIDIwMTAtMDctMTIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmggYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaAppbmRleCA3ZWI1NjM2Li45NDEy
ZDE0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaApAQCAtNjAs
MjMgKzYwLDM4IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIGRvdWJsZSByZXF1ZXN0VGltZSgp
IGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXF1ZXN0VGltZShkb3VibGUgdGltZSk7
CiAKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSBwcm94eUR1cmF0aW9uKCkgY29uc3Q7Ci0gICAgV0VC
S0lUX0FQSSB2b2lkIHNldFByb3h5RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyAgICBXRUJL
SVRfQVBJIGludCBwcm94eVN0YXJ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFBy
b3h5U3RhcnQoaW50IHN0YXJ0KTsKIAotICAgIFdFQktJVF9BUEkgZG91YmxlIGRuc0R1cmF0aW9u
KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldEROU0R1cmF0aW9uKGRvdWJsZSBkdXJh
dGlvbik7CisgICAgV0VCS0lUX0FQSSBpbnQgcHJveHlFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0UHJveHlFbmQoaW50IGVuZCk7CiAKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSBj
b25uZWN0RHVyYXRpb24oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0Q29ubmVjdER1
cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7CisgICAgV0VCS0lUX0FQSSBpbnQgZG5zU3RhcnQoKSBj
b25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RE5TU3RhcnQoaW50IHN0YXJ0KTsKIAotICAg
IFdFQktJVF9BUEkgZG91YmxlIHNlbmREdXJhdGlvbigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkg
dm9pZCBzZXRTZW5kRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyAgICBXRUJLSVRfQVBJIGlu
dCBkbnNFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RE5TRW5kKGludCBlbmQp
OwogCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgcmVjZWl2ZUhlYWRlcnNEdXJhdGlvbigpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZWNlaXZlSGVhZGVyc0R1cmF0aW9uKGRvdWJsZSBk
dXJhdGlvbik7CisgICAgV0VCS0lUX0FQSSBpbnQgY29ubmVjdFN0YXJ0KCkgY29uc3Q7CisgICAg
V0VCS0lUX0FQSSB2b2lkIHNldENvbm5lY3RTdGFydChpbnQgc3RhcnQpOwogCi0gICAgV0VCS0lU
X0FQSSBkb3VibGUgc3NsRHVyYXRpb24oKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
U1NMRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyAgICBXRUJLSVRfQVBJIGludCBjb25uZWN0
RW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldENvbm5lY3RFbmQoaW50IGVuZCk7
CisKKyAgICBXRUJLSVRfQVBJIGludCBzZW5kU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJ
IHZvaWQgc2V0U2VuZFN0YXJ0KGludCBzdGFydCk7CisKKyAgICBXRUJLSVRfQVBJIGludCBzZW5k
RW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFNlbmRFbmQoaW50IGVuZCk7CisK
KyAgICBXRUJLSVRfQVBJIGludCByZWNlaXZlSGVhZGVyc0VuZCgpIGNvbnN0OworICAgIFdFQktJ
VF9BUEkgdm9pZCBzZXRSZWNlaXZlSGVhZGVyc0VuZChpbnQgZW5kKTsKKworICAgIFdFQktJVF9B
UEkgaW50IHNzbFN0YXJ0KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFNTTFN0YXJ0
KGludCBzdGFydCk7CisKKyAgICBXRUJLSVRfQVBJIGludCBzc2xFbmQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0U1NMRW5kKGludCBlbmQpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCiAgICAgV2ViVVJMTG9hZFRpbWluZyhjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6UmVzb3VyY2VMb2FkVGltaW5nPiYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJVUkxSZXNwb25zZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNw
b25zZS5oCmluZGV4IGJiNWMxMmIuLjJhYTYwM2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlc3BvbnNlLmgKQEAgLTEyOCw2ICsxMjgsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHRvUmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0OwogI2Vu
ZGlmCiAKKyAgICAvLyBGbGFnIHdoZXRoZXIgdGhpcyByZXF1ZXN0IHdhcyBzZXJ2ZWQgZnJvbSB0
aGUgZGlzayBjYWNoZSBlbnRyeS4KKyAgICBXRUJLSVRfQVBJIGJvb2wgd2FzQ2FjaGVkKCkgY29u
c3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFdhc0NhY2hlZChib29sKTsKKwogICAgIC8vIEZs
YWcgd2hldGhlciB0aGlzIHJlcXVlc3Qgd2FzIGxvYWRlZCB2aWEgdGhlIFNQRFkgcHJvdG9jb2wg
b3Igbm90LgogICAgIC8vIFNQRFkgaXMgYW4gZXhwZXJpbWVudGFsIHdlYiBwcm90b2NvbCwgc2Vl
IGh0dHA6Ly9kZXYuY2hyb21pdW0ub3JnL3NwZHkKICAgICBXRUJLSVRfQVBJIGJvb2wgd2FzRmV0
Y2hlZFZpYVNQRFkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
VVJMTG9hZFRpbWluZy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTExvYWRUaW1pbmcu
Y3BwCmluZGV4IDliNWQzZjUuLjI3ZWQzNjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVVJMTG9hZFRpbWluZy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxM
b2FkVGltaW5nLmNwcApAQCAtNjMsNjQgKzYzLDExNCBAQCB2b2lkIFdlYlVSTExvYWRUaW1pbmc6
OnNldFJlcXVlc3RUaW1lKGRvdWJsZSB0aW1lKQogICAgIG1fcHJpdmF0ZS0+cmVxdWVzdFRpbWUg
PSB0aW1lOwogfQogCi1kb3VibGUgV2ViVVJMTG9hZFRpbWluZzo6cHJveHlEdXJhdGlvbigpIGNv
bnN0CitpbnQgV2ViVVJMTG9hZFRpbWluZzo6cHJveHlTdGFydCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fcHJpdmF0ZS0+cHJveHlEdXJhdGlvbjsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wcm94
eVN0YXJ0OwogfQogCi12b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldFByb3h5RHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRQcm94eVN0YXJ0KGludCBz
dGFydCkKIHsKLSAgICBtX3ByaXZhdGUtPnByb3h5RHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBt
X3ByaXZhdGUtPnByb3h5U3RhcnQgPSBzdGFydDsKIH0KLWRvdWJsZSBXZWJVUkxMb2FkVGltaW5n
OjpkbnNEdXJhdGlvbigpIGNvbnN0CisKK2ludCBXZWJVUkxMb2FkVGltaW5nOjpwcm94eUVuZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cHJveHlFbmQ7Cit9CisKK3ZvaWQgV2Vi
VVJMTG9hZFRpbWluZzo6c2V0UHJveHlFbmQoaW50IGVuZCkKK3sKKyAgICBtX3ByaXZhdGUtPnBy
b3h5RW5kID0gZW5kOworfQorCitpbnQgV2ViVVJMTG9hZFRpbWluZzo6ZG5zU3RhcnQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmRuc1N0YXJ0OworfQorCit2b2lkIFdlYlVSTExv
YWRUaW1pbmc6OnNldEROU1N0YXJ0KGludCBzdGFydCkKK3sKKyAgICBtX3ByaXZhdGUtPmRuc1N0
YXJ0ID0gc3RhcnQ7Cit9CisKK2ludCBXZWJVUkxMb2FkVGltaW5nOjpkbnNFbmQoKSBjb25zdAor
eworICAgIHJldHVybiBtX3ByaXZhdGUtPmRuc0VuZDsKK30KKwordm9pZCBXZWJVUkxMb2FkVGlt
aW5nOjpzZXRETlNFbmQoaW50IGVuZCkKK3sKKyAgICBtX3ByaXZhdGUtPmRuc0VuZCA9IGVuZDsK
K30KKworaW50IFdlYlVSTExvYWRUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS0+ZG5zRHVyYXRpb247CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29u
bmVjdFN0YXJ0OwogfQogCi12b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldEROU0R1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbikKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0Q29ubmVjdFN0YXJ0KGlu
dCBzdGFydCkKIHsKLSAgICBtX3ByaXZhdGUtPmRuc0R1cmF0aW9uID0gZHVyYXRpb247CisgICAg
bV9wcml2YXRlLT5jb25uZWN0U3RhcnQgPSBzdGFydDsKIH0KIAotZG91YmxlIFdlYlVSTExvYWRU
aW1pbmc6OmNvbm5lY3REdXJhdGlvbigpIGNvbnN0CitpbnQgV2ViVVJMTG9hZFRpbWluZzo6Y29u
bmVjdEVuZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29ubmVjdER1cmF0aW9u
OworICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbm5lY3RFbmQ7CiB9CiAKLXZvaWQgV2ViVVJMTG9h
ZFRpbWluZzo6c2V0Q29ubmVjdER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKK3ZvaWQgV2ViVVJM
TG9hZFRpbWluZzo6c2V0Q29ubmVjdEVuZChpbnQgZW5kKQogewotICAgIG1fcHJpdmF0ZS0+Y29u
bmVjdER1cmF0aW9uID0gZHVyYXRpb247CisgICAgbV9wcml2YXRlLT5jb25uZWN0RW5kID0gZW5k
OwogfQogCi1kb3VibGUgV2ViVVJMTG9hZFRpbWluZzo6c2VuZER1cmF0aW9uKCkgY29uc3QKK2lu
dCBXZWJVUkxMb2FkVGltaW5nOjpzZW5kU3RhcnQoKSBjb25zdAogewotICAgIHJldHVybiBtX3By
aXZhdGUtPnNlbmREdXJhdGlvbjsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zZW5kU3RhcnQ7CiB9
CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U2VuZER1cmF0aW9uKGRvdWJsZSBkdXJhdGlv
bikKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U2VuZFN0YXJ0KGludCBzdGFydCkKIHsKLSAg
ICBtX3ByaXZhdGUtPnNlbmREdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIG1fcHJpdmF0ZS0+c2Vu
ZFN0YXJ0ID0gc3RhcnQ7CiB9CiAKLWRvdWJsZSBXZWJVUkxMb2FkVGltaW5nOjpyZWNlaXZlSGVh
ZGVyc0R1cmF0aW9uKCkgY29uc3QKK2ludCBXZWJVUkxMb2FkVGltaW5nOjpzZW5kRW5kKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5yZWNlaXZlSGVhZGVyc0R1cmF0aW9uOworICAg
IHJldHVybiBtX3ByaXZhdGUtPnNlbmRFbmQ7CiB9CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6
c2V0UmVjZWl2ZUhlYWRlcnNEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit2b2lkIFdlYlVSTExv
YWRUaW1pbmc6OnNldFNlbmRFbmQoaW50IGVuZCkKIHsKLSAgICBtX3ByaXZhdGUtPnJlY2VpdmVI
ZWFkZXJzRHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBtX3ByaXZhdGUtPnNlbmRFbmQgPSBlbmQ7
CiB9CiAKK2ludCBXZWJVUkxMb2FkVGltaW5nOjpyZWNlaXZlSGVhZGVyc0VuZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmVjZWl2ZUhlYWRlcnNFbmQ7Cit9CisKK3ZvaWQgV2Vi
VVJMTG9hZFRpbWluZzo6c2V0UmVjZWl2ZUhlYWRlcnNFbmQoaW50IGVuZCkKK3sKKyAgICBtX3By
aXZhdGUtPnJlY2VpdmVIZWFkZXJzRW5kID0gZW5kOworfQorCitpbnQgV2ViVVJMTG9hZFRpbWlu
Zzo6c3NsU3RhcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnNzbFN0YXJ0Owor
fQorCit2b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldFNTTFN0YXJ0KGludCBzdGFydCkKK3sKKyAg
ICBtX3ByaXZhdGUtPnNzbFN0YXJ0ID0gc3RhcnQ7Cit9CiAKLWRvdWJsZSBXZWJVUkxMb2FkVGlt
aW5nOjpzc2xEdXJhdGlvbigpIGNvbnN0CitpbnQgV2ViVVJMTG9hZFRpbWluZzo6c3NsRW5kKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5zc2xEdXJhdGlvbjsKKyAgICByZXR1cm4g
bV9wcml2YXRlLT5zc2xFbmQ7CiB9CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U1NMRHVy
YXRpb24oZG91YmxlIGR1cmF0aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRTU0xFbmQo
aW50IGVuZCkKIHsKLSAgICBtX3ByaXZhdGUtPnNzbER1cmF0aW9uID0gZHVyYXRpb247CisgICAg
bV9wcml2YXRlLT5zc2xFbmQgPSBlbmQ7CiB9CiAKIFdlYlVSTExvYWRUaW1pbmc6OldlYlVSTExv
YWRUaW1pbmcoY29uc3QgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+JiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKaW5kZXggNjJhYmQzNy4uMmI3ZmFjYyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKQEAgLTI5Miw2ICsyOTIsMTYg
QEAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgV2ViVVJMUmVzcG9uc2U6OnRvUmVzb3VyY2VSZXNw
b25zZSgpIGNvbnN0CiAgICAgcmV0dXJuICptX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZTsK
IH0KIAorYm9vbCBXZWJVUkxSZXNwb25zZTo6d2FzQ2FjaGVkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPndhc0NhY2hlZCgpOworfQorCit2b2lk
IFdlYlVSTFJlc3BvbnNlOjpzZXRXYXNDYWNoZWQoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3ByaXZh
dGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0V2FzQ2FjaGVkKHZhbHVlKTsKK30KKwogYm9vbCBX
ZWJVUkxSZXNwb25zZTo6d2FzRmV0Y2hlZFZpYVNQRFkoKSBjb25zdAogewogICAgIHJldHVybiBt
X3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+d2FzRmV0Y2hlZFZpYVNQRFkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61303</attachid>
            <date>2010-07-12 17:56:41 -0700</date>
            <delta_ts>2010-07-12 21:04:35 -0700</delta_ts>
            <desc>Fix Reviewed by line in WebKit/chromium/ChangeLog</desc>
            <filename>bug-42091-20100712175638.patch</filename>
            <type>text/plain</type>
            <size>20654</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDI0YWY1MDFlM2I3MDEwNDk2MDE2M2FiNTA4MzhmZDRmMjRkN2RlMi4uYzg2ODVkODFlYzU5Y2Uw
NThmMjFkNDQyNTc4MGJjOTViODlhZjExZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMiAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBzdGFy
dHMgYW5kIGVuZHMgZm9yIG5ldHdvcmsgcGhhc2VzIGluc3RlYWQgb2YgZHVyYXRpb24uCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDkxCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlc291cmNlOjp1cGRhdGVTY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUmVzb3VyY2U6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2VCYXNlOjp3YXNDYWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZUJhc2U6OnNldFdhc0NhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorCiAyMDEwLTA3LTEyICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggYWRjNmJhZDlmNzI3MTA0
NTAzMjhkYmVjZGE4YmZiZGQzMGRkYjEyNy4uOTFhNTdlMGZlOWEyZWE5MGQyZGU5NjZhZjNiYTcy
NmNmNGNjOGZjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2UuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAt
MTMyLDE3ICsxMzIsMTEgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKICAgICBtX2Nvbm5lY3Rpb25JRCA9
IHJlc3BvbnNlLmNvbm5lY3Rpb25JRCgpOwogICAgIG1fbG9hZFRpbWluZyA9IHJlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpOwotICAgIGlmIChtX2xvYWRUaW1pbmcgJiYgbV9sb2FkVGltaW5n
LT5yZXF1ZXN0VGltZSkgewotICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgPSBtX2xvYWRU
aW1pbmctPnJlcXVlc3RUaW1lOwotICAgICAgIGlmIChtX2xvYWRUaW1pbmctPnByb3h5RHVyYXRp
b24gIT0gLTEpCi0gICAgICAgICBtX3Jlc3BvbnNlUmVjZWl2ZWRUaW1lICs9IG1fbG9hZFRpbWlu
Zy0+cHJveHlEdXJhdGlvbjsKLSAgICAgICBpZiAobV9sb2FkVGltaW5nLT5kbnNEdXJhdGlvbiAh
PSAtMSkKLSAgICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGltaW5nLT5k
bnNEdXJhdGlvbjsKLSAgICAgICBpZiAobV9sb2FkVGltaW5nLT5jb25uZWN0RHVyYXRpb24gIT0g
LTEpCi0gICAgICAgICBtX3Jlc3BvbnNlUmVjZWl2ZWRUaW1lICs9IG1fbG9hZFRpbWluZy0+Y29u
bmVjdER1cmF0aW9uOwotICAgICAgIG1fcmVzcG9uc2VSZWNlaXZlZFRpbWUgKz0gbV9sb2FkVGlt
aW5nLT5zZW5kRHVyYXRpb247Ci0gICAgICAgbV9yZXNwb25zZVJlY2VpdmVkVGltZSArPSBtX2xv
YWRUaW1pbmctPnJlY2VpdmVIZWFkZXJzRHVyYXRpb247Ci0gICAgfSBlbHNlCisgICAgbV9jYWNo
ZWQgPSByZXNwb25zZS53YXNDYWNoZWQoKTsKKworICAgIGlmICghbV9jYWNoZWQgJiYgbV9sb2Fk
VGltaW5nICYmIG1fbG9hZFRpbWluZy0+cmVxdWVzdFRpbWUpCisgICAgICAgIG1fcmVzcG9uc2VS
ZWNlaXZlZFRpbWUgPSBtX2xvYWRUaW1pbmctPnJlcXVlc3RUaW1lICsgbV9sb2FkVGltaW5nLT5y
ZWNlaXZlSGVhZGVyc0VuZCAvIDEwMDAuMDsKKyAgICBlbHNlCiAgICAgICAgIG1fcmVzcG9uc2VS
ZWNlaXZlZFRpbWUgPSBjdXJyZW50VGltZSgpOwogCiAgICAgbV9jaGFuZ2VzLnNldChUaW1pbmdD
aGFuZ2UpOwpAQCAtMTc3LDcgKzE3MSw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnVwZGF0
ZVNjcmlwdE9iamVjdChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgICAgIGpzb25P
YmplY3Quc2V0KCJyZXF1ZXN0TWV0aG9kIiwgbV9yZXF1ZXN0TWV0aG9kKTsKICAgICAgICAganNv
bk9iamVjdC5zZXQoInJlcXVlc3RGb3JtRGF0YSIsIG1fcmVxdWVzdEZvcm1EYXRhKTsKICAgICAg
ICAganNvbk9iamVjdC5zZXQoImRpZFJlcXVlc3RDaGFuZ2UiLCB0cnVlKTsKLSAgICAgICAganNv
bk9iamVjdC5zZXQoImNhY2hlZCIsIG1fY2FjaGVkKTsKICAgICB9CiAKICAgICBpZiAobV9jaGFu
Z2VzLmhhc0NoYW5nZShSZXNwb25zZUNoYW5nZSkpIHsKQEAgLTE5MCw3ICsxODMsOCBAQCB2b2lk
IEluc3BlY3RvclJlc291cmNlOjp1cGRhdGVTY3JpcHRPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kKQogICAgICAgICBwb3B1bGF0ZUhlYWRlcnNPYmplY3QoJnJlc3BvbnNlSGVhZGVy
cywgbV9yZXNwb25zZUhlYWRlckZpZWxkcyk7CiAgICAgICAgIGpzb25PYmplY3Quc2V0KCJyZXNw
b25zZUhlYWRlcnMiLCByZXNwb25zZUhlYWRlcnMpOwogICAgICAgICBqc29uT2JqZWN0LnNldCgi
Y29ubmVjdGlvbklEIiwgbV9jb25uZWN0aW9uSUQpOwotICAgICAgICBpZiAobV9sb2FkVGltaW5n
KQorICAgICAgICBqc29uT2JqZWN0LnNldCgiY2FjaGVkIiwgbV9jYWNoZWQpOworICAgICAgICBp
ZiAobV9sb2FkVGltaW5nICYmICFtX2NhY2hlZCkKICAgICAgICAgICAgIGpzb25PYmplY3Quc2V0
KCJ0aW1pbmciLCBidWlsZE9iamVjdEZvclRpbWluZyhmcm9udGVuZCwgbV9sb2FkVGltaW5nLmdl
dCgpKSk7CiAgICAgICAgIGpzb25PYmplY3Quc2V0KCJkaWRSZXNwb25zZUNoYW5nZSIsIHRydWUp
OwogICAgIH0KQEAgLTM5NywxMiArMzkxLDEyIEBAIFNjcmlwdE9iamVjdCBJbnNwZWN0b3JSZXNv
dXJjZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kCiB7
CiAgICAgU2NyaXB0T2JqZWN0IGpzb25PYmplY3QgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0
KCk7CiAgICAganNvbk9iamVjdC5zZXQoInJlcXVlc3RUaW1lIiwgdGltaW5nLT5yZXF1ZXN0VGlt
ZSk7Ci0gICAganNvbk9iamVjdC5zZXQoInByb3h5RHVyYXRpb24iLCB0aW1pbmctPnByb3h5RHVy
YXRpb24pOwotICAgIGpzb25PYmplY3Quc2V0KCJkbnNEdXJhdGlvbiIsIHRpbWluZy0+ZG5zRHVy
YXRpb24pOwotICAgIGpzb25PYmplY3Quc2V0KCJjb25uZWN0RHVyYXRpb24iLCB0aW1pbmctPmNv
bm5lY3REdXJhdGlvbik7Ci0gICAganNvbk9iamVjdC5zZXQoInNlbmREdXJhdGlvbiIsIHRpbWlu
Zy0+c2VuZER1cmF0aW9uKTsKLSAgICBqc29uT2JqZWN0LnNldCgicmVjZWl2ZUhlYWRlcnNEdXJh
dGlvbiIsIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbik7Ci0gICAganNvbk9iamVjdC5z
ZXQoInNzbER1cmF0aW9uIiwgdGltaW5nLT5zc2xEdXJhdGlvbik7CisgICAganNvbk9iamVjdC5z
ZXQoInByb3h5RHVyYXRpb24iLCB0aW1pbmctPnByb3h5U3RhcnQgPT0gLTEgPyAtMSA6ICh0aW1p
bmctPnByb3h5RW5kIC0gdGltaW5nLT5wcm94eVN0YXJ0KSAvIDEwMDAuMCk7CisgICAganNvbk9i
amVjdC5zZXQoImRuc0R1cmF0aW9uIiwgdGltaW5nLT5kbnNTdGFydCA9PSAtMSA/IC0xIDogKHRp
bWluZy0+ZG5zRW5kIC0gdGltaW5nLT5kbnNTdGFydCkgLyAxMDAwLjApOworICAgIGpzb25PYmpl
Y3Quc2V0KCJjb25uZWN0RHVyYXRpb24iLCB0aW1pbmctPmNvbm5lY3RTdGFydCA9PSAtMSA/IC0x
IDogKHRpbWluZy0+Y29ubmVjdEVuZCAtIHRpbWluZy0+Y29ubmVjdFN0YXJ0KSAvIDEwMDAuMCk7
CisgICAganNvbk9iamVjdC5zZXQoInNlbmREdXJhdGlvbiIsICh0aW1pbmctPnNlbmRFbmQgLSB0
aW1pbmctPnNlbmRTdGFydCkgLyAxMDAwLjApOworICAgIGpzb25PYmplY3Quc2V0KCJ3YWl0RHVy
YXRpb24iLCAodGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCAtIHRpbWluZy0+c2VuZEVuZCkgIC8g
MTAwMC4wKTsKKyAgICBqc29uT2JqZWN0LnNldCgic3NsRHVyYXRpb24iLCAodGltaW5nLT5zc2xF
bmQgLSB0aW1pbmctPnNzbFN0YXJ0KSAvIDEwMDAuMCk7CiAgICAgcmV0dXJuIGpzb25PYmplY3Q7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQ
YW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpp
bmRleCBiY2ZkOTdkMjFiOGUyY2NjZDU2MjI3YzIzNDhjNjVkYzVmNjU2MWI0Li44YWYxNTA1MTVk
YWQ4ZDI1NjkyZjc1MDIwYWU3NjU3MjZlYzdhNjkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC03NTYsNyArNzU2LDcgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJETlMgTG9va3VwIiksIHJlc291cmNlLnRpbWluZy5kbnNEdXJh
dGlvbiA9PSAtMSA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHJldXNlZCkiKSA6IE51bWJlci5z
ZWNvbmRzVG9TdHJpbmcocmVzb3VyY2UudGltaW5nLmRuc0R1cmF0aW9uKSwKICAgICAgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25uZWN0aW5nIiksIHJlc291cmNlLnRp
bWluZy5jb25uZWN0RHVyYXRpb24gPT0gLTEgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihyZXVz
ZWQpIikgOiBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKHJlc291cmNlLnRpbWluZy5jb25uZWN0RHVy
YXRpb24pLAogICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlbmRp
bmciKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyhyZXNvdXJjZS50aW1pbmcuc2VuZER1cmF0aW9u
KSwKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXYWl0aW5nIiks
IE51bWJlci5zZWNvbmRzVG9TdHJpbmcocmVzb3VyY2UudGltaW5nLnJlY2VpdmVIZWFkZXJzRHVy
YXRpb24pLAorICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldhaXRp
bmciKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyhyZXNvdXJjZS50aW1pbmcud2FpdER1cmF0aW9u
KSwKICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNlaXZpbmci
KSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyhyZXNvdXJjZS5lbmRUaW1lIC0gcmVzb3VyY2UucmVz
cG9uc2VSZWNlaXZlZFRpbWUpXTsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEu
bGVuZ3RoOyBpICs9IDIpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRUaW1pbmcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxv
YWRUaW1pbmcuaAppbmRleCA2M2I0NWRhYjUzNDEzYmFhMWFiODBkNDc2MDNkOWZkYmRjNmZhYjA1
Li4yNjlmYWQwMDI1ZDlhYWQ0MWU1MWI3MmFjYWZhYWFiNTZkZDIzMjVmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCkBAIC00MywyNCArNDMsMzQg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGlt
aW5nID0gY3JlYXRlKCk7CiAgICAgICAgIHRpbWluZy0+cmVxdWVzdFRpbWUgPSByZXF1ZXN0VGlt
ZTsKLSAgICAgICAgdGltaW5nLT5wcm94eUR1cmF0aW9uID0gcHJveHlEdXJhdGlvbjsKLSAgICAg
ICAgdGltaW5nLT5kbnNEdXJhdGlvbiA9IGRuc0R1cmF0aW9uOwotICAgICAgICB0aW1pbmctPmNv
bm5lY3REdXJhdGlvbiA9IGNvbm5lY3REdXJhdGlvbjsKLSAgICAgICAgdGltaW5nLT5zZW5kRHVy
YXRpb24gPSBzZW5kRHVyYXRpb247Ci0gICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNEdXJh
dGlvbiA9IHJlY2VpdmVIZWFkZXJzRHVyYXRpb247Ci0gICAgICAgIHRpbWluZy0+c3NsRHVyYXRp
b24gPSBzc2xEdXJhdGlvbjsKKyAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0ID0gcHJveHlTdGFy
dDsKKyAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOworICAgICAgICB0aW1pbmct
PmRuc1N0YXJ0ID0gZG5zU3RhcnQ7CisgICAgICAgIHRpbWluZy0+ZG5zRW5kID0gZG5zRW5kOwor
ICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsKKyAgICAgICAgdGlt
aW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKKyAgICAgICAgdGltaW5nLT5zZW5kU3RhcnQg
PSBzZW5kU3RhcnQ7CisgICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRFbmQ7CisgICAgICAg
IHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0VuZDsKKyAgICAgICAg
dGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OworICAgICAgICB0aW1pbmctPnNzbEVuZCA9IHNz
bEVuZDsKICAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAg
ICAgICAgICYmIHByb3h5RHVyYXRpb24gPT0gb3RoZXIucHJveHlEdXJhdGlvbgotICAgICAgICAg
ICAgJiYgZG5zRHVyYXRpb24gPT0gb3RoZXIuZG5zRHVyYXRpb24KLSAgICAgICAgICAgICYmIGNv
bm5lY3REdXJhdGlvbiA9PSBvdGhlci5jb25uZWN0RHVyYXRpb24KLSAgICAgICAgICAgICYmIHNl
bmREdXJhdGlvbiA9PSBvdGhlci5zZW5kRHVyYXRpb24KLSAgICAgICAgICAgICYmIHJlY2VpdmVI
ZWFkZXJzRHVyYXRpb24gPT0gb3RoZXIucmVjZWl2ZUhlYWRlcnNEdXJhdGlvbgotICAgICAgICAg
ICAgJiYgc3NsRHVyYXRpb24gPT0gb3RoZXIuc3NsRHVyYXRpb247CisgICAgICAgICAgICAmJiBw
cm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3RhcnQKKyAgICAgICAgICAgICYmIHByb3h5RW5kID09
IG90aGVyLnByb3h5RW5kCisgICAgICAgICAgICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFy
dAorICAgICAgICAgICAgJiYgZG5zRW5kID09IG90aGVyLmRuc0VuZAorICAgICAgICAgICAgJiYg
Y29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAorICAgICAgICAgICAgJiYgY29ubmVj
dEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCisgICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3Ro
ZXIuc2VuZFN0YXJ0CisgICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKKyAg
ICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5k
CisgICAgICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFydAorICAgICAgICAgICAg
JiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKQEAgLTY5LDIyICs3OSwzMiBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgZG91YmxlIHJlcXVlc3RUaW1lOwotICAgIGRvdWJsZSBw
cm94eUR1cmF0aW9uOwotICAgIGRvdWJsZSBkbnNEdXJhdGlvbjsKLSAgICBkb3VibGUgY29ubmVj
dER1cmF0aW9uOwotICAgIGRvdWJsZSBzZW5kRHVyYXRpb247Ci0gICAgZG91YmxlIHJlY2VpdmVI
ZWFkZXJzRHVyYXRpb247Ci0gICAgZG91YmxlIHNzbER1cmF0aW9uOworICAgIGludCBwcm94eVN0
YXJ0OworICAgIGludCBwcm94eUVuZDsKKyAgICBpbnQgZG5zU3RhcnQ7CisgICAgaW50IGRuc0Vu
ZDsKKyAgICBpbnQgY29ubmVjdFN0YXJ0OworICAgIGludCBjb25uZWN0RW5kOworICAgIGludCBz
ZW5kU3RhcnQ7CisgICAgaW50IHNlbmRFbmQ7CisgICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwor
ICAgIGludCBzc2xTdGFydDsKKyAgICBpbnQgc3NsRW5kOwogCiBwcml2YXRlOgogICAgIFJlc291
cmNlTG9hZFRpbWluZygpCi0gICAgICAgIDogcmVxdWVzdFRpbWUoMC4wKQotICAgICAgICAsIHBy
b3h5RHVyYXRpb24oLTEuMCkKLSAgICAgICAgLCBkbnNEdXJhdGlvbigtMS4wKQotICAgICAgICAs
IGNvbm5lY3REdXJhdGlvbigtMS4wKQotICAgICAgICAsIHNlbmREdXJhdGlvbigwLjApCi0gICAg
ICAgICwgcmVjZWl2ZUhlYWRlcnNEdXJhdGlvbigwLjApCi0gICAgICAgICwgc3NsRHVyYXRpb24o
LTEuMCkKKyAgICAgICAgOiByZXF1ZXN0VGltZSgwKQorICAgICAgICAsIHByb3h5U3RhcnQoLTEp
CisgICAgICAgICwgcHJveHlFbmQoLTEpCisgICAgICAgICwgZG5zU3RhcnQoLTEpCisgICAgICAg
ICwgZG5zRW5kKC0xKQorICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKKyAgICAgICAgLCBjb25u
ZWN0RW5kKC0xKQorICAgICAgICAsIHNlbmRTdGFydCgwKQorICAgICAgICAsIHNlbmRFbmQoMCkK
KyAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQorICAgICAgICAsIHNzbFN0YXJ0KC0xKQor
ICAgICAgICAsIHNzbEVuZCgtMSkKICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGEzYjFiZTgzMzdm
MjVjMTRhMmMwNzhiNjM3MTliNzc3Yjk1ODJjNDIuLjg5ZDMxZDc1OGU0ZjlhM2QzMGE3ZDNjOTQ5
MGRkODlmZjQzNzVkNWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtNDMsNiArNDMsOCBAQCBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTo6UmVzb3VyY2VSZXNwb25zZUJhc2UoKQogICAgIDogbV9leHBlY3RlZENvbnRlbnRMZW5ndGgo
MCkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKICAgICAsIG1fbGFzdE1vZGlmaWVkRGF0ZSgw
KQorICAgICwgbV93YXNDYWNoZWQoZmFsc2UpCisgICAgLCBtX2Nvbm5lY3Rpb25JRCgwKQogICAg
ICwgbV9pc051bGwodHJ1ZSkKICAgICAsIG1faGF2ZVBhcnNlZENhY2hlQ29udHJvbEhlYWRlcihm
YWxzZSkKICAgICAsIG1faGF2ZVBhcnNlZEFnZUhlYWRlcihmYWxzZSkKQEAgLTY4LDYgKzcwLDgg
QEAgUmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHkKICAgICAsIG1fc3VnZ2VzdGVkRmlsZW5hbWUoZmls
ZW5hbWUpCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCiAgICAgLCBtX2xhc3RNb2RpZmllZERh
dGUoMCkKKyAgICAsIG1fd2FzQ2FjaGVkKGZhbHNlKQorICAgICwgbV9jb25uZWN0aW9uSUQoMCkK
ICAgICAsIG1faXNOdWxsKGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2VkQ2FjaGVDb250cm9sSGVh
ZGVyKGZhbHNlKQogICAgICwgbV9oYXZlUGFyc2VkQWdlSGVhZGVyKGZhbHNlKQpAQCAtNDU1LDYg
KzQ1OSwxOCBAQCB0aW1lX3QgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZERhdGUo
KSBjb25zdAogICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGU7CiB9CiAKK2Jvb2wgUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6Ondhc0NhY2hlZCgpIGNvbnN0Cit7CisgICAgbGF6eUluaXQoKTsKKwor
ICAgIHJldHVybiBtX3dhc0NhY2hlZDsKK30KKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
c2V0V2FzQ2FjaGVkKGJvb2wgdmFsdWUpCit7CisgICAgbV93YXNDYWNoZWQgPSB2YWx1ZTsKK30K
KwogdW5zaWduZWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvbm5lY3Rpb25JRCgpIGNvbnN0CiB7
CiAgICAgbGF6eUluaXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmgKaW5kZXggMWIxNzhkNDkyN2VlYmRhY2M4ZjIyMWQzOWVmNzI2OWM0OGQ0
OWYzNS4uODU4YTYxMjI3OWE3YzE1MmE3YWZhMGFhMjdjNTI0MTU0NDQ2ZjM2NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAgLTEwMCw2
ICsxMDAsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY29ubmVjdGlvbklEKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRDb25uZWN0aW9uSUQodW5zaWduZWQpOwogCisgICAgYm9vbCB3YXNDYWNoZWQo
KSBjb25zdDsKKyAgICB2b2lkIHNldFdhc0NhY2hlZChib29sKTsKKwogICAgIFJlc291cmNlTG9h
ZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+KTsKIApAQCAtMTMzLDYg
KzEzNiw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9odHRwU3RhdHVzVGV4dDsKICAgICBI
VFRQSGVhZGVyTWFwIG1faHR0cEhlYWRlckZpZWxkczsKICAgICB0aW1lX3QgbV9sYXN0TW9kaWZp
ZWREYXRlOworICAgIGJvb2wgbV93YXNDYWNoZWQ7CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9u
SUQ7CiAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gbV9yZXNvdXJjZUxvYWRUaW1pbmc7
CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGNjYTdiNjk4N2NmODU4MjcwOTczZjljYzg4M2U0OTAyNTQ4YjFm
ZDYuLmMyM2I5YmJkOGQ4YTlhYjBkYzk5YjY1MWM2NmJmZjkyOTgwMGZlNjkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQyIEBACisyMDEwLTA3LTEyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIHN0YXJ0cyBhbmQgZW5kcyBmb3IgbmV0d29y
ayBwaGFzZXMgaW5zdGVhZCBvZiBkdXJhdGlvbi4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIwOTEKKworICAgICAgICAqIHB1YmxpYy9XZWJVUkxM
b2FkVGltaW5nLmg6CisgICAgICAgICogcHVibGljL1dlYlVSTFJlc3BvbnNlLmg6CisgICAgICAg
ICogc3JjL1dlYlVSTExvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2Fk
VGltaW5nOjpwcm94eVN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6
c2V0UHJveHlTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnByb3h5
RW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2V0UHJveHlFbmQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpkbnNTdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldEROU1N0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMTG9hZFRpbWluZzo6ZG5zRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRp
bWluZzo6c2V0RE5TRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6Y29u
bmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2V0Q29ubmVj
dFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6Y29ubmVjdEVuZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldENvbm5lY3RFbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZW5kU3RhcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRTZW5kU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxMb2FkVGltaW5nOjpzZW5kRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRp
bWluZzo6c2V0U2VuZEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnJl
Y2VpdmVIZWFkZXJzU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpz
ZXRSZWNlaXZlSGVhZGVyc1N0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWlu
Zzo6cmVjZWl2ZUhlYWRlcnNFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5n
OjpzZXRSZWNlaXZlSGVhZGVyc0VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1p
bmc6OnNzbFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6c2V0U1NM
U3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzc2xFbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRTU0xFbmQpOgorICAgICAgICAqIHNy
Yy9XZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjp3
YXNDYWNoZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6c2V0V2FzQ2FjaGVk
KToKKwogMjAxMC0wNy0xMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5oCmluZGV4IDdlYjU2MzZiZGFkZTRhM2Q3ZmJmNGNm
MTk1YzM3NDk3MjBhZDgyYWMuLjk0MTJkMTRhNmU1MjljMmVjNGM0MjQ2ZTY5ZmQ0OWEyOTI3ZTU1
ZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5oCkBAIC02MCwy
MyArNjAsMzggQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgZG91YmxlIHJlcXVlc3RUaW1lKCkg
Y29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcXVlc3RUaW1lKGRvdWJsZSB0aW1lKTsK
IAotICAgIFdFQktJVF9BUEkgZG91YmxlIHByb3h5RHVyYXRpb24oKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIHZvaWQgc2V0UHJveHlEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdFQktJ
VF9BUEkgaW50IHByb3h5U3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UHJv
eHlTdGFydChpbnQgc3RhcnQpOwogCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgZG5zRHVyYXRpb24o
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RE5TRHVyYXRpb24oZG91YmxlIGR1cmF0
aW9uKTsKKyAgICBXRUJLSVRfQVBJIGludCBwcm94eUVuZCgpIGNvbnN0OworICAgIFdFQktJVF9B
UEkgdm9pZCBzZXRQcm94eUVuZChpbnQgZW5kKTsKIAotICAgIFdFQktJVF9BUEkgZG91YmxlIGNv
bm5lY3REdXJhdGlvbigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRDb25uZWN0RHVy
YXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyAgICBXRUJLSVRfQVBJIGludCBkbnNTdGFydCgpIGNv
bnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRETlNTdGFydChpbnQgc3RhcnQpOwogCi0gICAg
V0VCS0lUX0FQSSBkb3VibGUgc2VuZER1cmF0aW9uKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSB2
b2lkIHNldFNlbmREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdFQktJVF9BUEkgaW50
IGRuc0VuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRETlNFbmQoaW50IGVuZCk7
CiAKLSAgICBXRUJLSVRfQVBJIGRvdWJsZSByZWNlaXZlSGVhZGVyc0R1cmF0aW9uKCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlY2VpdmVIZWFkZXJzRHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKTsKKyAgICBXRUJLSVRfQVBJIGludCBjb25uZWN0U3RhcnQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0Q29ubmVjdFN0YXJ0KGludCBzdGFydCk7CiAKLSAgICBXRUJLSVRf
QVBJIGRvdWJsZSBzc2xEdXJhdGlvbigpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgdm9pZCBzZXRT
U0xEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworICAgIFdFQktJVF9BUEkgaW50IGNvbm5lY3RF
bmQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0Q29ubmVjdEVuZChpbnQgZW5kKTsK
KworICAgIFdFQktJVF9BUEkgaW50IHNlbmRTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkg
dm9pZCBzZXRTZW5kU3RhcnQoaW50IHN0YXJ0KTsKKworICAgIFdFQktJVF9BUEkgaW50IHNlbmRF
bmQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2VuZEVuZChpbnQgZW5kKTsKKwor
ICAgIFdFQktJVF9BUEkgaW50IHJlY2VpdmVIZWFkZXJzRW5kKCkgY29uc3Q7CisgICAgV0VCS0lU
X0FQSSB2b2lkIHNldFJlY2VpdmVIZWFkZXJzRW5kKGludCBlbmQpOworCisgICAgV0VCS0lUX0FQ
SSBpbnQgc3NsU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U1NMU3RhcnQo
aW50IHN0YXJ0KTsKKworICAgIFdFQktJVF9BUEkgaW50IHNzbEVuZCgpIGNvbnN0OworICAgIFdF
QktJVF9BUEkgdm9pZCBzZXRTU0xFbmQoaW50IGVuZCk7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KICAgICBXZWJVUkxMb2FkVGltaW5nKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc+Jik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlVSTFJlc3BvbnNlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3Bv
bnNlLmgKaW5kZXggYmI1YzEyYmVhYmU1OTQyOWJjZTI2MWQ5MTUyNjFiZGRjNGQ3M2VhYi4uMmFh
NjAzZDZkN2YzNjllYTc5YmU1M2MyZjFmODZmYjVlZTIyMjk4YSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVVJMUmVzcG9uc2UuaApAQCAtMTI4LDYgKzEyOCwxMCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgdG9SZXNvdXJjZVJlc3BvbnNlKCkgY29u
c3Q7CiAjZW5kaWYKIAorICAgIC8vIEZsYWcgd2hldGhlciB0aGlzIHJlcXVlc3Qgd2FzIHNlcnZl
ZCBmcm9tIHRoZSBkaXNrIGNhY2hlIGVudHJ5LgorICAgIFdFQktJVF9BUEkgYm9vbCB3YXNDYWNo
ZWQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0V2FzQ2FjaGVkKGJvb2wpOworCiAg
ICAgLy8gRmxhZyB3aGV0aGVyIHRoaXMgcmVxdWVzdCB3YXMgbG9hZGVkIHZpYSB0aGUgU1BEWSBw
cm90b2NvbCBvciBub3QuCiAgICAgLy8gU1BEWSBpcyBhbiBleHBlcmltZW50YWwgd2ViIHByb3Rv
Y29sLCBzZWUgaHR0cDovL2Rldi5jaHJvbWl1bS5vcmcvc3BkeQogICAgIFdFQktJVF9BUEkgYm9v
bCB3YXNGZXRjaGVkVmlhU1BEWSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJVUkxMb2FkVGltaW5nLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMTG9h
ZFRpbWluZy5jcHAKaW5kZXggOWI1ZDNmNTNjMDg5ZTA5NWZkM2QzMTk1YzQxYTRhMjQ4OTZjODYz
OC4uMjdlZDM2MjQyYTEwODk2ZDczZWNiMWEwNmQ3YWU4ZDIyZmJiZTgxZCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxMb2FkVGltaW5nLmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlVSTExvYWRUaW1pbmcuY3BwCkBAIC02Myw2NCArNjMsMTE0IEBAIHZvaWQg
V2ViVVJMTG9hZFRpbWluZzo6c2V0UmVxdWVzdFRpbWUoZG91YmxlIHRpbWUpCiAgICAgbV9wcml2
YXRlLT5yZXF1ZXN0VGltZSA9IHRpbWU7CiB9CiAKLWRvdWJsZSBXZWJVUkxMb2FkVGltaW5nOjpw
cm94eUR1cmF0aW9uKCkgY29uc3QKK2ludCBXZWJVUkxMb2FkVGltaW5nOjpwcm94eVN0YXJ0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5wcm94eUR1cmF0aW9uOworICAgIHJldHVy
biBtX3ByaXZhdGUtPnByb3h5U3RhcnQ7CiB9CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0
UHJveHlEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit2b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNl
dFByb3h5U3RhcnQoaW50IHN0YXJ0KQogewotICAgIG1fcHJpdmF0ZS0+cHJveHlEdXJhdGlvbiA9
IGR1cmF0aW9uOworICAgIG1fcHJpdmF0ZS0+cHJveHlTdGFydCA9IHN0YXJ0OwogfQotZG91Ymxl
IFdlYlVSTExvYWRUaW1pbmc6OmRuc0R1cmF0aW9uKCkgY29uc3QKKworaW50IFdlYlVSTExvYWRU
aW1pbmc6OnByb3h5RW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5wcm94eUVu
ZDsKK30KKwordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRQcm94eUVuZChpbnQgZW5kKQorewor
ICAgIG1fcHJpdmF0ZS0+cHJveHlFbmQgPSBlbmQ7Cit9CisKK2ludCBXZWJVUkxMb2FkVGltaW5n
OjpkbnNTdGFydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZG5zU3RhcnQ7Cit9
CisKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0RE5TU3RhcnQoaW50IHN0YXJ0KQoreworICAg
IG1fcHJpdmF0ZS0+ZG5zU3RhcnQgPSBzdGFydDsKK30KKworaW50IFdlYlVSTExvYWRUaW1pbmc6
OmRuc0VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZG5zRW5kOworfQorCit2
b2lkIFdlYlVSTExvYWRUaW1pbmc6OnNldEROU0VuZChpbnQgZW5kKQoreworICAgIG1fcHJpdmF0
ZS0+ZG5zRW5kID0gZW5kOworfQorCitpbnQgV2ViVVJMTG9hZFRpbWluZzo6Y29ubmVjdFN0YXJ0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5kbnNEdXJhdGlvbjsKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5jb25uZWN0U3RhcnQ7CiB9CiAKLXZvaWQgV2ViVVJMTG9hZFRpbWluZzo6
c2V0RE5TRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpz
ZXRDb25uZWN0U3RhcnQoaW50IHN0YXJ0KQogewotICAgIG1fcHJpdmF0ZS0+ZG5zRHVyYXRpb24g
PSBkdXJhdGlvbjsKKyAgICBtX3ByaXZhdGUtPmNvbm5lY3RTdGFydCA9IHN0YXJ0OwogfQogCi1k
b3VibGUgV2ViVVJMTG9hZFRpbWluZzo6Y29ubmVjdER1cmF0aW9uKCkgY29uc3QKK2ludCBXZWJV
UkxMb2FkVGltaW5nOjpjb25uZWN0RW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRl
LT5jb25uZWN0RHVyYXRpb247CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29ubmVjdEVuZDsKIH0K
IAotdm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRDb25uZWN0RHVyYXRpb24oZG91YmxlIGR1cmF0
aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kKGludCBlbmQpCiB7Ci0g
ICAgbV9wcml2YXRlLT5jb25uZWN0RHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICBtX3ByaXZhdGUt
PmNvbm5lY3RFbmQgPSBlbmQ7CiB9CiAKLWRvdWJsZSBXZWJVUkxMb2FkVGltaW5nOjpzZW5kRHVy
YXRpb24oKSBjb25zdAoraW50IFdlYlVSTExvYWRUaW1pbmc6OnNlbmRTdGFydCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2VuZER1cmF0aW9uOworICAgIHJldHVybiBtX3ByaXZh
dGUtPnNlbmRTdGFydDsKIH0KIAotdm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRTZW5kRHVyYXRp
b24oZG91YmxlIGR1cmF0aW9uKQordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRTZW5kU3RhcnQo
aW50IHN0YXJ0KQogewotICAgIG1fcHJpdmF0ZS0+c2VuZER1cmF0aW9uID0gZHVyYXRpb247Cisg
ICAgbV9wcml2YXRlLT5zZW5kU3RhcnQgPSBzdGFydDsKIH0KIAotZG91YmxlIFdlYlVSTExvYWRU
aW1pbmc6OnJlY2VpdmVIZWFkZXJzRHVyYXRpb24oKSBjb25zdAoraW50IFdlYlVSTExvYWRUaW1p
bmc6OnNlbmRFbmQoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUtPnJlY2VpdmVIZWFk
ZXJzRHVyYXRpb247CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2VuZEVuZDsKIH0KIAotdm9pZCBX
ZWJVUkxMb2FkVGltaW5nOjpzZXRSZWNlaXZlSGVhZGVyc0R1cmF0aW9uKGRvdWJsZSBkdXJhdGlv
bikKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U2VuZEVuZChpbnQgZW5kKQogewotICAgIG1f
cHJpdmF0ZS0+cmVjZWl2ZUhlYWRlcnNEdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIG1fcHJpdmF0
ZS0+c2VuZEVuZCA9IGVuZDsKIH0KIAoraW50IFdlYlVSTExvYWRUaW1pbmc6OnJlY2VpdmVIZWFk
ZXJzRW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yZWNlaXZlSGVhZGVyc0Vu
ZDsKK30KKwordm9pZCBXZWJVUkxMb2FkVGltaW5nOjpzZXRSZWNlaXZlSGVhZGVyc0VuZChpbnQg
ZW5kKQoreworICAgIG1fcHJpdmF0ZS0+cmVjZWl2ZUhlYWRlcnNFbmQgPSBlbmQ7Cit9CisKK2lu
dCBXZWJVUkxMb2FkVGltaW5nOjpzc2xTdGFydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+c3NsU3RhcnQ7Cit9CisKK3ZvaWQgV2ViVVJMTG9hZFRpbWluZzo6c2V0U1NMU3RhcnQo
aW50IHN0YXJ0KQoreworICAgIG1fcHJpdmF0ZS0+c3NsU3RhcnQgPSBzdGFydDsKK30KIAotZG91
YmxlIFdlYlVSTExvYWRUaW1pbmc6OnNzbER1cmF0aW9uKCkgY29uc3QKK2ludCBXZWJVUkxMb2Fk
VGltaW5nOjpzc2xFbmQoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUtPnNzbER1cmF0
aW9uOworICAgIHJldHVybiBtX3ByaXZhdGUtPnNzbEVuZDsKIH0KIAotdm9pZCBXZWJVUkxMb2Fk
VGltaW5nOjpzZXRTU0xEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit2b2lkIFdlYlVSTExvYWRU
aW1pbmc6OnNldFNTTEVuZChpbnQgZW5kKQogewotICAgIG1fcHJpdmF0ZS0+c3NsRHVyYXRpb24g
PSBkdXJhdGlvbjsKKyAgICBtX3ByaXZhdGUtPnNzbEVuZCA9IGVuZDsKIH0KIAogV2ViVVJMTG9h
ZFRpbWluZzo6V2ViVVJMTG9hZFRpbWluZyhjb25zdCBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRp
bWluZz4mIHZhbHVlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNw
b25zZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAppbmRleCA2
MmFiZDM3MThhMzY4NjBkOGIzYTVhMDJiZDQzMmNhMTkzYTk2ZWI0Li4yYjdmYWNjNjc5YzI3NGNk
NDczYWRiMmUwNzNiMDY1OTU5ZmQxMmZmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlVSTFJlc3BvbnNlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3Bv
bnNlLmNwcApAQCAtMjkyLDYgKzI5MiwxNiBAQCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBXZWJV
UkxSZXNwb25zZTo6dG9SZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QKICAgICByZXR1cm4gKm1fcHJp
dmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlOwogfQogCitib29sIFdlYlVSTFJlc3BvbnNlOjp3YXND
YWNoZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25z
ZS0+d2FzQ2FjaGVkKCk7Cit9CisKK3ZvaWQgV2ViVVJMUmVzcG9uc2U6OnNldFdhc0NhY2hlZChi
b29sIHZhbHVlKQoreworICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5zZXRXYXND
YWNoZWQodmFsdWUpOworfQorCiBib29sIFdlYlVSTFJlc3BvbnNlOjp3YXNGZXRjaGVkVmlhU1BE
WSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT53
YXNGZXRjaGVkVmlhU1BEWSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>