<?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>94213</bug_id>
          
          <creation_ts>2012-08-16 04:32:42 -0700</creation_ts>
          <short_desc>Web Inspector: hovering over an image link in Timeline popup kills popup</short_desc>
          <delta_ts>2012-08-17 05:08:38 -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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696994</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-16 04:32:42 -0700</bug_when>
    <thetext>Reproducible on the image resource load records...

It sounds like we are trying to show popup from popup. We should include image preview in the original timeline popup instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697115</commentid>
    <comment_count>1</comment_count>
      <attachid>158815</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-16 07:34:45 -0700</bug_when>
    <thetext>Created attachment 158815
[IMAGE] Screenshot with the patch applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697127</commentid>
    <comment_count>2</comment_count>
      <attachid>158819</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-16 07:47:57 -0700</bug_when>
    <thetext>Created attachment 158819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697136</commentid>
    <comment_count>3</comment_count>
      <attachid>158819</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 07:58:25 -0700</bug_when>
    <thetext>Comment on attachment 158819
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:739
&gt; +    _buildImagePreviewElementAndContinue: function(callback)
&gt; +    {
&gt; +        WebInspector.buildImagePreviewContents(null, null, this.url, false, returnContent);
&gt; +
&gt; +        function returnContent(contentElement)
&gt; +        {
&gt; +            callback(contentElement);
&gt; +        }
&gt;      },

I&apos;d replace a call to this with just WebInspector.buildImagePreviewContents(null, null, this.url, false, callback);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697151</commentid>
    <comment_count>4</comment_count>
      <attachid>158825</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-16 08:13:47 -0700</bug_when>
    <thetext>Created attachment 158825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697157</commentid>
    <comment_count>5</comment_count>
      <attachid>158825</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 08:16:22 -0700</bug_when>
    <thetext>Comment on attachment 158825
Patch

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

&gt; Source/WebCore/inspector/front-end/UIUtils.js:1100
&gt; +        if (naturalWidth &gt; naturalHeight) {
&gt; +            if (naturalWidth &gt; maxImageWidth) {
&gt; +                imageElement.style.width = maxImageWidth + &quot;px&quot;;
&gt; +                imageElement.style.height = (naturalHeight * maxImageWidth / naturalWidth) + &quot;px&quot;;
&gt; +            }
&gt; +        } else {
&gt; +            if (naturalHeight &gt; maxImageHeight) {
&gt; +                imageElement.style.width = (naturalWidth * maxImageHeight / naturalHeight) + &quot;px&quot;;
&gt; +                imageElement.style.height = maxImageHeight + &quot;px&quot;;
&gt; +            }
&gt; +        }

Can we do this with CSS, using max-width &amp; max-height instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697161</commentid>
    <comment_count>6</comment_count>
      <attachid>158829</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-16 08:20:23 -0700</bug_when>
    <thetext>Created attachment 158829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697182</commentid>
    <comment_count>7</comment_count>
      <attachid>158829</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 08:48:08 -0700</bug_when>
    <thetext>Comment on attachment 158829
Patch

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

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:434
&gt; +            var listItem = relatedObject.enclosingNodeOrSelfWithNodeNameInArray([&quot;li&quot;]);

enclosingNodeOrSelfWithNodeName()?

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:641
&gt; +    generatePopupContent: function(callback)
&gt; +    {
&gt; +        WebInspector.buildImagePreviewContents(null, null, this.url, false, this._generatePopupContentWithImagePreview.bind(this, callback));
&gt; +    },

I think we should only do this for the record types where we expect images and where URL is valid (i.e. network events etc.)

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:643
&gt; +    _generatePopupContentWithImagePreview: function(callback, previewElement)

Please annotate.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:1041
&gt; +WebInspector.buildImagePreviewContents = function(relatedObject, dimensionsProvider, imageURL, showDimensions, userCallback)

Please annotate.
I&apos;d suggest we also drop showDimensions parameter and use presence of dimenstionsProvider instead.
Actually, given that we invoke dimensionsProvider() first thing, I&apos;d suggest we leave this to the caller and let him invoke this with the dimensions, provided caller has them -- this would simplify control flow a bit in my view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697187</commentid>
    <comment_count>8</comment_count>
      <attachid>158829</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-16 08:57:24 -0700</bug_when>
    <thetext>Comment on attachment 158829
Patch

r- as per caseq&apos;s recommendations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697203</commentid>
    <comment_count>9</comment_count>
      <attachid>158838</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-16 09:17:55 -0700</bug_when>
    <thetext>Created attachment 158838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697238</commentid>
    <comment_count>10</comment_count>
      <attachid>158838</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-16 09:58:25 -0700</bug_when>
    <thetext>Comment on attachment 158838
Patch

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

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:434
&gt; +            WebInspector.buildImagePreviewContents.bind(WebInspector, anchor.href, true, showPopover);

Is this intentional?

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:877
&gt; +    this.record = record;

We also use PopupContentHelper for frames that are not records, so it should not be aware of the record. Can we have this logic elsewhere?

&gt; Source/WebCore/inspector/front-end/UIUtils.js:1047
&gt; + * @param {Object=} precomputedDimensions
&gt; + */
&gt; +WebInspector.buildImagePreviewContents = function(imageURL, showDimensions, userCallback, precomputedDimensions)

Drop precomputed, just dimensions -- it&apos;s cleaner.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:1068
&gt; +    imageElement.addEventListener(&quot;load&quot;, buildContent.bind(null, imageElement, precomputedDimensions), false);
&gt; +    imageElement.addEventListener(&quot;error&quot;, buildContent.bind(null, null, null), false);
&gt; +    resource.populateImageSource(imageElement);
&gt; +
&gt; +    /**
&gt; +     * @param {Object=} nodeDimensions
&gt; +     */
&gt; +    function buildContent(imageElement, nodeDimensions)
&gt; +    {
&gt; +        if (!imageElement) {
&gt; +            userCallback();
&gt; +            return;
&gt; +        }

So we only invoke buildContent() with a null imageElement if we had an error -- I&apos;d suggest we directly invoke userCallback on error instead and remove this check. We could also remove both parameters, as these would always be visible in the outer lexical context. Hence we would not have to bind() as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698192</commentid>
    <comment_count>11</comment_count>
      <attachid>159086</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-17 04:34:44 -0700</bug_when>
    <thetext>Created attachment 159086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698193</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-17 04:38:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 158838 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158838&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ElementsPanel.js:434
&gt; &gt; +            WebInspector.buildImagePreviewContents.bind(WebInspector, anchor.href, true, showPopover);
&gt; 
&gt; Is this intentional?

It&apos;s an unfortunate copy-paste...

&gt; &gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:877
&gt; &gt; +    this.record = record;
&gt; 
&gt; We also use PopupContentHelper for frames that are not records, so it should not be aware of the record. Can we have this logic elsewhere?

Fixed the way we had agreed offline.

&gt; &gt; Source/WebCore/inspector/front-end/UIUtils.js:1047
&gt; &gt; + * @param {Object=} precomputedDimensions
&gt; &gt; + */
&gt; &gt; +WebInspector.buildImagePreviewContents = function(imageURL, showDimensions, userCallback, precomputedDimensions)
&gt; 
&gt; Drop precomputed, just dimensions -- it&apos;s cleaner.

As agreed offline, this will make the reader think that the &quot;showDimensions&quot; is related to this parameter (i.e. the former can be superfluous if the latter is null), while this is not the case.

&gt; &gt; Source/WebCore/inspector/front-end/UIUtils.js:1068
&gt; &gt; +    imageElement.addEventListener(&quot;load&quot;, buildContent.bind(null, imageElement, precomputedDimensions), false);
&gt; &gt; +    imageElement.addEventListener(&quot;error&quot;, buildContent.bind(null, null, null), false);
&gt; &gt; +    resource.populateImageSource(imageElement);
&gt; &gt; +
&gt; &gt; +    /**
&gt; &gt; +     * @param {Object=} nodeDimensions
&gt; &gt; +     */
&gt; &gt; +    function buildContent(imageElement, nodeDimensions)
&gt; &gt; +    {
&gt; &gt; +        if (!imageElement) {
&gt; &gt; +            userCallback();
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; 
&gt; So we only invoke buildContent() with a null imageElement if we had an error -- I&apos;d suggest we directly invoke userCallback on error instead and remove this check. We could also remove both parameters, as these would always be visible in the outer lexical context. Hence we would not have to bind() as well.

This will result in the userCalback() invocation with the ErrorEvent object as the first argument, which is wrong. Fixed by using an intermediate callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698197</commentid>
    <comment_count>13</comment_count>
      <attachid>159086</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-17 04:41:51 -0700</bug_when>
    <thetext>Comment on attachment 159086
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698219</commentid>
    <comment_count>14</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-17 05:08:38 -0700</bug_when>
    <thetext>Committed r125882: &lt;http://trac.webkit.org/changeset/125882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>158815</attachid>
            <date>2012-08-16 07:34:45 -0700</date>
            <delta_ts>2012-08-16 07:34:45 -0700</delta_ts>
            <desc>[IMAGE] Screenshot with the patch applied</desc>
            <filename>TimelineImagePreview.png</filename>
            <type>image/png</type>
            <size>66024</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">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
gR9QOAj0AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158819</attachid>
            <date>2012-08-16 07:47:57 -0700</date>
            <delta_ts>2012-08-16 08:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94213-20120816184721.patch</filename>
            <type>text/plain</type>
            <size>24946</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uNDE1MmI4MjZlMzRlNzRkZTQyZjY1MjJlMWEwNTZj
NDliNTMwMzQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTE2ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaG92ZXJpbmcgb3ZlciBhbiBpbWFnZSBsaW5rIGluIFRpbWVsaW5lIHBvcHVwIGtpbGxz
IHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
Rml4ZWQgYnVnIHdpdGggRWxlbWVudHNQYW5lbCBQb3BvdmVySGVscGVyIGFjdGluZyBvbiB0aGUg
VGltZWxpbmVQYW5lbCAoZHVlIHRvIHdoaWNoIHRoZSBvcmlnaW5hbCBpc3N1ZSBvY2N1cnMpLgor
ICAgICAgICAtIEltYWdlIHByZXZpZXcgYWRkZWQgdG8gcmVzb3VyY2UgZW50cmllcyBwb3BvdmVy
IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQgdGhlIGNvcmUgaW1hZ2UgcHJl
dmlldyBidWlsZGluZyBjb2RlIGludG8gVUlVdGlscy5qcworCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Ll9zaG93UG9wb3Zlci5kaW1lbnNpb25zUHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9zaG93UG9wb3Zlci5zaG93UG9wb3Zlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyLnNob3dD
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X3Nob3dQb3BvdmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90eXBlLmdlbmVyYXRlUG9wdXBDb250ZW50LmNvbnRpbnVh
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLlJlY29yZC5wcm90b3R5cGUuZ2VuZXJhdGVQb3B1cENvbnRlbnQpOiBGaXJzdCBidWls
ZCB0aGUgaW1hZ2UgcHJldmlldyBlbGVtZW50LCB0aGVuIGRvIGV2ZXJ5dGhpbmcgZWxzZS4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90
b3R5cGUuX2J1aWxkSW1hZ2VQcmV2aWV3RWxlbWVudEFuZENvbnRpbnVlLnJldHVybkNvbnRlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3Jk
LnByb3RvdHlwZS5fYnVpbGRJbWFnZVByZXZpZXdFbGVtZW50QW5kQ29udGludWUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzLmRpbWVuc2lvbnNDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cy5idWlsZENvbnRlbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMpOiBFeHRyYWN0
ZWQgZnJvbSBFbGVtZW50c1BhbmVsLiBFbmFibGVkIGJ1aWxkaW5nIG9mIHByZXZpZXcgZWxlbWVu
dHMgd2l0aG91dCB0aGUgZGltZW5zaW9ucyB0ZXh0IGRhdGEuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzczoKKyAgICAgICAgKC5pbWFnZS1wcmV2aWV3LWNv
bnRhaW5lcik6IEZpeGVkIGNlbnRlcmluZyBvZiB0aGUgcHJldmlldyBjb250YWluZXIgY29udGVu
dHMuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzczoKKyAg
ICAgICAgKC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lcik6CisgICAgICAgICguaW1hZ2UtcHJldmll
dy1jb250YWluZXIgaW1nKToKKyAgICAgICAgKC5pbWFnZS1jb250YWluZXIpOgorCiAyMDEyLTA4
LTE2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1lbW9yeSBpbnN0cnVtZW50YXRpb24gZm9yIFJlc291cmNle1JlcXVlc3Qv
UmVzcG9uc2V9QmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDVmZDIzMjI3ZmFjZDQ3NjE3OGM2OGQxODkwYzY4YTMy
MDNkYzcwYWQuLjMzNWZiZGVhNmFiMzhkZDEwZjAwY2Y4MzcxYmMxYTk5NDdlMTFlYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKQEAgLTk1LDcgKzk1LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlv
bigpCiAKICAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogCi0gICAgdGhpcy5fcG9wb3Zl
ckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcihkb2N1bWVudC5ib2R5LCB0
aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQo
dGhpcykpOworICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92
ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyks
IHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcykpOwogICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIu
c2V0VGltZW91dCgwKTsKIAogICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuTm9kZVJlbW92ZWQsIHRoaXMuX25vZGVS
ZW1vdmVkLCB0aGlzKTsKQEAgLTQyNyw3MCArNDI3LDI3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9u
KGFuY2hvciwgcG9wb3ZlcikKICAgICB7Ci0gICAgICAgIHZhciBsaXN0SXRlbSA9IGFuY2hvci5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheShbImxpIl0pOwotICAgICAgICBp
ZiAobGlzdEl0ZW0gJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9s
b2FkRGltZW5zaW9uc0Zvck5vZGUobGlzdEl0ZW0udHJlZUVsZW1lbnQsIGRpbWVuc2lvbnNDYWxs
YmFjayk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRpbWVuc2lvbnNDYWxsYmFjaygpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cyhhbmNob3IsIGRp
bWVuc2lvbnNQcm92aWRlci5iaW5kKHRoaXMpLCBhbmNob3IuaHJlZiwgdHJ1ZSwgc2hvd1BvcG92
ZXIpOwogCi0gICAgICAgIC8qKgotICAgICAgICAgKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lv
bnMKLSAgICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIGRpbWVuc2lvbnNDYWxsYmFjayhkaW1l
bnNpb25zKQorICAgICAgICBmdW5jdGlvbiBkaW1lbnNpb25zUHJvdmlkZXIocmVsYXRlZE9iamVj
dCwgZGltZW5zaW9uc0NhbGxiYWNrKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgaW1hZ2VF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICBpbWFn
ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHNob3dQb3BvdmVyLmJpbmQobnVsbCwg
aW1hZ2VFbGVtZW50LCBkaW1lbnNpb25zKSwgZmFsc2UpOwotICAgICAgICAgICAgdmFyIHJlc291
cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKGFuY2hv
ci5ocmVmKTsKLSAgICAgICAgICAgIGlmICghcmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgIAotICAgICAgICAgICAgcmVzb3VyY2UucG9wdWxhdGVJbWFnZVNvdXJjZShpbWFn
ZUVsZW1lbnQpOworICAgICAgICAgICAgdmFyIGxpc3RJdGVtID0gcmVsYXRlZE9iamVjdC5lbmNs
b3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheShbImxpIl0pOworICAgICAgICAgICAg
aWYgKGxpc3RJdGVtICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgIHRo
aXMuX2xvYWREaW1lbnNpb25zRm9yTm9kZShsaXN0SXRlbS50cmVlRWxlbWVudCwgZGltZW5zaW9u
c0NhbGxiYWNrKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkaW1lbnNpb25z
Q2FsbGJhY2soKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qKgotICAgICAgICAgKiBAcGFyYW0g
e09iamVjdD19IGRpbWVuc2lvbnMKKyAgICAgICAgICogQHBhcmFtIHtFbGVtZW50PX0gY29udGVu
dHMKICAgICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIHNob3dQb3BvdmVyKGltYWdlRWxlbWVu
dCwgZGltZW5zaW9ucykKKyAgICAgICAgZnVuY3Rpb24gc2hvd1BvcG92ZXIoY29udGVudHMpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50cyA9IGJ1aWxkUG9wb3ZlckNvbnRlbnRz
KGltYWdlRWxlbWVudCwgZGltZW5zaW9ucyk7CisgICAgICAgICAgICBpZiAoIWNvbnRlbnRzKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHBvcG92ZXIuc2V0Q2FuU2hyaW5r
KGZhbHNlKTsKICAgICAgICAgICAgIHBvcG92ZXIuc2hvdyhjb250ZW50cywgYW5jaG9yKTsKICAg
ICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBAcGFyYW0ge09iamVjdD19IG5vZGVE
aW1lbnNpb25zCi0gICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiBidWlsZFBvcG92ZXJDb250
ZW50cyhpbWFnZUVsZW1lbnQsIG5vZGVEaW1lbnNpb25zKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBjb25zdCBtYXhJbWFnZVdpZHRoID0gMTAwOwotICAgICAgICAgICAgY29uc3QgbWF4SW1hZ2VI
ZWlnaHQgPSAxMDA7Ci0gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgidGFibGUiKTsKLSAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSAiaW1h
Z2UtcHJldmlldy1jb250YWluZXIiOwotICAgICAgICAgICAgdmFyIG5hdHVyYWxXaWR0aCA9IG5v
ZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMubmF0dXJhbFdpZHRoIDogaW1hZ2VFbGVtZW50
Lm5hdHVyYWxXaWR0aDsKLSAgICAgICAgICAgIHZhciBuYXR1cmFsSGVpZ2h0ID0gbm9kZURpbWVu
c2lvbnMgPyBub2RlRGltZW5zaW9ucy5uYXR1cmFsSGVpZ2h0IDogaW1hZ2VFbGVtZW50Lm5hdHVy
YWxIZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgb2Zmc2V0V2lkdGggPSBub2RlRGltZW5zaW9ucyA/
IG5vZGVEaW1lbnNpb25zLm9mZnNldFdpZHRoIDogbmF0dXJhbFdpZHRoOwotICAgICAgICAgICAg
dmFyIG9mZnNldEhlaWdodCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMub2Zmc2V0
SGVpZ2h0IDogbmF0dXJhbEhlaWdodDsKLSAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbjsKLSAg
ICAgICAgICAgIGlmIChvZmZzZXRIZWlnaHQgPT09IG5hdHVyYWxIZWlnaHQgJiYgb2Zmc2V0V2lk
dGggPT09IG5hdHVyYWxXaWR0aCkKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiJWQgXHhkNyAlZCBwaXhlbHMiLCBvZmZzZXRXaWR0aCwgb2Zmc2V0
SGVpZ2h0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgXHhkNyAlZCBwaXhlbHMgKE5hdHVyYWw6ICVkIFx4
ZDcgJWQgcGl4ZWxzKSIsIG9mZnNldFdpZHRoLCBvZmZzZXRIZWlnaHQsIG5hdHVyYWxXaWR0aCwg
bmF0dXJhbEhlaWdodCk7Ci0KLSAgICAgICAgICAgIGlmIChuYXR1cmFsV2lkdGggPiBuYXR1cmFs
SGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5hdHVyYWxXaWR0aCA+IG1heEltYWdlV2lk
dGgpIHsKLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxlLndpZHRoID0gbWF4
SW1hZ2VXaWR0aCArICJweCI7Ci0gICAgICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zdHls
ZS5oZWlnaHQgPSAobmF0dXJhbEhlaWdodCAqIG1heEltYWdlV2lkdGggLyBuYXR1cmFsV2lkdGgp
ICsgInB4IjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGlmIChuYXR1cmFsSGVpZ2h0ID4gbWF4SW1hZ2VIZWlnaHQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxlLndpZHRoID0gKG5hdHVyYWxXaWR0aCAqIG1h
eEltYWdlSGVpZ2h0IC8gbmF0dXJhbEhlaWdodCkgKyAicHgiOwotICAgICAgICAgICAgICAgICAg
ICBpbWFnZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbWF4SW1hZ2VIZWlnaHQgKyAicHgiOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRhaW5lci5jcmVh
dGVDaGlsZCgidHIiKS5jcmVhdGVDaGlsZCgidGQiLCAiaW1hZ2UtY29udGFpbmVyIikuYXBwZW5k
Q2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIGNvbnRhaW5lci5jcmVhdGVDaGlsZCgi
dHIiKS5jcmVhdGVDaGlsZCgidGQiKS5jcmVhdGVDaGlsZCgic3BhbiIsICJkZXNjcmlwdGlvbiIp
LnRleHRDb250ZW50ID0gZGVzY3JpcHRpb247Ci0gICAgICAgICAgICByZXR1cm4gY29udGFpbmVy
OwotICAgICAgICB9CiAgICAgfSwKIAogICAgIGp1bXBUb05leHRTZWFyY2hSZXN1bHQ6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcwppbmRleCBiZjA5YmNmOTRlODE4ZWEwOTVkNTZjNWFjNDJkMzBkYTg5YjJmZTkz
Li4xNWEzMTcyZWJhNTQ1MTI3ZTBhYzNmZDZmODcyOTkyNjliMzY4Y2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC05
NDQsNyArOTQ0LDEyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHBvcG92ZXIuc2hvdyhXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5nZW5lcmF0ZVBvcHVwQ29udGVudEZvckZyYW1lKGZyYW1lKSwgYW5jaG9yKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChhbmNob3Iucm93ICYmIGFuY2hvci5yb3cu
X3JlY29yZCkKLSAgICAgICAgICAgICAgICBwb3BvdmVyLnNob3coYW5jaG9yLnJvdy5fcmVjb3Jk
LmdlbmVyYXRlUG9wdXBDb250ZW50KCksIGFuY2hvcik7CisgICAgICAgICAgICAgICAgYW5jaG9y
LnJvdy5fcmVjb3JkLmdlbmVyYXRlUG9wdXBDb250ZW50KHNob3dDYWxsYmFjayk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBzaG93Q2FsbGJhY2socG9wdXBDb250ZW50KQorICAgICAg
ICB7CisgICAgICAgICAgICBwb3BvdmVyLnNob3cocG9wdXBDb250ZW50LCBhbmNob3IpOwogICAg
ICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IGJlYjMw
MDczZDUyZDYwYjIyNWEwMDc1M2JlNzBlZjUzNWZlMTBhNTAuLjJmMTc1NzA3ZDlmN2ZjZTY4NmJi
ZTY0ZTM3NGQ3MDVhZTkzOTlkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAg
LTYzNSw5MCArNjM1LDEwNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5SZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5zdGFydFRpbWUgPD0g
dGltZSAmJiB0aW1lIDw9IHRoaXMuZW5kVGltZTsKICAgICB9LAogCi0gICAgZ2VuZXJhdGVQb3B1
cENvbnRlbnQ6IGZ1bmN0aW9uKCkKKyAgICBnZW5lcmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24o
Y2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgY29udGVudEhlbHBlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRIZWxwZXIodGhpcy50
aXRsZSk7CisgICAgICAgIHRoaXMuX2J1aWxkSW1hZ2VQcmV2aWV3RWxlbWVudEFuZENvbnRpbnVl
KGNvbnRpbnVhdGlvbkNhbGxiYWNrLmJpbmQodGhpcykpOwogCi0gICAgICAgIHZhciB0ZXh0ID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAoYXQgJXMpIiwgTnVtYmVyLnNlY29uZHNUb1N0cmlu
Zyh0aGlzLl9sYXN0Q2hpbGRFbmRUaW1lIC0gdGhpcy5zdGFydFRpbWUsIHRydWUpLAotICAgICAg
ICAgICAgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9zdGFydFRpbWVPZmZzZXQpKTsKLSAg
ICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkR1cmF0aW9uIiksIHRleHQpOworICAgICAgICBmdW5jdGlvbiBjb250aW51YXRpb25DYWxsYmFj
ayhwcmV2aWV3RWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGNvbnRlbnRIZWxw
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUG9wdXBDb250
ZW50SGVscGVyKHRoaXMudGl0bGUpOwogCi0gICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5n
dGgpIHsKLSAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTZWxmIFRpbWUiKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9z
ZWxmVGltZSwgdHJ1ZSkpOwotICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJv
dyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNQVSBUaW1lIiksIE51bWJlci5zZWNvbmRzVG9TdHJp
bmcodGhpcy5fY3B1VGltZSwgdHJ1ZSkpOwotICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBw
ZW5kRWxlbWVudFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFnZ3JlZ2F0ZWQgVGltZSIpLAot
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9n
ZW5lcmF0ZUFnZ3JlZ2F0ZWRJbmZvKHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cykpOwotICAgICAgICB9
Ci0gICAgICAgIGNvbnN0IHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
UmVjb3JkVHlwZTsKKyAgICAgICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCIlcyAoYXQgJXMpIiwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9sYXN0Q2hpbGRFbmRU
aW1lIC0gdGhpcy5zdGFydFRpbWUsIHRydWUpLAorICAgICAgICAgICAgICAgIE51bWJlci5zZWNv
bmRzVG9TdHJpbmcodGhpcy5fc3RhcnRUaW1lT2Zmc2V0KSk7CisgICAgICAgICAgICBjb250ZW50
SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiRHVyYXRpb24iKSwg
dGV4dCk7CiAKLSAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2Ug
cmVjb3JkVHlwZXMuR0NFdmVudDoKLSAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBl
bmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29sbGVjdGVkIiksIE51bWJlci5ieXRl
c1RvU3RyaW5nKHRoaXMuZGF0YVsidXNlZEhlYXBTaXplRGVsdGEiXSkpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5UaW1lckluc3RhbGw6Ci0g
ICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlRpbWVyRmlyZToKLSAgICAgICAgICAgIGNhc2Ug
cmVjb3JkVHlwZXMuVGltZXJSZW1vdmU6Ci0gICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5f
YXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVyIElEIiksIHRoaXMuZGF0
YVsidGltZXJJZCJdKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZW91dCA9
PT0gIm51bWJlciIpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5k
VGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVvdXQiKSwgTnVtYmVyLnNlY29uZHNU
b1N0cmluZyh0aGlzLnRpbWVvdXQgLyAxMDAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXBlYXRzIiks
ICF0aGlzLnNpbmdsZVNob3QpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuRmlyZUFuaW1hdGlvbkZyYW1lOgot
ICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJDYWxsYmFjayBJRCIpLCB0aGlzLmRhdGFbImlkIl0pOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5GdW5jdGlvbkNhbGw6Ci0g
ICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVudFJvdyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkxvY2F0aW9uIiksIHRoaXMuX2xpbmtpZnlTY3JpcHRMb2NhdGlvbigpKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuU2No
ZWR1bGVSZXNvdXJjZVJlcXVlc3Q6Ci0gICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291
cmNlU2VuZFJlcXVlc3Q6Ci0gICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlUmVj
ZWl2ZVJlc3BvbnNlOgotICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2Vp
dmVkRGF0YToKLSAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VGaW5pc2g6Ci0g
ICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVudFJvdyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJlc291cmNlIiksIHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCkp
OwotICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSkKLSAgICAg
ICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlJlcXVlc3QgTWV0aG9kIiksIHRoaXMuZGF0YVsicmVxdWVzdE1ldGhvZCJdKTsK
LSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGF0YVsic3RhdHVzQ29kZSJdID09PSAi
bnVtYmVyIikKLSAgICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJv
dyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXR1cyBDb2RlIiksIHRoaXMuZGF0YVsic3RhdHVz
Q29kZSJdKTsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhWyJtaW1lVHlwZSJdKQotICAg
ICAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTUlNRSBUeXBlIiksIHRoaXMuZGF0YVsibWltZVR5cGUiXSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHRoaXMuZGF0YVsiZW5jb2RlZERhdGFMZW5ndGgiXSkKLSAgICAgICAgICAg
ICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkVuY29kZWQgRGF0YSBMZW5ndGgiKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBCeXRl
cyIsIHRoaXMuZGF0YVsiZW5jb2RlZERhdGFMZW5ndGgiXSkpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5FdmFsdWF0ZVNjcmlwdDoKLSAgICAg
ICAgICAgICAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMudXJsKQotICAgICAgICAgICAgICAgICAg
ICBjb250ZW50SGVscGVyLl9hcHBlbmRFbGVtZW50Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U2NyaXB0IiksIHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhpcy5kYXRhWyJsaW5l
TnVtYmVyIl0pKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgcmVj
b3JkVHlwZXMuUGFpbnQ6Ci0gICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4
dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvY2F0aW9uIiksIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiKCVkLCAlZCkiLCB0aGlzLmRhdGFbIngiXSwgdGhpcy5kYXRhWyJ5Il0pKTsKLSAgICAg
ICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRGltZW5zaW9ucyIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIiwgdGhp
cy5kYXRhWyJ3aWR0aCJdLCB0aGlzLmRhdGFbImhlaWdodCJdKSk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVzOiAv
LyBXZSBkb24ndCB3YW50IHRvIHNlZSBkZWZhdWx0IGRldGFpbHMuCi0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlRpbWU6Ci0gICAgICAgICAgICBj
YXNlIHJlY29yZFR5cGVzLlRpbWVFbmQ6Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlz
LmludGVydmFsRHVyYXRpb24gPT09ICJudW1iZXIiKQotICAgICAgICAgICAgICAgICAgICBjb250
ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW50ZXJ2YWwg
RHVyYXRpb24iKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLmludGVydmFsRHVyYXRpb24s
IHRydWUpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgaWYgKHRoaXMuZGV0YWlscygpKQotICAgICAgICAgICAgICAgICAgICBj
b250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGV0YWls
cyIpLCB0aGlzLmRldGFpbHMoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
KyAgICAgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAg
ICBjb250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vs
ZiBUaW1lIiksIE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fc2VsZlRpbWUsIHRydWUpKTsK
KyAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ1BVIFRpbWUiKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9jcHVU
aW1lLCB0cnVlKSk7CisgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVu
dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFnZ3JlZ2F0ZWQgVGltZSIpLAorICAgICAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5fZ2VuZXJh
dGVBZ2dyZWdhdGVkSW5mbyh0aGlzLl9hZ2dyZWdhdGVkU3RhdHMpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNvbnN0IHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9k
ZWwuUmVjb3JkVHlwZTsKKworICAgICAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLkdDRXZlbnQ6CisgICAgICAgICAgICAgICAgICAg
IGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xs
ZWN0ZWQiKSwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5kYXRhWyJ1c2VkSGVhcFNpemVEZWx0
YSJdKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
cmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsOgorICAgICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlw
ZXMuVGltZXJGaXJlOgorICAgICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuVGltZXJSZW1v
dmU6CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJUaW1lciBJRCIpLCB0aGlzLmRhdGFbInRpbWVySWQiXSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy50aW1lb3V0ID09PSAibnVtYmVyIikg
eworICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVvdXQiKSwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0
aGlzLnRpbWVvdXQgLyAxMDAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50SGVs
cGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVwZWF0cyIpLCAhdGhp
cy5zaW5nbGVTaG90KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLkZpcmVBbmltYXRpb25G
cmFtZToKKyAgICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGxiYWNrIElEIiksIHRoaXMuZGF0YVsiaWQiXSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlw
ZXMuRnVuY3Rpb25DYWxsOgorICAgICAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBl
bmRFbGVtZW50Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYXRpb24iKSwgdGhpcy5fbGlu
a2lmeVNjcmlwdExvY2F0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0OgorICAg
ICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VTZW5kUmVxdWVzdDoKKyAgICAg
ICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlOgorICAg
ICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VSZWNlaXZlZERhdGE6CisgICAg
ICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaDoKKyAgICAgICAgICAg
ICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVudFJvdyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlJlc291cmNlIiksIHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCkpOworICAg
ICAgICAgICAgICAgICAgICBpZiAocHJldmlld0VsZW1lbnQpCisgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRFbGVtZW50Um93KFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUHJldmlldyIpLCBwcmV2aWV3RWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IE1l
dGhvZCIpLCB0aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSk7CisgICAgICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YgdGhpcy5kYXRhWyJzdGF0dXNDb2RlIl0gPT09ICJudW1iZXIiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlN0YXR1cyBDb2RlIiksIHRoaXMuZGF0YVsic3RhdHVzQ29kZSJdKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVsibWltZVR5cGUiXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJNSU1FIFR5cGUiKSwgdGhpcy5kYXRhWyJtaW1lVHlwZSJdKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuZGF0YVsiZW5jb2RlZERhdGFMZW5ndGgiXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJFbmNvZGVkIERhdGEgTGVuZ3RoIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQg
Qnl0ZXMiLCB0aGlzLmRhdGFbImVuY29kZWREYXRhTGVuZ3RoIl0pKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5FdmFsdWF0ZVNj
cmlwdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLnVybCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHQiKSwgdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMu
dXJsLCB0aGlzLmRhdGFbImxpbmVOdW1iZXIiXSkpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlBhaW50OgorICAgICAgICAgICAg
ICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiTG9jYXRpb24iKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoJWQsICVkKSIsIHRoaXMuZGF0
YVsieCJdLCB0aGlzLmRhdGFbInkiXSkpOworICAgICAgICAgICAgICAgICAgICBjb250ZW50SGVs
cGVyLl9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGltZW5zaW9ucyIpLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIiwgdGhpcy5kYXRhWyJ3aWR0aCJdLCB0aGlz
LmRhdGFbImhlaWdodCJdKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVjYWxjdWxhdGVTdHlsZXM6IC8vIFdlIGRvbid0IHdh
bnQgdG8gc2VlIGRlZmF1bHQgZGV0YWlscy4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5UaW1lOgorICAgICAgICAgICAgICAgIGNh
c2UgcmVjb3JkVHlwZXMuVGltZUVuZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0
aGlzLmludGVydmFsRHVyYXRpb24gPT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIklu
dGVydmFsIER1cmF0aW9uIiksIE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5pbnRlcnZhbER1
cmF0aW9uLCB0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRldGFpbHMoKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJEZXRhaWxzIiksIHRoaXMuZGV0YWlscygpKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuc2NyaXB0
TmFtZSAmJiB0aGlzLnR5cGUgIT09IHJlY29yZFR5cGVzLkZ1bmN0aW9uQ2FsbCkKLSAgICAgICAg
ICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJGdW5jdGlvbiBDYWxsIiksIHRoaXMuX2xpbmtpZnlTY3JpcHRMb2NhdGlvbigpKTsKKyAgICAg
ICAgICAgIGlmICh0aGlzLnNjcmlwdE5hbWUgJiYgdGhpcy50eXBlICE9PSByZWNvcmRUeXBlcy5G
dW5jdGlvbkNhbGwpCisgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVu
dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENhbGwiKSwgdGhpcy5fbGlua2lm
eVNjcmlwdExvY2F0aW9uKCkpOwogCi0gICAgICAgIGlmICh0aGlzLnVzZWRIZWFwU2l6ZSkKLSAg
ICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJVc2VkIEhlYXAgU2l6ZSIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIG9mICVzIiwg
TnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy51c2VkSGVhcFNpemUpLCBOdW1iZXIuYnl0ZXNUb1N0
cmluZyh0aGlzLnRvdGFsSGVhcFNpemUpKSk7CisgICAgICAgICAgICBpZiAodGhpcy51c2VkSGVh
cFNpemUpCisgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlVzZWQgSGVhcCBTaXplIiksIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiJXMgb2YgJXMiLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLnVzZWRIZWFwU2l6ZSksIE51
bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMudG90YWxIZWFwU2l6ZSkpKTsKIAotICAgICAgICBpZiAo
dGhpcy5jYWxsU2l0ZVN0YWNrVHJhY2UgJiYgdGhpcy5jYWxsU2l0ZVN0YWNrVHJhY2UubGVuZ3Ro
KQotICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kU3RhY2tUcmFjZShXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNhbGwgU2l0ZSBzdGFjayIpLCB0aGlzLmNhbGxTaXRlU3RhY2tUcmFjZSwg
dGhpcy5fbGlua2lmeUNhbGxGcmFtZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIGlmICh0aGlz
LmNhbGxTaXRlU3RhY2tUcmFjZSAmJiB0aGlzLmNhbGxTaXRlU3RhY2tUcmFjZS5sZW5ndGgpCisg
ICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kU3RhY2tUcmFjZShXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNhbGwgU2l0ZSBzdGFjayIpLCB0aGlzLmNhbGxTaXRlU3RhY2tUcmFjZSwg
dGhpcy5fbGlua2lmeUNhbGxGcmFtZS5iaW5kKHRoaXMpKTsKIAotICAgICAgICBpZiAodGhpcy5z
dGFja1RyYWNlKQotICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kU3RhY2tUcmFjZShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGwgU3RhY2siKSwgdGhpcy5zdGFja1RyYWNlLCB0aGlz
Ll9saW5raWZ5Q2FsbEZyYW1lLmJpbmQodGhpcykpOworICAgICAgICAgICAgaWYgKHRoaXMuc3Rh
Y2tUcmFjZSkKKyAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRTdGFja1RyYWNl
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBTdGFjayIpLCB0aGlzLnN0YWNrVHJhY2UsIHRo
aXMuX2xpbmtpZnlDYWxsRnJhbWUuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgcmV0dXJuIGNvbnRl
bnRIZWxwZXIuX2NvbnRlbnRUYWJsZTsKKyAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnRIZWxw
ZXIuX2NvbnRlbnRUYWJsZSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2J1aWxkSW1hZ2VQ
cmV2aWV3RWxlbWVudEFuZENvbnRpbnVlOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzKG51bGwsIG51bGwsIHRo
aXMudXJsLCBmYWxzZSwgcmV0dXJuQ29udGVudCk7CisKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJu
Q29udGVudChjb250ZW50RWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgY2FsbGJhY2so
Y29udGVudEVsZW1lbnQpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIF9yZWZyZXNoRGV0YWls
czogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9VSVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0
aWxzLmpzCmluZGV4IDNjNTM4YTkwNGNmZjA3YTg4ZDBhNjBhNjdjNGJmMzZiN2VmOTQ2NTQuLjBi
NTU3NGEzYWEzYzVmNTZlMmUyNjhjMGFkODA2NTVhNmUyYzE4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKQEAgLTEwMzgsNiArMTAzOCw3MSBA
QCBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyA9IGZ1bmN0aW9uKGRvbUNoYW5nZXMpCiAg
ICAgfQogfQogCitXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cyA9IGZ1bmN0
aW9uKHJlbGF0ZWRPYmplY3QsIGRpbWVuc2lvbnNQcm92aWRlciwgaW1hZ2VVUkwsIHNob3dEaW1l
bnNpb25zLCB1c2VyQ2FsbGJhY2spCit7CisgICAgaWYgKGRpbWVuc2lvbnNQcm92aWRlcikKKyAg
ICAgICAgZGltZW5zaW9uc1Byb3ZpZGVyKHJlbGF0ZWRPYmplY3QsIGRpbWVuc2lvbnNDYWxsYmFj
ayk7CisgICAgZWxzZQorICAgICAgICBkaW1lbnNpb25zQ2FsbGJhY2soKTsKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gZGltZW5zaW9ucworICAgICAqLworICAgIGZ1bmN0aW9u
IGRpbWVuc2lvbnNDYWxsYmFjayhkaW1lbnNpb25zKQorICAgIHsKKyAgICAgICAgdmFyIGltYWdl
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICBpbWFnZUVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGJ1aWxkQ29udGVudC5iaW5kKG51bGwsIGlt
YWdlRWxlbWVudCwgZGltZW5zaW9ucyksIGZhbHNlKTsKKyAgICAgICAgaW1hZ2VFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgYnVpbGRDb250ZW50LmJpbmQobnVsbCwgbnVsbCwgbnVs
bCksIGZhbHNlKTsKKyAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKGltYWdlVVJMKTsKKyAgICAgICAgaWYgKCFyZXNvdXJj
ZSkKKyAgICAgICAgICAgIHVzZXJDYWxsYmFjaygpOworCisgICAgICAgIHJlc291cmNlLnBvcHVs
YXRlSW1hZ2VTb3VyY2UoaW1hZ2VFbGVtZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge09iamVjdD19IG5vZGVEaW1lbnNpb25zCisgICAgICovCisgICAgZnVuY3Rpb24gYnVp
bGRDb250ZW50KGltYWdlRWxlbWVudCwgbm9kZURpbWVuc2lvbnMpCisgICAgeworICAgICAgICBp
ZiAoIWltYWdlRWxlbWVudCkgeworICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgbWF4SW1hZ2VXaWR0aCA9IDEw
MDsKKyAgICAgICAgY29uc3QgbWF4SW1hZ2VIZWlnaHQgPSAxMDA7CisgICAgICAgIHZhciBjb250
YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOworICAgICAgICBjb250YWlu
ZXIuY2xhc3NOYW1lID0gImltYWdlLXByZXZpZXctY29udGFpbmVyIjsKKyAgICAgICAgdmFyIG5h
dHVyYWxXaWR0aCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMubmF0dXJhbFdpZHRo
IDogaW1hZ2VFbGVtZW50Lm5hdHVyYWxXaWR0aDsKKyAgICAgICAgdmFyIG5hdHVyYWxIZWlnaHQg
PSBub2RlRGltZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm5hdHVyYWxIZWlnaHQgOiBpbWFnZUVs
ZW1lbnQubmF0dXJhbEhlaWdodDsKKyAgICAgICAgdmFyIG9mZnNldFdpZHRoID0gbm9kZURpbWVu
c2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZzZXRXaWR0aCA6IG5hdHVyYWxXaWR0aDsKKyAgICAg
ICAgdmFyIG9mZnNldEhlaWdodCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMub2Zm
c2V0SGVpZ2h0IDogbmF0dXJhbEhlaWdodDsKKyAgICAgICAgdmFyIGRlc2NyaXB0aW9uOworICAg
ICAgICBpZiAoc2hvd0RpbWVuc2lvbnMpIHsKKyAgICAgICAgICAgIGlmIChvZmZzZXRIZWlnaHQg
PT09IG5hdHVyYWxIZWlnaHQgJiYgb2Zmc2V0V2lkdGggPT09IG5hdHVyYWxXaWR0aCkKKyAgICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgXHhkNyAl
ZCBwaXhlbHMiLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQg
XHhkNyAlZCBwaXhlbHMgKE5hdHVyYWw6ICVkIFx4ZDcgJWQgcGl4ZWxzKSIsIG9mZnNldFdpZHRo
LCBvZmZzZXRIZWlnaHQsIG5hdHVyYWxXaWR0aCwgbmF0dXJhbEhlaWdodCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAobmF0dXJhbFdpZHRoID4gbmF0dXJhbEhlaWdodCkgeworICAgICAgICAg
ICAgaWYgKG5hdHVyYWxXaWR0aCA+IG1heEltYWdlV2lkdGgpIHsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuc3R5bGUud2lkdGggPSBtYXhJbWFnZVdpZHRoICsgInB4IjsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKG5hdHVyYWxIZWlnaHQgKiBtYXhJ
bWFnZVdpZHRoIC8gbmF0dXJhbFdpZHRoKSArICJweCI7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heEltYWdlSGVpZ2h0
KSB7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxlLndpZHRoID0gKG5hdHVyYWxX
aWR0aCAqIG1heEltYWdlSGVpZ2h0IC8gbmF0dXJhbEhlaWdodCkgKyAicHgiOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXhJbWFnZUhlaWdodCArICJweCI7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29udGFpbmVyLmNyZWF0ZUNoaWxk
KCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIsICJpbWFnZS1jb250YWluZXIiKS5hcHBlbmRDaGlsZChp
bWFnZUVsZW1lbnQpOworICAgICAgICBpZiAoZGVzY3JpcHRpb24pCisgICAgICAgICAgICBjb250
YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQoInNw
YW4iLCAiZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOworICAgICAgICB1
c2VyQ2FsbGJhY2soY29udGFpbmVyKTsKKyAgICB9Cit9CisKIC8qKgogICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CiAgKiBAcGFyYW0ge05vZGV9IGNvbnRl
eHROb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2Vs
ZW1lbnRzUGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVt
ZW50c1BhbmVsLmNzcwppbmRleCAyN2JkM2Q4MTRmYjIxYzc1YmYzMzM4M2NiOGM5MjM1MzgwY2Y2
YzkwLi4zNjhmOGRlOGNlYjgxMDE4OGM0ZWIyMmFlYTE1ZjBkYTM1NTJlMGUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwuY3NzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5lbC5jc3MK
QEAgLTU2Niw3ICs1NjYsNiBAQAogLmltYWdlLXByZXZpZXctY29udGFpbmVyIHsKICAgICBiYWNr
Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgcGFkZGlu
Zy1sZWZ0OiAxMXB4OwogfQogCiAuaW1hZ2UtcHJldmlldy1jb250YWluZXIgaW1nIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5j
c3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3Nz
CmluZGV4IDU2YzYzZWE2Y2M0ZmM5ZDg1NDMxNmMxMGVmMzFkMmUwMTc1YmMwOTQuLjIzMzkyOGE2
Yzg2ZGU3ZjU4OTAwZDg0NTAzZWI1M2VlZTRlNTBmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcwpAQCAtNjU0LDMgKzY1
NCwxOSBAQAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7
CiAgICAgei1pbmRleDogMzUwOwogfQorCisuaW1hZ2UtcHJldmlldy1jb250YWluZXIgeworICAg
IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgYm9y
ZGVyLXNwYWNpbmc6IDA7Cit9CisKKy5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBpbWcgeworICAg
IGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvY2hlY2tlci5wbmcpOworICAgIC13ZWJraXQt
dXNlci1zZWxlY3Q6IHRleHQ7CisgICAgLXdlYmtpdC11c2VyLWRyYWc6IGF1dG87Cit9CisKKy5p
bWFnZS1jb250YWluZXIgeworICAgIHBhZGRpbmc6IDA7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158825</attachid>
            <date>2012-08-16 08:13:47 -0700</date>
            <delta_ts>2012-08-16 08:20:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94213-20120816191311.patch</filename>
            <type>text/plain</type>
            <size>14619</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uZTU1NWIwNTQ1ZTkyZTZhYzJmZTZhYWZiZWY0ZGQ3
YjMxM2ZlMzVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTE2ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaG92ZXJpbmcgb3ZlciBhbiBpbWFnZSBsaW5rIGluIFRpbWVsaW5lIHBvcHVwIGtpbGxz
IHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
Rml4ZWQgYnVnIHdpdGggRWxlbWVudHNQYW5lbCBQb3BvdmVySGVscGVyIGFjdGluZyBvbiB0aGUg
VGltZWxpbmVQYW5lbCAoZHVlIHRvIHdoaWNoIHRoZSBvcmlnaW5hbCBpc3N1ZSBvY2N1cnMpLgor
ICAgICAgICAtIEltYWdlIHByZXZpZXcgYWRkZWQgdG8gcmVzb3VyY2UgZW50cmllcyBwb3BvdmVy
IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQgdGhlIGNvcmUgaW1hZ2UgcHJl
dmlldyBidWlsZGluZyBjb2RlIGludG8gVUlVdGlscy5qcworCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Ll9zaG93UG9wb3Zlci5kaW1lbnNpb25zUHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9zaG93UG9wb3Zlci5zaG93UG9wb3Zlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyLnNob3dD
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X3Nob3dQb3BvdmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90eXBlLmdlbmVyYXRlUG9wdXBDb250ZW50KTogRmlyc3Qg
YnVpbGQgdGhlIGltYWdlIHByZXZpZXcgZWxlbWVudCwgdGhlbiBkbyBldmVyeXRoaW5nIGVsc2Uu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmQu
cHJvdG90eXBlLl9nZW5lcmF0ZVBvcHVwQ29udGVudFdpdGhJbWFnZVByZXZpZXcpOiBPcmlnaW5h
bCBnZW5lcmF0ZVBvcHVwQ29udGVudCgpIGNvZGUKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJVXRpbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdD
b250ZW50cy5kaW1lbnNpb25zQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmJ1aWxk
SW1hZ2VQcmV2aWV3Q29udGVudHMuYnVpbGRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzKTogRXh0cmFjdGVkIGZyb20gRWxlbWVudHNQYW5l
bC4gRW5hYmxlZCBidWlsZGluZyBvZiBwcmV2aWV3IGVsZW1lbnRzIHdpdGhvdXQgdGhlIGRpbWVu
c2lvbnMgdGV4dCBkYXRhLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQ
YW5lbC5jc3M6CisgICAgICAgICguaW1hZ2UtcHJldmlldy1jb250YWluZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3M6CisgICAgICAgICguaW1hZ2Ut
cHJldmlldy1jb250YWluZXIpOiBGaXhlZCBjZW50ZXJpbmcgb2YgdGhlIHByZXZpZXcgY29udGFp
bmVyIGNvbnRlbnRzLgorICAgICAgICAoLmltYWdlLXByZXZpZXctY29udGFpbmVyIGltZyk6Cisg
ICAgICAgICguaW1hZ2UtY29udGFpbmVyKToKKwogMjAxMi0wOC0xNiAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtZW1vcnkg
aW5zdHJ1bWVudGF0aW9uIGZvciBSZXNvdXJjZXtSZXF1ZXN0L1Jlc3BvbnNlfUJhc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpp
bmRleCA1ZmQyMzIyN2ZhY2Q0NzYxNzhjNjhkMTg5MGM2OGEzMjAzZGM3MGFkLi4zMzVmYmRlYTZh
YjM4ZGQxMGYwMGNmODM3MWJjMWE5OTQ3ZTExZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC05NSw3ICs5NSw3IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fcmVn
aXN0ZXJTaG9ydGN1dHMoKTsKIAotICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlBvcG92ZXJIZWxwZXIoZG9jdW1lbnQuYm9keSwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hv
ci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9w
b3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVu
dCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMCk7CiAKICAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCB0aGlzLl9ub2RlUmVtb3ZlZCwgdGhpcyk7CkBAIC00
MjcsNzAgKzQyNywyNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX3Nob3dQb3BvdmVyOiBmdW5jdGlvbihhbmNob3IsIHBvcG92ZXIpCiAg
ICAgewotICAgICAgICB2YXIgbGlzdEl0ZW0gPSBhbmNob3IuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhOb2RlTmFtZUluQXJyYXkoWyJsaSJdKTsKLSAgICAgICAgaWYgKGxpc3RJdGVtICYmIGxpc3RJ
dGVtLnRyZWVFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5fbG9hZERpbWVuc2lvbnNGb3JOb2Rl
KGxpc3RJdGVtLnRyZWVFbGVtZW50LCBkaW1lbnNpb25zQ2FsbGJhY2spOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBkaW1lbnNpb25zQ2FsbGJhY2soKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMoYW5jaG9yLCBkaW1lbnNpb25zUHJvdmlkZXIuYmlu
ZCh0aGlzKSwgYW5jaG9yLmhyZWYsIHRydWUsIHNob3dQb3BvdmVyKTsKIAotICAgICAgICAvKioK
LSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25zCi0gICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiBkaW1lbnNpb25zQ2FsbGJhY2soZGltZW5zaW9ucykKKyAgICAgICAgZnVu
Y3Rpb24gZGltZW5zaW9uc1Byb3ZpZGVyKHJlbGF0ZWRPYmplY3QsIGRpbWVuc2lvbnNDYWxsYmFj
aykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBzaG93UG9wb3Zlci5iaW5kKG51bGwsIGltYWdlRWxlbWVudCwgZGltZW5z
aW9ucyksIGZhbHNlKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChhbmNob3IuaHJlZik7Ci0gICAgICAgICAg
ICBpZiAoIXJlc291cmNlKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICAgICAg
ICAgIHJlc291cmNlLnBvcHVsYXRlSW1hZ2VTb3VyY2UoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAg
ICAgIHZhciBsaXN0SXRlbSA9IHJlbGF0ZWRPYmplY3QuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhO
b2RlTmFtZUluQXJyYXkoWyJsaSJdKTsKKyAgICAgICAgICAgIGlmIChsaXN0SXRlbSAmJiBsaXN0
SXRlbS50cmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5zaW9uc0Zv
ck5vZGUobGlzdEl0ZW0udHJlZUVsZW1lbnQsIGRpbWVuc2lvbnNDYWxsYmFjayk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7CiAgICAgICAg
IH0KIAogICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25z
CisgICAgICAgICAqIEBwYXJhbSB7RWxlbWVudD19IGNvbnRlbnRzCiAgICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiBzaG93UG9wb3ZlcihpbWFnZUVsZW1lbnQsIGRpbWVuc2lvbnMpCisgICAg
ICAgIGZ1bmN0aW9uIHNob3dQb3BvdmVyKGNvbnRlbnRzKQogICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgY29udGVudHMgPSBidWlsZFBvcG92ZXJDb250ZW50cyhpbWFnZUVsZW1lbnQsIGRpbWVu
c2lvbnMpOworICAgICAgICAgICAgaWYgKCFjb250ZW50cykKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICBwb3BvdmVyLnNldENhblNocmluayhmYWxzZSk7CiAgICAgICAgICAg
ICBwb3BvdmVyLnNob3coY29udGVudHMsIGFuY2hvcik7CiAgICAgICAgIH0KLQotICAgICAgICAv
KioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBub2RlRGltZW5zaW9ucwotICAgICAgICAg
Ki8KLSAgICAgICAgZnVuY3Rpb24gYnVpbGRQb3BvdmVyQ29udGVudHMoaW1hZ2VFbGVtZW50LCBu
b2RlRGltZW5zaW9ucykKLSAgICAgICAgewotICAgICAgICAgICAgY29uc3QgbWF4SW1hZ2VXaWR0
aCA9IDEwMDsKLSAgICAgICAgICAgIGNvbnN0IG1heEltYWdlSGVpZ2h0ID0gMTAwOwotICAgICAg
ICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7Ci0g
ICAgICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gImltYWdlLXByZXZpZXctY29udGFpbmVy
IjsKLSAgICAgICAgICAgIHZhciBuYXR1cmFsV2lkdGggPSBub2RlRGltZW5zaW9ucyA/IG5vZGVE
aW1lbnNpb25zLm5hdHVyYWxXaWR0aCA6IGltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7Ci0gICAg
ICAgICAgICB2YXIgbmF0dXJhbEhlaWdodCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lv
bnMubmF0dXJhbEhlaWdodCA6IGltYWdlRWxlbWVudC5uYXR1cmFsSGVpZ2h0OwotICAgICAgICAg
ICAgdmFyIG9mZnNldFdpZHRoID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZz
ZXRXaWR0aCA6IG5hdHVyYWxXaWR0aDsKLSAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBu
b2RlRGltZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm9mZnNldEhlaWdodCA6IG5hdHVyYWxIZWln
aHQ7Ci0gICAgICAgICAgICB2YXIgZGVzY3JpcHRpb247Ci0gICAgICAgICAgICBpZiAob2Zmc2V0
SGVpZ2h0ID09PSBuYXR1cmFsSGVpZ2h0ICYmIG9mZnNldFdpZHRoID09PSBuYXR1cmFsV2lkdGgp
Ci0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVk
IFx4ZDcgJWQgcGl4ZWxzIiwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIChOYXR1cmFsOiAlZCBceGQ3ICVkIHBpeGVscykiLCBvZmZz
ZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBuYXR1cmFsV2lkdGgsIG5hdHVyYWxIZWlnaHQpOwotCi0g
ICAgICAgICAgICBpZiAobmF0dXJhbFdpZHRoID4gbmF0dXJhbEhlaWdodCkgewotICAgICAgICAg
ICAgICAgIGlmIChuYXR1cmFsV2lkdGggPiBtYXhJbWFnZVdpZHRoKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5zdHlsZS53aWR0aCA9IG1heEltYWdlV2lkdGggKyAicHgiOwot
ICAgICAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKG5hdHVyYWxI
ZWlnaHQgKiBtYXhJbWFnZVdpZHRoIC8gbmF0dXJhbFdpZHRoKSArICJweCI7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobmF0dXJh
bEhlaWdodCA+IG1heEltYWdlSGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5zdHlsZS53aWR0aCA9IChuYXR1cmFsV2lkdGggKiBtYXhJbWFnZUhlaWdodCAvIG5hdHVy
YWxIZWlnaHQpICsgInB4IjsKLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxl
LmhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICsgInB4IjsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRl
Q2hpbGQoInRkIiwgImltYWdlLWNvbnRhaW5lciIpLmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7
Ci0gICAgICAgICAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRk
IikuY3JlYXRlQ2hpbGQoInNwYW4iLCAiZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2Ny
aXB0aW9uOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjsKLSAgICAgICAgfQogICAgIH0s
CiAKICAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYmYw
OWJjZjk0ZTgxOGVhMDk1ZDU2YzVhYzQyZDMwZGE4OWIyZmU5My4uMTVhMzE3MmViYTU0NTEyN2Uw
YWMzZmQ2Zjg3Mjk5MjY5YjM2OGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtOTQ0LDcgKzk0NCwxMiBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBwb3BvdmVy
LnNob3coV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZ2VuZXJhdGVQb3B1
cENvbnRlbnRGb3JGcmFtZShmcmFtZSksIGFuY2hvcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAoYW5jaG9yLnJvdyAmJiBhbmNob3Iucm93Ll9yZWNvcmQpCi0gICAgICAgICAg
ICAgICAgcG9wb3Zlci5zaG93KGFuY2hvci5yb3cuX3JlY29yZC5nZW5lcmF0ZVBvcHVwQ29udGVu
dCgpLCBhbmNob3IpOworICAgICAgICAgICAgICAgIGFuY2hvci5yb3cuX3JlY29yZC5nZW5lcmF0
ZVBvcHVwQ29udGVudChzaG93Q2FsbGJhY2spOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc2hvd0NhbGxiYWNrKHBvcHVwQ29udGVudCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9w
b3Zlci5zaG93KHBvcHVwQ29udGVudCwgYW5jaG9yKTsKICAgICAgICAgfQogICAgIH0sCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBiZWIzMDA3M2Q1MmQ2MGIyMjVhMDA3NTNi
ZTcwZWY1MzVmZTEwYTUwLi4yZTk1NWY4NWU0MDRmNmZiZWZmMzc5MzVmYzhlZTJiNTdmYzllOWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC02MzUsNyArNjM1LDEyIEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0VGltZSA8PSB0aW1lICYmIHRpbWUgPD0gdGhpcy5l
bmRUaW1lOwogICAgIH0sCiAKLSAgICBnZW5lcmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24oKQor
ICAgIGdlbmVyYXRlUG9wdXBDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzKG51bGwsIG51bGwsIHRo
aXMudXJsLCBmYWxzZSwgdGhpcy5fZ2VuZXJhdGVQb3B1cENvbnRlbnRXaXRoSW1hZ2VQcmV2aWV3
LmJpbmQodGhpcywgY2FsbGJhY2spKTsKKyAgICB9LAorCisgICAgX2dlbmVyYXRlUG9wdXBDb250
ZW50V2l0aEltYWdlUHJldmlldzogZnVuY3Rpb24oY2FsbGJhY2ssIHByZXZpZXdFbGVtZW50KQog
ICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnRIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuUG9wdXBDb250ZW50SGVscGVyKHRoaXMudGl0bGUpOwogCkBA
IC02NzYsNiArNjgxLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
UmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3Vy
Y2VSZWNlaXZlZERhdGE6CiAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlRmlu
aXNoOgogICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSIpLCB0aGlzLl9saW5raWZ5TG9jYXRpb24odGhp
cy51cmwpKTsKKyAgICAgICAgICAgICAgICBpZiAocHJldmlld0VsZW1lbnQpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQcmV2aWV3IiksIHByZXZpZXdFbGVtZW50KTsKICAgICAgICAgICAgICAgICBpZiAo
dGhpcy5kYXRhWyJyZXF1ZXN0TWV0aG9kIl0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRI
ZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IE1ldGhv
ZCIpLCB0aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSk7CiAgICAgICAgICAgICAgICAgaWYgKHR5
cGVvZiB0aGlzLmRhdGFbInN0YXR1c0NvZGUiXSA9PT0gIm51bWJlciIpCkBAIC03MTgsNyArNzI1
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuc3RhY2tUcmFjZSkKICAgICAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZFN0YWNrVHJhY2UoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYWxsIFN0
YWNrIiksIHRoaXMuc3RhY2tUcmFjZSwgdGhpcy5fbGlua2lmeUNhbGxGcmFtZS5iaW5kKHRoaXMp
KTsKIAotICAgICAgICByZXR1cm4gY29udGVudEhlbHBlci5fY29udGVudFRhYmxlOworICAgICAg
ICBjYWxsYmFjayhjb250ZW50SGVscGVyLl9jb250ZW50VGFibGUpOwogICAgIH0sCiAKICAgICBf
cmVmcmVzaERldGFpbHM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlVdGlscy5qcwppbmRleCAzYzUzOGE5MDRjZmYwN2E4OGQwYTYwYTY3YzRiZjM2
YjdlZjk0NjU0Li43MDcwYWZkOGIwN2FiNTM0YjI0ZTk3NDk2ZGFlNjEyYTdhM2VhODJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCkBAIC0xMDM4
LDYgKzEwMzgsNzMgQEAgV2ViSW5zcGVjdG9yLnJldmVydERvbUNoYW5nZXMgPSBmdW5jdGlvbihk
b21DaGFuZ2VzKQogICAgIH0KIH0KIAorV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29u
dGVudHMgPSBmdW5jdGlvbihyZWxhdGVkT2JqZWN0LCBkaW1lbnNpb25zUHJvdmlkZXIsIGltYWdl
VVJMLCBzaG93RGltZW5zaW9ucywgdXNlckNhbGxiYWNrKQoreworICAgIGlmIChkaW1lbnNpb25z
UHJvdmlkZXIpCisgICAgICAgIGRpbWVuc2lvbnNQcm92aWRlcihyZWxhdGVkT2JqZWN0LCBkaW1l
bnNpb25zQ2FsbGJhY2spOworICAgIGVsc2UKKyAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lvbnMKKyAgICAgKi8K
KyAgICBmdW5jdGlvbiBkaW1lbnNpb25zQ2FsbGJhY2soZGltZW5zaW9ucykKKyAgICB7CisgICAg
ICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJj
ZUZvclVSTChpbWFnZVVSTCk7CisgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAg
IHVzZXJDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICBpbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGJ1aWxkQ29udGVudC5i
aW5kKG51bGwsIGltYWdlRWxlbWVudCwgZGltZW5zaW9ucyksIGZhbHNlKTsKKyAgICAgICAgaW1h
Z2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgYnVpbGRDb250ZW50LmJpbmQobnVs
bCwgbnVsbCwgbnVsbCksIGZhbHNlKTsKKyAgICAgICAgcmVzb3VyY2UucG9wdWxhdGVJbWFnZVNv
dXJjZShpbWFnZUVsZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2Jq
ZWN0PX0gbm9kZURpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBidWlsZENvbnRlbnQo
aW1hZ2VFbGVtZW50LCBub2RlRGltZW5zaW9ucykKKyAgICB7CisgICAgICAgIGlmICghaW1hZ2VF
bGVtZW50KSB7CisgICAgICAgICAgICB1c2VyQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBjb25zdCBtYXhJbWFnZVdpZHRoID0gMTAwOworICAgICAg
ICBjb25zdCBtYXhJbWFnZUhlaWdodCA9IDEwMDsKKyAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CisgICAgICAgIGNvbnRhaW5lci5jbGFzc05h
bWUgPSAiaW1hZ2UtcHJldmlldy1jb250YWluZXIiOworICAgICAgICB2YXIgbmF0dXJhbFdpZHRo
ID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5uYXR1cmFsV2lkdGggOiBpbWFnZUVs
ZW1lbnQubmF0dXJhbFdpZHRoOworICAgICAgICB2YXIgbmF0dXJhbEhlaWdodCA9IG5vZGVEaW1l
bnNpb25zID8gbm9kZURpbWVuc2lvbnMubmF0dXJhbEhlaWdodCA6IGltYWdlRWxlbWVudC5uYXR1
cmFsSGVpZ2h0OworICAgICAgICB2YXIgb2Zmc2V0V2lkdGggPSBub2RlRGltZW5zaW9ucyA/IG5v
ZGVEaW1lbnNpb25zLm9mZnNldFdpZHRoIDogbmF0dXJhbFdpZHRoOworICAgICAgICB2YXIgb2Zm
c2V0SGVpZ2h0ID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZzZXRIZWlnaHQg
OiBuYXR1cmFsSGVpZ2h0OworICAgICAgICB2YXIgZGVzY3JpcHRpb247CisgICAgICAgIGlmIChz
aG93RGltZW5zaW9ucykgeworICAgICAgICAgICAgaWYgKG9mZnNldEhlaWdodCA9PT0gbmF0dXJh
bEhlaWdodCAmJiBvZmZzZXRXaWR0aCA9PT0gbmF0dXJhbFdpZHRoKQorICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBpeGVscyIs
IG9mZnNldFdpZHRoLCBvZmZzZXRIZWlnaHQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBp
eGVscyAoTmF0dXJhbDogJWQgXHhkNyAlZCBwaXhlbHMpIiwgb2Zmc2V0V2lkdGgsIG9mZnNldEhl
aWdodCwgbmF0dXJhbFdpZHRoLCBuYXR1cmFsSGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChuYXR1cmFsV2lkdGggPiBuYXR1cmFsSGVpZ2h0KSB7CisgICAgICAgICAgICBpZiAobmF0
dXJhbFdpZHRoID4gbWF4SW1hZ2VXaWR0aCkgeworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5zdHlsZS53aWR0aCA9IG1heEltYWdlV2lkdGggKyAicHgiOworICAgICAgICAgICAgICAgIGlt
YWdlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAobmF0dXJhbEhlaWdodCAqIG1heEltYWdlV2lkdGgg
LyBuYXR1cmFsV2lkdGgpICsgInB4IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGlmIChuYXR1cmFsSGVpZ2h0ID4gbWF4SW1hZ2VIZWlnaHQpIHsKKyAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUud2lkdGggPSAobmF0dXJhbFdpZHRoICogbWF4
SW1hZ2VIZWlnaHQgLyBuYXR1cmFsSGVpZ2h0KSArICJweCI7CisgICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LnN0eWxlLmhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICsgInB4IjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3Jl
YXRlQ2hpbGQoInRkIiwgImltYWdlLWNvbnRhaW5lciIpLmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7CisgICAgICAgIGlmIChkZXNjcmlwdGlvbikKKyAgICAgICAgICAgIGNvbnRhaW5lci5jcmVh
dGVDaGlsZCgidHIiKS5jcmVhdGVDaGlsZCgidGQiKS5jcmVhdGVDaGlsZCgic3BhbiIsICJkZXNj
cmlwdGlvbiIpLnRleHRDb250ZW50ID0gZGVzY3JpcHRpb247CisgICAgICAgIHVzZXJDYWxsYmFj
ayhjb250YWluZXIpOworICAgIH0KK30KKwogLyoqCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5D
b250ZXh0TWVudX0gY29udGV4dE1lbnUKICAqIEBwYXJhbSB7Tm9kZX0gY29udGV4dE5vZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5l
bC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwu
Y3NzCmluZGV4IDI3YmQzZDgxNGZiMjFjNzViZjMzMzgzY2I4YzkyMzUzODBjZjZjOTAuLjM2OGY4
ZGU4Y2ViODEwMTg4YzRlYjIyYWVhMTVmMGRhMzU1MmUwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5lbC5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcwpAQCAtNTY2LDcg
KzU2Niw2IEBACiAuaW1hZ2UtcHJldmlldy1jb250YWluZXIgewogICAgIGJhY2tncm91bmQ6IHRy
YW5zcGFyZW50OwogICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICBwYWRkaW5nLWxlZnQ6IDEx
cHg7CiB9CiAKIC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBpbWcgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKaW5kZXggNTZj
NjNlYTZjYzRmYzlkODU0MzE2YzEwZWYzMWQyZTAxNzViYzA5NC4uMjMzOTI4YTZjODZkZTdmNTg5
MDBkODQ1MDNlYjUzZWVlNGU1MGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzCkBAIC02NTQsMyArNjU0LDE5IEBACiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsKICAgICB6LWlu
ZGV4OiAzNTA7CiB9CisKKy5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciB7CisgICAgYmFja2dyb3Vu
ZDogdHJhbnNwYXJlbnQ7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBib3JkZXItc3BhY2lu
ZzogMDsKK30KKworLmltYWdlLXByZXZpZXctY29udGFpbmVyIGltZyB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKEltYWdlcy9jaGVja2VyLnBuZyk7CisgICAgLXdlYmtpdC11c2VyLXNlbGVj
dDogdGV4dDsKKyAgICAtd2Via2l0LXVzZXItZHJhZzogYXV0bzsKK30KKworLmltYWdlLWNvbnRh
aW5lciB7CisgICAgcGFkZGluZzogMDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158829</attachid>
            <date>2012-08-16 08:20:23 -0700</date>
            <delta_ts>2012-08-16 09:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94213-20120816191948.patch</filename>
            <type>text/plain</type>
            <size>14237</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uZTU1NWIwNTQ1ZTkyZTZhYzJmZTZhYWZiZWY0ZGQ3
YjMxM2ZlMzVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTE2ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaG92ZXJpbmcgb3ZlciBhbiBpbWFnZSBsaW5rIGluIFRpbWVsaW5lIHBvcHVwIGtpbGxz
IHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
Rml4ZWQgYnVnIHdpdGggRWxlbWVudHNQYW5lbCBQb3BvdmVySGVscGVyIGFjdGluZyBvbiB0aGUg
VGltZWxpbmVQYW5lbCAoZHVlIHRvIHdoaWNoIHRoZSBvcmlnaW5hbCBpc3N1ZSBvY2N1cnMpLgor
ICAgICAgICAtIEltYWdlIHByZXZpZXcgYWRkZWQgdG8gcmVzb3VyY2UgZW50cmllcyBwb3BvdmVy
IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQgdGhlIGNvcmUgaW1hZ2UgcHJl
dmlldyBidWlsZGluZyBjb2RlIGludG8gVUlVdGlscy5qcworCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Ll9zaG93UG9wb3Zlci5kaW1lbnNpb25zUHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9zaG93UG9wb3Zlci5zaG93UG9wb3Zlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyLnNob3dD
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X3Nob3dQb3BvdmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90eXBlLmdlbmVyYXRlUG9wdXBDb250ZW50KTogRmlyc3Qg
YnVpbGQgdGhlIGltYWdlIHByZXZpZXcgZWxlbWVudCwgdGhlbiBkbyBldmVyeXRoaW5nIGVsc2Uu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmQu
cHJvdG90eXBlLl9nZW5lcmF0ZVBvcHVwQ29udGVudFdpdGhJbWFnZVByZXZpZXcpOiBPcmlnaW5h
bCBnZW5lcmF0ZVBvcHVwQ29udGVudCgpIGNvZGUKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJVXRpbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdD
b250ZW50cy5kaW1lbnNpb25zQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmJ1aWxk
SW1hZ2VQcmV2aWV3Q29udGVudHMuYnVpbGRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzKTogRXh0cmFjdGVkIGZyb20gRWxlbWVudHNQYW5l
bC4gRW5hYmxlZCBidWlsZGluZyBvZiBwcmV2aWV3IGVsZW1lbnRzIHdpdGhvdXQgdGhlIGRpbWVu
c2lvbnMgdGV4dCBkYXRhLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQ
YW5lbC5jc3M6CisgICAgICAgICguaW1hZ2UtcHJldmlldy1jb250YWluZXIpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3M6CisgICAgICAgICguaW1hZ2Ut
cHJldmlldy1jb250YWluZXIpOiBGaXhlZCBjZW50ZXJpbmcgb2YgdGhlIHByZXZpZXcgY29udGFp
bmVyIGNvbnRlbnRzLgorICAgICAgICAoLmltYWdlLXByZXZpZXctY29udGFpbmVyIGltZyk6Cisg
ICAgICAgICguaW1hZ2UtY29udGFpbmVyKToKKwogMjAxMi0wOC0xNiAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtZW1vcnkg
aW5zdHJ1bWVudGF0aW9uIGZvciBSZXNvdXJjZXtSZXF1ZXN0L1Jlc3BvbnNlfUJhc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpp
bmRleCA1ZmQyMzIyN2ZhY2Q0NzYxNzhjNjhkMTg5MGM2OGEzMjAzZGM3MGFkLi4zMzVmYmRlYTZh
YjM4ZGQxMGYwMGNmODM3MWJjMWE5OTQ3ZTExZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC05NSw3ICs5NSw3IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fcmVn
aXN0ZXJTaG9ydGN1dHMoKTsKIAotICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlBvcG92ZXJIZWxwZXIoZG9jdW1lbnQuYm9keSwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hv
ci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9w
b3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVu
dCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMCk7CiAKICAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLk5vZGVSZW1vdmVkLCB0aGlzLl9ub2RlUmVtb3ZlZCwgdGhpcyk7CkBAIC00
MjcsNzAgKzQyNywyNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX3Nob3dQb3BvdmVyOiBmdW5jdGlvbihhbmNob3IsIHBvcG92ZXIpCiAg
ICAgewotICAgICAgICB2YXIgbGlzdEl0ZW0gPSBhbmNob3IuZW5jbG9zaW5nTm9kZU9yU2VsZldp
dGhOb2RlTmFtZUluQXJyYXkoWyJsaSJdKTsKLSAgICAgICAgaWYgKGxpc3RJdGVtICYmIGxpc3RJ
dGVtLnRyZWVFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5fbG9hZERpbWVuc2lvbnNGb3JOb2Rl
KGxpc3RJdGVtLnRyZWVFbGVtZW50LCBkaW1lbnNpb25zQ2FsbGJhY2spOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBkaW1lbnNpb25zQ2FsbGJhY2soKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMoYW5jaG9yLCBkaW1lbnNpb25zUHJvdmlkZXIuYmlu
ZCh0aGlzKSwgYW5jaG9yLmhyZWYsIHRydWUsIHNob3dQb3BvdmVyKTsKIAotICAgICAgICAvKioK
LSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25zCi0gICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiBkaW1lbnNpb25zQ2FsbGJhY2soZGltZW5zaW9ucykKKyAgICAgICAgZnVu
Y3Rpb24gZGltZW5zaW9uc1Byb3ZpZGVyKHJlbGF0ZWRPYmplY3QsIGRpbWVuc2lvbnNDYWxsYmFj
aykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBzaG93UG9wb3Zlci5iaW5kKG51bGwsIGltYWdlRWxlbWVudCwgZGltZW5z
aW9ucyksIGZhbHNlKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChhbmNob3IuaHJlZik7Ci0gICAgICAgICAg
ICBpZiAoIXJlc291cmNlKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICAgICAg
ICAgIHJlc291cmNlLnBvcHVsYXRlSW1hZ2VTb3VyY2UoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAg
ICAgIHZhciBsaXN0SXRlbSA9IHJlbGF0ZWRPYmplY3QuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhO
b2RlTmFtZUluQXJyYXkoWyJsaSJdKTsKKyAgICAgICAgICAgIGlmIChsaXN0SXRlbSAmJiBsaXN0
SXRlbS50cmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5zaW9uc0Zv
ck5vZGUobGlzdEl0ZW0udHJlZUVsZW1lbnQsIGRpbWVuc2lvbnNDYWxsYmFjayk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7CiAgICAgICAg
IH0KIAogICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25z
CisgICAgICAgICAqIEBwYXJhbSB7RWxlbWVudD19IGNvbnRlbnRzCiAgICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiBzaG93UG9wb3ZlcihpbWFnZUVsZW1lbnQsIGRpbWVuc2lvbnMpCisgICAg
ICAgIGZ1bmN0aW9uIHNob3dQb3BvdmVyKGNvbnRlbnRzKQogICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgY29udGVudHMgPSBidWlsZFBvcG92ZXJDb250ZW50cyhpbWFnZUVsZW1lbnQsIGRpbWVu
c2lvbnMpOworICAgICAgICAgICAgaWYgKCFjb250ZW50cykKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICBwb3BvdmVyLnNldENhblNocmluayhmYWxzZSk7CiAgICAgICAgICAg
ICBwb3BvdmVyLnNob3coY29udGVudHMsIGFuY2hvcik7CiAgICAgICAgIH0KLQotICAgICAgICAv
KioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBub2RlRGltZW5zaW9ucwotICAgICAgICAg
Ki8KLSAgICAgICAgZnVuY3Rpb24gYnVpbGRQb3BvdmVyQ29udGVudHMoaW1hZ2VFbGVtZW50LCBu
b2RlRGltZW5zaW9ucykKLSAgICAgICAgewotICAgICAgICAgICAgY29uc3QgbWF4SW1hZ2VXaWR0
aCA9IDEwMDsKLSAgICAgICAgICAgIGNvbnN0IG1heEltYWdlSGVpZ2h0ID0gMTAwOwotICAgICAg
ICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7Ci0g
ICAgICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gImltYWdlLXByZXZpZXctY29udGFpbmVy
IjsKLSAgICAgICAgICAgIHZhciBuYXR1cmFsV2lkdGggPSBub2RlRGltZW5zaW9ucyA/IG5vZGVE
aW1lbnNpb25zLm5hdHVyYWxXaWR0aCA6IGltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7Ci0gICAg
ICAgICAgICB2YXIgbmF0dXJhbEhlaWdodCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lv
bnMubmF0dXJhbEhlaWdodCA6IGltYWdlRWxlbWVudC5uYXR1cmFsSGVpZ2h0OwotICAgICAgICAg
ICAgdmFyIG9mZnNldFdpZHRoID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZz
ZXRXaWR0aCA6IG5hdHVyYWxXaWR0aDsKLSAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBu
b2RlRGltZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm9mZnNldEhlaWdodCA6IG5hdHVyYWxIZWln
aHQ7Ci0gICAgICAgICAgICB2YXIgZGVzY3JpcHRpb247Ci0gICAgICAgICAgICBpZiAob2Zmc2V0
SGVpZ2h0ID09PSBuYXR1cmFsSGVpZ2h0ICYmIG9mZnNldFdpZHRoID09PSBuYXR1cmFsV2lkdGgp
Ci0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVk
IFx4ZDcgJWQgcGl4ZWxzIiwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIChOYXR1cmFsOiAlZCBceGQ3ICVkIHBpeGVscykiLCBvZmZz
ZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBuYXR1cmFsV2lkdGgsIG5hdHVyYWxIZWlnaHQpOwotCi0g
ICAgICAgICAgICBpZiAobmF0dXJhbFdpZHRoID4gbmF0dXJhbEhlaWdodCkgewotICAgICAgICAg
ICAgICAgIGlmIChuYXR1cmFsV2lkdGggPiBtYXhJbWFnZVdpZHRoKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5zdHlsZS53aWR0aCA9IG1heEltYWdlV2lkdGggKyAicHgiOwot
ICAgICAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKG5hdHVyYWxI
ZWlnaHQgKiBtYXhJbWFnZVdpZHRoIC8gbmF0dXJhbFdpZHRoKSArICJweCI7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobmF0dXJh
bEhlaWdodCA+IG1heEltYWdlSGVpZ2h0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5zdHlsZS53aWR0aCA9IChuYXR1cmFsV2lkdGggKiBtYXhJbWFnZUhlaWdodCAvIG5hdHVy
YWxIZWlnaHQpICsgInB4IjsKLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxl
LmhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICsgInB4IjsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRl
Q2hpbGQoInRkIiwgImltYWdlLWNvbnRhaW5lciIpLmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7
Ci0gICAgICAgICAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRk
IikuY3JlYXRlQ2hpbGQoInNwYW4iLCAiZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2Ny
aXB0aW9uOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjsKLSAgICAgICAgfQogICAgIH0s
CiAKICAgICBqdW1wVG9OZXh0U2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYmYw
OWJjZjk0ZTgxOGVhMDk1ZDU2YzVhYzQyZDMwZGE4OWIyZmU5My4uMTVhMzE3MmViYTU0NTEyN2Uw
YWMzZmQ2Zjg3Mjk5MjY5YjM2OGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtOTQ0LDcgKzk0NCwxMiBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBwb3BvdmVy
LnNob3coV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZ2VuZXJhdGVQb3B1
cENvbnRlbnRGb3JGcmFtZShmcmFtZSksIGFuY2hvcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAoYW5jaG9yLnJvdyAmJiBhbmNob3Iucm93Ll9yZWNvcmQpCi0gICAgICAgICAg
ICAgICAgcG9wb3Zlci5zaG93KGFuY2hvci5yb3cuX3JlY29yZC5nZW5lcmF0ZVBvcHVwQ29udGVu
dCgpLCBhbmNob3IpOworICAgICAgICAgICAgICAgIGFuY2hvci5yb3cuX3JlY29yZC5nZW5lcmF0
ZVBvcHVwQ29udGVudChzaG93Q2FsbGJhY2spOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gc2hvd0NhbGxiYWNrKHBvcHVwQ29udGVudCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9w
b3Zlci5zaG93KHBvcHVwQ29udGVudCwgYW5jaG9yKTsKICAgICAgICAgfQogICAgIH0sCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBiZWIzMDA3M2Q1MmQ2MGIyMjVhMDA3NTNi
ZTcwZWY1MzVmZTEwYTUwLi4yZTk1NWY4NWU0MDRmNmZiZWZmMzc5MzVmYzhlZTJiNTdmYzllOWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC02MzUsNyArNjM1LDEyIEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0VGltZSA8PSB0aW1lICYmIHRpbWUgPD0gdGhpcy5l
bmRUaW1lOwogICAgIH0sCiAKLSAgICBnZW5lcmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24oKQor
ICAgIGdlbmVyYXRlUG9wdXBDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzKG51bGwsIG51bGwsIHRo
aXMudXJsLCBmYWxzZSwgdGhpcy5fZ2VuZXJhdGVQb3B1cENvbnRlbnRXaXRoSW1hZ2VQcmV2aWV3
LmJpbmQodGhpcywgY2FsbGJhY2spKTsKKyAgICB9LAorCisgICAgX2dlbmVyYXRlUG9wdXBDb250
ZW50V2l0aEltYWdlUHJldmlldzogZnVuY3Rpb24oY2FsbGJhY2ssIHByZXZpZXdFbGVtZW50KQog
ICAgIHsKICAgICAgICAgdmFyIGNvbnRlbnRIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuUG9wdXBDb250ZW50SGVscGVyKHRoaXMudGl0bGUpOwogCkBA
IC02NzYsNiArNjgxLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
UmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3Vy
Y2VSZWNlaXZlZERhdGE6CiAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlRmlu
aXNoOgogICAgICAgICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSIpLCB0aGlzLl9saW5raWZ5TG9jYXRpb24odGhp
cy51cmwpKTsKKyAgICAgICAgICAgICAgICBpZiAocHJldmlld0VsZW1lbnQpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnRIZWxwZXIuX2FwcGVuZEVsZW1lbnRSb3coV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQcmV2aWV3IiksIHByZXZpZXdFbGVtZW50KTsKICAgICAgICAgICAgICAgICBpZiAo
dGhpcy5kYXRhWyJyZXF1ZXN0TWV0aG9kIl0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRI
ZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IE1ldGhv
ZCIpLCB0aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSk7CiAgICAgICAgICAgICAgICAgaWYgKHR5
cGVvZiB0aGlzLmRhdGFbInN0YXR1c0NvZGUiXSA9PT0gIm51bWJlciIpCkBAIC03MTgsNyArNzI1
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuc3RhY2tUcmFjZSkKICAgICAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZFN0YWNrVHJhY2UoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYWxsIFN0
YWNrIiksIHRoaXMuc3RhY2tUcmFjZSwgdGhpcy5fbGlua2lmeUNhbGxGcmFtZS5iaW5kKHRoaXMp
KTsKIAotICAgICAgICByZXR1cm4gY29udGVudEhlbHBlci5fY29udGVudFRhYmxlOworICAgICAg
ICBjYWxsYmFjayhjb250ZW50SGVscGVyLl9jb250ZW50VGFibGUpOwogICAgIH0sCiAKICAgICBf
cmVmcmVzaERldGFpbHM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlVdGlscy5qcwppbmRleCAzYzUzOGE5MDRjZmYwN2E4OGQwYTYwYTY3YzRiZjM2
YjdlZjk0NjU0Li40YWYzYzkwZGFiMWU3MjZlZGM1YWFkZGJiNDRhYWFkMDUyNDdiOTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCkBAIC0xMDM4
LDYgKzEwMzgsNjAgQEAgV2ViSW5zcGVjdG9yLnJldmVydERvbUNoYW5nZXMgPSBmdW5jdGlvbihk
b21DaGFuZ2VzKQogICAgIH0KIH0KIAorV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29u
dGVudHMgPSBmdW5jdGlvbihyZWxhdGVkT2JqZWN0LCBkaW1lbnNpb25zUHJvdmlkZXIsIGltYWdl
VVJMLCBzaG93RGltZW5zaW9ucywgdXNlckNhbGxiYWNrKQoreworICAgIGlmIChkaW1lbnNpb25z
UHJvdmlkZXIpCisgICAgICAgIGRpbWVuc2lvbnNQcm92aWRlcihyZWxhdGVkT2JqZWN0LCBkaW1l
bnNpb25zQ2FsbGJhY2spOworICAgIGVsc2UKKyAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lvbnMKKyAgICAgKi8K
KyAgICBmdW5jdGlvbiBkaW1lbnNpb25zQ2FsbGJhY2soZGltZW5zaW9ucykKKyAgICB7CisgICAg
ICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJj
ZUZvclVSTChpbWFnZVVSTCk7CisgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAg
IHVzZXJDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICBpbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGJ1aWxkQ29udGVudC5i
aW5kKG51bGwsIGltYWdlRWxlbWVudCwgZGltZW5zaW9ucyksIGZhbHNlKTsKKyAgICAgICAgaW1h
Z2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgYnVpbGRDb250ZW50LmJpbmQobnVs
bCwgbnVsbCwgbnVsbCksIGZhbHNlKTsKKyAgICAgICAgcmVzb3VyY2UucG9wdWxhdGVJbWFnZVNv
dXJjZShpbWFnZUVsZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2Jq
ZWN0PX0gbm9kZURpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBidWlsZENvbnRlbnQo
aW1hZ2VFbGVtZW50LCBub2RlRGltZW5zaW9ucykKKyAgICB7CisgICAgICAgIGlmICghaW1hZ2VF
bGVtZW50KSB7CisgICAgICAgICAgICB1c2VyQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidGFibGUiKTsKKyAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9ICJpbWFnZS1wcmV2
aWV3LWNvbnRhaW5lciI7CisgICAgICAgIHZhciBuYXR1cmFsV2lkdGggPSBub2RlRGltZW5zaW9u
cyA/IG5vZGVEaW1lbnNpb25zLm5hdHVyYWxXaWR0aCA6IGltYWdlRWxlbWVudC5uYXR1cmFsV2lk
dGg7CisgICAgICAgIHZhciBuYXR1cmFsSGVpZ2h0ID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGlt
ZW5zaW9ucy5uYXR1cmFsSGVpZ2h0IDogaW1hZ2VFbGVtZW50Lm5hdHVyYWxIZWlnaHQ7CisgICAg
ICAgIHZhciBvZmZzZXRXaWR0aCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMub2Zm
c2V0V2lkdGggOiBuYXR1cmFsV2lkdGg7CisgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBub2Rl
RGltZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm9mZnNldEhlaWdodCA6IG5hdHVyYWxIZWlnaHQ7
CisgICAgICAgIHZhciBkZXNjcmlwdGlvbjsKKyAgICAgICAgaWYgKHNob3dEaW1lbnNpb25zKSB7
CisgICAgICAgICAgICBpZiAob2Zmc2V0SGVpZ2h0ID09PSBuYXR1cmFsSGVpZ2h0ICYmIG9mZnNl
dFdpZHRoID09PSBuYXR1cmFsV2lkdGgpCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIiwgb2Zmc2V0V2lkdGgsIG9m
ZnNldEhlaWdodCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIChOYXR1cmFsOiAl
ZCBceGQ3ICVkIHBpeGVscykiLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBuYXR1cmFsV2lk
dGgsIG5hdHVyYWxIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgY29udGFpbmVyLmNyZWF0
ZUNoaWxkKCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIsICJpbWFnZS1jb250YWluZXIiKS5hcHBlbmRD
aGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICBpZiAoZGVzY3JpcHRpb24pCisgICAgICAgICAg
ICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hp
bGQoInNwYW4iLCAiZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOworICAg
ICAgICB1c2VyQ2FsbGJhY2soY29udGFpbmVyKTsKKyAgICB9Cit9CisKIC8qKgogICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CiAgKiBAcGFyYW0ge05vZGV9
IGNvbnRleHROb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2VsZW1lbnRzUGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9lbGVtZW50c1BhbmVsLmNzcwppbmRleCAyN2JkM2Q4MTRmYjIxYzc1YmYzMzM4M2NiOGM5MjM1
MzgwY2Y2YzkwLi43Mzg5YThkYWJlMjkwZDgzZjdkNjZkYmY0ZmIyOTI3NjI1ZWU4MzhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwu
Y3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5l
bC5jc3MKQEAgLTU2NiwxMSArNTY2LDEyIEBACiAuaW1hZ2UtcHJldmlldy1jb250YWluZXIgewog
ICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAg
ICBwYWRkaW5nLWxlZnQ6IDExcHg7CiB9CiAKIC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBpbWcg
ewogICAgIG1hcmdpbjogMnB4IGF1dG87CisgICAgbWF4LXdpZHRoOiAxMDBweDsKKyAgICBtYXgt
aGVpZ2h0OiAxMDBweDsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2NoZWNrZXIu
cG5nKTsKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgIC13ZWJraXQtdXNlci1k
cmFnOiBhdXRvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC90aW1lbGluZVBhbmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
dGltZWxpbmVQYW5lbC5jc3MKaW5kZXggNTZjNjNlYTZjYzRmYzlkODU0MzE2YzEwZWYzMWQyZTAx
NzViYzA5NC4uZjUzODFiY2M0N2E0NzNkN2ViOTBmMDFmNWU5YzEyM2E2ZWZjNzgyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwu
Y3NzCkBAIC02NTQsMyArNjU0LDIxIEBACiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUs
IDI1NSwgMjU1LCAwLjc1KTsKICAgICB6LWluZGV4OiAzNTA7CiB9CisKKy5pbWFnZS1wcmV2aWV3
LWNvbnRhaW5lciB7CisgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CisgICAgdGV4dC1hbGln
bjogbGVmdDsKKyAgICBib3JkZXItc3BhY2luZzogMDsKK30KKworLmltYWdlLXByZXZpZXctY29u
dGFpbmVyIGltZyB7CisgICAgbWF4LXdpZHRoOiAxMDBweDsKKyAgICBtYXgtaGVpZ2h0OiAxMDBw
eDsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2NoZWNrZXIucG5nKTsKKyAgICAt
d2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OworICAgIC13ZWJraXQtdXNlci1kcmFnOiBhdXRvOwor
fQorCisuaW1hZ2UtY29udGFpbmVyIHsKKyAgICBwYWRkaW5nOiAwOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158838</attachid>
            <date>2012-08-16 09:17:55 -0700</date>
            <delta_ts>2012-08-17 04:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94213-20120816201719.patch</filename>
            <type>text/plain</type>
            <size>16254</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uNDBjM2Y3NTg5YTkxMmY1N2YxZTBiZjQ4ZGExNmQx
YTcyNGZlNzUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTE2ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaG92ZXJpbmcgb3ZlciBhbiBpbWFnZSBsaW5rIGluIFRpbWVsaW5lIHBvcHVwIGtpbGxz
IHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
Rml4ZWQgYnVnIHdpdGggRWxlbWVudHNQYW5lbCBQb3BvdmVySGVscGVyIGFjdGluZyBvbiB0aGUg
VGltZWxpbmVQYW5lbCAoZHVlIHRvIHdoaWNoIHRoZSBvcmlnaW5hbCBpc3N1ZSBvY2N1cnMpLgor
ICAgICAgICAtIEltYWdlIHByZXZpZXcgYWRkZWQgdG8gcmVzb3VyY2UgZW50cmllcyBwb3BvdmVy
IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQgdGhlIGNvcmUgaW1hZ2UgcHJl
dmlldyBidWlsZGluZyBjb2RlIGludG8gVUlVdGlscy5qcworCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Ll9zaG93UG9wb3Zlci5zaG93UG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyLnNob3dDYWxsYmFjayk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90
eXBlLmdlbmVyYXRlUG9wdXBDb250ZW50KToKKyAgICAgICAgRmlyc3QgYnVpbGQgdGhlIGltYWdl
IHByZXZpZXcgZWxlbWVudCBpZiBuZWNlc3NhcnksIHRoZW4gZG8gZXZlcnl0aGluZyBlbHNlLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnBy
b3RvdHlwZS5fZ2VuZXJhdGVQb3B1cENvbnRlbnRXaXRoSW1hZ2VQcmV2aWV3KTogT3JpZ2luYWwg
Z2VuZXJhdGVQb3B1cENvbnRlbnQoKSBjb2RlCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRIZWxwZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUG9wdXBDb250ZW50SGVscGVyLnByb3Rv
dHlwZS5uZWVkc1ByZXZpZXdFbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1VJVXRpbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250
ZW50cy5idWlsZENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2
aWV3Q29udGVudHMpOiBFeHRyYWN0ZWQgZnJvbSBFbGVtZW50c1BhbmVsLiBFbmFibGVkIGJ1aWxk
aW5nIG9mIHByZXZpZXcgZWxlbWVudHMgd2l0aG91dCB0aGUgZGltZW5zaW9ucyB0ZXh0IGRhdGEu
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzczoKKyAgICAg
ICAgKC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lcik6CisgICAgICAgICguaW1hZ2UtcHJldmlldy1j
b250YWluZXIgaW1nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFu
ZWwuY3NzOgorICAgICAgICAoLmltYWdlLXByZXZpZXctY29udGFpbmVyKTogRml4ZWQgY2VudGVy
aW5nIG9mIHRoZSBwcmV2aWV3IGNvbnRhaW5lciBjb250ZW50cy4KKyAgICAgICAgKC5pbWFnZS1w
cmV2aWV3LWNvbnRhaW5lciBpbWcpOgorICAgICAgICAoLmltYWdlLWNvbnRhaW5lcik6CisKIDIw
MTItMDgtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3IgUmVzb3VyY2V7UmVx
dWVzdC9SZXNwb25zZX1CYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggNWZkMjMyMjdmYWNkNDc2MTc4YzY4ZDE4OTBj
NjhhMzIwM2RjNzBhZC4uZDc0MDZhMTViY2JkZjIwNWY3ZTg5NDBmMjdjODYzN2I0NmFkOTM2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qcwpAQCAtOTUsNyArOTUsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1
bmN0aW9uKCkKIAogICAgIHRoaXMuX3JlZ2lzdGVyU2hvcnRjdXRzKCk7CiAKLSAgICB0aGlzLl9w
b3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKGRvY3VtZW50LmJv
ZHksIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIu
YmluZCh0aGlzKSk7CisgICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
UG9wb3ZlckhlbHBlcih0aGlzLmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0
aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fcG9wb3Zlckhl
bHBlci5zZXRUaW1lb3V0KDApOwogCiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5Ob2RlUmVtb3ZlZCwgdGhpcy5f
bm9kZVJlbW92ZWQsIHRoaXMpOwpAQCAtNDI3LDcwICs0MjcsMjIgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9zaG93UG9wb3ZlcjogZnVu
Y3Rpb24oYW5jaG9yLCBwb3BvdmVyKQogICAgIHsKLSAgICAgICAgdmFyIGxpc3RJdGVtID0gYW5j
aG9yLmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWVJbkFycmF5KFsibGkiXSk7CisgICAg
ICAgIHZhciBsaXN0SXRlbSA9IGFuY2hvci5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1l
KCJsaSIpOwogICAgICAgICBpZiAobGlzdEl0ZW0gJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQpCi0g
ICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5zaW9uc0Zvck5vZGUobGlzdEl0ZW0udHJlZUVsZW1l
bnQsIGRpbWVuc2lvbnNDYWxsYmFjayk7CisgICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5zaW9u
c0Zvck5vZGUobGlzdEl0ZW0udHJlZUVsZW1lbnQsIFdlYkluc3BlY3Rvci5idWlsZEltYWdlUHJl
dmlld0NvbnRlbnRzLmJpbmQoV2ViSW5zcGVjdG9yLCBhbmNob3IuaHJlZiwgdHJ1ZSwgc2hvd1Bv
cG92ZXIpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cy5iaW5k
KFdlYkluc3BlY3RvciwgYW5jaG9yLmhyZWYsIHRydWUsIHNob3dQb3BvdmVyKTsKIAogICAgICAg
ICAvKioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25zCisgICAgICAgICAq
IEBwYXJhbSB7RWxlbWVudD19IGNvbnRlbnRzCiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlv
biBkaW1lbnNpb25zQ2FsbGJhY2soZGltZW5zaW9ucykKKyAgICAgICAgZnVuY3Rpb24gc2hvd1Bv
cG92ZXIoY29udGVudHMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBpbWFnZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2hvd1BvcG92ZXIuYmluZChudWxsLCBpbWFnZUVs
ZW1lbnQsIGRpbWVuc2lvbnMpLCBmYWxzZSk7Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwucmVzb3VyY2VGb3JVUkwoYW5jaG9yLmhyZWYp
OwotICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkKKyAgICAgICAgICAgIGlmICghY29udGVudHMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgIAotICAgICAgICAgICAgcmVzb3VyY2UucG9w
dWxhdGVJbWFnZVNvdXJjZShpbWFnZUVsZW1lbnQpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoq
Ci0gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gZGltZW5zaW9ucwotICAgICAgICAgKi8KLSAg
ICAgICAgZnVuY3Rpb24gc2hvd1BvcG92ZXIoaW1hZ2VFbGVtZW50LCBkaW1lbnNpb25zKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgY29udGVudHMgPSBidWlsZFBvcG92ZXJDb250ZW50cyhp
bWFnZUVsZW1lbnQsIGRpbWVuc2lvbnMpOwogICAgICAgICAgICAgcG9wb3Zlci5zZXRDYW5TaHJp
bmsoZmFsc2UpOwogICAgICAgICAgICAgcG9wb3Zlci5zaG93KGNvbnRlbnRzLCBhbmNob3IpOwog
ICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gbm9k
ZURpbWVuc2lvbnMKLSAgICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIGJ1aWxkUG9wb3ZlckNv
bnRlbnRzKGltYWdlRWxlbWVudCwgbm9kZURpbWVuc2lvbnMpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGNvbnN0IG1heEltYWdlV2lkdGggPSAxMDA7Ci0gICAgICAgICAgICBjb25zdCBtYXhJbWFn
ZUhlaWdodCA9IDEwMDsKLSAgICAgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0YWJsZSIpOwotICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9ICJp
bWFnZS1wcmV2aWV3LWNvbnRhaW5lciI7Ci0gICAgICAgICAgICB2YXIgbmF0dXJhbFdpZHRoID0g
bm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5uYXR1cmFsV2lkdGggOiBpbWFnZUVsZW1l
bnQubmF0dXJhbFdpZHRoOwotICAgICAgICAgICAgdmFyIG5hdHVyYWxIZWlnaHQgPSBub2RlRGlt
ZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm5hdHVyYWxIZWlnaHQgOiBpbWFnZUVsZW1lbnQubmF0
dXJhbEhlaWdodDsKLSAgICAgICAgICAgIHZhciBvZmZzZXRXaWR0aCA9IG5vZGVEaW1lbnNpb25z
ID8gbm9kZURpbWVuc2lvbnMub2Zmc2V0V2lkdGggOiBuYXR1cmFsV2lkdGg7Ci0gICAgICAgICAg
ICB2YXIgb2Zmc2V0SGVpZ2h0ID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZz
ZXRIZWlnaHQgOiBuYXR1cmFsSGVpZ2h0OwotICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uOwot
ICAgICAgICAgICAgaWYgKG9mZnNldEhlaWdodCA9PT0gbmF0dXJhbEhlaWdodCAmJiBvZmZzZXRX
aWR0aCA9PT0gbmF0dXJhbFdpZHRoKQotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBpeGVscyIsIG9mZnNldFdpZHRoLCBvZmZz
ZXRIZWlnaHQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBpeGVscyAoTmF0dXJhbDogJWQg
XHhkNyAlZCBwaXhlbHMpIiwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCwgbmF0dXJhbFdpZHRo
LCBuYXR1cmFsSGVpZ2h0KTsKLQotICAgICAgICAgICAgaWYgKG5hdHVyYWxXaWR0aCA+IG5hdHVy
YWxIZWlnaHQpIHsKLSAgICAgICAgICAgICAgICBpZiAobmF0dXJhbFdpZHRoID4gbWF4SW1hZ2VX
aWR0aCkgewotICAgICAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUud2lkdGggPSBt
YXhJbWFnZVdpZHRoICsgInB4IjsKLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0
eWxlLmhlaWdodCA9IChuYXR1cmFsSGVpZ2h0ICogbWF4SW1hZ2VXaWR0aCAvIG5hdHVyYWxXaWR0
aCkgKyAicHgiOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5hdHVyYWxIZWlnaHQgPiBtYXhJbWFnZUhlaWdodCkgewotICAgICAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3R5bGUud2lkdGggPSAobmF0dXJhbFdpZHRoICog
bWF4SW1hZ2VIZWlnaHQgLyBuYXR1cmFsSGVpZ2h0KSArICJweCI7Ci0gICAgICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXhJbWFnZUhlaWdodCArICJweCI7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29udGFpbmVyLmNy
ZWF0ZUNoaWxkKCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIsICJpbWFnZS1jb250YWluZXIiKS5hcHBl
bmRDaGlsZChpbWFnZUVsZW1lbnQpOwotICAgICAgICAgICAgY29udGFpbmVyLmNyZWF0ZUNoaWxk
KCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIpLmNyZWF0ZUNoaWxkKCJzcGFuIiwgImRlc2NyaXB0aW9u
IikudGV4dENvbnRlbnQgPSBkZXNjcmlwdGlvbjsKLSAgICAgICAgICAgIHJldHVybiBjb250YWlu
ZXI7Ci0gICAgICAgIH0KICAgICB9LAogCiAgICAganVtcFRvTmV4dFNlYXJjaFJlc3VsdDogZnVu
Y3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzCmluZGV4IGJmMDliY2Y5NGU4MThlYTA5NWQ1NmM1YWM0MmQzMGRhODliMmZl
OTMuLjE1YTMxNzJlYmE1NDUxMjdlMGFjM2ZkNmY4NzI5OTI2OWIzNjhjZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAg
LTk0NCw3ICs5NDQsMTIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgcG9wb3Zlci5zaG93KFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmdlbmVyYXRlUG9wdXBDb250ZW50Rm9yRnJhbWUoZnJhbWUpLCBhbmNob3IpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGFuY2hvci5yb3cgJiYgYW5jaG9yLnJv
dy5fcmVjb3JkKQotICAgICAgICAgICAgICAgIHBvcG92ZXIuc2hvdyhhbmNob3Iucm93Ll9yZWNv
cmQuZ2VuZXJhdGVQb3B1cENvbnRlbnQoKSwgYW5jaG9yKTsKKyAgICAgICAgICAgICAgICBhbmNo
b3Iucm93Ll9yZWNvcmQuZ2VuZXJhdGVQb3B1cENvbnRlbnQoc2hvd0NhbGxiYWNrKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNob3dDYWxsYmFjayhwb3B1cENvbnRlbnQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHBvcG92ZXIuc2hvdyhwb3B1cENvbnRlbnQsIGFuY2hvcik7CiAg
ICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggYmVi
MzAwNzNkNTJkNjBiMjI1YTAwNzUzYmU3MGVmNTM1ZmUxMGE1MC4uMWNhMGQzMWQzOWZlZDUzMWM1
MGY1OTQzNWUxYzZkMzczOTAzMTc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwpA
QCAtNjM1LDEwICs2MzUsMjUgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRUaW1lIDw9
IHRpbWUgJiYgdGltZSA8PSB0aGlzLmVuZFRpbWU7CiAgICAgfSwKIAotICAgIGdlbmVyYXRlUG9w
dXBDb250ZW50OiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihF
bGVtZW50KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBnZW5lcmF0ZVBvcHVwQ29udGVudDogZnVu
Y3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgY29udGVudEhlbHBlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRIZWxwZXIo
dGhpcy50aXRsZSk7CisgICAgICAgIHZhciBjb250ZW50SGVscGVyID0gbmV3IFdlYkluc3BlY3Rv
ci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlBvcHVwQ29udGVudEhlbHBlcih0aGlzKTsKKyAg
ICAgICAgaWYgKGNvbnRlbnRIZWxwZXIubmVlZHNQcmV2aWV3RWxlbWVudCgpKQorICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHModGhpcy51cmwsIGZhbHNl
LCB0aGlzLl9nZW5lcmF0ZVBvcHVwQ29udGVudFdpdGhJbWFnZVByZXZpZXcuYmluZCh0aGlzLCBj
b250ZW50SGVscGVyLCBjYWxsYmFjaykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Ll9nZW5lcmF0ZVBvcHVwQ29udGVudFdpdGhJbWFnZVByZXZpZXcoY29udGVudEhlbHBlciwgY2Fs
bGJhY2spOworICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlBvcHVwQ29udGVudEhlbHBlcn0gY29udGVudEhlbHBl
cgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oRWxlbWVudCl9IGNhbGxiYWNrCisgICAgICogQHBh
cmFtIHtFbGVtZW50PX0gcHJldmlld0VsZW1lbnQKKyAgICAgKi8KKyAgICBfZ2VuZXJhdGVQb3B1
cENvbnRlbnRXaXRoSW1hZ2VQcmV2aWV3OiBmdW5jdGlvbihjb250ZW50SGVscGVyLCBjYWxsYmFj
aywgcHJldmlld0VsZW1lbnQpCisgICAgewogICAgICAgICB2YXIgdGV4dCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiJXMgKGF0ICVzKSIsIE51bWJlci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fbGFz
dENoaWxkRW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lLCB0cnVlKSwKICAgICAgICAgICAgIE51bWJl
ci5zZWNvbmRzVG9TdHJpbmcodGhpcy5fc3RhcnRUaW1lT2Zmc2V0KSk7CiAgICAgICAgIGNvbnRl
bnRIZWxwZXIuX2FwcGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEdXJhdGlvbiIp
LCB0ZXh0KTsKQEAgLTY3Niw2ICs2OTEsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FzZSByZWNvcmRU
eXBlcy5SZXNvdXJjZVJlY2VpdmVkRGF0YToKICAgICAgICAgICAgIGNhc2UgcmVjb3JkVHlwZXMu
UmVzb3VyY2VGaW5pc2g6CiAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxl
bWVudFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc291cmNlIiksIHRoaXMuX2xpbmtpZnlM
b2NhdGlvbih0aGlzLnVybCkpOworICAgICAgICAgICAgICAgIGlmIChwcmV2aWV3RWxlbWVudCkK
KyAgICAgICAgICAgICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kRWxlbWVudFJvdyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlByZXZpZXciKSwgcHJldmlld0VsZW1lbnQpOwogICAgICAgICAg
ICAgICAgIGlmICh0aGlzLmRhdGFbInJlcXVlc3RNZXRob2QiXSkKICAgICAgICAgICAgICAgICAg
ICAgY29udGVudEhlbHBlci5fYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJl
cXVlc3QgTWV0aG9kIiksIHRoaXMuZGF0YVsicmVxdWVzdE1ldGhvZCJdKTsKICAgICAgICAgICAg
ICAgICBpZiAodHlwZW9mIHRoaXMuZGF0YVsic3RhdHVzQ29kZSJdID09PSAibnVtYmVyIikKQEAg
LTcxOCw3ICs3MzUsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5S
ZWNvcmQucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQogICAgICAg
ICAgICAgY29udGVudEhlbHBlci5fYXBwZW5kU3RhY2tUcmFjZShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkNhbGwgU3RhY2siKSwgdGhpcy5zdGFja1RyYWNlLCB0aGlzLl9saW5raWZ5Q2FsbEZyYW1l
LmJpbmQodGhpcykpOwogCi0gICAgICAgIHJldHVybiBjb250ZW50SGVscGVyLl9jb250ZW50VGFi
bGU7CisgICAgICAgIGNhbGxiYWNrKGNvbnRlbnRIZWxwZXIuX2NvbnRlbnRUYWJsZSk7CiAgICAg
fSwKIAogICAgIF9yZWZyZXNoRGV0YWlsczogZnVuY3Rpb24oKQpAQCAtODU1LDEwICs4NzIsMTEg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2dlbmVyYXRlQWdncmVn
YXRlZEluZm8gPSBmdW5jdGlvbihhZ2dyZWcKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8KLVdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlBvcHVwQ29udGVudEhlbHBlciA9
IGZ1bmN0aW9uKHRpdGxlKQorV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
UG9wdXBDb250ZW50SGVscGVyID0gZnVuY3Rpb24ocmVjb3JkKQogeworICAgIHRoaXMucmVjb3Jk
ID0gcmVjb3JkOwogICAgIHRoaXMuX2NvbnRlbnRUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInRhYmxlIik7Ci0gICAgdmFyIHRpdGxlQ2VsbCA9IHRoaXMuX2NyZWF0ZUNlbGwoV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIlcyAtIERldGFpbHMiLCB0aXRsZSksICJ0aW1lbGluZS1kZXRhaWxz
LXRpdGxlIik7CisgICAgdmFyIHRpdGxlQ2VsbCA9IHRoaXMuX2NyZWF0ZUNlbGwoV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCIlcyAtIERldGFpbHMiLCByZWNvcmQudGl0bGUpLCAidGltZWxpbmUtZGV0
YWlscy10aXRsZSIpOwogICAgIHRpdGxlQ2VsbC5jb2xTcGFuID0gMjsKICAgICB2YXIgdGl0bGVS
b3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgIHRpdGxlUm93LmFwcGVuZENo
aWxkKHRpdGxlQ2VsbCk7CkBAIC04NjYsNiArODg0LDIxIEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLlBvcHVwQ29udGVudEhlbHBlciA9IGZ1bmN0aW9uKHRpdGxlKQog
fQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRI
ZWxwZXIucHJvdG90eXBlID0geworICAgIG5lZWRzUHJldmlld0VsZW1lbnQ6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGNvbnN0IHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5l
TW9kZWwuUmVjb3JkVHlwZTsKKyAgICAgICAgc3dpdGNoICh0aGlzLnJlY29yZC50eXBlKSB7Cisg
ICAgICAgIGNhc2UgcmVjb3JkVHlwZXMuU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3Q6CisgICAgICAg
IGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VTZW5kUmVxdWVzdDoKKyAgICAgICAgY2FzZSByZWNv
cmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZToKKyAgICAgICAgY2FzZSByZWNvcmRUeXBl
cy5SZXNvdXJjZVJlY2VpdmVkRGF0YToKKyAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJj
ZUZpbmlzaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSwKKwogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7c3RyaW5nPX0gc3R5bGVOYW1lCiAgICAgICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKaW5kZXggM2M1MzhhOTA0Y2ZmMDdhODhk
MGE2MGE2N2M0YmYzNmI3ZWY5NDY1NC4uMGRkYzA3OTM3ODQzNmRjOTA2MTdlMjIwZWFkNDVmZTZh
NzA4ODAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9V
SVV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGls
cy5qcwpAQCAtMTAzOSw2ICsxMDM5LDU1IEBAIFdlYkluc3BlY3Rvci5yZXZlcnREb21DaGFuZ2Vz
ID0gZnVuY3Rpb24oZG9tQ2hhbmdlcykKIH0KIAogLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gaW1h
Z2VVUkwKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvd0RpbWVuc2lvbnMKKyAqIEBwYXJhbSB7ZnVu
Y3Rpb24oRWxlbWVudD0pfSB1c2VyQ2FsbGJhY2sKKyAqIEBwYXJhbSB7T2JqZWN0PX0gcHJlY29t
cHV0ZWREaW1lbnNpb25zCisgKi8KK1dlYkluc3BlY3Rvci5idWlsZEltYWdlUHJldmlld0NvbnRl
bnRzID0gZnVuY3Rpb24oaW1hZ2VVUkwsIHNob3dEaW1lbnNpb25zLCB1c2VyQ2FsbGJhY2ssIHBy
ZWNvbXB1dGVkRGltZW5zaW9ucykKK3sKKyAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwucmVzb3VyY2VGb3JVUkwoaW1hZ2VVUkwpOworICAgIGlmICghcmVz
b3VyY2UpIHsKKyAgICAgICAgdXNlckNhbGxiYWNrKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICB2YXIgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7
CisgICAgaW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBidWlsZENvbnRlbnQu
YmluZChudWxsLCBpbWFnZUVsZW1lbnQsIHByZWNvbXB1dGVkRGltZW5zaW9ucyksIGZhbHNlKTsK
KyAgICBpbWFnZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBidWlsZENvbnRlbnQu
YmluZChudWxsLCBudWxsLCBudWxsKSwgZmFsc2UpOworICAgIHJlc291cmNlLnBvcHVsYXRlSW1h
Z2VTb3VyY2UoaW1hZ2VFbGVtZW50KTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0
PX0gbm9kZURpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBmdW5jdGlvbiBidWlsZENvbnRlbnQoaW1h
Z2VFbGVtZW50LCBub2RlRGltZW5zaW9ucykKKyAgICB7CisgICAgICAgIGlmICghaW1hZ2VFbGVt
ZW50KSB7CisgICAgICAgICAgICB1c2VyQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidGFibGUiKTsKKyAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9ICJpbWFnZS1wcmV2aWV3
LWNvbnRhaW5lciI7CisgICAgICAgIHZhciBuYXR1cmFsV2lkdGggPSBub2RlRGltZW5zaW9ucyA/
IG5vZGVEaW1lbnNpb25zLm5hdHVyYWxXaWR0aCA6IGltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7
CisgICAgICAgIHZhciBuYXR1cmFsSGVpZ2h0ID0gbm9kZURpbWVuc2lvbnMgPyBub2RlRGltZW5z
aW9ucy5uYXR1cmFsSGVpZ2h0IDogaW1hZ2VFbGVtZW50Lm5hdHVyYWxIZWlnaHQ7CisgICAgICAg
IHZhciBvZmZzZXRXaWR0aCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMub2Zmc2V0
V2lkdGggOiBuYXR1cmFsV2lkdGg7CisgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBub2RlRGlt
ZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm9mZnNldEhlaWdodCA6IG5hdHVyYWxIZWlnaHQ7Cisg
ICAgICAgIHZhciBkZXNjcmlwdGlvbjsKKyAgICAgICAgaWYgKHNob3dEaW1lbnNpb25zKSB7Cisg
ICAgICAgICAgICBpZiAob2Zmc2V0SGVpZ2h0ID09PSBuYXR1cmFsSGVpZ2h0ICYmIG9mZnNldFdp
ZHRoID09PSBuYXR1cmFsV2lkdGgpCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIiwgb2Zmc2V0V2lkdGgsIG9mZnNl
dEhlaWdodCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24g
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIChOYXR1cmFsOiAlZCBc
eGQ3ICVkIHBpeGVscykiLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBuYXR1cmFsV2lkdGgs
IG5hdHVyYWxIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgY29udGFpbmVyLmNyZWF0ZUNo
aWxkKCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIsICJpbWFnZS1jb250YWluZXIiKS5hcHBlbmRDaGls
ZChpbWFnZUVsZW1lbnQpOworICAgICAgICBpZiAoZGVzY3JpcHRpb24pCisgICAgICAgICAgICBj
b250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQo
InNwYW4iLCAiZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOworICAgICAg
ICB1c2VyQ2FsbGJhY2soY29udGFpbmVyKTsKKyAgICB9Cit9CisKKy8qKgogICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CiAgKiBAcGFyYW0ge05vZGV9IGNv
bnRleHROb2RlCiAgKiBAcGFyYW0ge0V2ZW50fSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9lbGVtZW50c1BhbmVsLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5lbC5jc3MKaW5kZXggMjdiZDNkODE0
ZmIyMWM3NWJmMzMzODNjYjhjOTIzNTM4MGNmNmM5MC4uNzM4OWE4ZGFiZTI5MGQ4M2Y3ZDY2ZGJm
NGZiMjkyNzYyNWVlODM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9lbGVtZW50c1BhbmVsLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwuY3NzCkBAIC01NjYsMTEgKzU2NiwxMiBAQAogLmltYWdl
LXByZXZpZXctY29udGFpbmVyIHsKICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICB0
ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgcGFkZGluZy1sZWZ0OiAxMXB4OwogfQogCiAuaW1hZ2Ut
cHJldmlldy1jb250YWluZXIgaW1nIHsKICAgICBtYXJnaW46IDJweCBhdXRvOworICAgIG1heC13
aWR0aDogMTAwcHg7CisgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKEltYWdlcy9jaGVja2VyLnBuZyk7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4
dDsKICAgICAtd2Via2l0LXVzZXItZHJhZzogYXV0bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGltZWxpbmVQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzCmluZGV4IDU2YzYzZWE2Y2M0
ZmM5ZDg1NDMxNmMxMGVmMzFkMmUwMTc1YmMwOTQuLmY1MzgxYmNjNDdhNDczZDdlYjkwZjAxZjVl
OWMxMjNhNmVmYzc4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdGltZWxpbmVQYW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC90aW1lbGluZVBhbmVsLmNzcwpAQCAtNjU0LDMgKzY1NCwyMSBAQAogICAgIGJhY2tn
cm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7CiAgICAgei1pbmRleDogMzUw
OwogfQorCisuaW1hZ2UtcHJldmlldy1jb250YWluZXIgeworICAgIGJhY2tncm91bmQ6IHRyYW5z
cGFyZW50OworICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgYm9yZGVyLXNwYWNpbmc6IDA7Cit9
CisKKy5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBpbWcgeworICAgIG1heC13aWR0aDogMTAwcHg7
CisgICAgbWF4LWhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdl
cy9jaGVja2VyLnBuZyk7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKKyAgICAtd2Vi
a2l0LXVzZXItZHJhZzogYXV0bzsKK30KKworLmltYWdlLWNvbnRhaW5lciB7CisgICAgcGFkZGlu
ZzogMDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159086</attachid>
            <date>2012-08-17 04:34:44 -0700</date>
            <delta_ts>2012-08-17 04:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94213-20120817153408.patch</filename>
            <type>text/plain</type>
            <size>15733</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY5NjRkMTQ2YzI5YTQz
ZWQwZGVhZjU3MmQyZWUyNmYzMzgxMDhjNy4uMjg1ZTVhMDIyZWExY2NmMTdiNjY5YmZjYWFiNzFl
YTIyMzVhOWFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA4LTE3ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaG92ZXJpbmcgb3ZlciBhbiBpbWFnZSBsaW5rIGluIFRpbWVsaW5lIHBvcHVwIGtpbGxz
IHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDIxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
Rml4ZWQgYnVnIHdpdGggRWxlbWVudHNQYW5lbCBQb3BvdmVySGVscGVyIGFjdGluZyBvbiB0aGUg
VGltZWxpbmVQYW5lbCAoZHVlIHRvIHdoaWNoIHRoZSBvcmlnaW5hbCBpc3N1ZSBvY2N1cnMpLgor
ICAgICAgICAtIEltYWdlIHByZXZpZXcgYWRkZWQgdG8gcmVzb3VyY2UgZW50cmllcyBwb3BvdmVy
IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQgdGhlIGNvcmUgaW1hZ2UgcHJl
dmlldyBidWlsZGluZyBjb2RlIGludG8gVUlVdGlscy5qcy4KKyAgICAgICAgLSBEcml2ZS1ieTog
Zml4ZWQgaW1hZ2UgY2VudGVyaW5nIGluIHRoZSBwcmV2aWV3IGVsZW1lbnQuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUuX3Nob3dQb3BvdmVyLnNob3dQb3BvdmVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIuc2hvd0NhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fc2hvd1BvcG92ZXIp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLm5l
ZWRzUHJldmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZS5nZW5lcmF0ZVBvcHVwQ29udGVudCk6CisgICAg
ICAgIEZpcnN0IGJ1aWxkIHRoZSBpbWFnZSBwcmV2aWV3IGVsZW1lbnQgaWYgbmVjZXNzYXJ5LCB0
aGVuIGRvIGV2ZXJ5dGhpbmcgZWxzZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90b3R5cGUuX2dlbmVyYXRlUG9wdXBDb250ZW50V2l0
aEltYWdlUHJldmlldyk6CisgICAgICAgIE9yaWdpbmFsIGdlbmVyYXRlUG9wdXBDb250ZW50KCkg
Y29kZSBwbHVzIHRoZSBwcmV2aWV3IGdlbmVyYXRpb24gd2hlbiBuZWNlc3NhcnkuCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMuZXJyb3JDYWxsYmFjayk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cy5idWlsZENvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMpOiBFeHRyYWN0ZWQgZnJv
bSBFbGVtZW50c1BhbmVsLiBFbmFibGVkIGJ1aWxkaW5nIG9mIHByZXZpZXcgZWxlbWVudHMgd2l0
aG91dCB0aGUgZGltZW5zaW9ucyB0ZXh0IGRhdGEuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9lbGVtZW50c1BhbmVsLmNzczoKKyAgICAgICAgKC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5l
cik6CisgICAgICAgICguaW1hZ2UtcHJldmlldy1jb250YWluZXIgaW1nKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzOgorICAgICAgICAoLmltYWdlLXBy
ZXZpZXctY29udGFpbmVyKTogRml4ZWQgY2VudGVyaW5nIG9mIHRoZSBwcmV2aWV3IGNvbnRhaW5l
ciBjb250ZW50cy4KKyAgICAgICAgKC5pbWFnZS1wcmV2aWV3LWNvbnRhaW5lciBpbWcpOgorICAg
ICAgICAoLmltYWdlLWNvbnRhaW5lcik6CisKIDIwMTItMDgtMTYgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWVtb3J5IGlu
c3RydW1lbnRhdGlvbiBmb3IgUmVzb3VyY2V7UmVxdWVzdC9SZXNwb25zZX1CYXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5k
ZXggNWZkMjMyMjdmYWNkNDc2MTc4YzY4ZDE4OTBjNjhhMzIwM2RjNzBhZC4uNmQxMzEyMTYyNzg3
ZjBhZmRkOTU2NjM4YmUzNjA3ZDk0YTYwZjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtOTUsNyArOTUsNyBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3JlZ2lz
dGVyU2hvcnRjdXRzKCk7CiAKLSAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVySGVscGVyKGRvY3VtZW50LmJvZHksIHRoaXMuX2dldFBvcG92ZXJBbmNob3Iu
YmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CisgICAgdGhpcy5fcG9w
b3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlzLmVsZW1lbnQs
IHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmlu
ZCh0aGlzKSk7CiAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5zZXRUaW1lb3V0KDApOwogCiAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5Ob2RlUmVtb3ZlZCwgdGhpcy5fbm9kZVJlbW92ZWQsIHRoaXMpOwpAQCAtNDI3
LDcwICs0MjcsMjIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAqLwogICAgIF9zaG93UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yLCBwb3BvdmVyKQogICAg
IHsKLSAgICAgICAgdmFyIGxpc3RJdGVtID0gYW5jaG9yLmVuY2xvc2luZ05vZGVPclNlbGZXaXRo
Tm9kZU5hbWVJbkFycmF5KFsibGkiXSk7CisgICAgICAgIHZhciBsaXN0SXRlbSA9IGFuY2hvci5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJsaSIpOwogICAgICAgICBpZiAobGlzdEl0
ZW0gJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5z
aW9uc0Zvck5vZGUobGlzdEl0ZW0udHJlZUVsZW1lbnQsIGRpbWVuc2lvbnNDYWxsYmFjayk7Cisg
ICAgICAgICAgICB0aGlzLl9sb2FkRGltZW5zaW9uc0Zvck5vZGUobGlzdEl0ZW0udHJlZUVsZW1l
bnQsIFdlYkluc3BlY3Rvci5idWlsZEltYWdlUHJldmlld0NvbnRlbnRzLmJpbmQoV2ViSW5zcGVj
dG9yLCBhbmNob3IuaHJlZiwgdHJ1ZSwgc2hvd1BvcG92ZXIpKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZGltZW5zaW9uc0NhbGxiYWNrKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
YnVpbGRJbWFnZVByZXZpZXdDb250ZW50cyhhbmNob3IuaHJlZiwgdHJ1ZSwgc2hvd1BvcG92ZXIp
OwogCiAgICAgICAgIC8qKgotICAgICAgICAgKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lvbnMK
KyAgICAgICAgICogQHBhcmFtIHtFbGVtZW50PX0gY29udGVudHMKICAgICAgICAgICovCi0gICAg
ICAgIGZ1bmN0aW9uIGRpbWVuc2lvbnNDYWxsYmFjayhkaW1lbnNpb25zKQorICAgICAgICBmdW5j
dGlvbiBzaG93UG9wb3Zlcihjb250ZW50cykKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGlt
YWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAg
aW1hZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzaG93UG9wb3Zlci5iaW5kKG51
bGwsIGltYWdlRWxlbWVudCwgZGltZW5zaW9ucyksIGZhbHNlKTsKLSAgICAgICAgICAgIHZhciBy
ZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChh
bmNob3IuaHJlZik7Ci0gICAgICAgICAgICBpZiAoIXJlc291cmNlKQorICAgICAgICAgICAgaWYg
KCFjb250ZW50cykKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgICAgICAgICBy
ZXNvdXJjZS5wb3B1bGF0ZUltYWdlU291cmNlKGltYWdlRWxlbWVudCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHtPYmplY3Q9fSBkaW1lbnNpb25zCi0gICAg
ICAgICAqLwotICAgICAgICBmdW5jdGlvbiBzaG93UG9wb3ZlcihpbWFnZUVsZW1lbnQsIGRpbWVu
c2lvbnMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50cyA9IGJ1aWxkUG9wb3Zl
ckNvbnRlbnRzKGltYWdlRWxlbWVudCwgZGltZW5zaW9ucyk7CiAgICAgICAgICAgICBwb3BvdmVy
LnNldENhblNocmluayhmYWxzZSk7CiAgICAgICAgICAgICBwb3BvdmVyLnNob3coY29udGVudHMs
IGFuY2hvcik7CiAgICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHtP
YmplY3Q9fSBub2RlRGltZW5zaW9ucwotICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gYnVp
bGRQb3BvdmVyQ29udGVudHMoaW1hZ2VFbGVtZW50LCBub2RlRGltZW5zaW9ucykKLSAgICAgICAg
ewotICAgICAgICAgICAgY29uc3QgbWF4SW1hZ2VXaWR0aCA9IDEwMDsKLSAgICAgICAgICAgIGNv
bnN0IG1heEltYWdlSGVpZ2h0ID0gMTAwOwotICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7Ci0gICAgICAgICAgICBjb250YWluZXIuY2xh
c3NOYW1lID0gImltYWdlLXByZXZpZXctY29udGFpbmVyIjsKLSAgICAgICAgICAgIHZhciBuYXR1
cmFsV2lkdGggPSBub2RlRGltZW5zaW9ucyA/IG5vZGVEaW1lbnNpb25zLm5hdHVyYWxXaWR0aCA6
IGltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7Ci0gICAgICAgICAgICB2YXIgbmF0dXJhbEhlaWdo
dCA9IG5vZGVEaW1lbnNpb25zID8gbm9kZURpbWVuc2lvbnMubmF0dXJhbEhlaWdodCA6IGltYWdl
RWxlbWVudC5uYXR1cmFsSGVpZ2h0OwotICAgICAgICAgICAgdmFyIG9mZnNldFdpZHRoID0gbm9k
ZURpbWVuc2lvbnMgPyBub2RlRGltZW5zaW9ucy5vZmZzZXRXaWR0aCA6IG5hdHVyYWxXaWR0aDsK
LSAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBub2RlRGltZW5zaW9ucyA/IG5vZGVEaW1l
bnNpb25zLm9mZnNldEhlaWdodCA6IG5hdHVyYWxIZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgZGVz
Y3JpcHRpb247Ci0gICAgICAgICAgICBpZiAob2Zmc2V0SGVpZ2h0ID09PSBuYXR1cmFsSGVpZ2h0
ICYmIG9mZnNldFdpZHRoID09PSBuYXR1cmFsV2lkdGgpCi0gICAgICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIiwgb2Zmc2V0
V2lkdGgsIG9mZnNldEhlaWdodCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIFx4ZDcgJWQgcGl4ZWxzIChO
YXR1cmFsOiAlZCBceGQ3ICVkIHBpeGVscykiLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0LCBu
YXR1cmFsV2lkdGgsIG5hdHVyYWxIZWlnaHQpOwotCi0gICAgICAgICAgICBpZiAobmF0dXJhbFdp
ZHRoID4gbmF0dXJhbEhlaWdodCkgewotICAgICAgICAgICAgICAgIGlmIChuYXR1cmFsV2lkdGgg
PiBtYXhJbWFnZVdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zdHls
ZS53aWR0aCA9IG1heEltYWdlV2lkdGggKyAicHgiOwotICAgICAgICAgICAgICAgICAgICBpbWFn
ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKG5hdHVyYWxIZWlnaHQgKiBtYXhJbWFnZVdpZHRoIC8g
bmF0dXJhbFdpZHRoKSArICJweCI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobmF0dXJhbEhlaWdodCA+IG1heEltYWdlSGVpZ2h0
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zdHlsZS53aWR0aCA9IChuYXR1
cmFsV2lkdGggKiBtYXhJbWFnZUhlaWdodCAvIG5hdHVyYWxIZWlnaHQpICsgInB4IjsKLSAgICAg
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnN0eWxlLmhlaWdodCA9IG1heEltYWdlSGVpZ2h0
ICsgInB4IjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBj
b250YWluZXIuY3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRkIiwgImltYWdlLWNvbnRh
aW5lciIpLmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICBjb250YWluZXIu
Y3JlYXRlQ2hpbGQoInRyIikuY3JlYXRlQ2hpbGQoInRkIikuY3JlYXRlQ2hpbGQoInNwYW4iLCAi
ZGVzY3JpcHRpb24iKS50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOwotICAgICAgICAgICAgcmV0
dXJuIGNvbnRhaW5lcjsKLSAgICAgICAgfQogICAgIH0sCiAKICAgICBqdW1wVG9OZXh0U2VhcmNo
UmVzdWx0OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYmYwOWJjZjk0ZTgxOGVhMDk1ZDU2YzVhYzQy
ZDMwZGE4OWIyZmU5My4uMTVhMzE3MmViYTU0NTEyN2UwYWMzZmQ2Zjg3Mjk5MjY5YjM2OGNkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcwpAQCAtOTQ0LDcgKzk0NCwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBwb3BvdmVyLnNob3coV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuZ2VuZXJhdGVQb3B1cENvbnRlbnRGb3JGcmFtZShmcmFtZSks
IGFuY2hvcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoYW5jaG9yLnJvdyAm
JiBhbmNob3Iucm93Ll9yZWNvcmQpCi0gICAgICAgICAgICAgICAgcG9wb3Zlci5zaG93KGFuY2hv
ci5yb3cuX3JlY29yZC5nZW5lcmF0ZVBvcHVwQ29udGVudCgpLCBhbmNob3IpOworICAgICAgICAg
ICAgICAgIGFuY2hvci5yb3cuX3JlY29yZC5nZW5lcmF0ZVBvcHVwQ29udGVudChzaG93Q2FsbGJh
Y2spOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2hvd0NhbGxiYWNrKHBvcHVwQ29u
dGVudCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9wb3Zlci5zaG93KHBvcHVwQ29udGVudCwg
YW5jaG9yKTsKICAgICAgICAgfQogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5q
cwppbmRleCBiZWIzMDA3M2Q1MmQ2MGIyMjVhMDA3NTNiZTcwZWY1MzVmZTEwYTUwLi4wOTdjZjhi
MDNiZWE2OWM3MDMzNWQ5MWU1Nzc0ZTBjZDA5NmFjOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlv
bk1vZGVsLmpzCkBAIC0xNjksNiArMTY5LDI3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMgPSBmdW5jdGlvbihyZWNvcmRzQXJyYXksIHByCiB9
CiAKIC8qKgorICogQHBhcmFtIHtzdHJpbmc9fSByZWNvcmRUeXBlCisgKiBAcmV0dXJuIHtib29s
ZWFufQorICovCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5uZWVkc1By
ZXZpZXdFbGVtZW50ID0gZnVuY3Rpb24ocmVjb3JkVHlwZSkKK3sKKyAgICBpZiAoIXJlY29yZFR5
cGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjb25zdCByZWNvcmRUeXBlcyA9IFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGU7CisgICAgc3dpdGNoIChyZWNvcmRUeXBl
KSB7CisgICAgY2FzZSByZWNvcmRUeXBlcy5TY2hlZHVsZVJlc291cmNlUmVxdWVzdDoKKyAgICBj
YXNlIHJlY29yZFR5cGVzLlJlc291cmNlU2VuZFJlcXVlc3Q6CisgICAgY2FzZSByZWNvcmRUeXBl
cy5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZToKKyAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNl
UmVjZWl2ZWREYXRhOgorICAgIGNhc2UgcmVjb3JkVHlwZXMuUmVzb3VyY2VGaW5pc2g6CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9Cit9CisKKy8qKgogICogQHBhcmFtIHtzdHJpbmd9IHJlY29yZFR5cGUKICAqIEBwYXJhbSB7
c3RyaW5nPX0gdGl0bGUKICAqLwpAQCAtNjM1LDEwICs2NTYsMjQgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRoaXMuc3RhcnRUaW1lIDw9IHRpbWUgJiYgdGltZSA8PSB0aGlzLmVuZFRpbWU7CiAgICAg
fSwKIAotICAgIGdlbmVyYXRlUG9wdXBDb250ZW50OiBmdW5jdGlvbigpCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbihFbGVtZW50KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBnZW5l
cmF0ZVBvcHVwQ29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIg
Y29udGVudEhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5Qb3B1cENvbnRlbnRIZWxwZXIodGhpcy50aXRsZSk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5uZWVkc1ByZXZpZXdFbGVtZW50KHRoaXMudHlw
ZSkpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cyh0
aGlzLnVybCwgZmFsc2UsIHRoaXMuX2dlbmVyYXRlUG9wdXBDb250ZW50V2l0aEltYWdlUHJldmll
dy5iaW5kKHRoaXMsIGNhbGxiYWNrKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X2dlbmVyYXRlUG9wdXBDb250ZW50V2l0aEltYWdlUHJldmlldyhjYWxsYmFjayk7CisgICAgfSwK
IAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oRWxlbWVudCl9IGNhbGxiYWNrCisg
ICAgICogQHBhcmFtIHtFbGVtZW50PX0gcHJldmlld0VsZW1lbnQKKyAgICAgKi8KKyAgICBfZ2Vu
ZXJhdGVQb3B1cENvbnRlbnRXaXRoSW1hZ2VQcmV2aWV3OiBmdW5jdGlvbihjYWxsYmFjaywgcHJl
dmlld0VsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgY29udGVudEhlbHBlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRIZWxwZXIodGhp
cy50aXRsZSk7CiAgICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlcyAo
YXQgJXMpIiwgTnVtYmVyLnNlY29uZHNUb1N0cmluZyh0aGlzLl9sYXN0Q2hpbGRFbmRUaW1lIC0g
dGhpcy5zdGFydFRpbWUsIHRydWUpLAogICAgICAgICAgICAgTnVtYmVyLnNlY29uZHNUb1N0cmlu
Zyh0aGlzLl9zdGFydFRpbWVPZmZzZXQpKTsKICAgICAgICAgY29udGVudEhlbHBlci5fYXBwZW5k
VGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkR1cmF0aW9uIiksIHRleHQpOwpAQCAtNjc2
LDYgKzcxMSw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29y
ZC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYXNlIHJlY29yZFR5cGVzLlJlc291cmNlUmVj
ZWl2ZWREYXRhOgogICAgICAgICAgICAgY2FzZSByZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaDoK
ICAgICAgICAgICAgICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRFbGVtZW50Um93KFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVzb3VyY2UiKSwgdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMudXJs
KSk7CisgICAgICAgICAgICAgICAgaWYgKHByZXZpZXdFbGVtZW50KQorICAgICAgICAgICAgICAg
ICAgICBjb250ZW50SGVscGVyLl9hcHBlbmRFbGVtZW50Um93KFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUHJldmlldyIpLCBwcmV2aWV3RWxlbWVudCk7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
ZGF0YVsicmVxdWVzdE1ldGhvZCJdKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50SGVscGVy
Ll9hcHBlbmRUZXh0Um93KFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVxdWVzdCBNZXRob2QiKSwg
dGhpcy5kYXRhWyJyZXF1ZXN0TWV0aG9kIl0pOwogICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
dGhpcy5kYXRhWyJzdGF0dXNDb2RlIl0gPT09ICJudW1iZXIiKQpAQCAtNzE4LDcgKzc1NSw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICh0aGlzLnN0YWNrVHJhY2UpCiAgICAgICAgICAgICBjb250ZW50SGVs
cGVyLl9hcHBlbmRTdGFja1RyYWNlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBTdGFjayIp
LCB0aGlzLnN0YWNrVHJhY2UsIHRoaXMuX2xpbmtpZnlDYWxsRnJhbWUuYmluZCh0aGlzKSk7CiAK
LSAgICAgICAgcmV0dXJuIGNvbnRlbnRIZWxwZXIuX2NvbnRlbnRUYWJsZTsKKyAgICAgICAgY2Fs
bGJhY2soY29udGVudEhlbHBlci5fY29udGVudFRhYmxlKTsKICAgICB9LAogCiAgICAgX3JlZnJl
c2hEZXRhaWxzOiBmdW5jdGlvbigpCkBAIC04NTQsNiArODkxLDcgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2dlbmVyYXRlQWdncmVnYXRlZEluZm8gPSBmdW5jdGlv
bihhZ2dyZWcKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSB0aXRs
ZQogICovCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5Qb3B1cENvbnRl
bnRIZWxwZXIgPSBmdW5jdGlvbih0aXRsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVUlVdGlscy5qcwppbmRleCAzYzUzOGE5MDRjZmYwN2E4OGQwYTYwYTY3YzRi
ZjM2YjdlZjk0NjU0Li40NGNlYjQxZDlkYTlkOGJmMGYyNDg1OGMyOGFiZDQ0N2Q3YWM4ODI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCkBAIC0x
MDM5LDYgKzEwMzksNTQgQEAgV2ViSW5zcGVjdG9yLnJldmVydERvbUNoYW5nZXMgPSBmdW5jdGlv
bihkb21DaGFuZ2VzKQogfQogCiAvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBpbWFnZVVSTAorICog
QHBhcmFtIHtib29sZWFufSBzaG93RGltZW5zaW9ucworICogQHBhcmFtIHtmdW5jdGlvbihFbGVt
ZW50PSl9IHVzZXJDYWxsYmFjaworICogQHBhcmFtIHtPYmplY3Q9fSBwcmVjb21wdXRlZERpbWVu
c2lvbnMKKyAqLworV2ViSW5zcGVjdG9yLmJ1aWxkSW1hZ2VQcmV2aWV3Q29udGVudHMgPSBmdW5j
dGlvbihpbWFnZVVSTCwgc2hvd0RpbWVuc2lvbnMsIHVzZXJDYWxsYmFjaywgcHJlY29tcHV0ZWRE
aW1lbnNpb25zKQoreworICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5yZXNvdXJjZUZvclVSTChpbWFnZVVSTCk7CisgICAgaWYgKCFyZXNvdXJjZSkgewor
ICAgICAgICB1c2VyQ2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZh
ciBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICBpbWFn
ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGJ1aWxkQ29udGVudCwgZmFsc2UpOwor
ICAgIGltYWdlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGVycm9yQ2FsbGJhY2ss
IGZhbHNlKTsKKyAgICByZXNvdXJjZS5wb3B1bGF0ZUltYWdlU291cmNlKGltYWdlRWxlbWVudCk7
CisKKyAgICBmdW5jdGlvbiBlcnJvckNhbGxiYWNrKCkKKyAgICB7CisgICAgICAgIC8vIERyb3Ag
dGhlIGV2ZW50IHBhcmFtZXRlciB3aGVuIGludm9raW5nIHVzZXJDYWxsYmFjay4KKyAgICAgICAg
dXNlckNhbGxiYWNrKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYnVpbGRDb250ZW50KCkKKyAg
ICB7CisgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJs
ZSIpOworICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gImltYWdlLXByZXZpZXctY29udGFp
bmVyIjsKKyAgICAgICAgdmFyIG5hdHVyYWxXaWR0aCA9IHByZWNvbXB1dGVkRGltZW5zaW9ucyA/
IHByZWNvbXB1dGVkRGltZW5zaW9ucy5uYXR1cmFsV2lkdGggOiBpbWFnZUVsZW1lbnQubmF0dXJh
bFdpZHRoOworICAgICAgICB2YXIgbmF0dXJhbEhlaWdodCA9IHByZWNvbXB1dGVkRGltZW5zaW9u
cyA/IHByZWNvbXB1dGVkRGltZW5zaW9ucy5uYXR1cmFsSGVpZ2h0IDogaW1hZ2VFbGVtZW50Lm5h
dHVyYWxIZWlnaHQ7CisgICAgICAgIHZhciBvZmZzZXRXaWR0aCA9IHByZWNvbXB1dGVkRGltZW5z
aW9ucyA/IHByZWNvbXB1dGVkRGltZW5zaW9ucy5vZmZzZXRXaWR0aCA6IG5hdHVyYWxXaWR0aDsK
KyAgICAgICAgdmFyIG9mZnNldEhlaWdodCA9IHByZWNvbXB1dGVkRGltZW5zaW9ucyA/IHByZWNv
bXB1dGVkRGltZW5zaW9ucy5vZmZzZXRIZWlnaHQgOiBuYXR1cmFsSGVpZ2h0OworICAgICAgICB2
YXIgZGVzY3JpcHRpb247CisgICAgICAgIGlmIChzaG93RGltZW5zaW9ucykgeworICAgICAgICAg
ICAgaWYgKG9mZnNldEhlaWdodCA9PT0gbmF0dXJhbEhlaWdodCAmJiBvZmZzZXRXaWR0aCA9PT0g
bmF0dXJhbFdpZHRoKQorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBpeGVscyIsIG9mZnNldFdpZHRoLCBvZmZzZXRIZWlnaHQp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIlZCBceGQ3ICVkIHBpeGVscyAoTmF0dXJhbDogJWQgXHhkNyAlZCBw
aXhlbHMpIiwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCwgbmF0dXJhbFdpZHRoLCBuYXR1cmFs
SGVpZ2h0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnRhaW5lci5jcmVhdGVDaGlsZCgidHIi
KS5jcmVhdGVDaGlsZCgidGQiLCAiaW1hZ2UtY29udGFpbmVyIikuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgY29udGFpbmVy
LmNyZWF0ZUNoaWxkKCJ0ciIpLmNyZWF0ZUNoaWxkKCJ0ZCIpLmNyZWF0ZUNoaWxkKCJzcGFuIiwg
ImRlc2NyaXB0aW9uIikudGV4dENvbnRlbnQgPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgdXNlckNh
bGxiYWNrKGNvbnRhaW5lcik7CisgICAgfQorfQorCisvKioKICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLkNvbnRleHRNZW51fSBjb250ZXh0TWVudQogICogQHBhcmFtIHtOb2RlfSBjb250ZXh0Tm9k
ZQogICogQHBhcmFtIHtFdmVudH0gZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvZWxlbWVudHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2VsZW1lbnRzUGFuZWwuY3NzCmluZGV4IDI3YmQzZDgxNGZiMjFjNzVi
ZjMzMzgzY2I4YzkyMzUzODBjZjZjOTAuLjczODlhOGRhYmUyOTBkODNmN2Q2NmRiZjRmYjI5Mjc2
MjVlZTgzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
ZWxlbWVudHNQYW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9lbGVtZW50c1BhbmVsLmNzcwpAQCAtNTY2LDExICs1NjYsMTIgQEAKIC5pbWFnZS1wcmV2aWV3
LWNvbnRhaW5lciB7CiAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgdGV4dC1hbGln
bjogY2VudGVyOwotICAgIHBhZGRpbmctbGVmdDogMTFweDsKIH0KIAogLmltYWdlLXByZXZpZXct
Y29udGFpbmVyIGltZyB7CiAgICAgbWFyZ2luOiAycHggYXV0bzsKKyAgICBtYXgtd2lkdGg6IDEw
MHB4OworICAgIG1heC1oZWlnaHQ6IDEwMHB4OwogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJ
bWFnZXMvY2hlY2tlci5wbmcpOwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAg
LXdlYmtpdC11c2VyLWRyYWc6IGF1dG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3RpbWVsaW5lUGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC90aW1lbGluZVBhbmVsLmNzcwppbmRleCA1NmM2M2VhNmNjNGZjOWQ4NTQz
MTZjMTBlZjMxZDJlMDE3NWJjMDk0Li5mNTM4MWJjYzQ3YTQ3M2Q3ZWI5MGYwMWY1ZTljMTIzYTZl
ZmM3ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Rp
bWVsaW5lUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
dGltZWxpbmVQYW5lbC5jc3MKQEAgLTY1NCwzICs2NTQsMjEgQEAKICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOwogICAgIHotaW5kZXg6IDM1MDsKIH0KKwor
LmltYWdlLXByZXZpZXctY29udGFpbmVyIHsKKyAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsK
KyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGJvcmRlci1zcGFjaW5nOiAwOworfQorCisuaW1h
Z2UtcHJldmlldy1jb250YWluZXIgaW1nIHsKKyAgICBtYXgtd2lkdGg6IDEwMHB4OworICAgIG1h
eC1oZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvY2hlY2tl
ci5wbmcpOworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CisgICAgLXdlYmtpdC11c2Vy
LWRyYWc6IGF1dG87Cit9CisKKy5pbWFnZS1jb250YWluZXIgeworICAgIHBhZGRpbmc6IDA7Cit9
Cg==
</data>
<flag name="review"
          id="169322"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>