<?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>112569</bug_id>
          
          <creation_ts>2013-03-18 07:13:53 -0700</creation_ts>
          <short_desc>Web Inspector: use individual samples to construct CPU profile flame chart</short_desc>
          <delta_ts>2013-03-22 04:03:19 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>graouts</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>857082</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-18 07:13:53 -0700</bug_when>
    <thetext>Now we build the chart based on the aggregated top-down tree. Using samples stream for that would allow to tie stack traces to the timeline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857087</commentid>
    <comment_count>1</comment_count>
      <attachid>193554</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-18 07:16:24 -0700</bug_when>
    <thetext>Created attachment 193554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857090</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-18 07:16:48 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=193554) [details]
&gt; Patch

This patch depends on the V8 change: https://codereview.chromium.org/12919002/ which is not landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857091</commentid>
    <comment_count>3</comment_count>
      <attachid>193556</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-18 07:18:38 -0700</bug_when>
    <thetext>Created attachment 193556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857105</commentid>
    <comment_count>4</comment_count>
      <attachid>193556</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-18 07:41:28 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

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

&gt; Source/WebCore/inspector/front-end/FlameChart.js:166
&gt; +        var nodeCount = samples.length;

it is intervalCount and it is not equal to samples.length
profileNodeCount &lt;= intervalCount &lt;= samplesCount
So the arrays will use more memory than actually needed.

BTW duration and startTime are integers now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857112</commentid>
    <comment_count>5</comment_count>
      <attachid>193556</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 07:48:06 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17160558</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857123</commentid>
    <comment_count>6</comment_count>
      <attachid>193556</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 08:11:56 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17205550</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857132</commentid>
    <comment_count>7</comment_count>
      <attachid>193556</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-18 08:19:56 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17218396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857269</commentid>
    <comment_count>8</comment_count>
      <attachid>193556</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 10:25:34 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17236083

New failing tests:
inspector/profiler/cpu-profiler-profile-removal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857359</commentid>
    <comment_count>9</comment_count>
      <attachid>193556</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 11:36:11 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17201699

New failing tests:
inspector/profiler/cpu-profiler-profile-removal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857717</commentid>
    <comment_count>10</comment_count>
      <attachid>193556</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-18 16:42:05 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Attachment 193556 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17218466

New failing tests:
inspector/profiler/cpu-profiler-profile-removal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858369</commentid>
    <comment_count>11</comment_count>
      <attachid>193556</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-19 09:49:49 -0700</bug_when>
    <thetext>Comment on attachment 193556
Patch

Please mind the test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860121</commentid>
    <comment_count>12</comment_count>
      <attachid>194198</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-21 01:00:25 -0700</bug_when>
    <thetext>Created attachment 194198
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860123</commentid>
    <comment_count>13</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-21 01:00:43 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 193556 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193556&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/FlameChart.js:166
&gt; &gt; +        var nodeCount = samples.length;
&gt; 
&gt; it is intervalCount and it is not equal to samples.length
&gt; profileNodeCount &lt;= intervalCount &lt;= samplesCount
&gt; So the arrays will use more memory than actually needed.
&gt; 
&gt; BTW duration and startTime are integers now.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860130</commentid>
    <comment_count>14</comment_count>
      <attachid>194198</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-21 01:18:53 -0700</bug_when>
    <thetext>Comment on attachment 194198
Patch for landing

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

&gt; Source/WebCore/inspector/front-end/FlameChart.js:216
&gt; +                ++index;

it has to be replaced with entries.length;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861319</commentid>
    <comment_count>15</comment_count>
      <attachid>194503</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-22 03:59:32 -0700</bug_when>
    <thetext>Created attachment 194503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861322</commentid>
    <comment_count>16</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-22 04:03:19 -0700</bug_when>
    <thetext>Committed r146587: &lt;http://trac.webkit.org/changeset/146587&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193554</attachid>
            <date>2013-03-18 07:16:24 -0700</date>
            <delta_ts>2013-03-18 07:18:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112569-20130318181215.patch</filename>
            <type>text/plain</type>
            <size>14774</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY5MDkyMjQwZjkwZDQx
MDAxZTZhZDliOWU0NDNiOTU0MzIzN2UxMy4uYzMxMmUwMTkwMjlmMTljMzY4Zjg2ZTdjM2U5ZmNm
M2E2Nzk2NjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEzLTAzLTE4ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHVzZSBpbmRpdmlkdWFsIHNhbXBsZXMgdG8gY29uc3RydWN0IENQVSBwcm9maWxlIGZsYW1l
IGNoYXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI1NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhcnJheSBvZiBzYW1wbGVzIHRvIHRoZSBDUFUgcHJvZmlsZSByZXR1cm5lZCBmcm9tIHRo
ZSBiYWNrZW5kLgorICAgICAgICBFYWNoIHNhbXBsZSBpcyBpZCBvZiB0aGUgcHJvZmlsZSBub2Rl
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRvcCBmcmFtZQorICAgICAgICBvZiB0aGUgc2FtcGxlJ3Mg
c3RhY2sgdHJhY2UuIFRoZSBhcnJheSBvZiBzYW1wbGVzIGlzIHVzZWQgdG8gZHJhdyB0aGUKKyAg
ICAgICAgZmxhbWUgY2hhcnQgb24gdGhlIENQVSBwcm9maWxlIHBhbmVsLgorCisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQ
cm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGUuaDoKKyAgICAgICAgKFNjcmlwdFByb2ZpbGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRJbnNwZWN0b3JPYmplY3RGb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRQcm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaDoKKyAgICAgICAgKFNjcmlwdFByb2Zp
bGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdFByb2ZpbGVyOjpzdGFydCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldENQVVBy
b2ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRDUFVQ
cm9maWxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnBy
b3RvdHlwZS5fYnVpbGRJZFRvTm9kZU1hcCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9GbGFtZUNoYXJ0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90
eXBlLl9jYWxjdWxhdGVUaW1lbGluZURhdGEpOgorCisyMDEzLTAzLTE4ICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV4Y2Vw
dGlvbiBpbiB0aW1lbGluZSBET01Db3VudGVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDI3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0UHJvZmlsZS5jcHAKaW5kZXggOTFkZDNkMzZkYTdkZjBkZjljMzM3ZDFjYzEwZDk4
M2U3OGMzNjhjZS4uNzMwZmE3NjRhMGM0OWM4ZDBhYzJjZGMwZGFhMDRjMzU2YTA4Njk0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6Q1BVUHJvZmlsZU5v
ZGU+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yTwogICAgIHJldHVybiBidWlsZEluc3Bl
Y3Rvck9iamVjdEZvcihtX3Byb2ZpbGUtPmhlYWQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gU2NyaXB0UHJvZmlsZTo6YnVpbGRJbnNw
ZWN0b3JPYmplY3RGb3JCb3R0b21VcEhlYWQoKSBjb25zdAorUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8aW50PiA+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2Ft
cGxlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRQcm9maWxlLmgKaW5kZXggODA5NWZlODdhNGVhZWU2ZGYxZmFiOTVhM2I4YzEx
ZTg3YWFhOTBkMS4uMTMyNzFmNGFhOTQzNzYxODRlNTA4YTdjODAyNmYwOWY4NjQxMmVhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFBhc3NSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gYnVpbGRJbnNwZWN0b3JPYmplY3RG
b3JIZWFkKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OkNQ
VVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBidWlsZEluc3BlY3Rv
ck9iamVjdEZvclNhbXBsZXMoKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmNwcAppbmRleCA1NGZlNTQyYjE2OTc5
MWI5MzMyZjViM2IzMjE4NjhmOTAxYzRkZWY0Li4xNjhjNDZkOWVmMmE4MWU4ODAwNjlmYWVjNGY1
ZDY2NzIxOTg5Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlLmNwcApAQCAtODcsNiArODcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
UHJvZmlsZXI6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdEZvcgogICAgICAg
ICAuc2V0VmlzaWJsZSh0cnVlKQogICAgICAgICAuc2V0Q2FsbFVJRChub2RlLT5HZXRDYWxsVWlk
KCkpCiAgICAgICAgIC5zZXRDaGlsZHJlbihjaGlsZHJlbi5yZWxlYXNlKCkpOworICAgIHJlc3Vs
dC0+c2V0SWQobm9kZS0+R2V0Tm9kZUlkKCkpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgp
OwogfQogCkBAIC05NCw2ICs5NSwxNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxl
cjo6Q1BVUHJvZmlsZU5vZGU+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yTwogewogICAg
IHJldHVybiBidWlsZEluc3BlY3Rvck9iamVjdEZvcihtX3Byb2ZpbGUtPkdldFRvcERvd25Sb290
KCkpOwogfQorCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxpbnQ+ID4gU2NyaXB0UHJv
ZmlsZTo6YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JTYW1wbGVzKCkgY29uc3QKK3sKKyAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBhcnJheSA9IFR5cGVCdWlsZGVyOjpBcnJheTxp
bnQ+OjpjcmVhdGUoKTsKKyAgICBpbnQgY291bnQgPSBtX3Byb2ZpbGUtPkdldFNhbXBsZXNDb3Vu
dCgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgYXJyYXkt
PmFkZEl0ZW0obV9wcm9maWxlLT5HZXRTYW1wbGUoaSktPkdldE5vZGVJZCgpKTsKKyAgICBwcmlu
dGYoImJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxlcyBjb3VudCA9ICVkXG4iLCBjb3VudCk7
CisgICAgcmV0dXJuIGFycmF5LnJlbGVhc2UoKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dFByb2ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaApp
bmRleCBiZGNjZmQzOTEyOGQwMTBmY2VhZWU3NDgzZTlhNDI0NDgzNmFiOWNmLi5hYmJkYjRkOWU3
YjM4ODJjOTc3Yjg2OTBmNThjNDRjYzE5ZDg2Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0UHJvZmlsZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OkNQ
VVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdEZvckhlYWQoKSBjb25zdDsKKyAgICBQ
YXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxpbnQ+ID4gYnVpbGRJbnNwZWN0b3JPYmplY3RG
b3JTYW1wbGVzKCkgY29uc3Q7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAppbmRleCA1NDIyN2Y1NDI0ZjZiNjBjY2U4
MjVjZDMwMDc4NWJmYjhkODExNzNiLi5mMjAxNGRkODFlZGI2ZTQyMThkNTJhZmFlYzVhYjI3MDJm
NjIzNWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU2NyaXB0UHJvZmlsZXI6OnN0YXJ0KFNjcmlwdFN0
YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBwcm9maWxlTmFtZUlkbGVUaW1l
TWFwLT5hZGQodGl0bGUsIDApOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhzOwotICAgIHY4OjpD
cHVQcm9maWxlcjo6U3RhcnRQcm9maWxpbmcodjhTdHJpbmcodGl0bGUsIHN0YXRlID8gc3RhdGUt
Pmlzb2xhdGUoKSA6IHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCkpKTsKKyAgICB2ODo6Q3B1UHJv
ZmlsZXI6OlN0YXJ0UHJvZmlsaW5nKHY4U3RyaW5nKHRpdGxlLCBzdGF0ZSA/IHN0YXRlLT5pc29s
YXRlKCkgOiB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKSwgdHJ1ZSk7CiB9CiAKIHZvaWQgU2Ny
aXB0UHJvZmlsZXI6OnN0YXJ0Rm9yUGFnZShQYWdlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA5Y2ZlNmE2ZGZmM2JlMGRk
YjE1YWNmZjk5YmM4MDNlYTU3NDA1Zjg4Li42NzEyZWUzM2Q3NjQwNmU1NWY0ZDcxY2I5NjQ3OTgy
OTRhZTEyZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0z
MTAyLDcgKzMxMDIsOCBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm51bWJlck9m
Q2FsbHMiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBjYWxs
cy4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmlzaWJsZSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVmlzaWJpbGl0eS4iIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FsbFVJRCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJDYWxsIFVJRC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRy
ZW4iLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUi
IH0sICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBub2Rlcy4iIH0KKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjaGlsZHJlbiIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6
ICJDUFVQcm9maWxlTm9kZSIgfSwgImRlc2NyaXB0aW9uIjogIkNoaWxkIG5vZGVzLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZCIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBl
IjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkIG9mIHRoZSBub2RlLiIgfQog
ICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CkBAIC0zMTEx
LDcgKzMxMTIsOCBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlLiIs
CiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaGVhZCIsICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlIiwgIm9wdGlvbmFsIjogdHJ1
ZSB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUiOiAi
bnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaWRsZVRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2FtcGxlcyIsICJvcHRpb25hbCI6IHRydWUsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJpbnRlZ2VyIiB9LCAiZGVzY3JpcHRp
b24iOiAiSWRzIG9mIHNhbXBsZXMgdG9wIG5vZGVzLiIgfQogICAgICAgICAgICAgICAgIF0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggZGVmNTBiMTc5MmY1ZmJjM2Yw
MGNlZDJhYWI4ZWYzZDc2ZWIyNGZmYi4uZjBiNjk3MjZiMzc5Y2EyYjZjY2U4YWVlMGQ4NzI0YzIw
NTNhMWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
cm9maWxlckFnZW50LmNwcApAQCAtMjkzLDYgKzI5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Z2V0Q1BVUHJvZmlsZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCByYXdV
aWQsCiAgICAgcHJvZmlsZU9iamVjdCA9IFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6Q1BVUHJvZmls
ZTo6Y3JlYXRlKCk7CiAgICAgcHJvZmlsZU9iamVjdC0+c2V0SGVhZChpdC0+dmFsdWUtPmJ1aWxk
SW5zcGVjdG9yT2JqZWN0Rm9ySGVhZCgpKTsKICAgICBwcm9maWxlT2JqZWN0LT5zZXRJZGxlVGlt
ZShpdC0+dmFsdWUtPmlkbGVUaW1lKCkpOworICAgIHByb2ZpbGVPYmplY3QtPnNldFNhbXBsZXMo
aXQtPnZhbHVlLT5idWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMoKSk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgaW50IHJhd1VpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3LmpzCmluZGV4IDM5ZTJlNjY1MTJjOGE2OGNkMjM4ZmVm
MDc1N2IwOGI1ODk3ODUyNWMuLjMzNjE3YmIwMTNmYTE2NzE0MDNjYTY0YzYwMTlhMzViZGJmNDgx
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJv
ZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQ
cm9maWxlVmlldy5qcwpAQCAtMTIyLDE0ICsxMjIsMTYgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2Zp
bGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICB0aGlzLnByb2ZpbGVIZWFkID0gcHJvZmlsZS5oZWFkOworICAgICAgICB0aGlzLnNhbXBs
ZXMgPSBwcm9maWxlLnNhbXBsZXM7CiAKICAgICAgICAgaWYgKHByb2ZpbGUuaWRsZVRpbWUpCiAg
ICAgICAgICAgICB0aGlzLl9pbmplY3RJZGxlVGltZU5vZGUocHJvZmlsZSk7CiAKICAgICAgICAg
dGhpcy5fYXNzaWduUGFyZW50c0luUHJvZmlsZSgpOworICAgICAgICB0aGlzLl9idWlsZElkVG9O
b2RlTWFwKCk7CiAgICAgICAgIHRoaXMuX2NoYW5nZVZpZXcoKTsKICAgICAgICAgdGhpcy5fdXBk
YXRlUGVyY2VudEJ1dHRvbigpOwotICAgICAgICBpZiAodGhpcy5mbGFtZUNoYXJ0KQorICAgICAg
ICBpZiAodGhpcy5mbGFtZUNoYXJ0ICYmIHRoaXMuc2FtcGxlcykKICAgICAgICAgICAgIHRoaXMu
ZmxhbWVDaGFydC51cGRhdGUoKTsKICAgICB9LAogCkBAIC01NTIsNiArNTU0LDE4IEBAIFdlYklu
c3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
CisgICAgX2J1aWxkSWRUb05vZGVNYXA6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBp
ZFRvTm9kZSA9IHRoaXMuX2lkVG9Ob2RlID0ge307CisgICAgICAgIHZhciBzdGFjayA9IFt0aGlz
LnByb2ZpbGVIZWFkXTsKKyAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkgeworICAgICAgICAg
ICAgdmFyIG5vZGUgPSBzdGFjay5wb3AoKTsKKyAgICAgICAgICAgIGlkVG9Ob2RlW25vZGUuaWRd
ID0gbm9kZTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5s
ZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBzdGFjay5wdXNoKG5vZGUuY2hpbGRyZW5baV0p
OworICAgICAgICB9CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7UHJvZmlsZXJB
Z2VudC5DUFVQcm9maWxlfSBwcm9maWxlCiAgICAgICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMKaW5kZXggNjJkYTA1ZGNlNDY4NTM4OTk4
YWJjNDUwYmY5MDczMzg1ZDk2MzI5Ni4uMmZiOGZmOTVkZDA3OWMwNTczZjcwNjJhOWJlYjBmMjZl
YTM3Y2IzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9G
bGFtZUNoYXJ0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmxh
bWVDaGFydC5qcwpAQCAtMTUzLDE5ICsxNTMsNiBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2lzRHJhZ2dpbmcgPSBmYWxzZTsKICAgICB9LAog
Ci0gICAgX25vZGVDb3VudDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIG5vZGVzID0g
dGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQuY2hpbGRyZW4uc2xpY2UoKTsKLQotICAg
ICAgICB2YXIgbm9kZUNvdW50ID0gMDsKLSAgICAgICAgd2hpbGUgKG5vZGVzLmxlbmd0aCkgewot
ICAgICAgICAgICAgdmFyIG5vZGUgPSBub2Rlcy5wb3AoKTsKLSAgICAgICAgICAgICsrbm9kZUNv
dW50OwotICAgICAgICAgICAgbm9kZXMgPSBub2Rlcy5jb25jYXQobm9kZS5jaGlsZHJlbik7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGVDb3VudDsKLSAgICB9LAotCiAgICAgX2NhbGN1
bGF0ZVRpbWVsaW5lRGF0YTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3Rp
bWVsaW5lRGF0YSkKQEAgLTE3NCw3ICsxNjEsOSBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhl
YWQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICB2YXIgbm9kZUNvdW50ID0g
dGhpcy5fbm9kZUNvdW50KCk7CisgICAgICAgIHZhciBzYW1wbGVzID0gdGhpcy5fY3B1UHJvZmls
ZVZpZXcuc2FtcGxlczsKKyAgICAgICAgdmFyIGlkVG9Ob2RlID0gdGhpcy5fY3B1UHJvZmlsZVZp
ZXcuX2lkVG9Ob2RlOworICAgICAgICB2YXIgbm9kZUNvdW50ID0gc2FtcGxlcy5sZW5ndGg7CiAg
ICAgICAgIHZhciBmdW5jdGlvbkNvbG9yUGFpcnMgPSB7IH07CiAgICAgICAgIHZhciBjdXJyZW50
Q29sb3JJbmRleCA9IDA7CiAKQEAgLTE4NSw1NSArMTc0LDU3IEBAIFdlYkluc3BlY3Rvci5GbGFt
ZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNvbG9yUGFpcnMgPSBuZXcgQXJyYXko
bm9kZUNvdW50KTsKICAgICAgICAgdmFyIGluZGV4ID0gMDsKIAotICAgICAgICBmdW5jdGlvbiBh
cHBlbmRSZXZlcnNlZEFycmF5KHRvQXJyYXksIGZyb21BcnJheSkKLSAgICAgICAgewotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IGZyb21BcnJheS5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKLSAg
ICAgICAgICAgICAgICB0b0FycmF5LnB1c2goZnJvbUFycmF5W2ldKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZhciBzdGFjayA9IFtdOwotICAgICAgICBhcHBlbmRSZXZlcnNlZEFycmF5KHN0YWNr
LCB0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC5jaGlsZHJlbik7Ci0KLSAgICAgICAg
dmFyIGxldmVsT2Zmc2V0cyA9IC8qKiBAdHlwZSB7QXJyYXkuPCFudW1iZXI+fSAqLyAoWzBdKTsK
LSAgICAgICAgdmFyIGxldmVsRXhpdEluZGV4ZXMgPSAvKiogQHR5cGUge0FycmF5LjwhbnVtYmVy
Pn0gKi8gKFswXSk7Ci0KLSAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkgewotICAgICAgICAg
ICAgdmFyIGxldmVsID0gbGV2ZWxPZmZzZXRzLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgICB2YXIg
bm9kZSA9IHN0YWNrLnBvcCgpOwotICAgICAgICAgICAgdmFyIG9mZnNldCA9IGxldmVsT2Zmc2V0
c1tsZXZlbF07Ci0KLSAgICAgICAgICAgIHZhciBmdW5jdGlvblVJRCA9IG5vZGUuZnVuY3Rpb25O
YW1lICsgIjoiICsgbm9kZS51cmwgKyAiOiIgKyBub2RlLmxpbmVOdW1iZXI7Ci0gICAgICAgICAg
ICB2YXIgY29sb3JQYWlyID0gZnVuY3Rpb25Db2xvclBhaXJzW2Z1bmN0aW9uVUlEXTsKLSAgICAg
ICAgICAgIGlmICghY29sb3JQYWlyKSB7Ci0gICAgICAgICAgICAgICAgKytjdXJyZW50Q29sb3JJ
bmRleDsKLSAgICAgICAgICAgICAgICB2YXIgaHVlID0gKGN1cnJlbnRDb2xvckluZGV4ICogNSAr
IDExICogKGN1cnJlbnRDb2xvckluZGV4ICUgMikpICUgMzYwOwotICAgICAgICAgICAgICAgIGZ1
bmN0aW9uQ29sb3JQYWlyc1tmdW5jdGlvblVJRF0gPSBjb2xvclBhaXIgPSB7aGlnaGxpZ2h0ZWQ6
ICJoc2woIiArIGh1ZSArICIsIDEwMCUsIDMzJSkiLCBub3JtYWw6ICJoc2woIiArIGh1ZSArICIs
IDEwMCUsIDY2JSkifTsKKyAgICAgICAgdmFyIG9wZW5JbnRlcnZhbHMgPSBbXTsKKyAgICAgICAg
dmFyIHN0YWNrVHJhY2UgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgc2FtcGxlSW5kZXggPSAwOyBz
YW1wbGVJbmRleCA8IG5vZGVDb3VudDsgc2FtcGxlSW5kZXgrKykgeworICAgICAgICAgICAgdmFy
IG5vZGUgPSBpZFRvTm9kZVtzYW1wbGVzW3NhbXBsZUluZGV4XV07CisgICAgICAgICAgICBzdGFj
a1RyYWNlLmxlbmd0aCA9IDA7CisgICAgICAgICAgICB3aGlsZSAobm9kZSkgeworICAgICAgICAg
ICAgICAgIHN0YWNrVHJhY2UucHVzaChub2RlKTsKKyAgICAgICAgICAgICAgICBub2RlID0gbm9k
ZS5wYXJlbnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFja1RyYWNlLnBvcCgpOyAv
LyBSZW1vdmUgKHJvb3QpIG5vZGUKKworICAgICAgICAgICAgdmFyIGRlcHRoID0gMDsKKyAgICAg
ICAgICAgIG5vZGUgPSBzdGFja1RyYWNlLnBvcCgpOworICAgICAgICAgICAgd2hpbGUgKG5vZGUg
JiYgZGVwdGggPCBvcGVuSW50ZXJ2YWxzLmxlbmd0aCAmJiBub2RlID09PSBvcGVuSW50ZXJ2YWxz
W2RlcHRoXS5ub2RlKSB7CisgICAgICAgICAgICAgICAgdmFyIGludGVydmFsSW5kZXggPSBvcGVu
SW50ZXJ2YWxzW2RlcHRoXS5pbmRleDsKKyAgICAgICAgICAgICAgICBkdXJhdGlvbnNbaW50ZXJ2
YWxJbmRleF0gKz0gMTsKKyAgICAgICAgICAgICAgICBub2RlID0gc3RhY2tUcmFjZS5wb3AoKTsK
KyAgICAgICAgICAgICAgICArK2RlcHRoOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGRlcHRoIDwgb3BlbkludGVydmFscy5sZW5ndGgpCisgICAgICAgICAgICAgICAgb3BlbkludGVy
dmFscy5sZW5ndGggPSBkZXB0aDsKKyAgICAgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgY29sb3JQYWlyc1tpbmRleF0gPSBjb2xvclBh
aXI7Ci0gICAgICAgICAgICBkZXB0aHNbaW5kZXhdID0gbGV2ZWw7Ci0gICAgICAgICAgICBkdXJh
dGlvbnNbaW5kZXhdID0gbm9kZS50b3RhbFRpbWU7Ci0gICAgICAgICAgICBzdGFydFRpbWVzW2lu
ZGV4XSA9IG9mZnNldDsKLSAgICAgICAgICAgIG5vZGVzW2luZGV4XSA9IG5vZGU7CisgICAgICAg
ICAgICB3aGlsZSAobm9kZSkgeworICAgICAgICAgICAgICAgIHZhciBmdW5jdGlvblVJRCA9IG5v
ZGUuZnVuY3Rpb25OYW1lICsgIjoiICsgbm9kZS51cmwgKyAiOiIgKyBub2RlLmxpbmVOdW1iZXI7
CisgICAgICAgICAgICAgICAgdmFyIGNvbG9yUGFpciA9IGZ1bmN0aW9uQ29sb3JQYWlyc1tmdW5j
dGlvblVJRF07CisgICAgICAgICAgICAgICAgaWYgKCFjb2xvclBhaXIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgKytjdXJyZW50Q29sb3JJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGh1
ZSA9IChjdXJyZW50Q29sb3JJbmRleCAqIDUgKyAxMSAqIChjdXJyZW50Q29sb3JJbmRleCAlIDIp
KSAlIDM2MDsKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25Db2xvclBhaXJzW2Z1bmN0aW9u
VUlEXSA9IGNvbG9yUGFpciA9IHtoaWdobGlnaHRlZDogImhzbCgiICsgaHVlICsgIiwgMTAwJSwg
MzMlKSIsIG5vcm1hbDogImhzbCgiICsgaHVlICsgIiwgMTAwJSwgNjYlKSJ9OworICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAgICAgICBjb2xvclBh
aXJzW2luZGV4XSA9IGNvbG9yUGFpcjsKKyAgICAgICAgICAgICAgICBkZXB0aHNbaW5kZXhdID0g
ZGVwdGg7CisgICAgICAgICAgICAgICAgZHVyYXRpb25zW2luZGV4XSA9IDE7CisgICAgICAgICAg
ICAgICAgc3RhcnRUaW1lc1tpbmRleF0gPSBzYW1wbGVJbmRleDsKKyAgICAgICAgICAgICAgICBu
b2Rlc1tpbmRleF0gPSBub2RlOwogCi0gICAgICAgICAgICBsZXZlbE9mZnNldHNbbGV2ZWxdICs9
IG5vZGUudG90YWxUaW1lOwotICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7
Ci0gICAgICAgICAgICAgICAgbGV2ZWxFeGl0SW5kZXhlcy5wdXNoKHN0YWNrLmxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgbGV2ZWxPZmZzZXRzLnB1c2gob2Zmc2V0ICsgbm9kZS5zZWxmVGltZSAv
IDIpOwotICAgICAgICAgICAgICAgIGFwcGVuZFJldmVyc2VkQXJyYXkoc3RhY2ssIG5vZGUuY2hp
bGRyZW4pOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9wZW5JbnRlcnZhbHMucHVz
aCh7bm9kZTogbm9kZSwgaW5kZXg6IGluZGV4fSk7CisKKyAgICAgICAgICAgICAgICArK2luZGV4
OwogCi0gICAgICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID09PSBsZXZlbEV4aXRJbmRleGVz
W2xldmVsRXhpdEluZGV4ZXMubGVuZ3RoIC0gMV0pIHsKLSAgICAgICAgICAgICAgICBsZXZlbE9m
ZnNldHMucG9wKCk7Ci0gICAgICAgICAgICAgICAgbGV2ZWxFeGl0SW5kZXhlcy5wb3AoKTsKKyAg
ICAgICAgICAgICAgICBub2RlID0gc3RhY2tUcmFjZS5wb3AoKTsKKyAgICAgICAgICAgICAgICAr
K2RlcHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdGltZWxp
bmVEYXRhID0gewogICAgICAgICAgICAgbm9kZUNvdW50OiBub2RlQ291bnQsCi0gICAgICAgICAg
ICB0b3RhbFRpbWU6IHRoaXMuX2NwdVByb2ZpbGVWaWV3LnByb2ZpbGVIZWFkLnRvdGFsVGltZSwK
KyAgICAgICAgICAgIHRvdGFsVGltZTogbm9kZUNvdW50LCAvL3RoaXMuX2NwdVByb2ZpbGVWaWV3
LnByb2ZpbGVIZWFkLnRvdGFsVGltZSwKICAgICAgICAgICAgIHN0YXJ0VGltZXM6IHN0YXJ0VGlt
ZXMsCiAgICAgICAgICAgICBkdXJhdGlvbnM6IGR1cmF0aW9ucywKICAgICAgICAgICAgIGRlcHRo
czogZGVwdGhzLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193556</attachid>
            <date>2013-03-18 07:18:38 -0700</date>
            <delta_ts>2013-03-19 09:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112569-20130318181429.patch</filename>
            <type>text/plain</type>
            <size>14661</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY5MDkyMjQwZjkwZDQx
MDAxZTZhZDliOWU0NDNiOTU0MzIzN2UxMy4uYzMxMmUwMTkwMjlmMTljMzY4Zjg2ZTdjM2U5ZmNm
M2E2Nzk2NjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEzLTAzLTE4ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHVzZSBpbmRpdmlkdWFsIHNhbXBsZXMgdG8gY29uc3RydWN0IENQVSBwcm9maWxlIGZsYW1l
IGNoYXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI1NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhcnJheSBvZiBzYW1wbGVzIHRvIHRoZSBDUFUgcHJvZmlsZSByZXR1cm5lZCBmcm9tIHRo
ZSBiYWNrZW5kLgorICAgICAgICBFYWNoIHNhbXBsZSBpcyBpZCBvZiB0aGUgcHJvZmlsZSBub2Rl
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRvcCBmcmFtZQorICAgICAgICBvZiB0aGUgc2FtcGxlJ3Mg
c3RhY2sgdHJhY2UuIFRoZSBhcnJheSBvZiBzYW1wbGVzIGlzIHVzZWQgdG8gZHJhdyB0aGUKKyAg
ICAgICAgZmxhbWUgY2hhcnQgb24gdGhlIENQVSBwcm9maWxlIHBhbmVsLgorCisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQ
cm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGUuaDoKKyAgICAgICAgKFNjcmlwdFByb2ZpbGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRJbnNwZWN0b3JPYmplY3RGb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRQcm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaDoKKyAgICAgICAgKFNjcmlwdFByb2Zp
bGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdFByb2ZpbGVyOjpzdGFydCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldENQVVBy
b2ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1BVUHJvZmlsZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9nZXRDUFVQ
cm9maWxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnBy
b3RvdHlwZS5fYnVpbGRJZFRvTm9kZU1hcCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9GbGFtZUNoYXJ0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90
eXBlLl9jYWxjdWxhdGVUaW1lbGluZURhdGEpOgorCisyMDEzLTAzLTE4ICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV4Y2Vw
dGlvbiBpbiB0aW1lbGluZSBET01Db3VudGVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDI3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0UHJvZmlsZS5jcHAKaW5kZXggOTFkZDNkMzZkYTdkZjBkZjljMzM3ZDFjYzEwZDk4
M2U3OGMzNjhjZS4uNzMwZmE3NjRhMGM0OWM4ZDBhYzJjZGMwZGFhMDRjMzU2YTA4Njk0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6Q1BVUHJvZmlsZU5v
ZGU+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yTwogICAgIHJldHVybiBidWlsZEluc3Bl
Y3Rvck9iamVjdEZvcihtX3Byb2ZpbGUtPmhlYWQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gU2NyaXB0UHJvZmlsZTo6YnVpbGRJbnNw
ZWN0b3JPYmplY3RGb3JCb3R0b21VcEhlYWQoKSBjb25zdAorUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8aW50PiA+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2Ft
cGxlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRQcm9maWxlLmgKaW5kZXggODA5NWZlODdhNGVhZWU2ZGYxZmFiOTVhM2I4YzEx
ZTg3YWFhOTBkMS4uMTMyNzFmNGFhOTQzNzYxODRlNTA4YTdjODAyNmYwOWY4NjQxMmVhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFBhc3NSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gYnVpbGRJbnNwZWN0b3JPYmplY3RG
b3JIZWFkKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OkNQ
VVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBidWlsZEluc3BlY3Rv
ck9iamVjdEZvclNhbXBsZXMoKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmNwcAppbmRleCA1NGZlNTQyYjE2OTc5
MWI5MzMyZjViM2IzMjE4NjhmOTAxYzRkZWY0Li4xMjcwOGM3NDY2YWYyYzUwNzEwMGMyODVkOTk5
ZjdmNTI1ZjA0YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlLmNwcApAQCAtODcsNiArODcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
UHJvZmlsZXI6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdEZvcgogICAgICAg
ICAuc2V0VmlzaWJsZSh0cnVlKQogICAgICAgICAuc2V0Q2FsbFVJRChub2RlLT5HZXRDYWxsVWlk
KCkpCiAgICAgICAgIC5zZXRDaGlsZHJlbihjaGlsZHJlbi5yZWxlYXNlKCkpOworICAgIHJlc3Vs
dC0+c2V0SWQobm9kZS0+R2V0Tm9kZUlkKCkpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgp
OwogfQogCkBAIC05NCw2ICs5NSwxNiBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxl
cjo6Q1BVUHJvZmlsZU5vZGU+IFNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yTwogewogICAg
IHJldHVybiBidWlsZEluc3BlY3Rvck9iamVjdEZvcihtX3Byb2ZpbGUtPkdldFRvcERvd25Sb290
KCkpOwogfQorCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxpbnQ+ID4gU2NyaXB0UHJv
ZmlsZTo6YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JTYW1wbGVzKCkgY29uc3QKK3sKKyAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBhcnJheSA9IFR5cGVCdWlsZGVyOjpBcnJheTxp
bnQ+OjpjcmVhdGUoKTsKKyAgICBpbnQgY291bnQgPSBtX3Byb2ZpbGUtPkdldFNhbXBsZXNDb3Vu
dCgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgYXJyYXkt
PmFkZEl0ZW0obV9wcm9maWxlLT5HZXRTYW1wbGUoaSktPkdldE5vZGVJZCgpKTsKKyAgICByZXR1
cm4gYXJyYXkucmVsZWFzZSgpOworfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oCmluZGV4IGJkY2Nm
ZDM5MTI4ZDAxMGZjZWFlZTc0ODNlOWE0MjQ0ODM2YWI5Y2YuLmFiYmRiNGQ5ZTdiMzg4MmM5Nzdi
ODY5MGY1OGM0NGNjMTlkODZiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRQcm9maWxlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6Q1BVUHJvZmlsZU5v
ZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9ySGVhZCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMo
KSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0UHJvZmlsZXIuY3BwCmluZGV4IDU0MjI3ZjU0MjRmNmI2MGNjZTgyNWNkMzAwNzg1
YmZiOGQ4MTE3M2IuLmYyMDE0ZGQ4MWVkYjZlNDIxOGQ1MmFmYWVjNWFiMjcwMmY2MjM1Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgdm9pZCBTY3JpcHRQcm9maWxlcjo6c3RhcnQoU2NyaXB0U3RhdGUqIHN0YXRl
LCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIHByb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmFkZCh0
aXRsZSwgMCk7CiAKICAgICB2ODo6SGFuZGxlU2NvcGUgaHM7Ci0gICAgdjg6OkNwdVByb2ZpbGVy
OjpTdGFydFByb2ZpbGluZyh2OFN0cmluZyh0aXRsZSwgc3RhdGUgPyBzdGF0ZS0+aXNvbGF0ZSgp
IDogdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSkpOworICAgIHY4OjpDcHVQcm9maWxlcjo6U3Rh
cnRQcm9maWxpbmcodjhTdHJpbmcodGl0bGUsIHN0YXRlID8gc3RhdGUtPmlzb2xhdGUoKSA6IHY4
OjpJc29sYXRlOjpHZXRDdXJyZW50KCkpLCB0cnVlKTsKIH0KIAogdm9pZCBTY3JpcHRQcm9maWxl
cjo6c3RhcnRGb3JQYWdlKFBhZ2UqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDljZmU2YTZkZmYzYmUwZGRiMTVhY2ZmOTli
YzgwM2VhNTc0MDVmODguLjY3MTJlZTMzZDc2NDA2ZTU1ZjRkNzFjYjk2NDc5ODI5NGFlMTJmNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMxMDIsNyArMzEw
Miw4IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibnVtYmVyT2ZDYWxscyIsICJ0
eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGNhbGxzLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2aXNpYmxlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJkZXNjcmlwdGlvbiI6ICJWaXNpYmlsaXR5LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJjYWxsVUlEIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNhbGwg
VUlELiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGlsZHJlbiIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIgfSwgImRlc2Ny
aXB0aW9uIjogIkNoaWxkIG5vZGVzLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNoaWxkcmVuIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNQVVByb2Zp
bGVOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiQ2hpbGQgbm9kZXMuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAiaW50ZWdl
ciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWQgb2YgdGhlIG5vZGUuIiB9CiAgICAgICAgICAg
ICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTMxMTEsNyArMzExMiw4
IEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlByb2ZpbGUuIiwKICAgICAgICAg
ICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJo
ZWFkIiwgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiLCAib3B0aW9uYWwiOiB0cnVlIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGxlVGlt
ZSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzYW1wbGVzIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogImludGVnZXIiIH0sICJkZXNjcmlwdGlvbiI6ICJJZHMg
b2Ygc2FtcGxlcyB0b3Agbm9kZXMuIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRleCBkZWY1MGIxNzkyZjVmYmMzZjAwY2VkMmFhYjhl
ZjNkNzZlYjI0ZmZiLi5mMGI2OTcyNmIzNzljYTJiNmNjZThhZWUwZDg3MjRjMjA1M2ExYzk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwCkBAIC0yOTMsNiArMjkzLDcgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpn
ZXRDUFVQcm9maWxlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IHJhd1VpZCwKICAgICBw
cm9maWxlT2JqZWN0ID0gVHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlOjpjcmVhdGUo
KTsKICAgICBwcm9maWxlT2JqZWN0LT5zZXRIZWFkKGl0LT52YWx1ZS0+YnVpbGRJbnNwZWN0b3JP
YmplY3RGb3JIZWFkKCkpOwogICAgIHByb2ZpbGVPYmplY3QtPnNldElkbGVUaW1lKGl0LT52YWx1
ZS0+aWRsZVRpbWUoKSk7CisgICAgcHJvZmlsZU9iamVjdC0+c2V0U2FtcGxlcyhpdC0+dmFsdWUt
PmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxlcygpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQ
cm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBp
bnQgcmF3VWlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DUFVQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q1BVUHJvZmlsZVZpZXcuanMKaW5kZXggMzllMmU2NjUxMmM4YTY4Y2QyMzhmZWYwNzU3YjA4YjU4
OTc4NTI1Yy4uMzM2MTdiYjAxM2ZhMTY3MTQwM2NhNjRjNjAxOWEzNWJkYmY0ODFjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3
LmpzCkBAIC0xMjIsMTQgKzEyMiwxNiBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHRoaXMu
cHJvZmlsZUhlYWQgPSBwcm9maWxlLmhlYWQ7CisgICAgICAgIHRoaXMuc2FtcGxlcyA9IHByb2Zp
bGUuc2FtcGxlczsKIAogICAgICAgICBpZiAocHJvZmlsZS5pZGxlVGltZSkKICAgICAgICAgICAg
IHRoaXMuX2luamVjdElkbGVUaW1lTm9kZShwcm9maWxlKTsKIAogICAgICAgICB0aGlzLl9hc3Np
Z25QYXJlbnRzSW5Qcm9maWxlKCk7CisgICAgICAgIHRoaXMuX2J1aWxkSWRUb05vZGVNYXAoKTsK
ICAgICAgICAgdGhpcy5fY2hhbmdlVmlldygpOwogICAgICAgICB0aGlzLl91cGRhdGVQZXJjZW50
QnV0dG9uKCk7Ci0gICAgICAgIGlmICh0aGlzLmZsYW1lQ2hhcnQpCisgICAgICAgIGlmICh0aGlz
LmZsYW1lQ2hhcnQgJiYgdGhpcy5zYW1wbGVzKQogICAgICAgICAgICAgdGhpcy5mbGFtZUNoYXJ0
LnVwZGF0ZSgpOwogICAgIH0sCiAKQEAgLTU1Miw2ICs1NTQsMTggQEAgV2ViSW5zcGVjdG9yLkNQ
VVByb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfYnVp
bGRJZFRvTm9kZU1hcDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGlkVG9Ob2RlID0g
dGhpcy5faWRUb05vZGUgPSB7fTsKKyAgICAgICAgdmFyIHN0YWNrID0gW3RoaXMucHJvZmlsZUhl
YWRdOworICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgbm9k
ZSA9IHN0YWNrLnBvcCgpOworICAgICAgICAgICAgaWRUb05vZGVbbm9kZS5pZF0gPSBub2RlOwor
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsr
KQorICAgICAgICAgICAgICAgIHN0YWNrLnB1c2gobm9kZS5jaGlsZHJlbltpXSk7CisgICAgICAg
IH0KKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkNQVVBy
b2ZpbGV9IHByb2ZpbGUKICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRmxhbWVDaGFydC5qcwppbmRleCA2MmRhMDVkY2U0Njg1Mzg5OThhYmM0NTBiZjkw
NzMzODVkOTYzMjk2Li5lODI3Zjk3NDBiOTVjODI5MWRiZDIwNTFhY2VmYzVhNGM1YzI3MGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0Lmpz
CkBAIC0xNTMsMTkgKzE1Myw2IEBAIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5faXNEcmFnZ2luZyA9IGZhbHNlOwogICAgIH0sCiAKLSAgICBfbm9k
ZUNvdW50OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgbm9kZXMgPSB0aGlzLl9jcHVQ
cm9maWxlVmlldy5wcm9maWxlSGVhZC5jaGlsZHJlbi5zbGljZSgpOwotCi0gICAgICAgIHZhciBu
b2RlQ291bnQgPSAwOwotICAgICAgICB3aGlsZSAobm9kZXMubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICB2YXIgbm9kZSA9IG5vZGVzLnBvcCgpOwotICAgICAgICAgICAgKytub2RlQ291bnQ7Ci0gICAg
ICAgICAgICBub2RlcyA9IG5vZGVzLmNvbmNhdChub2RlLmNoaWxkcmVuKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gbm9kZUNvdW50OwotICAgIH0sCi0KICAgICBfY2FsY3VsYXRlVGltZWxp
bmVEYXRhOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fdGltZWxpbmVEYXRh
KQpAQCAtMTc0LDcgKzE2MSw5IEBAIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCF0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZCkKICAgICAg
ICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHZhciBub2RlQ291bnQgPSB0aGlzLl9ub2Rl
Q291bnQoKTsKKyAgICAgICAgdmFyIHNhbXBsZXMgPSB0aGlzLl9jcHVQcm9maWxlVmlldy5zYW1w
bGVzOworICAgICAgICB2YXIgaWRUb05vZGUgPSB0aGlzLl9jcHVQcm9maWxlVmlldy5faWRUb05v
ZGU7CisgICAgICAgIHZhciBub2RlQ291bnQgPSBzYW1wbGVzLmxlbmd0aDsKICAgICAgICAgdmFy
IGZ1bmN0aW9uQ29sb3JQYWlycyA9IHsgfTsKICAgICAgICAgdmFyIGN1cnJlbnRDb2xvckluZGV4
ID0gMDsKIApAQCAtMTg1LDU1ICsxNzQsNTcgQEAgV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJv
dG90eXBlID0gewogICAgICAgICB2YXIgY29sb3JQYWlycyA9IG5ldyBBcnJheShub2RlQ291bnQp
OwogICAgICAgICB2YXIgaW5kZXggPSAwOwogCi0gICAgICAgIGZ1bmN0aW9uIGFwcGVuZFJldmVy
c2VkQXJyYXkodG9BcnJheSwgZnJvbUFycmF5KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3Ig
KHZhciBpID0gZnJvbUFycmF5Lmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAgICAg
ICAgIHRvQXJyYXkucHVzaChmcm9tQXJyYXlbaV0pOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFy
IHN0YWNrID0gW107Ci0gICAgICAgIGFwcGVuZFJldmVyc2VkQXJyYXkoc3RhY2ssIHRoaXMuX2Nw
dVByb2ZpbGVWaWV3LnByb2ZpbGVIZWFkLmNoaWxkcmVuKTsKLQotICAgICAgICB2YXIgbGV2ZWxP
ZmZzZXRzID0gLyoqIEB0eXBlIHtBcnJheS48IW51bWJlcj59ICovIChbMF0pOwotICAgICAgICB2
YXIgbGV2ZWxFeGl0SW5kZXhlcyA9IC8qKiBAdHlwZSB7QXJyYXkuPCFudW1iZXI+fSAqLyAoWzBd
KTsKLQotICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgbGV2
ZWwgPSBsZXZlbE9mZnNldHMubGVuZ3RoIC0gMTsKLSAgICAgICAgICAgIHZhciBub2RlID0gc3Rh
Y2sucG9wKCk7Ci0gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gbGV2ZWxPZmZzZXRzW2xldmVsXTsK
LQotICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVUlEID0gbm9kZS5mdW5jdGlvbk5hbWUgKyAiOiIg
KyBub2RlLnVybCArICI6IiArIG5vZGUubGluZU51bWJlcjsKLSAgICAgICAgICAgIHZhciBjb2xv
clBhaXIgPSBmdW5jdGlvbkNvbG9yUGFpcnNbZnVuY3Rpb25VSURdOwotICAgICAgICAgICAgaWYg
KCFjb2xvclBhaXIpIHsKLSAgICAgICAgICAgICAgICArK2N1cnJlbnRDb2xvckluZGV4OwotICAg
ICAgICAgICAgICAgIHZhciBodWUgPSAoY3VycmVudENvbG9ySW5kZXggKiA1ICsgMTEgKiAoY3Vy
cmVudENvbG9ySW5kZXggJSAyKSkgJSAzNjA7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb25Db2xv
clBhaXJzW2Z1bmN0aW9uVUlEXSA9IGNvbG9yUGFpciA9IHtoaWdobGlnaHRlZDogImhzbCgiICsg
aHVlICsgIiwgMTAwJSwgMzMlKSIsIG5vcm1hbDogImhzbCgiICsgaHVlICsgIiwgMTAwJSwgNjYl
KSJ9OworICAgICAgICB2YXIgb3BlbkludGVydmFscyA9IFtdOworICAgICAgICB2YXIgc3RhY2tU
cmFjZSA9IFtdOworICAgICAgICBmb3IgKHZhciBzYW1wbGVJbmRleCA9IDA7IHNhbXBsZUluZGV4
IDwgbm9kZUNvdW50OyBzYW1wbGVJbmRleCsrKSB7CisgICAgICAgICAgICB2YXIgbm9kZSA9IGlk
VG9Ob2RlW3NhbXBsZXNbc2FtcGxlSW5kZXhdXTsKKyAgICAgICAgICAgIHN0YWNrVHJhY2UubGVu
Z3RoID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICAgICAgc3Rh
Y2tUcmFjZS5wdXNoKG5vZGUpOworICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YWNrVHJhY2UucG9wKCk7IC8vIFJlbW92ZSAo
cm9vdCkgbm9kZQorCisgICAgICAgICAgICB2YXIgZGVwdGggPSAwOworICAgICAgICAgICAgbm9k
ZSA9IHN0YWNrVHJhY2UucG9wKCk7CisgICAgICAgICAgICB3aGlsZSAobm9kZSAmJiBkZXB0aCA8
IG9wZW5JbnRlcnZhbHMubGVuZ3RoICYmIG5vZGUgPT09IG9wZW5JbnRlcnZhbHNbZGVwdGhdLm5v
ZGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgaW50ZXJ2YWxJbmRleCA9IG9wZW5JbnRlcnZhbHNb
ZGVwdGhdLmluZGV4OworICAgICAgICAgICAgICAgIGR1cmF0aW9uc1tpbnRlcnZhbEluZGV4XSAr
PSAxOworICAgICAgICAgICAgICAgIG5vZGUgPSBzdGFja1RyYWNlLnBvcCgpOworICAgICAgICAg
ICAgICAgICsrZGVwdGg7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGVwdGggPCBv
cGVuSW50ZXJ2YWxzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBvcGVuSW50ZXJ2YWxzLmxlbmd0
aCA9IGRlcHRoOworICAgICAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICBjb2xvclBhaXJzW2luZGV4XSA9IGNvbG9yUGFpcjsKLSAgICAg
ICAgICAgIGRlcHRoc1tpbmRleF0gPSBsZXZlbDsKLSAgICAgICAgICAgIGR1cmF0aW9uc1tpbmRl
eF0gPSBub2RlLnRvdGFsVGltZTsKLSAgICAgICAgICAgIHN0YXJ0VGltZXNbaW5kZXhdID0gb2Zm
c2V0OwotICAgICAgICAgICAgbm9kZXNbaW5kZXhdID0gbm9kZTsKKyAgICAgICAgICAgIHdoaWxl
IChub2RlKSB7CisgICAgICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVUlEID0gbm9kZS5mdW5jdGlv
bk5hbWUgKyAiOiIgKyBub2RlLnVybCArICI6IiArIG5vZGUubGluZU51bWJlcjsKKyAgICAgICAg
ICAgICAgICB2YXIgY29sb3JQYWlyID0gZnVuY3Rpb25Db2xvclBhaXJzW2Z1bmN0aW9uVUlEXTsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbG9yUGFpcikgeworICAgICAgICAgICAgICAgICAgICAr
K2N1cnJlbnRDb2xvckluZGV4OworICAgICAgICAgICAgICAgICAgICB2YXIgaHVlID0gKGN1cnJl
bnRDb2xvckluZGV4ICogNSArIDExICogKGN1cnJlbnRDb2xvckluZGV4ICUgMikpICUgMzYwOwor
ICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkNvbG9yUGFpcnNbZnVuY3Rpb25VSURdID0gY29s
b3JQYWlyID0ge2hpZ2hsaWdodGVkOiAiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCAzMyUpIiwgbm9y
bWFsOiAiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCA2NiUpIn07CisgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIGNvbG9yUGFpcnNbaW5kZXhd
ID0gY29sb3JQYWlyOworICAgICAgICAgICAgICAgIGRlcHRoc1tpbmRleF0gPSBkZXB0aDsKKyAg
ICAgICAgICAgICAgICBkdXJhdGlvbnNbaW5kZXhdID0gMTsKKyAgICAgICAgICAgICAgICBzdGFy
dFRpbWVzW2luZGV4XSA9IHNhbXBsZUluZGV4OworICAgICAgICAgICAgICAgIG5vZGVzW2luZGV4
XSA9IG5vZGU7CiAKLSAgICAgICAgICAgIGxldmVsT2Zmc2V0c1tsZXZlbF0gKz0gbm9kZS50b3Rh
bFRpbWU7Ci0gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAgICAg
ICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnB1c2goc3RhY2subGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICBsZXZlbE9mZnNldHMucHVzaChvZmZzZXQgKyBub2RlLnNlbGZUaW1lIC8gMik7Ci0gICAg
ICAgICAgICAgICAgYXBwZW5kUmV2ZXJzZWRBcnJheShzdGFjaywgbm9kZS5jaGlsZHJlbik7Ci0g
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3BlbkludGVydmFscy5wdXNoKHtub2RlOiBu
b2RlLCBpbmRleDogaW5kZXh9KTsKKworICAgICAgICAgICAgICAgICsraW5kZXg7CiAKLSAgICAg
ICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGggPT09IGxldmVsRXhpdEluZGV4ZXNbbGV2ZWxFeGl0
SW5kZXhlcy5sZW5ndGggLSAxXSkgewotICAgICAgICAgICAgICAgIGxldmVsT2Zmc2V0cy5wb3Ao
KTsKLSAgICAgICAgICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnBvcCgpOworICAgICAgICAgICAg
ICAgIG5vZGUgPSBzdGFja1RyYWNlLnBvcCgpOworICAgICAgICAgICAgICAgICsrZGVwdGg7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl90aW1lbGluZURhdGEgPSB7
CiAgICAgICAgICAgICBub2RlQ291bnQ6IG5vZGVDb3VudCwKLSAgICAgICAgICAgIHRvdGFsVGlt
ZTogdGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQudG90YWxUaW1lLAorICAgICAgICAg
ICAgdG90YWxUaW1lOiBub2RlQ291bnQsCiAgICAgICAgICAgICBzdGFydFRpbWVzOiBzdGFydFRp
bWVzLAogICAgICAgICAgICAgZHVyYXRpb25zOiBkdXJhdGlvbnMsCiAgICAgICAgICAgICBkZXB0
aHM6IGRlcHRocywK
</data>
<flag name="review"
          id="215116"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="215127"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194198</attachid>
            <date>2013-03-21 01:00:25 -0700</date>
            <delta_ts>2013-03-22 03:59:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>cpu-stream.patch</filename>
            <type>text/plain</type>
            <size>18843</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZmY1OGEwLi5jNTI2YjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTMtMDMtMTggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIGluZGl2aWR1YWwgc2FtcGxlcyB0byBjb25zdHJ1
Y3QgQ1BVIHByb2ZpbGUgZmxhbWUgY2hhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMjU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGFycmF5IG9mIHNhbXBsZXMgdG8gdGhlIENQVSBwcm9m
aWxlIHJldHVybmVkIGZyb20gdGhlIGJhY2tlbmQuCisgICAgICAgIEVhY2ggc2FtcGxlIGlzIGlk
IG9mIHRoZSBwcm9maWxlIG5vZGUgY29ycmVzcG9uZGluZyB0byB0aGUgdG9wIGZyYW1lCisgICAg
ICAgIG9mIHRoZSBzYW1wbGUncyBzdGFjayB0cmFjZS4gVGhlIGFycmF5IG9mIHNhbXBsZXMgaXMg
dXNlZCB0byBkcmF3IHRoZQorICAgICAgICBmbGFtZSBjaGFydCBvbiB0aGUgQ1BVIHByb2ZpbGUg
cGFuZWwuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxl
cyk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oOgorICAgICAgICAoU2Ny
aXB0UHJvZmlsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvcik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2Jq
ZWN0Rm9yU2FtcGxlcyk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oOgor
ICAgICAgICAoU2NyaXB0UHJvZmlsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJv
ZmlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvZmlsZXI6OnN0YXJ0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Z2V0Q1BVUHJvZmlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9DUFVQcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmll
dy5wcm90b3R5cGUuX2dldENQVVByb2ZpbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLl9idWlsZElkVG9Ob2RlTWFwKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRmxhbWVDaGFydC5wcm90b3R5cGUuX2NhbGN1bGF0ZVRpbWVsaW5lRGF0YSk6CisKIDIwMTMt
MDMtMjAgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0dUS10gYWNjZXNzaWJpbGl0eS9hcmlhLXNjcm9sbGJhci1yb2xlLmh0bWwgaXMgZmFpbGluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmNwcAppbmRleCA5MWRk
M2QzLi43MzBmYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9m
aWxlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2Zp
bGVyOjpDUFVQcm9maWxlTm9kZT4gU2NyaXB0UHJvZmlsZTo6YnVpbGRJbnNwZWN0b3JPCiAgICAg
cmV0dXJuIGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yKG1fcHJvZmlsZS0+aGVhZCgpKTsKIH0KIAot
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OkNQVVByb2ZpbGVOb2RlPiBTY3JpcHRQ
cm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpIGNvbnN0CitQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxpbnQ+ID4gU2NyaXB0UHJvZmlsZTo6YnVpbGRJbnNw
ZWN0b3JPYmplY3RGb3JTYW1wbGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaAppbmRleCA4MDk1ZmU4Li4xMzI3
MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCkBAIC01
OCw3ICs1OCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rv
ck9iamVjdEZvckhlYWQoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9m
aWxlcjo6Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yQm90dG9tVXBIZWFk
KCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8aW50PiA+IGJ1aWxk
SW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxlcygpIGNvbnN0OwogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwCmluZGV4IDU0ZmU1
NDIuLjEyNzA4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dFByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2Zp
bGUuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQ
cm9maWxlcjo6Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yCiAgICAgICAg
IC5zZXRWaXNpYmxlKHRydWUpCiAgICAgICAgIC5zZXRDYWxsVUlEKG5vZGUtPkdldENhbGxVaWQo
KSkKICAgICAgICAgLnNldENoaWxkcmVuKGNoaWxkcmVuLnJlbGVhc2UoKSk7CisgICAgcmVzdWx0
LT5zZXRJZChub2RlLT5HZXROb2RlSWQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7
CiB9CiAKQEAgLTk0LDYgKzk1LDE2IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVy
OjpDUFVQcm9maWxlTm9kZT4gU2NyaXB0UHJvZmlsZTo6YnVpbGRJbnNwZWN0b3JPCiB7CiAgICAg
cmV0dXJuIGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yKG1fcHJvZmlsZS0+R2V0VG9wRG93blJvb3Qo
KSk7CiB9CisKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PGludD4gPiBTY3JpcHRQcm9m
aWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNhbXBsZXMoKSBjb25zdAoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8aW50PiA+IGFycmF5ID0gVHlwZUJ1aWxkZXI6OkFycmF5PGlu
dD46OmNyZWF0ZSgpOworICAgIGludCBjb3VudCA9IG1fcHJvZmlsZS0+R2V0U2FtcGxlc0NvdW50
KCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorICAgICAgICBhcnJheS0+
YWRkSXRlbShtX3Byb2ZpbGUtPkdldFNhbXBsZShpKS0+R2V0Tm9kZUlkKCkpOworICAgIHJldHVy
biBhcnJheS5yZWxlYXNlKCk7Cit9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmgKaW5kZXggYmRjY2Zk
My4uYWJiZGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
UHJvZmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUu
aApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlTm9kZT4gYnVpbGRJ
bnNwZWN0b3JPYmplY3RGb3JIZWFkKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8aW50PiA+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxlcygpIGNvbnN0Owog
I2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRQcm9maWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQ
cm9maWxlci5jcHAKaW5kZXggNTQyMjdmNS4uZjIwMTRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFNj
cmlwdFByb2ZpbGVyOjpzdGFydChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0
bGUpCiAgICAgcHJvZmlsZU5hbWVJZGxlVGltZU1hcC0+YWRkKHRpdGxlLCAwKTsKIAogICAgIHY4
OjpIYW5kbGVTY29wZSBoczsKLSAgICB2ODo6Q3B1UHJvZmlsZXI6OlN0YXJ0UHJvZmlsaW5nKHY4
U3RyaW5nKHRpdGxlLCBzdGF0ZSA/IHN0YXRlLT5pc29sYXRlKCkgOiB2ODo6SXNvbGF0ZTo6R2V0
Q3VycmVudCgpKSk7CisgICAgdjg6OkNwdVByb2ZpbGVyOjpTdGFydFByb2ZpbGluZyh2OFN0cmlu
Zyh0aXRsZSwgc3RhdGUgPyBzdGF0ZS0+aXNvbGF0ZSgpIDogdjg6Oklzb2xhdGU6OkdldEN1cnJl
bnQoKSksIHRydWUpOwogfQogCiB2b2lkIFNjcmlwdFByb2ZpbGVyOjpzdGFydEZvclBhZ2UoUGFn
ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KaW5kZXggYjI1MmU2ZC4uODQ4OWM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgpAQCAtMzEwNSw3ICszMTA1LDggQEAKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJudW1iZXJPZkNhbGxzIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlv
biI6ICJOdW1iZXIgb2YgY2FsbHMuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InZpc2libGUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlZpc2liaWxpdHku
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbGxVSUQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBVSUQuIiB9LAotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNoaWxkcmVuIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVm
IjogIkNQVVByb2ZpbGVOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiQ2hpbGQgbm9kZXMuIiB9Cisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4iLCAidHlwZSI6ICJhcnJheSIs
ICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0sICJkZXNjcmlwdGlvbiI6ICJD
aGlsZCBub2Rlcy4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAib3B0
aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBp
ZCBvZiB0aGUgbm9kZS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgewpAQCAtMzExNCw3ICszMTE1LDggQEAKICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiUHJvZmlsZS4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWQiLCAiJHJlZiI6ICJDUFVQcm9maWxlTm9k
ZSIsICJvcHRpb25hbCI6IHRydWUgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJp
ZGxlVGltZSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNhbXBsZXMiLCAi
b3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAiaW50
ZWdlciIgfSwgImRlc2NyaXB0aW9uIjogIklkcyBvZiBzYW1wbGVzIHRvcCBub2Rlcy4iIH0KICAg
ICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4
IGRlZjUwYjEuLmYwYjY5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCB2b2lkIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OmdldENQVVByb2ZpbGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBpbnQgcmF3VWlkLAogICAgIHByb2ZpbGVPYmplY3QgPSBUeXBlQnVpbGRlcjo6UHJvZmlsZXI6
OkNQVVByb2ZpbGU6OmNyZWF0ZSgpOwogICAgIHByb2ZpbGVPYmplY3QtPnNldEhlYWQoaXQtPnZh
bHVlLT5idWlsZEluc3BlY3Rvck9iamVjdEZvckhlYWQoKSk7CiAgICAgcHJvZmlsZU9iamVjdC0+
c2V0SWRsZVRpbWUoaXQtPnZhbHVlLT5pZGxlVGltZSgpKTsKKyAgICBwcm9maWxlT2JqZWN0LT5z
ZXRTYW1wbGVzKGl0LT52YWx1ZS0+YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JTYW1wbGVzKCkpOwog
fQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldEhlYXBTbmFwc2hvdChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGludCByYXdVaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5qcwppbmRleCAzOWUyZTY2Li4zMzYx
N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVBy
b2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BV
UHJvZmlsZVZpZXcuanMKQEAgLTEyMiwxNCArMTIyLDE2IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgdGhpcy5wcm9maWxlSGVhZCA9IHByb2ZpbGUuaGVhZDsKKyAgICAgICAgdGhpcy5zYW1w
bGVzID0gcHJvZmlsZS5zYW1wbGVzOwogCiAgICAgICAgIGlmIChwcm9maWxlLmlkbGVUaW1lKQog
ICAgICAgICAgICAgdGhpcy5faW5qZWN0SWRsZVRpbWVOb2RlKHByb2ZpbGUpOwogCiAgICAgICAg
IHRoaXMuX2Fzc2lnblBhcmVudHNJblByb2ZpbGUoKTsKKyAgICAgICAgdGhpcy5fYnVpbGRJZFRv
Tm9kZU1hcCgpOwogICAgICAgICB0aGlzLl9jaGFuZ2VWaWV3KCk7CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVBlcmNlbnRCdXR0b24oKTsKLSAgICAgICAgaWYgKHRoaXMuZmxhbWVDaGFydCkKKyAgICAg
ICAgaWYgKHRoaXMuZmxhbWVDaGFydCAmJiB0aGlzLnNhbXBsZXMpCiAgICAgICAgICAgICB0aGlz
LmZsYW1lQ2hhcnQudXBkYXRlKCk7CiAgICAgfSwKIApAQCAtNTUyLDYgKzU1NCwxOCBAQCBXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwK
IAorICAgIF9idWlsZElkVG9Ob2RlTWFwOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIg
aWRUb05vZGUgPSB0aGlzLl9pZFRvTm9kZSA9IHt9OworICAgICAgICB2YXIgc3RhY2sgPSBbdGhp
cy5wcm9maWxlSGVhZF07CisgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHsKKyAgICAgICAg
ICAgIHZhciBub2RlID0gc3RhY2sucG9wKCk7CisgICAgICAgICAgICBpZFRvTm9kZVtub2RlLmlk
XSA9IG5vZGU7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4u
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgc3RhY2sucHVzaChub2RlLmNoaWxkcmVuW2ld
KTsKKyAgICAgICAgfQorICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1Byb2ZpbGVy
QWdlbnQuQ1BVUHJvZmlsZX0gcHJvZmlsZQogICAgICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0LmpzCmluZGV4IDYyZGEwNWQuLjIyZjkyN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmxhbWVDaGFy
dC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQu
anMKQEAgLTE1MywxOSArMTUzLDYgQEAgV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9pc0RyYWdnaW5nID0gZmFsc2U7CiAgICAgfSwKIAotICAgIF9u
b2RlQ291bnQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBub2RlcyA9IHRoaXMuX2Nw
dVByb2ZpbGVWaWV3LnByb2ZpbGVIZWFkLmNoaWxkcmVuLnNsaWNlKCk7Ci0KLSAgICAgICAgdmFy
IG5vZGVDb3VudCA9IDA7Ci0gICAgICAgIHdoaWxlIChub2Rlcy5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIHZhciBub2RlID0gbm9kZXMucG9wKCk7Ci0gICAgICAgICAgICArK25vZGVDb3VudDsKLSAg
ICAgICAgICAgIG5vZGVzID0gbm9kZXMuY29uY2F0KG5vZGUuY2hpbGRyZW4pOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBub2RlQ291bnQ7Ci0gICAgfSwKLQogICAgIF9jYWxjdWxhdGVUaW1l
bGluZURhdGE6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl90aW1lbGluZURh
dGEpCkBAIC0xNzQsNzIgKzE2MSw2OSBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQpCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICB2YXIgbm9kZUNvdW50ID0gdGhpcy5f
bm9kZUNvdW50KCk7CisgICAgICAgIHZhciBzYW1wbGVzID0gdGhpcy5fY3B1UHJvZmlsZVZpZXcu
c2FtcGxlczsKKyAgICAgICAgdmFyIGlkVG9Ob2RlID0gdGhpcy5fY3B1UHJvZmlsZVZpZXcuX2lk
VG9Ob2RlOworICAgICAgICB2YXIgc2FtcGxlc0NvdW50ID0gc2FtcGxlcy5sZW5ndGg7CiAgICAg
ICAgIHZhciBmdW5jdGlvbkNvbG9yUGFpcnMgPSB7IH07CiAgICAgICAgIHZhciBjdXJyZW50Q29s
b3JJbmRleCA9IDA7CiAKLSAgICAgICAgdmFyIHN0YXJ0VGltZXMgPSBuZXcgRmxvYXQzMkFycmF5
KG5vZGVDb3VudCk7Ci0gICAgICAgIHZhciBkdXJhdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KG5v
ZGVDb3VudCk7Ci0gICAgICAgIHZhciBkZXB0aHMgPSBuZXcgVWludDhBcnJheShub2RlQ291bnQp
OwotICAgICAgICB2YXIgbm9kZXMgPSBuZXcgQXJyYXkobm9kZUNvdW50KTsKLSAgICAgICAgdmFy
IGNvbG9yUGFpcnMgPSBuZXcgQXJyYXkobm9kZUNvdW50KTsKICAgICAgICAgdmFyIGluZGV4ID0g
MDsKLQotICAgICAgICBmdW5jdGlvbiBhcHBlbmRSZXZlcnNlZEFycmF5KHRvQXJyYXksIGZyb21B
cnJheSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IGZyb21BcnJheS5sZW5n
dGggLSAxOyBpID49IDA7IC0taSkKLSAgICAgICAgICAgICAgICB0b0FycmF5LnB1c2goZnJvbUFy
cmF5W2ldKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBzdGFjayA9IFtdOwotICAgICAgICBh
cHBlbmRSZXZlcnNlZEFycmF5KHN0YWNrLCB0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVh
ZC5jaGlsZHJlbik7Ci0KLSAgICAgICAgdmFyIGxldmVsT2Zmc2V0cyA9IC8qKiBAdHlwZSB7QXJy
YXkuPCFudW1iZXI+fSAqLyAoWzBdKTsKLSAgICAgICAgdmFyIGxldmVsRXhpdEluZGV4ZXMgPSAv
KiogQHR5cGUge0FycmF5LjwhbnVtYmVyPn0gKi8gKFswXSk7Ci0KLSAgICAgICAgd2hpbGUgKHN0
YWNrLmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIGxldmVsID0gbGV2ZWxPZmZzZXRzLmxlbmd0
aCAtIDE7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IHN0YWNrLnBvcCgpOwotICAgICAgICAgICAg
dmFyIG9mZnNldCA9IGxldmVsT2Zmc2V0c1tsZXZlbF07Ci0KLSAgICAgICAgICAgIHZhciBmdW5j
dGlvblVJRCA9IG5vZGUuZnVuY3Rpb25OYW1lICsgIjoiICsgbm9kZS51cmwgKyAiOiIgKyBub2Rl
LmxpbmVOdW1iZXI7Ci0gICAgICAgICAgICB2YXIgY29sb3JQYWlyID0gZnVuY3Rpb25Db2xvclBh
aXJzW2Z1bmN0aW9uVUlEXTsKLSAgICAgICAgICAgIGlmICghY29sb3JQYWlyKSB7Ci0gICAgICAg
ICAgICAgICAgKytjdXJyZW50Q29sb3JJbmRleDsKLSAgICAgICAgICAgICAgICB2YXIgaHVlID0g
KGN1cnJlbnRDb2xvckluZGV4ICogNSArIDExICogKGN1cnJlbnRDb2xvckluZGV4ICUgMikpICUg
MzYwOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uQ29sb3JQYWlyc1tmdW5jdGlvblVJRF0gPSBj
b2xvclBhaXIgPSB7aGlnaGxpZ2h0ZWQ6ICJoc2woIiArIGh1ZSArICIsIDEwMCUsIDMzJSkiLCBu
b3JtYWw6ICJoc2woIiArIGh1ZSArICIsIDEwMCUsIDY2JSkifTsKKyAgICAgICAgdmFyIGVudHJp
ZXMgPSBbXTsKKworICAgICAgICB2YXIgb3BlbkludGVydmFscyA9IFtdOworICAgICAgICB2YXIg
c3RhY2tUcmFjZSA9IFtdOworICAgICAgICBmb3IgKHZhciBzYW1wbGVJbmRleCA9IDA7IHNhbXBs
ZUluZGV4IDwgc2FtcGxlc0NvdW50OyBzYW1wbGVJbmRleCsrKSB7CisgICAgICAgICAgICB2YXIg
bm9kZSA9IGlkVG9Ob2RlW3NhbXBsZXNbc2FtcGxlSW5kZXhdXTsKKyAgICAgICAgICAgIHN0YWNr
VHJhY2UubGVuZ3RoID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAg
ICAgICAgc3RhY2tUcmFjZS5wdXNoKG5vZGUpOworICAgICAgICAgICAgICAgIG5vZGUgPSBub2Rl
LnBhcmVudDsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29sb3JQYWlyc1tpbmRleF0g
PSBjb2xvclBhaXI7Ci0gICAgICAgICAgICBkZXB0aHNbaW5kZXhdID0gbGV2ZWw7Ci0gICAgICAg
ICAgICBkdXJhdGlvbnNbaW5kZXhdID0gbm9kZS50b3RhbFRpbWU7Ci0gICAgICAgICAgICBzdGFy
dFRpbWVzW2luZGV4XSA9IG9mZnNldDsKLSAgICAgICAgICAgIG5vZGVzW2luZGV4XSA9IG5vZGU7
Ci0KLSAgICAgICAgICAgICsraW5kZXg7Ci0KLSAgICAgICAgICAgIGxldmVsT2Zmc2V0c1tsZXZl
bF0gKz0gbm9kZS50b3RhbFRpbWU7Ci0gICAgICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5n
dGgpIHsKLSAgICAgICAgICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnB1c2goc3RhY2subGVuZ3Ro
KTsKLSAgICAgICAgICAgICAgICBsZXZlbE9mZnNldHMucHVzaChvZmZzZXQgKyBub2RlLnNlbGZU
aW1lIC8gMik7Ci0gICAgICAgICAgICAgICAgYXBwZW5kUmV2ZXJzZWRBcnJheShzdGFjaywgbm9k
ZS5jaGlsZHJlbik7CisgICAgICAgICAgICBzdGFja1RyYWNlLnBvcCgpOyAvLyBSZW1vdmUgKHJv
b3QpIG5vZGUKKworICAgICAgICAgICAgdmFyIGRlcHRoID0gMDsKKyAgICAgICAgICAgIG5vZGUg
PSBzdGFja1RyYWNlLnBvcCgpOworICAgICAgICAgICAgd2hpbGUgKG5vZGUgJiYgZGVwdGggPCBv
cGVuSW50ZXJ2YWxzLmxlbmd0aCAmJiBub2RlID09PSBvcGVuSW50ZXJ2YWxzW2RlcHRoXS5ub2Rl
KSB7CisgICAgICAgICAgICAgICAgdmFyIGludGVydmFsSW5kZXggPSBvcGVuSW50ZXJ2YWxzW2Rl
cHRoXS5pbmRleDsKKyAgICAgICAgICAgICAgICBlbnRyaWVzW2ludGVydmFsSW5kZXhdLmR1cmF0
aW9uICs9IDE7CisgICAgICAgICAgICAgICAgbm9kZSA9IHN0YWNrVHJhY2UucG9wKCk7CisgICAg
ICAgICAgICAgICAgKytkZXB0aDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkZXB0
aCA8IG9wZW5JbnRlcnZhbHMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG9wZW5JbnRlcnZhbHMu
bGVuZ3RoID0gZGVwdGg7CisgICAgICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGggPT09IGxldmVsRXhp
dEluZGV4ZXNbbGV2ZWxFeGl0SW5kZXhlcy5sZW5ndGggLSAxXSkgewotICAgICAgICAgICAgICAg
IGxldmVsT2Zmc2V0cy5wb3AoKTsKLSAgICAgICAgICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnBv
cCgpOworICAgICAgICAgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgZnVu
Y3Rpb25VSUQgPSBub2RlLmZ1bmN0aW9uTmFtZSArICI6IiArIG5vZGUudXJsICsgIjoiICsgbm9k
ZS5saW5lTnVtYmVyOworICAgICAgICAgICAgICAgIHZhciBjb2xvclBhaXIgPSBmdW5jdGlvbkNv
bG9yUGFpcnNbZnVuY3Rpb25VSURdOworICAgICAgICAgICAgICAgIGlmICghY29sb3JQYWlyKSB7
CisgICAgICAgICAgICAgICAgICAgICsrY3VycmVudENvbG9ySW5kZXg7CisgICAgICAgICAgICAg
ICAgICAgIHZhciBodWUgPSAoY3VycmVudENvbG9ySW5kZXggKiA1ICsgMTEgKiAoY3VycmVudENv
bG9ySW5kZXggJSAyKSkgJSAzNjA7CisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQ29sb3JQ
YWlyc1tmdW5jdGlvblVJRF0gPSBjb2xvclBhaXIgPSB7aGlnaGxpZ2h0ZWQ6ICJoc2woIiArIGh1
ZSArICIsIDEwMCUsIDMzJSkiLCBub3JtYWw6ICJoc2woIiArIGh1ZSArICIsIDEwMCUsIDY2JSki
fTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goewor
ICAgICAgICAgICAgICAgICAgICBjb2xvclBhaXI6IGNvbG9yUGFpciwKKyAgICAgICAgICAgICAg
ICAgICAgZGVwdGg6IGRlcHRoLAorICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMSwKKyAg
ICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBzYW1wbGVJbmRleCwKKyAgICAgICAgICAgICAg
ICAgICAgbm9kZTogbm9kZQorICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
b3BlbkludGVydmFscy5wdXNoKHtub2RlOiBub2RlLCBpbmRleDogaW5kZXh9KTsKKworICAgICAg
ICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBub2RlID0gc3RhY2tUcmFjZS5w
b3AoKTsKKyAgICAgICAgICAgICAgICArK2RlcHRoOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhID0gewotICAgICAgICAgICAgbm9kZUNvdW50
OiBub2RlQ291bnQsCi0gICAgICAgICAgICB0b3RhbFRpbWU6IHRoaXMuX2NwdVByb2ZpbGVWaWV3
LnByb2ZpbGVIZWFkLnRvdGFsVGltZSwKLSAgICAgICAgICAgIHN0YXJ0VGltZXM6IHN0YXJ0VGlt
ZXMsCi0gICAgICAgICAgICBkdXJhdGlvbnM6IGR1cmF0aW9ucywKLSAgICAgICAgICAgIGRlcHRo
czogZGVwdGhzLAotICAgICAgICAgICAgY29sb3JQYWlyczogY29sb3JQYWlycywKLSAgICAgICAg
ICAgIG5vZGVzOiBub2RlcwotICAgICAgICB9CisgICAgICAgICAgICBlbnRyaWVzOiBlbnRyaWVz
LAorICAgICAgICAgICAgdG90YWxUaW1lOiBzYW1wbGVzQ291bnQsCisgICAgICAgIH07CiAKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lRGF0YTsKICAgICB9LApAQCAtMjU1LDcgKzIzOSw3
IEBAIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9pc0RyYWdnaW5nKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIg
bm9kZSA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2Rlc1t0aGlzLl9oaWdobGlnaHRlZE5vZGVJbmRl
eF07CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fdGltZWxpbmVEYXRhLmVudHJpZXNbdGhpcy5f
aGlnaGxpZ2h0ZWROb2RlSW5kZXhdLm5vZGU7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgdmFyIGNvbnRlbnRIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlBvcG92ZXJDb250ZW50SGVscGVyKG5vZGUuZnVuY3Rpb25OYW1lKTsKQEAgLTI4MSw3ICsyNjUs
NyBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAg
ICBpZiAodGhpcy5faGlnaGxpZ2h0ZWROb2RlSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2Rlc1t0aGlzLl9o
aWdobGlnaHRlZE5vZGVJbmRleF07CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fdGltZWxpbmVE
YXRhLmVudHJpZXNbdGhpcy5faGlnaGxpZ2h0ZWROb2RlSW5kZXhdLm5vZGU7CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LkV2ZW50
cy5TZWxlY3RlZE5vZGUsIG5vZGUpOwogICAgIH0sCiAKQEAgLTI5OCwxOSArMjgyLDE5IEBAIFdl
Ykluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKG5vZGVJbmRl
eCA9PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHRpbWVsaW5lRGF0
YSA9IHRoaXMuX3RpbWVsaW5lRGF0YTsKKyAgICAgICAgdmFyIHRpbWVsaW5lRW50cmllcyA9IHRo
aXMuX3RpbWVsaW5lRGF0YS5lbnRyaWVzOwogCi0gICAgICAgIHZhciBhbmNob3JMZWZ0ID0gTWF0
aC5mbG9vcih0aW1lbGluZURhdGEuc3RhcnRUaW1lc1tub2RlSW5kZXhdICogdGhpcy5feFNjYWxl
RmFjdG9yIC0gdGhpcy5feE9mZnNldCk7CisgICAgICAgIHZhciBhbmNob3JMZWZ0ID0gTWF0aC5m
bG9vcih0aW1lbGluZUVudHJpZXNbbm9kZUluZGV4XS5zdGFydFRpbWUgKiB0aGlzLl94U2NhbGVG
YWN0b3IgLSB0aGlzLl94T2Zmc2V0KTsKICAgICAgICAgYW5jaG9yTGVmdCA9IE51bWJlci5jb25z
dHJhaW4oYW5jaG9yTGVmdCwgMCwgdGhpcy5fY2FudmFzLndpZHRoKTsKIAotICAgICAgICB2YXIg
YW5jaG9yV2lkdGggPSBNYXRoLmZsb29yKHRpbWVsaW5lRGF0YS5kdXJhdGlvbnNbbm9kZUluZGV4
XSAqIHRoaXMuX3hTY2FsZUZhY3Rvcik7CisgICAgICAgIHZhciBhbmNob3JXaWR0aCA9IE1hdGgu
Zmxvb3IodGltZWxpbmVFbnRyaWVzW25vZGVJbmRleF0uZHVyYXRpb24gKiB0aGlzLl94U2NhbGVG
YWN0b3IpOwogICAgICAgICBhbmNob3JXaWR0aCA9IE51bWJlci5jb25zdHJhaW4oYW5jaG9yV2lk
dGgsIDAsIHRoaXMuX2NhbnZhcy53aWR0aCAtIGFuY2hvckxlZnQpOwogCiAgICAgICAgIHZhciBz
dHlsZSA9IHRoaXMuX2FuY2hvckVsZW1lbnQuc3R5bGU7CiAgICAgICAgIHN0eWxlLndpZHRoID0g
YW5jaG9yV2lkdGggKyAicHgiOwogICAgICAgICBzdHlsZS5oZWlnaHQgPSB0aGlzLl9iYXJIZWln
aHQgKyAicHgiOwogICAgICAgICBzdHlsZS5sZWZ0ID0gYW5jaG9yTGVmdCArICJweCI7Ci0gICAg
ICAgIHN0eWxlLnRvcCA9IE1hdGguZmxvb3IodGhpcy5fY2FudmFzLmhlaWdodCAtICh0aW1lbGlu
ZURhdGEuZGVwdGhzW25vZGVJbmRleF0gKyAxKSAqIHRoaXMuX2JhckhlaWdodCkgKyAicHgiOwor
ICAgICAgICBzdHlsZS50b3AgPSBNYXRoLmZsb29yKHRoaXMuX2NhbnZhcy5oZWlnaHQgLSAodGlt
ZWxpbmVFbnRyaWVzW25vZGVJbmRleF0uZGVwdGggKyAxKSAqIHRoaXMuX2JhckhlaWdodCkgKyAi
cHgiOwogICAgIH0sCiAKICAgICBfYWRqdXN0WE9mZnNldDogZnVuY3Rpb24oZGlyZWN0aW9uKQpA
QCAtMzUxLDE0ICszMzUsMTUgQEAgV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgdGltZWxpbmVEYXRhID0gdGhpcy5fdGltZWxpbmVEYXRhOwogICAgICAg
ICBpZiAoIXRpbWVsaW5lRGF0YSkKICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgdmFy
IHRpbWVsaW5lRW50cmllcyA9IHRpbWVsaW5lRGF0YS5lbnRyaWVzOwogICAgICAgICB2YXIgY3Vy
c29yVGltZSA9ICh4ICsgdGhpcy5feE9mZnNldCkgLyB0aGlzLl94U2NhbGVGYWN0b3I7CiAgICAg
ICAgIHZhciBjdXJzb3JMZXZlbCA9IE1hdGguZmxvb3IoKHRoaXMuX2NhbnZhcy5oZWlnaHQgLSB5
KSAvIHRoaXMuX2JhckhlaWdodCk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aW1l
bGluZURhdGEubm9kZUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIGlmIChjdXJzb3JUaW1lIDwg
dGltZWxpbmVEYXRhLnN0YXJ0VGltZXNbaV0pCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGltZWxpbmVFbnRyaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoY3Vyc29yVGlt
ZSA8IHRpbWVsaW5lRW50cmllc1tpXS5zdGFydFRpbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IC0xOwotICAgICAgICAgICAgaWYgKGN1cnNvclRpbWUgPCAodGltZWxpbmVEYXRhLnN0YXJ0VGlt
ZXNbaV0gKyB0aW1lbGluZURhdGEuZHVyYXRpb25zW2ldKQotICAgICAgICAgICAgICAgICYmIGN1
cnNvckxldmVsID09PSB0aW1lbGluZURhdGEuZGVwdGhzW2ldKQorICAgICAgICAgICAgaWYgKGN1
cnNvclRpbWUgPCAodGltZWxpbmVFbnRyaWVzW2ldLnN0YXJ0VGltZSArIHRpbWVsaW5lRW50cmll
c1tpXS5kdXJhdGlvbikKKyAgICAgICAgICAgICAgICAmJiBjdXJzb3JMZXZlbCA9PT0gdGltZWxp
bmVFbnRyaWVzW2ldLmRlcHRoKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTM3OSw2ICszNjQsNyBAQCBXZWJJbnNwZWN0b3IuRmxh
bWVDaGFydC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0aW1lbGluZURhdGEgPSB0aGlzLl9j
YWxjdWxhdGVUaW1lbGluZURhdGEoKTsKICAgICAgICAgaWYgKCF0aW1lbGluZURhdGEpCiAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB0aW1lbGluZUVudHJpZXMgPSB0aW1lbGluZURh
dGEuZW50cmllczsKICAgICAgICAgdGhpcy5fY2FudmFzLmhlaWdodCA9IGhlaWdodDsKICAgICAg
ICAgdGhpcy5fY2FudmFzLndpZHRoID0gd2lkdGg7CiAgICAgICAgIHZhciB4U2NhbGVGYWN0b3Ig
PSB0aGlzLl94U2NhbGVGYWN0b3I7CkBAIC0zODcsMTggKzM3MywxOCBAQCBXZWJJbnNwZWN0b3Iu
RmxhbWVDaGFydC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9j
YW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRp
bWVsaW5lRGF0YS5ub2RlQ291bnQ7ICsraSkgewotICAgICAgICAgICAgdmFyIHggPSBNYXRoLmZs
b29yKHRpbWVsaW5lRGF0YS5zdGFydFRpbWVzW2ldICogeFNjYWxlRmFjdG9yKSAtIHhPZmZzZXQ7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGltZWxpbmVFbnRyaWVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICB2YXIgeCA9IE1hdGguZmxvb3IodGltZWxpbmVFbnRyaWVzW2ldLnN0
YXJ0VGltZSAqIHhTY2FsZUZhY3RvcikgLSB4T2Zmc2V0OwogICAgICAgICAgICAgaWYgKHggPiB3
aWR0aCkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIHZhciB5ID0gaGVpZ2h0
IC0gKHRpbWVsaW5lRGF0YS5kZXB0aHNbaV0gKyAxKSAqIGJhckhlaWdodDsKLSAgICAgICAgICAg
IHZhciBiYXJXaWR0aCA9IE1hdGguZmxvb3IodGltZWxpbmVEYXRhLmR1cmF0aW9uc1tpXSAqIHhT
Y2FsZUZhY3Rvcik7CisgICAgICAgICAgICB2YXIgeSA9IGhlaWdodCAtICh0aW1lbGluZUVudHJp
ZXNbaV0uZGVwdGggKyAxKSAqIGJhckhlaWdodDsKKyAgICAgICAgICAgIHZhciBiYXJXaWR0aCA9
IE1hdGguZmxvb3IodGltZWxpbmVFbnRyaWVzW2ldLmR1cmF0aW9uICogeFNjYWxlRmFjdG9yKTsK
ICAgICAgICAgICAgIGlmICh4ICsgYmFyV2lkdGggPCAwKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgaWYgKGJhcldpZHRoIDwgdGhpcy5fbWluV2lkdGgpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIHZhciBjb2xvclBhaXIgPSB0aW1lbGlu
ZURhdGEuY29sb3JQYWlyc1tpXTsKKyAgICAgICAgICAgIHZhciBjb2xvclBhaXIgPSB0aW1lbGlu
ZUVudHJpZXNbaV0uY29sb3JQYWlyOwogICAgICAgICAgICAgdmFyIGNvbG9yOwogICAgICAgICAg
ICAgaWYgKHRoaXMuX2hpZ2hsaWdodGVkTm9kZUluZGV4ID09PSBpKQogICAgICAgICAgICAgICAg
IGNvbG9yID0gIGNvbG9yUGFpci5oaWdobGlnaHRlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194503</attachid>
            <date>2013-03-22 03:59:32 -0700</date>
            <delta_ts>2013-03-22 03:59:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>cpu-stream-frontend.patch</filename>
            <type>text/plain</type>
            <size>15910</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OWQ1YzEyLi5iNTAyZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTMtMDMtMTggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIGluZGl2aWR1YWwgc2FtcGxlcyB0byBjb25zdHJ1
Y3QgQ1BVIHByb2ZpbGUgZmxhbWUgY2hhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMjU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGFuIG9wdGlvbmFsIGFycmF5IG9mIHNhbXBsZXMgdG8g
dGhlIENQVSBwcm9maWxlIHJldHVybmVkIG92ZXIgdGhlCisgICAgICAgIHByb3RvY29sLiBFYWNo
IHNhbXBsZSBpcyBpZCBvZiB0aGUgcHJvZmlsZSBub2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRv
cCBmcmFtZQorICAgICAgICBvZiB0aGUgc2FtcGxlJ3Mgc3RhY2sgdHJhY2UuIFRoZSBhcnJheSBv
ZiBzYW1wbGVzIGlmIHByZXNlbnQgaXMgdXNlZCB0byBkcmF3CisgICAgICAgIHRoZSBmbGFtZSBj
aGFydCBvbiB0aGUgQ1BVIHByb2ZpbGUgcGFuZWwsIG90aGVyd2lzZSBmbGFtZSBjaGFydCBpcyBk
cmF3biBiYXNlZAorICAgICAgICBvbiB0aGUgYWdncmVnYXRlZCBwcm9maWxlIGRhdGEuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxlcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oOgorICAgICAgICAoU2NyaXB0UHJvZmlsZSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFByb2ZpbGU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2FtcGxl
cyk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oOgorICAgICAgICAoU2Ny
aXB0UHJvZmlsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvZmlsZXI6OnN0YXJ0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
Z2V0Q1BVUHJvZmlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxl
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUu
X2dldENQVVByb2ZpbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVZpZXcucHJvdG90eXBlLl9idWlsZElkVG9Ob2RlTWFwKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmxhbWVDaGFy
dC5wcm90b3R5cGUuX2NhbGN1bGF0ZVRpbWVsaW5lRGF0YSk6CisKIDIwMTMtMDMtMjIgIFRvbW15
IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0g
QVBJOiBGaW5hbGl6ZSB0aGUgUlRDUGVlckNvbm5lY3Rpb24gc3RhdGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggM2E1YmE3Zi4uOGM3YWFhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzEwNiw3ICszMTA2LDggQEAKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJudW1iZXJPZkNhbGxzIiwgInR5cGUiOiAiaW50
ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgY2FsbHMuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInZpc2libGUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0
aW9uIjogIlZpc2liaWxpdHkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNh
bGxVSUQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBVSUQuIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVuIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAi
Q2hpbGQgbm9kZXMuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4i
LCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0s
ICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBub2Rlcy4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaWQiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2Ny
aXB0aW9uIjogIlVuaXF1ZSBpZCBvZiB0aGUgbm9kZS4iIH0KICAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewpAQCAtMzExNSw3ICszMTE2LDggQEAKICAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZmlsZS4iLAogICAgICAgICAgICAgICAgICJw
cm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWQiLCAiJHJl
ZiI6ICJDUFVQcm9maWxlTm9kZSIsICJvcHRpb25hbCI6IHRydWUgfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpZGxlVGltZSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6
IHRydWUgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNhbXBsZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwgImRlc2NyaXB0aW9uIjogIklkcyBvZiBzYW1wbGVz
IHRvcCBub2Rlcy4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
UFVQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1BV
UHJvZmlsZVZpZXcuanMKaW5kZXggNmNkZTZjMy4uNTllYjc3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DUFVQcm9maWxlVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NQVVByb2ZpbGVWaWV3LmpzCkBAIC0xMjIs
MTEgKzEyMiwxNCBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHRoaXMucHJvZmlsZUhlYWQg
PSBwcm9maWxlLmhlYWQ7CisgICAgICAgIHRoaXMuc2FtcGxlcyA9IHByb2ZpbGUuc2FtcGxlczsK
IAogICAgICAgICBpZiAocHJvZmlsZS5pZGxlVGltZSkKICAgICAgICAgICAgIHRoaXMuX2luamVj
dElkbGVUaW1lTm9kZShwcm9maWxlKTsKIAogICAgICAgICB0aGlzLl9hc3NpZ25QYXJlbnRzSW5Q
cm9maWxlKCk7CisgICAgICAgIGlmICh0aGlzLnNhbXBsZXMpCisgICAgICAgICAgICB0aGlzLl9i
dWlsZElkVG9Ob2RlTWFwKCk7CiAgICAgICAgIHRoaXMuX2NoYW5nZVZpZXcoKTsKICAgICAgICAg
dGhpcy5fdXBkYXRlUGVyY2VudEJ1dHRvbigpOwogICAgICAgICBpZiAodGhpcy5mbGFtZUNoYXJ0
KQpAQCAtNTUyLDYgKzU1NSwxOCBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90
eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9idWlsZElkVG9Ob2RlTWFwOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgaWRUb05vZGUgPSB0aGlzLl9pZFRvTm9kZSA9IHt9
OworICAgICAgICB2YXIgc3RhY2sgPSBbdGhpcy5wcm9maWxlSGVhZF07CisgICAgICAgIHdoaWxl
IChzdGFjay5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBub2RlID0gc3RhY2sucG9wKCk7Cisg
ICAgICAgICAgICBpZFRvTm9kZVtub2RlLmlkXSA9IG5vZGU7CisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAg
c3RhY2sucHVzaChub2RlLmNoaWxkcmVuW2ldKTsKKyAgICAgICAgfQorICAgIH0sCisKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuQ1BVUHJvZmlsZX0gcHJvZmlsZQogICAg
ICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFt
ZUNoYXJ0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0
LmpzCmluZGV4IDE3MjBiZjUuLjQ0ZDkwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMKQEAgLTIxNCwzNyArMjE0LDIyIEBAIFdlYklu
c3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5faXNEcmFnZ2lu
ZyA9IGZhbHNlOwogICAgIH0sCiAKLSAgICBfbm9kZUNvdW50OiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB2YXIgbm9kZXMgPSB0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC5jaGls
ZHJlbi5zbGljZSgpOwotCi0gICAgICAgIHZhciBub2RlQ291bnQgPSAwOwotICAgICAgICB3aGls
ZSAobm9kZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzLnBvcCgpOwot
ICAgICAgICAgICAgKytub2RlQ291bnQ7Ci0gICAgICAgICAgICBub2RlcyA9IG5vZGVzLmNvbmNh
dChub2RlLmNoaWxkcmVuKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZUNvdW50Owot
ICAgIH0sCi0KICAgICBfY2FsY3VsYXRlVGltZWxpbmVEYXRhOiBmdW5jdGlvbigpCiAgICAgewor
ICAgICAgICBpZiAodGhpcy5fY3B1UHJvZmlsZVZpZXcuc2FtcGxlcykKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9jYWxjdWxhdGVUaW1lbGluZURhdGFGb3JTYW1wbGVzKCk7CisKICAgICAgICAg
aWYgKHRoaXMuX3RpbWVsaW5lRGF0YSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW1lbGlu
ZURhdGE7CiAKICAgICAgICAgaWYgKCF0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZCkK
ICAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHZhciBub2RlQ291bnQgPSB0aGlz
Ll9ub2RlQ291bnQoKTsKICAgICAgICAgdmFyIGZ1bmN0aW9uQ29sb3JQYWlycyA9IHsgfTsKICAg
ICAgICAgdmFyIGN1cnJlbnRDb2xvckluZGV4ID0gMDsKIAotICAgICAgICB2YXIgc3RhcnRUaW1l
cyA9IG5ldyBGbG9hdDMyQXJyYXkobm9kZUNvdW50KTsKLSAgICAgICAgdmFyIGR1cmF0aW9ucyA9
IG5ldyBGbG9hdDMyQXJyYXkobm9kZUNvdW50KTsKLSAgICAgICAgdmFyIGRlcHRocyA9IG5ldyBV
aW50OEFycmF5KG5vZGVDb3VudCk7Ci0gICAgICAgIHZhciBub2RlcyA9IG5ldyBBcnJheShub2Rl
Q291bnQpOwotICAgICAgICB2YXIgY29sb3JQYWlycyA9IG5ldyBBcnJheShub2RlQ291bnQpOwog
ICAgICAgICB2YXIgaW5kZXggPSAwOworICAgICAgICB2YXIgZW50cmllcyA9IFtdOwogCiAgICAg
ICAgIGZ1bmN0aW9uIGFwcGVuZFJldmVyc2VkQXJyYXkodG9BcnJheSwgZnJvbUFycmF5KQogICAg
ICAgICB7CkBAIC0yNzEsMTEgKzI1NiwxNCBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZnVuY3Rpb25Db2xvclBhaXJzW2Z1bmN0aW9uVUlE
XSA9IGNvbG9yUGFpciA9IHtoaWdobGlnaHRlZDogImhzbCgiICsgaHVlICsgIiwgMTAwJSwgMzMl
KSIsIG5vcm1hbDogImhzbCgiICsgaHVlICsgIiwgMTAwJSwgNjYlKSJ9OwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBjb2xvclBhaXJzW2luZGV4XSA9IGNvbG9yUGFpcjsKLSAgICAgICAg
ICAgIGRlcHRoc1tpbmRleF0gPSBsZXZlbDsKLSAgICAgICAgICAgIGR1cmF0aW9uc1tpbmRleF0g
PSBub2RlLnRvdGFsVGltZTsKLSAgICAgICAgICAgIHN0YXJ0VGltZXNbaW5kZXhdID0gb2Zmc2V0
OwotICAgICAgICAgICAgbm9kZXNbaW5kZXhdID0gbm9kZTsKKyAgICAgICAgICAgIGVudHJpZXMu
cHVzaCh7CisgICAgICAgICAgICAgICAgY29sb3JQYWlyOiBjb2xvclBhaXIsCisgICAgICAgICAg
ICAgICAgZGVwdGg6IGxldmVsLAorICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBub2RlLnRvdGFs
VGltZSwKKyAgICAgICAgICAgICAgICBzdGFydFRpbWU6IG9mZnNldCwKKyAgICAgICAgICAgICAg
ICBub2RlOiBub2RlCisgICAgICAgICAgICB9KTsKKwogCiAgICAgICAgICAgICArK2luZGV4Owog
CkBAIC0yOTMsMTggKzI4MSw4OCBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl90aW1lbGluZURhdGEgPSB7Ci0gICAgICAg
ICAgICBub2RlQ291bnQ6IG5vZGVDb3VudCwKKyAgICAgICAgICAgIGVudHJpZXM6IGVudHJpZXMs
CiAgICAgICAgICAgICB0b3RhbFRpbWU6IHRoaXMuX2NwdVByb2ZpbGVWaWV3LnByb2ZpbGVIZWFk
LnRvdGFsVGltZSwKLSAgICAgICAgICAgIHN0YXJ0VGltZXM6IHN0YXJ0VGltZXMsCi0gICAgICAg
ICAgICBkdXJhdGlvbnM6IGR1cmF0aW9ucywKLSAgICAgICAgICAgIGRlcHRoczogZGVwdGhzLAot
ICAgICAgICAgICAgY29sb3JQYWlyczogY29sb3JQYWlycywKLSAgICAgICAgICAgIG5vZGVzOiBu
b2RlcwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lRGF0YTsKICAg
ICB9LAogCisgICAgX2NhbGN1bGF0ZVRpbWVsaW5lRGF0YUZvclNhbXBsZXM6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl90aW1lbGluZURhdGEpCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fdGltZWxpbmVEYXRhOworCisgICAgICAgIGlmICghdGhpcy5fY3B1UHJvZmlsZVZp
ZXcucHJvZmlsZUhlYWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICB2YXIg
c2FtcGxlcyA9IHRoaXMuX2NwdVByb2ZpbGVWaWV3LnNhbXBsZXM7CisgICAgICAgIHZhciBpZFRv
Tm9kZSA9IHRoaXMuX2NwdVByb2ZpbGVWaWV3Ll9pZFRvTm9kZTsKKyAgICAgICAgdmFyIHNhbXBs
ZXNDb3VudCA9IHNhbXBsZXMubGVuZ3RoOworICAgICAgICB2YXIgZnVuY3Rpb25Db2xvclBhaXJz
ID0geyB9OworICAgICAgICB2YXIgY3VycmVudENvbG9ySW5kZXggPSAwOworCisgICAgICAgIHZh
ciBpbmRleCA9IDA7CisgICAgICAgIHZhciBlbnRyaWVzID0gW107CisKKyAgICAgICAgdmFyIG9w
ZW5JbnRlcnZhbHMgPSBbXTsKKyAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBbXTsKKyAgICAgICAg
Zm9yICh2YXIgc2FtcGxlSW5kZXggPSAwOyBzYW1wbGVJbmRleCA8IHNhbXBsZXNDb3VudDsgc2Ft
cGxlSW5kZXgrKykgeworICAgICAgICAgICAgdmFyIG5vZGUgPSBpZFRvTm9kZVtzYW1wbGVzW3Nh
bXBsZUluZGV4XV07CisgICAgICAgICAgICBzdGFja1RyYWNlLmxlbmd0aCA9IDA7CisgICAgICAg
ICAgICB3aGlsZSAobm9kZSkgeworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UucHVzaChub2Rl
KTsKKyAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBzdGFja1RyYWNlLnBvcCgpOyAvLyBSZW1vdmUgKHJvb3QpIG5vZGUKKworICAg
ICAgICAgICAgdmFyIGRlcHRoID0gMDsKKyAgICAgICAgICAgIG5vZGUgPSBzdGFja1RyYWNlLnBv
cCgpOworICAgICAgICAgICAgd2hpbGUgKG5vZGUgJiYgZGVwdGggPCBvcGVuSW50ZXJ2YWxzLmxl
bmd0aCAmJiBub2RlID09PSBvcGVuSW50ZXJ2YWxzW2RlcHRoXS5ub2RlKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGludGVydmFsSW5kZXggPSBvcGVuSW50ZXJ2YWxzW2RlcHRoXS5pbmRleDsKKyAg
ICAgICAgICAgICAgICBlbnRyaWVzW2ludGVydmFsSW5kZXhdLmR1cmF0aW9uICs9IDE7CisgICAg
ICAgICAgICAgICAgbm9kZSA9IHN0YWNrVHJhY2UucG9wKCk7CisgICAgICAgICAgICAgICAgKytk
ZXB0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkZXB0aCA8IG9wZW5JbnRlcnZh
bHMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG9wZW5JbnRlcnZhbHMubGVuZ3RoID0gZGVwdGg7
CisgICAgICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVUlE
ID0gbm9kZS5mdW5jdGlvbk5hbWUgKyAiOiIgKyBub2RlLnVybCArICI6IiArIG5vZGUubGluZU51
bWJlcjsKKyAgICAgICAgICAgICAgICB2YXIgY29sb3JQYWlyID0gZnVuY3Rpb25Db2xvclBhaXJz
W2Z1bmN0aW9uVUlEXTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbG9yUGFpcikgeworICAgICAg
ICAgICAgICAgICAgICArK2N1cnJlbnRDb2xvckluZGV4OworICAgICAgICAgICAgICAgICAgICB2
YXIgaHVlID0gKGN1cnJlbnRDb2xvckluZGV4ICogNSArIDExICogKGN1cnJlbnRDb2xvckluZGV4
ICUgMikpICUgMzYwOworICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkNvbG9yUGFpcnNbZnVu
Y3Rpb25VSURdID0gY29sb3JQYWlyID0ge2hpZ2hsaWdodGVkOiAiaHNsKCIgKyBodWUgKyAiLCAx
MDAlLCAzMyUpIiwgbm9ybWFsOiAiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCA2NiUpIn07CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKHsKKyAgICAgICAg
ICAgICAgICAgICAgY29sb3JQYWlyOiBjb2xvclBhaXIsCisgICAgICAgICAgICAgICAgICAgIGRl
cHRoOiBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDEsCisgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0VGltZTogc2FtcGxlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgIG5v
ZGU6IG5vZGUKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIG9wZW5JbnRl
cnZhbHMucHVzaCh7bm9kZTogbm9kZSwgaW5kZXg6IGluZGV4fSk7CisKKyAgICAgICAgICAgICAg
ICArK2luZGV4OworCisgICAgICAgICAgICAgICAgbm9kZSA9IHN0YWNrVHJhY2UucG9wKCk7Cisg
ICAgICAgICAgICAgICAgKytkZXB0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIHRoaXMuX3RpbWVsaW5lRGF0YSA9IHsKKyAgICAgICAgICAgIGVudHJpZXM6IGVudHJpZXMs
CisgICAgICAgICAgICB0b3RhbFRpbWU6IHNhbXBsZXNDb3VudCwKKyAgICAgICAgfTsKKworICAg
ICAgICByZXR1cm4gdGhpcy5fdGltZWxpbmVEYXRhOworICAgIH0sCisKICAgICBfZ2V0UG9wb3Zl
ckFuY2hvcjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2hpZ2hsaWdodGVk
Tm9kZUluZGV4ID09PSAtMSB8fCB0aGlzLl9pc0RyYWdnaW5nKQpAQCAtMzE2LDcgKzM3NCw3IEBA
IFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlm
ICh0aGlzLl9pc0RyYWdnaW5nKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgbm9k
ZSA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2Rlc1t0aGlzLl9oaWdobGlnaHRlZE5vZGVJbmRleF07
CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fdGltZWxpbmVEYXRhLmVudHJpZXNbdGhpcy5faGln
aGxpZ2h0ZWROb2RlSW5kZXhdLm5vZGU7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgdmFyIGNvbnRlbnRIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXJDb250ZW50SGVscGVyKG5vZGUuZnVuY3Rpb25OYW1lKTsKQEAgLTM0Miw3ICs0MDAsNyBA
QCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBp
ZiAodGhpcy5faGlnaGxpZ2h0ZWROb2RlSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2Rlc1t0aGlzLl9oaWdo
bGlnaHRlZE5vZGVJbmRleF07CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fdGltZWxpbmVEYXRh
LmVudHJpZXNbdGhpcy5faGlnaGxpZ2h0ZWROb2RlSW5kZXhdLm5vZGU7CiAgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LkV2ZW50cy5T
ZWxlY3RlZE5vZGUsIG5vZGUpOwogICAgIH0sCiAKQEAgLTM1OSwxOSArNDE3LDIwIEBAIFdlYklu
c3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKG5vZGVJbmRleCA9
PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHRpbWVsaW5lRGF0YSA9
IHRoaXMuX3RpbWVsaW5lRGF0YTsKKyAgICAgICAgdmFyIHRpbWVsaW5lRW50cmllcyA9IHRoaXMu
X3RpbWVsaW5lRGF0YS5lbnRyaWVzOwogCi0gICAgICAgIHZhciBhbmNob3JMZWZ0ID0gTWF0aC5m
bG9vcih0aW1lbGluZURhdGEuc3RhcnRUaW1lc1tub2RlSW5kZXhdICogdGhpcy5fdGltZVRvUGl4
ZWwgLSB0aGlzLl9waXhlbFdpbmRvd0xlZnQpOworICAgICAgICB2YXIgYW5jaG9yTGVmdCA9IE1h
dGguZmxvb3IodGltZWxpbmVFbnRyaWVzW25vZGVJbmRleF0uc3RhcnRUaW1lICogdGhpcy5fdGlt
ZVRvUGl4ZWwgLSB0aGlzLl9waXhlbFdpbmRvd0xlZnQpOwogICAgICAgICBhbmNob3JMZWZ0ID0g
TnVtYmVyLmNvbnN0cmFpbihhbmNob3JMZWZ0LCAwLCB0aGlzLl9jYW52YXMud2lkdGgpOwogCi0g
ICAgICAgIHZhciBhbmNob3JXaWR0aCA9IE1hdGguZmxvb3IodGltZWxpbmVEYXRhLmR1cmF0aW9u
c1tub2RlSW5kZXhdICogdGhpcy5fdGltZVRvUGl4ZWwpOworICAgICAgICB2YXIgYW5jaG9yV2lk
dGggPSBNYXRoLmZsb29yKHRpbWVsaW5lRW50cmllc1tub2RlSW5kZXhdLmR1cmF0aW9uICogdGhp
cy5fdGltZVRvUGl4ZWwpOworCiAgICAgICAgIGFuY2hvcldpZHRoID0gTnVtYmVyLmNvbnN0cmFp
bihhbmNob3JXaWR0aCwgMCwgdGhpcy5fY2FudmFzLndpZHRoIC0gYW5jaG9yTGVmdCk7CiAKICAg
ICAgICAgdmFyIHN0eWxlID0gdGhpcy5fYW5jaG9yRWxlbWVudC5zdHlsZTsKICAgICAgICAgc3R5
bGUud2lkdGggPSBhbmNob3JXaWR0aCArICJweCI7CiAgICAgICAgIHN0eWxlLmhlaWdodCA9IHRo
aXMuX2JhckhlaWdodCArICJweCI7CiAgICAgICAgIHN0eWxlLmxlZnQgPSBhbmNob3JMZWZ0ICsg
InB4IjsKLSAgICAgICAgc3R5bGUudG9wID0gTWF0aC5mbG9vcih0aGlzLl9jYW52YXMuaGVpZ2h0
IC0gKHRpbWVsaW5lRGF0YS5kZXB0aHNbbm9kZUluZGV4XSArIDEpICogdGhpcy5fYmFySGVpZ2h0
KSArICJweCI7CisgICAgICAgIHN0eWxlLnRvcCA9IE1hdGguZmxvb3IodGhpcy5fY2FudmFzLmhl
aWdodCAtICh0aW1lbGluZUVudHJpZXNbbm9kZUluZGV4XS5kZXB0aCArIDEpICogdGhpcy5fYmFy
SGVpZ2h0KSArICJweCI7CiAgICAgfSwKIAogICAgIF9vbk1vdXNlV2hlZWw6IGZ1bmN0aW9uKGUp
CkBAIC0zOTAsMTQgKzQ0OSwxNSBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciB0aW1lbGluZURhdGEgPSB0aGlzLl90aW1lbGluZURhdGE7CiAgICAg
ICAgIGlmICghdGltZWxpbmVEYXRhKQogICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB2
YXIgdGltZWxpbmVFbnRyaWVzID0gdGltZWxpbmVEYXRhLmVudHJpZXM7CiAgICAgICAgIHZhciBj
dXJzb3JUaW1lID0gTWF0aC5mbG9vcigoeCArIHRoaXMuX3BpeGVsV2luZG93TGVmdCkgKiB0aGlz
Ll9waXhlbFRvVGltZSk7CiAgICAgICAgIHZhciBjdXJzb3JMZXZlbCA9IE1hdGguZmxvb3IoKHRo
aXMuX2NhbnZhcy5oZWlnaHQgLSB5KSAvIHRoaXMuX2JhckhlaWdodCk7CiAKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aW1lbGluZURhdGEubm9kZUNvdW50OyArK2kpIHsKLSAgICAgICAg
ICAgIGlmIChjdXJzb3JUaW1lIDwgdGltZWxpbmVEYXRhLnN0YXJ0VGltZXNbaV0pCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGltZWxpbmVFbnRyaWVzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICBpZiAoY3Vyc29yVGltZSA8IHRpbWVsaW5lRW50cmllc1tpXS5zdGFydFRpbWUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgaWYgKGN1cnNvclRpbWUgPCAo
dGltZWxpbmVEYXRhLnN0YXJ0VGltZXNbaV0gKyB0aW1lbGluZURhdGEuZHVyYXRpb25zW2ldKQot
ICAgICAgICAgICAgICAgICYmIGN1cnNvckxldmVsID09PSB0aW1lbGluZURhdGEuZGVwdGhzW2ld
KQorICAgICAgICAgICAgaWYgKGN1cnNvclRpbWUgPCAodGltZWxpbmVFbnRyaWVzW2ldLnN0YXJ0
VGltZSArIHRpbWVsaW5lRW50cmllc1tpXS5kdXJhdGlvbikKKyAgICAgICAgICAgICAgICAmJiBj
dXJzb3JMZXZlbCA9PT0gdGltZWxpbmVFbnRyaWVzW2ldLmRlcHRoKQogICAgICAgICAgICAgICAg
IHJldHVybiBpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTQxOCwxOCArNDc4
LDE3IEBAIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KCF0aGlzLl90aW1lbGluZURhdGEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFy
IG5vZGVDb3VudCA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2RlQ291bnQ7Ci0gICAgICAgIHZhciBk
ZXB0aHMgPSB0aGlzLl90aW1lbGluZURhdGEuZGVwdGhzOwotICAgICAgICB2YXIgc3RhcnRUaW1l
cyA9IHRoaXMuX3RpbWVsaW5lRGF0YS5zdGFydFRpbWVzOwotICAgICAgICB2YXIgZHVyYXRpb25z
ID0gdGhpcy5fdGltZWxpbmVEYXRhLmR1cmF0aW9uczsKKyAgICAgICAgdmFyIHRpbWVsaW5lRW50
cmllcyA9IHRoaXMuX3RpbWVsaW5lRGF0YS5lbnRyaWVzOworCiAgICAgICAgIHZhciBkcmF3RGF0
YSA9IG5ldyBVaW50OEFycmF5KHdpZHRoKTsKICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gd2lk
dGggLyB0aGlzLl90b3RhbFRpbWU7CiAKLSAgICAgICAgZm9yICh2YXIgbm9kZUluZGV4ID0gMDsg
bm9kZUluZGV4IDwgbm9kZUNvdW50OyArK25vZGVJbmRleCkgewotICAgICAgICAgICAgdmFyIHN0
YXJ0ID0gTWF0aC5mbG9vcihzdGFydFRpbWVzW25vZGVJbmRleF0gKiBzY2FsZUZhY3Rvcik7Ci0g
ICAgICAgICAgICB2YXIgZmluaXNoID0gTWF0aC5mbG9vcigoc3RhcnRUaW1lc1tub2RlSW5kZXhd
ICsgZHVyYXRpb25zW25vZGVJbmRleF0pICogc2NhbGVGYWN0b3IpOworICAgICAgICBmb3IgKHZh
ciBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCB0aW1lbGluZUVudHJpZXMubGVuZ3RoOyArK25v
ZGVJbmRleCkgeworICAgICAgICAgICAgdmFyIGVudHJ5ID0gdGltZWxpbmVFbnRyaWVzW25vZGVJ
bmRleF07CisgICAgICAgICAgICB2YXIgc3RhcnQgPSBNYXRoLmZsb29yKGVudHJ5LnN0YXJ0VGlt
ZSAqIHNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHZhciBmaW5pc2ggPSBNYXRoLmZsb29yKChl
bnRyeS5zdGFydFRpbWUgKyBlbnRyeS5kdXJhdGlvbikgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAg
ICAgICBmb3IgKHZhciB4ID0gc3RhcnQ7IHggPCBmaW5pc2g7ICsreCkKLSAgICAgICAgICAgICAg
ICBkcmF3RGF0YVt4XSA9IE1hdGgubWF4KGRyYXdEYXRhW3hdLCBkZXB0aHNbbm9kZUluZGV4XSAr
IDEpOworICAgICAgICAgICAgICAgIGRyYXdEYXRhW3hdID0gTWF0aC5tYXgoZHJhd0RhdGFbeF0s
IGVudHJ5LmRlcHRoICsgMSk7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgY29udGV4dCA9IHRo
aXMuX292ZXJ2aWV3Q2FudmFzLmdldENvbnRleHQoIjJkIik7CkBAIC00NTYsMjUgKzUxNSwyNiBA
QCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0aW1l
bGluZURhdGEgPSB0aGlzLl9jYWxjdWxhdGVUaW1lbGluZURhdGEoKTsKICAgICAgICAgaWYgKCF0
aW1lbGluZURhdGEpCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB0aW1lbGluZUVu
dHJpZXMgPSB0aW1lbGluZURhdGEuZW50cmllczsKICAgICAgICAgdGhpcy5fY2FudmFzLmhlaWdo
dCA9IGhlaWdodDsKICAgICAgICAgdGhpcy5fY2FudmFzLndpZHRoID0gd2lkdGg7CiAgICAgICAg
IHZhciBiYXJIZWlnaHQgPSB0aGlzLl9iYXJIZWlnaHQ7CiAKICAgICAgICAgdmFyIGNvbnRleHQg
PSB0aGlzLl9jYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKIAotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRpbWVsaW5lRGF0YS5ub2RlQ291bnQ7ICsraSkgewotICAgICAgICAgICAgdmFyIHN0
YXJ0VGltZSA9IHRpbWVsaW5lRGF0YS5zdGFydFRpbWVzW2ldOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRpbWVsaW5lRW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFy
IHN0YXJ0VGltZSA9IHRpbWVsaW5lRW50cmllc1tpXS5zdGFydFRpbWU7CiAgICAgICAgICAgICBp
ZiAoc3RhcnRUaW1lID4gdGhpcy5fdGltZVdpbmRvd1JpZ2h0KQogICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgaWYgKChzdGFydFRpbWUgKyB0aW1lbGluZURhdGEuZHVyYXRpb25z
W2ldKSA8IHRoaXMuX3RpbWVXaW5kb3dMZWZ0KQorICAgICAgICAgICAgaWYgKChzdGFydFRpbWUg
KyB0aW1lbGluZUVudHJpZXNbaV0uZHVyYXRpb24pIDwgdGhpcy5fdGltZVdpbmRvd0xlZnQpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB2YXIgeCA9IE1hdGguZmxvb3Io
c3RhcnRUaW1lICogdGhpcy5fdGltZVRvUGl4ZWwpIC0gdGhpcy5fcGl4ZWxXaW5kb3dMZWZ0Owot
ICAgICAgICAgICAgdmFyIHkgPSBoZWlnaHQgLSAodGltZWxpbmVEYXRhLmRlcHRoc1tpXSArIDEp
ICogYmFySGVpZ2h0OwotICAgICAgICAgICAgdmFyIGJhcldpZHRoID0gTWF0aC5mbG9vcih0aW1l
bGluZURhdGEuZHVyYXRpb25zW2ldICogdGhpcy5fdGltZVRvUGl4ZWwpOworICAgICAgICAgICAg
dmFyIHkgPSBoZWlnaHQgLSAodGltZWxpbmVFbnRyaWVzW2ldLmRlcHRoICsgMSkgKiBiYXJIZWln
aHQ7CisgICAgICAgICAgICB2YXIgYmFyV2lkdGggPSBNYXRoLmZsb29yKHRpbWVsaW5lRW50cmll
c1tpXS5kdXJhdGlvbiAqIHRoaXMuX3RpbWVUb1BpeGVsKTsKICAgICAgICAgICAgIGlmIChiYXJX
aWR0aCA8IHRoaXMuX21pbldpZHRoKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICB2YXIgY29sb3JQYWlyID0gdGltZWxpbmVEYXRhLmNvbG9yUGFpcnNbaV07CisgICAg
ICAgICAgICB2YXIgY29sb3JQYWlyID0gdGltZWxpbmVFbnRyaWVzW2ldLmNvbG9yUGFpcjsKICAg
ICAgICAgICAgIHZhciBjb2xvcjsKICAgICAgICAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZE5v
ZGVJbmRleCA9PT0gaSkKICAgICAgICAgICAgICAgICBjb2xvciA9ICBjb2xvclBhaXIuaGlnaGxp
Z2h0ZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>