<?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>45118</bug_id>
          
          <creation_ts>2010-09-02 11:16:45 -0700</creation_ts>
          <short_desc>Update TypedArrays to throw RangeError or similar instead of INDEX_SIZE_ERR</short_desc>
          <delta_ts>2012-08-16 16:53:46 -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>WebGL</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>
          <dependson>93167</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="arno.">a.renevier</assigned_to>
          <cc>abarth</cc>
    
    <cc>a.renevier</cc>
    
    <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>psawaya</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273459</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-02 11:16:45 -0700</bug_when>
    <thetext>The TypedArray specification was just updated to remove references to the DOM INDEX_SIZE_ERR exception when certain out-of-range accesses are performed. The WebKit implementation needs to be updated to throw RangeError (most likely), and array-unit-tests.html updated on the Khronos site and synced back down to WebKit to no longer expect INDEX_SIZE_ERR to be thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685862</commentid>
    <comment_count>1</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-02 14:55:13 -0700</bug_when>
    <thetext>Currently, there is a mix of dom INDEX_SIZE_ERR exceptions, and of RangeError. For example, if you build a typed array from a too large object (array of typed array), a dom INDEX_SIZE_ERR is thrown. But if you build a too typed array from a too large number, a RangeError is thrown.

Another inconsistency: when passing invalid arguments to set method, a dom SYNTAX_ERR exception is thrown in v8. But in JavasScriptCore, it&apos;s a JavaScript SyntaxError.

On the other browsers I tested (firefox and opera), javascript exception are thrown (Error for firefox, TypeError for opera).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685911</commentid>
    <comment_count>2</comment_count>
      <attachid>156183</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-02 15:34:44 -0700</bug_when>
    <thetext>Created attachment 156183
patch proposal: change INDEX_SIZE_ERR to RangeError and throws TypeError when calling set with invalid arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686006</commentid>
    <comment_count>3</comment_count>
      <attachid>156183</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-02 17:03:10 -0700</bug_when>
    <thetext>Comment on attachment 156183
patch proposal: change INDEX_SIZE_ERR to RangeError and throws TypeError when calling set with invalid arguments

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Update TypedArrays to throw JavaScript RangeError instead of dom
&gt; +        INDEX_SIZE_ERR exceptions. Also, update TypedArrays to throw TypeError
&gt; +        instead of JavaScript SyntaxError or dom exceptions SYNTAX_ERR when
&gt; +        calling set method with invalid arguments.

Would you add the spec link to the ChangeLog?

&gt; Source/WebCore/bindings/js/JSArrayBufferViewHelper.h:129
&gt; +        return JSC::throwTypeError(exec);

Let&apos;s output some descriptive message.

&gt; Source/WebCore/bindings/js/JSArrayBufferViewHelper.h:156
&gt; +    return JSC::throwTypeError(exec);

Ditto.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:208
&gt; +        return V8Proxy::throwTypeError(0, args.GetIsolate());

Ditto.

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:244
&gt; +    return V8Proxy::throwTypeError(0, args.GetIsolate());

Ditto.

&gt; LayoutTests/fast/canvas/webgl/array-set-invalid-arguments.html:21
&gt; +    shouldThrow(&quot;typedArray.set()&quot;);
&gt; +    shouldThrow(&quot;typedArray.set(&apos;hello world&apos;)&quot;);

Shall we add more tests so that they cover all your changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686021</commentid>
    <comment_count>4</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-02 17:15:40 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 156183 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156183&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        Update TypedArrays to throw JavaScript RangeError instead of dom
&gt; &gt; +        INDEX_SIZE_ERR exceptions. Also, update TypedArrays to throw TypeError
&gt; &gt; +        instead of JavaScript SyntaxError or dom exceptions SYNTAX_ERR when
&gt; &gt; +        calling set method with invalid arguments.
&gt; 
&gt; Would you add the spec link to the ChangeLog?

The spec does not specify the kind of exception to raise. So, should I still put a link to it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686027</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-02 17:24:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The spec does not specify the kind of exception to raise. So, should I still put a link to it ?

(In reply to comment #0)
&gt; The TypedArray specification was just updated to remove references to the DOM INDEX_SIZE_ERR exception when certain out-of-range accesses are performed. 

Where is the &quot;TypedArray specification&quot;?

&gt; Another inconsistency: when passing invalid arguments to set method, a dom SYNTAX_ERR exception is thrown in v8. But in JavasScriptCore, it&apos;s a JavaScript SyntaxError.
&gt; 
&gt; On the other browsers I tested (firefox and opera), javascript exception are thrown (Error for firefox, TypeError for opera).

I think it looks reasonable to raise JavaScript errors for cross-browser compatibility (So your patch looks good to me). Would you also describe other browsers&apos; behavior to the ChangeLog? (We want to describe the rationale for our change to ChangeLog.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686030</commentid>
    <comment_count>6</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-02 17:29:32 -0700</bug_when>
    <thetext>
&gt; (In reply to comment #0)
&gt; &gt; The TypedArray specification was just updated to remove references to the DOM INDEX_SIZE_ERR exception when certain out-of-range accesses are performed. 
&gt; 
&gt; Where is the &quot;TypedArray specification&quot;?
&gt; 



http://www.khronos.org/registry/typedarray/specs/latest/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686031</commentid>
    <comment_count>7</comment_count>
      <attachid>156216</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-02 17:32:38 -0700</bug_when>
    <thetext>Created attachment 156216
updated patch to take comments into account</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686054</commentid>
    <comment_count>8</comment_count>
      <attachid>156216</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-02 17:53:53 -0700</bug_when>
    <thetext>Comment on attachment 156216
updated patch to take comments into account

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Other browsers raise JavaScript errors, so those changes will improve
&gt; +        compatibility.

Let&apos;s also describe that the spec does not specify the kind of exception with the spec link.

&gt; Source/WebCore/bindings/js/JSArrayBufferViewHelper.h:43
&gt; +static const char* notSmallEnoughSize = &quot;ArrayBufferView size is not a small enough positive integer.&quot;;

&quot;not a small enough positive integer&quot; is a bit confusing. This might be better:

    static const char* notEnoughSizeErrorMessage = &quot;ArrayBufferView size is not enough.&quot;;

&gt; Source/WebCore/bindings/js/JSArrayBufferViewHelper.h:44
&gt; +static const char* outOfRangeLengthAndOffset = &quot;Length and offset are out of range.&quot;;

This might be better:

    static const char* outOfRangeErrorMessage = &quot;Index is out of range.&quot;;

&gt; Source/WebCore/bindings/js/JSArrayBufferViewHelper.h:129
&gt; +        return JSC::throwTypeError(exec, &quot;Not enough arguments&quot;);

throwError(exec, createNotEnoughArgumentsError(exec))

&gt; Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:208
&gt; +        return V8Proxy::throwTypeError(&quot;Not enough arguments&quot;, args.GetIsolate());

V8Proxy::throwNotEnoughArgumentsError(args.GetIsolate());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686877</commentid>
    <comment_count>9</comment_count>
      <attachid>156404</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-03 10:01:03 -0700</bug_when>
    <thetext>Created attachment 156404
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686880</commentid>
    <comment_count>10</comment_count>
      <attachid>156404</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-03 10:04:26 -0700</bug_when>
    <thetext>Comment on attachment 156404
updated patch

LGTM. kbr@ might want to review the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686882</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-03 10:04:51 -0700</bug_when>
    <thetext>kbr: review please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686988</commentid>
    <comment_count>12</comment_count>
      <attachid>156404</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-03 11:30:56 -0700</bug_when>
    <thetext>Comment on attachment 156404
updated patch

Looks good. Could you please make sure the tests in http://www.khronos.org/registry/webgl/sdk/tests/conformance/typedarrays/ pass with these changes? (I suspect they should since they don&apos;t have test expectations like WebKit, and the majority of the code is checked in as layout tests.) r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687150</commentid>
    <comment_count>13</comment_count>
      <attachid>156404</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-03 14:26:39 -0700</bug_when>
    <thetext>Comment on attachment 156404
updated patch

conformance tests all pass correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687226</commentid>
    <comment_count>14</comment_count>
      <attachid>156404</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 16:03:33 -0700</bug_when>
    <thetext>Comment on attachment 156404
updated patch

Clearing flags on attachment: 156404

Committed r124668: &lt;http://trac.webkit.org/changeset/124668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687227</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 16:03:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687249</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 16:21:53 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 93167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696583</commentid>
    <comment_count>17</comment_count>
      <attachid>158676</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-08-15 18:11:19 -0700</bug_when>
    <thetext>Created attachment 158676
updated patch to build on mac

I tried to separate JSArrayBufferViewHelper and JSTypedArrayBufferViewHelper to not have an unneeeded ooutOfRangeLengthAndOffset static variable. But it made a lot of modifications, and at the end, I could not share the variable tooLargeSize and had to duplicate it anyway. So the best way I could find to fix the build failure on mac is to duplicate the error string. Also, v8 part of the patch is updated to build on top of bug #93792</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697585</commentid>
    <comment_count>18</comment_count>
      <attachid>158676</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-16 15:25:07 -0700</bug_when>
    <thetext>Comment on attachment 158676
updated patch to build on mac

Looks fine. r=me again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697679</commentid>
    <comment_count>19</comment_count>
      <attachid>158676</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 16:53:40 -0700</bug_when>
    <thetext>Comment on attachment 158676
updated patch to build on mac

Clearing flags on attachment: 158676

Committed r125828: &lt;http://trac.webkit.org/changeset/125828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697680</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 16:53:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156183</attachid>
            <date>2012-08-02 15:34:44 -0700</date>
            <delta_ts>2012-08-02 17:32:34 -0700</delta_ts>
            <desc>patch proposal: change INDEX_SIZE_ERR to RangeError and throws TypeError when calling set with invalid arguments</desc>
            <filename>bug-45118-20120802153422.patch</filename>
            <type>text/plain</type>
            <size>19189</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1ZmYzOGVjMTA3NDA4
MmNjMzAxN2E5Y2YzNWMxM2MxNGRmMzUxYS4uZTY3ODlmNTAyNjAwZDhlZDExNTBhZjdiY2JlOTcz
MDBiNjdiZmRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTAyICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXBk
YXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFJhbmdlRXJyb3Igb3Igc2ltaWxhciBpbnN0ZWFkIG9m
IElOREVYX1NJWkVfRVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byB0aHJvdyBKYXZhU2NyaXB0IFJhbmdlRXJyb3Ig
aW5zdGVhZCBvZiBkb20KKyAgICAgICAgSU5ERVhfU0laRV9FUlIgZXhjZXB0aW9ucy4gQWxzbywg
dXBkYXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFR5cGVFcnJvcgorICAgICAgICBpbnN0ZWFkIG9m
IEphdmFTY3JpcHQgU3ludGF4RXJyb3Igb3IgZG9tIGV4Y2VwdGlvbnMgU1lOVEFYX0VSUiB3aGVu
CisgICAgICAgIGNhbGxpbmcgc2V0IG1ldGhvZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorCisg
ICAgICAgIE5ldyBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1hcmd1
bWVudHMuaHRtbAorCisgICAgICAgIFVwZGF0ZWQgVGVzdHMgZXhwZWN0YXRpb25zOgorICAgICAg
ICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91dC1vZi1ib3VuZHMuaHRtbAorICAg
ICAgICAgICAgZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLmh0bWwKKyAgICAgICAg
ICAgIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFdlYkdMQXJyYXlXaXRoVHlwZWRBcnJheUFyZ3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFdlYkdMQXJyYXlIZWxwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5V2l0
aEFycmF5QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0V2ViR0xBcnJheUhl
bHBlcik6CisKIDIwMTItMDgtMDIgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBEbyBub3QgZGlzcGF0Y2ggbW9kaWZpY2F0aW9uIGV2ZW50cyBpbiBTVkcgYXR0cmli
dXRlIHN5bmNocm9uaXphdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKaW5kZXggZTAyODU2NDgyZjg2OWQ5YTQ2MGQ0YWNh
ZTgyOTc2NWY1ZmNhYWIyMC4uNjBjYjQ3MzY3NWUwZjQzYjQ4ZDUzOWU1M2UzMzAyMTg4YzE0Mzg0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZp
ZXdIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaWZuZGVmIEpTQXJyYXlCdWZmZXJWaWV3
SGVscGVyX2gKICNkZWZpbmUgSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXJfaAogCi0jaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJK
U0FycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgpAQCAtNDEsNiAr
NDAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBub3RT
bWFsbEVub3VnaFNpemUgPSAiQXJyYXlCdWZmZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5v
dWdoIHBvc2l0aXZlIGludGVnZXIuIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBvdXRPZlJhbmdlTGVu
Z3RoQW5kT2Zmc2V0ID0gIkxlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuIjsKKwog
dGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIGJvb2wgY29weVR5cGVkQXJyYXlCdWZmZXIo
QyogdGFyZ2V0LCBBcnJheUJ1ZmZlclZpZXcqIHNvdXJjZSwgdW5zaWduZWQgc291cmNlTGVuZ3Ro
LCB1bnNpZ25lZCBvZmZzZXQpCiB7CkBAIC0xMTUsNyArMTE3LDcgQEAgYm9vbCBzZXRXZWJHTEFy
cmF5V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkK
ICAgICB1aW50MzJfdCBsZW5ndGggPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSktPmdldChl
eGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKIAog
ICAgIGlmICghKGNvcHlUeXBlZEFycmF5QnVmZmVyPEMsIFQ+KGltcGwsIGFycmF5LmdldCgpLCBs
ZW5ndGgsIG9mZnNldCkpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywg
b3V0T2ZSYW5nZUxlbmd0aEFuZE9mZnNldCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0x
MjQsNyArMTI2LDcgQEAgdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIEpTQzo6SlNWYWx1
ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDKiBpbXBsKQogewog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gSlNDOjp0
aHJvd1N5bnRheEVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJv
cihleGVjKTsKIAogICAgIGlmIChzZXRXZWJHTEFycmF5V2l0aFR5cGVkQXJyYXlBcmd1bWVudDxD
LCBUPihleGVjLCBpbXBsKSkKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gV2ViR0w8PkFycmF5IGFy
cmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKQEAgLTEzOCw3ICsxNDAs
NyBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgQyogaW1wbCkKICAgICAgICAgICAgIG9mZnNldCA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50
MzIoZXhlYyk7CiAgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlND
OjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9JbnQzMihleGVjKTsKICAgICAgICAgaWYg
KCFpbXBsLT5jaGVja0luYm91bmREYXRhKG9mZnNldCwgbGVuZ3RoKSkKLSAgICAgICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAgICAgICB0aHJvd0Vy
cm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgb3V0T2ZSYW5nZUxlbmd0aEFuZE9mZnNl
dCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgIEpTQzo6SlNWYWx1ZSB2ID0gYXJyYXkt
PmdldChleGVjLCBpKTsKQEAgLTE1MSw3ICsxNTMsNyBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xB
cnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkKICAgICAgICAgcmV0dXJu
IEpTQzo6anNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNDOjp0aHJvd1N5bnRh
eEVycm9yKGV4ZWMpOworICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGV4ZWMpOwogfQog
CiAvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgpAQCAt
MTcwLDEyICsxNzIsMTIgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdX
aXRoVHlwZWRBcnJheUFyZ3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleGUKICAgICB1aW50MzJfdCBs
ZW5ndGggPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSktPmdldChleGVjLCBKU0M6OklkZW50
aWZpZXIoZXhlYywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKICAgICBSZWZQdHI8Qz4gYXJy
YXkgPSBDOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkgewot
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgbm90U21hbGxFbm91Z2hTaXpl
KSk7CiAgICAgICAgIHJldHVybiBhcnJheTsKICAgICB9CiAKICAgICBpZiAoIShjb3B5VHlwZWRB
cnJheUJ1ZmZlcjxDLCBUPihhcnJheS5nZXQoKSwgc291cmNlLmdldCgpLCBsZW5ndGgsIDApKSkg
ewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgbm90U21hbGxFbm91Z2hT
aXplKSk7CiAgICAgICAgIHJldHVybiBhcnJheTsKICAgICB9CiAKQEAgLTIwNCw3ICsyMDYsNyBA
QCBQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhBcnJheUJ1ZmZlckFy
Z3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleAogICAgIH0KICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBD
OjpjcmVhdGUoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkKLSAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgdGhyb3dF
cnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIG5vdFNtYWxsRW5vdWdoU2l6ZSkpOwog
ICAgIHJldHVybiBhcnJheTsKIH0KIApAQCAtMjQ1LDcgKzI0Nyw3IEBAIFBhc3NSZWZQdHI8Qz4g
Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICB1
aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVj
LCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBD
OjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCk7CiAgICAgICAgIGlmICghYXJyYXkpIHsKLSAg
ICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAg
ICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgbm90U21hbGxFbm91
Z2hTaXplKSk7CiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KIApAQCAtMjYx
LDcgKzI2Myw3IEBAIFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6
RXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChsZW5ndGggPj0gMCkKICAgICAgICAgcmVzdWx0ID0g
Qzo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihsZW5ndGgpKTsKICAgICBpZiAoIXJlc3Vs
dCkKLSAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJBcnJh
eUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4i
KSk7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCBub3RT
bWFsbEVub3VnaFNpemUpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20u
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1
c3RvbS5oCmluZGV4IDczY2E1YWUwMTA3MzI5NzU5YWUwM2NhYjIzMzQ1YzY3ZmE5OGQ4MjcuLjVj
ZGI2MmUyNzlmMWM5ZmFiZDI4YmFkNTVlMzA3ZTdiOTc1OWQ2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1
c3RvbS5oCkBAIC00MCw2ICs0MCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGlj
IGNvbnN0IGNoYXIqIG5vdFNtYWxsRW5vdWdoU2l6ZSA9ICJBcnJheUJ1ZmZlclZpZXcgc2l6ZSBp
cyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iOworc3RhdGljIGNvbnN0IGNo
YXIqIG91dE9mUmFuZ2VMZW5ndGhBbmRPZmZzZXQgPSAiTGVuZ3RoIGFuZCBvZmZzZXQgYXJlIG91
dCBvZiByYW5nZS4iOworCiAvLyBDb3B5IHRoZSBlbGVtZW50cyBmcm9tIHRoZSBzb3VyY2UgYXJy
YXkgdG8gdGhlIHR5cGVkIGRlc3RpbmF0aW9uIGFycmF5LgogLy8gUmV0dXJucyB0cnVlIGlmIGl0
IHN1Y2NlZWRlZCwgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCiBib29sIGNvcHlFbGVtZW50cyh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRlc3RBcnJheSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBz
cmNBcnJheSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBvZmZzZXQsIHY4OjpJc29sYXRlKik7
CkBAIC04NCwxMyArODcsMTEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdM
QXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2ODo6QXJndW0KICAgICB9CiAgICAg
UmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1Ziwgb2Zmc2V0
LCBsZW5ndGgpOwogICAgIGlmICghYXJyYXkpCi0gICAgICAgIHJldHVybiBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFuZ2VFcnJvciwgbm90U21hbGxF
bm91Z2hTaXplLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICByZXR1cm4gd3JhcEFycmF5QnVm
ZmVyVmlldyhhcmdzLCB0eXBlLCBhcnJheSwgYXJyYXlUeXBlLCBoYXNJbmRleGVyKTsKIH0KIAot
c3RhdGljIGNvbnN0IGNoYXIqIG5vdFNtYWxsRW5vdWdoU2l6ZSA9ICJBcnJheUJ1ZmZlclZpZXcg
c2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iOwotCiAvLyBUZW1w
bGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBcnJheUJ1ZmZlclZpZXcqQ29uc3RydWN0b3IgY2Fs
bGJhY2tzLgogdGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFzcywgY2xhc3MgSmF2YVNjcmlwdFdyYXBw
ZXJBcnJheVR5cGUsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJ
bmZvKiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQpAQCAtMjA0LDcgKzIw
NSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBDUGx1c1BsdXNBcnJheVR5cGUsIGNsYXNzIEphdmFTY3Jp
cHRXcmFwcGVyQXJyYXlUeXBlPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJyYXlI
ZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VS
UiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgQ1BsdXNQbHVzQXJyYXlUeXBlKiBp
bXBsID0gSmF2YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogCkBAIC0yMTUsNyArMjE2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJy
YXlIZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPT0gMikKICAgICAgICAgICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0pOwogICAg
ICAgICBpZiAoIWltcGwtPnNldChzcmMsIG9mZnNldCkpCi0gICAgICAgICAgICByZXR1cm4gVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7
CisgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVy
cm9yLCBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zmc2V0LCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAg
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQogCkBAIC0yMzAsNyArMjMxLDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJyYXlIZWxwZXIoY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKICAgICAgICAgICAgIHx8IG9mZnNldCArIGxlbmd0aCA+IGltcGwtPmxlbmd0
aCgpCiAgICAgICAgICAgICB8fCBvZmZzZXQgKyBsZW5ndGggPCBvZmZzZXQpIHsKICAgICAgICAg
ICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKLSAgICAgICAgICAgIHJldHVy
biBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJh
bmdlRXJyb3IsIG91dE9mUmFuZ2VMZW5ndGhBbmRPZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICAgICAgfQogICAgICAgICBib29sIGNvcGllZCA9IGNvcHlFbGVtZW50cyhhcmdzLkhvbGRl
cigpLCBhcnJheSwgbGVuZ3RoLCBvZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAgICAg
aWYgKCFjb3BpZWQpIHsKQEAgLTI0MCw3ICsyNDEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
c2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIHJldHVybiBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigwLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiNjFiNDlmNTlkNjFjZmIwZjk4ZjE4M2VkMjk3MjJlYjg5OWZkMDMxLi45ODRkZTEzMWVm
N2RiZWM1MTlkYmFjZThjZDQ3MWE3N2JjOWIyODM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTItMDgtMDIgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4K
KworICAgICAgICBVcGRhdGUgVHlwZWRBcnJheXMgdG8gdGhyb3cgUmFuZ2VFcnJvciBvciBzaW1p
bGFyIGluc3RlYWQgb2YgSU5ERVhfU0laRV9FUlIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmV3IHRlc3QgdG8gdGVzdCBpbnZhbGlkIGFyZ3VtZW50cyB0
byBUeXBlZEFycmF5IHNldCBtZXRob2QKKworICAgICAgICBVcGRhdGUgYXJyYXktc2V0LW91dC1v
Zi1ib3VuZHMuaHRtbCwgZGF0YS12aWV3LWNyYXNoLmh0bWwgYW5kCisgICAgICAgIGRhdGEtdmll
dy10ZXN0Lmh0bWwgdGVzdCBleHBlY3RhdGlvbnMgbm8gbWF0Y2ggbmV3IGV4Y2VwdGlvbnMgdGhy
b3duLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJn
dW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDoKKwog
MjAxMi0wOC0wMiAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIERv
IG5vdCBkaXNwYXRjaCBtb2RpZmljYXRpb24gZXZlbnRzIGluIFNWRyBhdHRyaWJ1dGUgc3luY2hy
b25pemF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJh
eS1zZXQtaW52YWxpZC1hcmd1bWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NThhNDA3YjVjN2Y3MDBkMTAxZWUwODg2N2EzMGY5ZjU4OTdkNzA5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFs
aWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitWZXJpZmllcyB0aGF0
IGF0dGVtcHRpbmcgdG8gc2V0IGludmFsaWQgZWxlbWVudHMgdG8gYSBUeXBlZCBBcnJheSB0aHJv
d3MgYW4gZXhjZXB0aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyB0eXBl
ZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdHlwZWRBcnJheS5zZXQo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0eXBlZEFycmF5
LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxv
IHdvcmxkJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdHlw
ZWRBcnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyB0eXBlZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1hcmd1bWVudHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MmQzYTFkMzgwMDhhYzQxZjE3Y2RkNzdiMTE2Yzc4YjE5YWMzNTcwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0
LWludmFsaWQtYXJndW1lbnRzLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IGF0dGVt
cHRpbmcgdG8gc2V0IGludmFsaWQgZWxlbWVudHMgdG8gYSBUeXBlZCBBcnJheSB0aHJvd3MgYW4g
ZXhjZXB0aW9uIik7CisKKy8vIEdsb2JhbCBzY29wZSBzbyBzaG91bGRUaHJvdyBjYW4gc2VlIGl0
Cit2YXIgdHlwZWRBcnJheTsKKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0U2V0KHR5cGVOYW1lKSB7
CisgICAgdmFyIHR5cGUgPSB3aW5kb3dbdHlwZU5hbWVdOworICAgIHR5cGVkQXJyYXkgPSBuZXcg
dHlwZSgxMCk7CisgICAgc2hvdWxkVGhyb3coInR5cGVkQXJyYXkuc2V0KCkiKTsKKyAgICBzaG91
bGRUaHJvdygidHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykiKTsKK30KKworbmVnYXRpdmVU
ZXN0U2V0KCJJbnQ4QXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiVWludDhBcnJheSIpOworbmVn
YXRpdmVUZXN0U2V0KCJJbnQxNkFycmF5Iik7CituZWdhdGl2ZVRlc3RTZXQoIlVpbnQxNkFycmF5
Iik7CituZWdhdGl2ZVRlc3RTZXQoIkludDMyQXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiVWlu
dDMyQXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiRmxvYXQzMkFycmF5Iik7CisKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVk
LnR4dAppbmRleCAzOGEwNTZkOTU1ZmFmYWQ0MmYzZjEyZmI4NzdkNGRhNWViNTg2NzIzLi4wMzJl
ZjNkM2I5NWI0NjRkY2I5MTc4ZGI0OTUwNGVhNTJjODljNzY2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91dC1vZi1i
b3VuZHMtZXhwZWN0ZWQudHh0CkBAIC00LDI2ICs0LDI2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzMzUyIDogUGFzc2luZyBhcnJheSB0aGF0IGlzIHRvbyBsYXJnZSB0byBzZXQg
bWV0aG9kIG9mIFdlYkdMQXJyYXlzIGRvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbgogVGVzdGlu
ZyBJbnQ4QXJyYXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJy
YXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4
Y2VwdGlvbiBSYW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4K
K1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogTGVuZ3RoIGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCiBUZXN0aW5nIFVpbnQ4QXJy
YXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0
LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBS
YW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KK1BBU1Mgd2Vi
R0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3Ro
IGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCiBUZXN0aW5nIEludDE2QXJyYXkKLVBBU1Mg
d2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgor
UEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9y
OiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KK1BBU1Mgd2ViR0xBcnJheS5z
ZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZz
ZXQgYXJlIG91dCBvZiByYW5nZS4uCiBUZXN0aW5nIFVpbnQxNkFycmF5Ci1QQVNTIHdlYkdMQXJy
YXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2Vi
R0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3Ro
IGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1
LCA2XSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBv
dXQgb2YgcmFuZ2UuLgogVGVzdGluZyBJbnQzMkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0
LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5z
ZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZz
ZXQgYXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFu
Z2UuLgogVGVzdGluZyBVaW50MzJBcnJheQotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
LVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1
XSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBv
dXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2Vw
dGlvbiBSYW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KIFRl
c3RpbmcgRmxvYXQzMkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB3
ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZzZXQgYXJlIG91dCBvZiBy
YW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuLgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLWV4cGVjdGVkLnR4
dAppbmRleCBhY2YyMGM0ZjEzZmJhOTFlZmVkNGI5NTMzMmFjOTBjZjk3NmQwMWJhLi5mMjM5OGFh
NWFjMjc1OTBkOWZhYzM3ZTVkNDQ5ZmViY2RkZDY2MGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC1leHBlY3RlZC50eHQK
QEAgLTIsOCArMiw4IEBAIFRlc3QgdGhhdCBEYXRhVmlldyBkb2VzIG5vdCBjcmFzaCB3aXRoIGJh
ZCBvZmZzZXQgb3IgbGVuZ3RoLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKLVBBU1Mg
dmlldyA9IG5ldyBEYXRhVmlldyhhcnJheS5idWZmZXIsIC00NTAwMDAwMDAwKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHZpZXcg
PSBuZXcgRGF0YVZpZXcoYXJyYXkuYnVmZmVyLCAtNDUwMDAwMDAwMCwgNDUwMDAwMDAwMCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5LmJ1ZmZlciwgLTQ1MDAwMDAwMDApIHRocmV3IGV4
Y2VwdGlvbiBSYW5nZUVycm9yOiBBcnJheUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFsbCBl
bm91Z2ggcG9zaXRpdmUgaW50ZWdlci4uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJyYXku
YnVmZmVyLCAtNDUwMDAwMDAwMCwgNDUwMDAwMDAwMCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJy
b3I6IEFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBp
bnRlZ2VyLi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3
LXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IGZiZjBjOGI1NWM0NTQxN2VmYzRlMmJjMGRjNmVhZWJk
ODRmNjg5OWEuLjYyNjQwNDBiZWY4ZDQ3ZWM2YzgxZDRiOTEwMTI0MGY1YTE2NTU5M2QgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVz
dC1leHBlY3RlZC50eHQKQEAgLTIyLDkgKzIyLDkgQEAgUEFTUyB2aWV3LmJ5dGVPZmZzZXQgaXMg
MAogUEFTUyB2aWV3LmJ5dGVMZW5ndGggaXMgMQogCiBUZXN0IGZvciBjb25zdHJ1Y3RvciB0aHJv
d2luZyBleGNlcHRpb24KLVBBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAwLCAz
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEu
Ci1QQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSwgMikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB2aWV3ID0g
bmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDIsIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhh
cmF5QnVmZmVyLCAwLCAzKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogQXJyYXlCdWZmZXJW
aWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuLgorUEFTUyB2
aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3IGV4Y2VwdGlvbiBSYW5n
ZUVycm9yOiBBcnJheUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRp
dmUgaW50ZWdlci4uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMiwgMSkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBh
IHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLi4KIAogVGVzdCBmb3IgZ2V0IG1ldGhvZHMg
dGhhdCB3b3JrCiBQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156216</attachid>
            <date>2012-08-02 17:32:38 -0700</date>
            <delta_ts>2012-08-03 10:00:59 -0700</delta_ts>
            <desc>updated patch to take comments into account</desc>
            <filename>bug-45118-20120802173215.patch</filename>
            <type>text/plain</type>
            <size>20309</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1ZmYzOGVjMTA3NDA4
MmNjMzAxN2E5Y2YzNWMxM2MxNGRmMzUxYS4uNzk2ZTQ0Yjc1MzExZjEyODM5NmU0MDEyYzBjMmY1
MjFmNmVlMDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA4LTAyICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXBk
YXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFJhbmdlRXJyb3Igb3Igc2ltaWxhciBpbnN0ZWFkIG9m
IElOREVYX1NJWkVfRVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byByYWlzZSBKYXZhU2NyaXB0IFJhbmdlRXJyb3Ig
aW5zdGVhZCBvZiBkb20KKyAgICAgICAgSU5ERVhfU0laRV9FUlIgZXhjZXB0aW9ucy4gQWxzbywg
dXBkYXRlIFR5cGVkQXJyYXlzIHRvIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBpbnN0ZWFkIG9m
IEphdmFTY3JpcHQgU3ludGF4RXJyb3Igb3IgZG9tIGV4Y2VwdGlvbnMgU1lOVEFYX0VSUiB3aGVu
CisgICAgICAgIGNhbGxpbmcgc2V0IG1ldGhvZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorCisg
ICAgICAgIE90aGVyIGJyb3dzZXJzIHJhaXNlIEphdmFTY3JpcHQgZXJyb3JzLCBzbyB0aG9zZSBj
aGFuZ2VzIHdpbGwgaW1wcm92ZQorICAgICAgICBjb21wYXRpYmlsaXR5LgorCisgICAgICAgIE5l
dyBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1hcmd1bWVudHMuaHRt
bAorCisgICAgICAgIFVwZGF0ZWQgVGVzdHMgZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgZmFz
dC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91dC1vZi1ib3VuZHMuaHRtbAorICAgICAgICAgICAg
ZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLmh0bWwKKyAgICAgICAgICAgIGZhc3Qv
Y2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldFdlYkdMQXJyYXlXaXRoVHlwZWRBcnJheUFyZ3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnNldFdlYkdMQXJyYXlIZWxwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3Ry
dWN0QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVm
ZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0V2ViR0xBcnJheUhlbHBlcik6CisK
IDIwMTItMDgtMDIgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBE
byBub3QgZGlzcGF0Y2ggbW9kaWZpY2F0aW9uIGV2ZW50cyBpbiBTVkcgYXR0cmlidXRlIHN5bmNo
cm9uaXphdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgKaW5kZXggZTAyODU2NDgyZjg2OWQ5YTQ2MGQ0YWNhZTgyOTc2NWY1
ZmNhYWIyMC4uODMwNmNjNTFjMGVjNDI0YTEzNjdhY2I3NDI5YjI0MDQ2NjYyODY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBl
ci5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaWZuZGVmIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gK
ICNkZWZpbmUgSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXJfaAogCi0jaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlldy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgpAQCAtNDEsNiArNDAsOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBub3RTbWFsbEVub3Vn
aFNpemUgPSAiQXJyYXlCdWZmZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0
aXZlIGludGVnZXIuIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zm
c2V0ID0gIkxlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuIjsKKwogdGVtcGxhdGU8
Y2xhc3MgQywgdHlwZW5hbWUgVD4KIGJvb2wgY29weVR5cGVkQXJyYXlCdWZmZXIoQyogdGFyZ2V0
LCBBcnJheUJ1ZmZlclZpZXcqIHNvdXJjZSwgdW5zaWduZWQgc291cmNlTGVuZ3RoLCB1bnNpZ25l
ZCBvZmZzZXQpCiB7CkBAIC0xMTUsNyArMTE3LDcgQEAgYm9vbCBzZXRXZWJHTEFycmF5V2l0aFR5
cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkKICAgICB1aW50
MzJfdCBsZW5ndGggPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSktPmdldChleGVjLCBKU0M6
OklkZW50aWZpZXIoZXhlYywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKIAogICAgIGlmICgh
KGNvcHlUeXBlZEFycmF5QnVmZmVyPEMsIFQ+KGltcGwsIGFycmF5LmdldCgpLCBsZW5ndGgsIG9m
ZnNldCkpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOwor
ICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgb3V0T2ZSYW5n
ZUxlbmd0aEFuZE9mZnNldCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMjQsNyArMTI2
LDcgQEAgdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIEpTQzo6SlNWYWx1ZSBzZXRXZWJH
TEFycmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDKiBpbXBsKQogewogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1N5bnRh
eEVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihleGVjLCAi
Tm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAogICAgIGlmIChzZXRXZWJHTEFycmF5V2l0aFR5cGVk
QXJyYXlBcmd1bWVudDxDLCBUPihleGVjLCBpbXBsKSkKICAgICAgICAgLy8gdm9pZCBzZXQoaW4g
V2ViR0w8PkFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsK
QEAgLTEzOCw3ICsxNDAsNyBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkKICAgICAgICAgICAgIG9mZnNldCA9IGV4ZWMtPmFy
Z3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IGFycmF5
LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9JbnQzMihleGVj
KTsKICAgICAgICAgaWYgKCFpbXBsLT5jaGVja0luYm91bmREYXRhKG9mZnNldCwgbGVuZ3RoKSkK
LSAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAg
ICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgb3V0T2ZSYW5n
ZUxlbmd0aEFuZE9mZnNldCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAodWlu
dDMyX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgIEpTQzo6SlNW
YWx1ZSB2ID0gYXJyYXktPmdldChleGVjLCBpKTsKQEAgLTE1MSw3ICsxNTMsNyBAQCBKU0M6OkpT
VmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkK
ICAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICByZXR1cm4g
SlNDOjp0aHJvd1N5bnRheEVycm9yKGV4ZWMpOworICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVy
cm9yKGV4ZWMsICJJbnZhbGlkIGFyZ3VtZW50Iik7CiB9CiAKIC8vIFRlbXBsYXRlIGZ1bmN0aW9u
IHVzZWQgYnkgWFhYQXJyYXlDb25zdHJ1Y3RvcnMuCkBAIC0xNzAsMTIgKzE3MiwxMiBAQCBQYXNz
UmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQo
SlNDOjpFeGVjU3RhdGUqIGV4ZQogICAgIHVpbnQzMl90IGxlbmd0aCA9IGFzT2JqZWN0KGV4ZWMt
PmFyZ3VtZW50KDApKS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikp
LnRvVUludDMyKGV4ZWMpOwogICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQobGVuZ3RoKTsKICAgICBpZiAoIWFycmF5KSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRl
UmFuZ2VFcnJvcihleGVjLCBub3RTbWFsbEVub3VnaFNpemUpKTsKICAgICAgICAgcmV0dXJuIGFy
cmF5OwogICAgIH0KIAogICAgIGlmICghKGNvcHlUeXBlZEFycmF5QnVmZmVyPEMsIFQ+KGFycmF5
LmdldCgpLCBzb3VyY2UuZ2V0KCksIGxlbmd0aCwgMCkpKSB7Ci0gICAgICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3Jl
YXRlUmFuZ2VFcnJvcihleGVjLCBub3RTbWFsbEVub3VnaFNpemUpKTsKICAgICAgICAgcmV0dXJu
IGFycmF5OwogICAgIH0KIApAQCAtMjA0LDcgKzIwNiw3IEBAIFBhc3NSZWZQdHI8Qz4gY29uc3Ry
dWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoSlNDOjpFeGVjU3RhdGUq
IGV4CiAgICAgfQogICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIsIG9mZnNl
dCwgbGVuZ3RoKTsKICAgICBpZiAoIWFycmF5KQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdl
RXJyb3IoZXhlYywgbm90U21hbGxFbm91Z2hTaXplKSk7CiAgICAgcmV0dXJuIGFycmF5OwogfQog
CkBAIC0yNDUsNyArMjQ3LDcgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZp
ZXcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IHNyY0Fy
cmF5LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIo
ZXhlYyk7CiAgICAgICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
bGVuZ3RoKTsKICAgICAgICAgaWYgKCFhcnJheSkgewotICAgICAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlUmFuZ2VFcnJvcihleGVjLCBub3RTbWFsbEVub3VnaFNpemUpKTsKICAgICAgICAgICAg
IHJldHVybiBhcnJheTsKICAgICAgICAgfQogCkBAIC0yNjEsNyArMjYzLDcgQEAgUGFzc1JlZlB0
cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
aWYgKGxlbmd0aCA+PSAwKQogICAgICAgICByZXN1bHQgPSBDOjpjcmVhdGUoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGxlbmd0aCkpOwogICAgIGlmICghcmVzdWx0KQotICAgICAgICB0aHJvd0Vycm9y
KGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgIkFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5v
dCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIpKTsKKyAgICAgICAgdGhyb3dFcnJv
cihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIG5vdFNtYWxsRW5vdWdoU2l6ZSkpOwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggNzNjYTVhZTAx
MDczMjk3NTlhZTAzY2FiMjMzNDVjNjdmYTk4ZDgyNy4uMzQ4OTczYjViZDdlODQ5Yjg4MDdkMDJm
ZTJhYjFhYWY1OTgxZTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTQwLDYgKzQwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgY2hhciogbm90U21hbGxF
bm91Z2hTaXplID0gIkFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBw
b3NpdGl2ZSBpbnRlZ2VyLiI7CitzdGF0aWMgY29uc3QgY2hhciogb3V0T2ZSYW5nZUxlbmd0aEFu
ZE9mZnNldCA9ICJMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLiI7CisKIC8vIENv
cHkgdGhlIGVsZW1lbnRzIGZyb20gdGhlIHNvdXJjZSBhcnJheSB0byB0aGUgdHlwZWQgZGVzdGlu
YXRpb24gYXJyYXkuCiAvLyBSZXR1cm5zIHRydWUgaWYgaXQgc3VjY2VlZGVkLCBvdGhlcndpc2Ug
cmV0dXJucyBmYWxzZS4KIGJvb2wgY29weUVsZW1lbnRzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
ZGVzdEFycmF5LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHNyY0FycmF5LCB1aW50MzJfdCBsZW5n
dGgsIHVpbnQzMl90IG9mZnNldCwgdjg6Oklzb2xhdGUqKTsKQEAgLTg0LDEzICs4NywxMSBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFy
Z3VtZW50KGNvbnN0IHY4OjpBcmd1bQogICAgIH0KICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJy
YXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoYnVmLCBvZmZzZXQsIGxlbmd0aCk7CiAgICAgaWYgKCFh
cnJheSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihJTkRFWF9TSVpF
X0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dF
cnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCBub3RTbWFsbEVub3VnaFNpemUsIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKIAogICAgIHJldHVybiB3cmFwQXJyYXlCdWZmZXJWaWV3KGFyZ3MsIHR5cGUsIGFy
cmF5LCBhcnJheVR5cGUsIGhhc0luZGV4ZXIpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogbm90
U21hbGxFbm91Z2hTaXplID0gIkFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNtYWxsIGVu
b3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiI7Ci0KIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkg
dGhlIEFycmF5QnVmZmVyVmlldypDb25zdHJ1Y3RvciBjYWxsYmFja3MuCiB0ZW1wbGF0ZTxjbGFz
cyBBcnJheUNsYXNzLCBjbGFzcyBKYXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZSwgY2xhc3MgRWxl
bWVudFR5cGU+CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHY4OjpFeHRlcm5h
bEFycmF5VHlwZSBhcnJheVR5cGUpCkBAIC0yMDQsNyArMjA1LDcgQEAgdGVtcGxhdGUgPGNsYXNz
IENQbHVzUGx1c0FycmF5VHlwZSwgY2xhc3MgSmF2YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU+CiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7
CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiTm90IGVub3VnaCBhcmd1
bWVudHMiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBDUGx1c1BsdXNBcnJheVR5cGUqIGlt
cGwgPSBKYXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAKQEAgLTIxNSw3ICsyMTYsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xBcnJh
eUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgICAgICBpZiAoYXJncy5MZW5n
dGgoKSA9PSAyKQogICAgICAgICAgICAgb2Zmc2V0ID0gdG9VSW50MzIoYXJnc1sxXSk7CiAgICAg
ICAgIGlmICghaW1wbC0+c2V0KHNyYywgb2Zmc2V0KSkKLSAgICAgICAgICAgIHJldHVybiBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
KyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJhbmdlRXJy
b3IsIG91dE9mUmFuZ2VMZW5ndGhBbmRPZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9CiAKQEAgLTIzMCw3ICsyMzEsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogICAgICAgICAgICAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gaW1wbC0+bGVuZ3Ro
KCkKICAgICAgICAgICAgIHx8IG9mZnNldCArIGxlbmd0aCA8IG9mZnNldCkgewogICAgICAgICAg
ICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwotICAgICAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUiwgYXJncy5HZXRJc29sYXRl
KCkpOworICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFu
Z2VFcnJvciwgb3V0T2ZSYW5nZUxlbmd0aEFuZE9mZnNldCwgYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgICAgICB9CiAgICAgICAgIGJvb2wgY29waWVkID0gY29weUVsZW1lbnRzKGFyZ3MuSG9sZGVy
KCksIGFycmF5LCBsZW5ndGgsIG9mZnNldCwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICBp
ZiAoIWNvcGllZCkgewpAQCAtMjQwLDcgKzI0MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBz
ZXRXZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IiwgYXJncy5HZXRJc29sYXRl
KCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjYxYjQ5ZjU5ZDYxY2ZiMGY5OGYxODNlZDI5NzIyZWI4OTlm
ZDAzMS4uOTg0ZGUxMzFlZjdkYmVjNTE5ZGJhY2U4Y2Q0NzFhNzdiYzliMjgzOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDEyLTA4LTAyICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNp
c2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXBkYXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFJh
bmdlRXJyb3Igb3Igc2ltaWxhciBpbnN0ZWFkIG9mIElOREVYX1NJWkVfRVJSCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTExOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0IHRvIHRlc3QgaW52
YWxpZCBhcmd1bWVudHMgdG8gVHlwZWRBcnJheSBzZXQgbWV0aG9kCisKKyAgICAgICAgVXBkYXRl
IGFycmF5LXNldC1vdXQtb2YtYm91bmRzLmh0bWwsIGRhdGEtdmlldy1jcmFzaC5odG1sIGFuZAor
ICAgICAgICBkYXRhLXZpZXctdGVzdC5odG1sIHRlc3QgZXhwZWN0YXRpb25zIG5vIG1hdGNoIG5l
dyBleGNlcHRpb25zIHRocm93bi4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5
LXNldC1pbnZhbGlkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtb3V0LW9mLWJvdW5kcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC1l
eHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMDIgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBEbyBub3QgZGlzcGF0Y2ggbW9kaWZpY2F0aW9uIGV2ZW50cyBpbiBTVkcg
YXR0cmlidXRlIHN5bmNocm9uaXphdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFlMmY5ZGYzZmZjZDU5YmNiOTdiNDcyNDJmMDMxMTdk
MDY1ZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBA
QAorVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHNldCBpbnZhbGlkIGVsZW1lbnRzIHRvIGEg
VHlwZWQgQXJyYXkgdGhyb3dzIGFuIGV4Y2VwdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKK1BBU1MgdHlwZWRBcnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRB
cnJheS5zZXQob3RoZXJBcnJheSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0
aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuLgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0eXBl
ZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZh
bGlkIGFyZ3VtZW50LgorUEFTUyB0eXBlZEFycmF5LnNldChvdGhlckFycmF5LCAxKSB0aHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4u
CitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgYXJndW1lbnQuCitQQVNTIHR5cGVkQXJyYXku
c2V0KG90aGVyQXJyYXksIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBMZW5ndGggYW5k
IG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlwZWRBcnJheS5zZXQoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgdHlwZWRBcnJh
eS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBh
cmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJBcnJheSwgMSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuLgorUEFT
UyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyB0eXBlZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIGFyZ3VtZW50LgorUEFTUyB0eXBlZEFycmF5LnNldChv
dGhlckFycmF5LCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZz
ZXQgYXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHR5cGVkQXJyYXkuc2V0
KCdoZWxsbyB3b3JsZCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgYXJndW1l
bnQuCitQQVNTIHR5cGVkQXJyYXkuc2V0KG90aGVyQXJyYXksIDEpIHRocmV3IGV4Y2VwdGlvbiBS
YW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlw
ZWRBcnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogSW52YWxpZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJB
cnJheSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFy
ZSBvdXQgb2YgcmFuZ2UuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVlNGUy
MDFhMzdkY2E1MjAyY2FmNWE2ZGY3OTVhYTdlNzE3OTk2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy5o
dG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0
PgorCitkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHNldCBpbnZhbGlk
IGVsZW1lbnRzIHRvIGEgVHlwZWQgQXJyYXkgdGhyb3dzIGFuIGV4Y2VwdGlvbiIpOworCisvLyBH
bG9iYWwgc2NvcGUgc28gc2hvdWxkVGhyb3cgY2FuIHNlZSBpdAordmFyIHR5cGVkQXJyYXksIG90
aGVyQXJyYXk7CisKK2Z1bmN0aW9uIG5lZ2F0aXZlVGVzdFNldCh0eXBlTmFtZSkgeworICAgIHZh
ciB0eXBlID0gd2luZG93W3R5cGVOYW1lXTsKKyAgICB0eXBlZEFycmF5ID0gbmV3IHR5cGUoMTAp
OworCisgICAgc2hvdWxkVGhyb3coInR5cGVkQXJyYXkuc2V0KCkiKTsKKyAgICBzaG91bGRUaHJv
dygidHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykiKTsKKworICAgIG90aGVyQXJyYXkgPSBu
ZXcgdHlwZSh0eXBlZEFycmF5Lmxlbmd0aCk7CisgICAgc2hvdWxkVGhyb3coInR5cGVkQXJyYXku
c2V0KG90aGVyQXJyYXksIDEpIik7Cit9CisKK25lZ2F0aXZlVGVzdFNldCgiSW50OEFycmF5Iik7
CituZWdhdGl2ZVRlc3RTZXQoIlVpbnQ4QXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiSW50MTZB
cnJheSIpOworbmVnYXRpdmVUZXN0U2V0KCJVaW50MTZBcnJheSIpOworbmVnYXRpdmVUZXN0U2V0
KCJJbnQzMkFycmF5Iik7CituZWdhdGl2ZVRlc3RTZXQoIlVpbnQzMkFycmF5Iik7CituZWdhdGl2
ZVRlc3RTZXQoIkZsb2F0MzJBcnJheSIpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1z
ZXQtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9hcnJheS1zZXQtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50eHQKaW5kZXggMzhhMDU2ZDk1
NWZhZmFkNDJmM2YxMmZiODc3ZDRkYTVlYjU4NjcyMy4uMDMyZWYzZDNiOTViNDY0ZGNiOTE3OGRi
NDk1MDRlYTUyYzg5Yzc2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktc2V0LW91dC1vZi1ib3VuZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dApA
QCAtNCwyNiArNCwyNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBSZWdyZXNzaW9uIHRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM1MiA6IFBh
c3NpbmcgYXJyYXkgdGhhdCBpcyB0b28gbGFyZ2UgdG8gc2V0IG1ldGhvZCBvZiBXZWJHTEFycmF5
cyBkb2VzIG5vdCB0aHJvdyBhbiBleGNlcHRpb24KIFRlc3RpbmcgSW50OEFycmF5Ci1QQVNTIHdl
YkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
TGVuZ3RoIGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0
KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0
IGFyZSBvdXQgb2YgcmFuZ2UuLgogVGVzdGluZyBVaW50OEFycmF5Ci1QQVNTIHdlYkdMQXJyYXku
c2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xB
cnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFu
ZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2
XSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQg
b2YgcmFuZ2UuLgogVGVzdGluZyBJbnQxNkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1
XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQo
WzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVuZ3RoIGFuZCBvZmZzZXQg
YXJlIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2Uu
LgogVGVzdGluZyBVaW50MTZBcnJheQotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KLVBB
U1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwg
MSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQg
b2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlv
biBSYW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KIFRlc3Rp
bmcgSW50MzJBcnJheQotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KLVBBU1Mgd2ViR0xB
cnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2Uu
LgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVy
cm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgVWludDMy
QXJyYXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXkuc2V0
KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlv
biBSYW5nZUVycm9yOiBMZW5ndGggYW5kIG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KK1BBU1Mg
d2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogTGVu
Z3RoIGFuZCBvZmZzZXQgYXJlIG91dCBvZiByYW5nZS4uCiBUZXN0aW5nIEZsb2F0MzJBcnJheQot
UEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUs
IDZdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdl
RXJyb3I6IExlbmd0aCBhbmQgb2Zmc2V0IGFyZSBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFy
cmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBMZW5ndGggYW5k
IG9mZnNldCBhcmUgb3V0IG9mIHJhbmdlLi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvZGF0YS12aWV3LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggYWNmMjBjNGYxM2Zi
YTkxZWZlZDRiOTUzMzJhYzkwY2Y5NzZkMDFiYS4uZjIzOThhYTVhYzI3NTkwZDlmYWMzN2U1ZDQ0
OWZlYmNkZGQ2NjBiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
ZGF0YS12aWV3LWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0yLDggKzIsOCBAQCBUZXN0
IHRoYXQgRGF0YVZpZXcgZG9lcyBub3QgY3Jhc2ggd2l0aCBiYWQgb2Zmc2V0IG9yIGxlbmd0aC4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXco
YXJyYXkuYnVmZmVyLCAtNDUwMDAwMDAwMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5
LmJ1ZmZlciwgLTQ1MDAwMDAwMDAsIDQ1MDAwMDAwMDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmll
dyhhcnJheS5idWZmZXIsIC00NTAwMDAwMDAwKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
QXJyYXlCdWZmZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVn
ZXIuLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5LmJ1ZmZlciwgLTQ1MDAwMDAwMDAs
IDQ1MDAwMDAwMDApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBBcnJheUJ1ZmZlclZpZXcg
c2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4uCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApp
bmRleCBmYmYwYzhiNTVjNDU0MTdlZmM0ZTJiYzBkYzZlYWViZDg0ZjY4OTlhLi42MjY0MDQwYmVm
OGQ0N2VjNmM4MWQ0YjkxMDEyNDBmNWExNjU1OTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0y
Miw5ICsyMiw5IEBAIFBBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDAKIFBBU1Mgdmlldy5ieXRlTGVu
Z3RoIGlzIDEKIAogVGVzdCBmb3IgY29uc3RydWN0b3IgdGhyb3dpbmcgZXhjZXB0aW9uCi1QQVNT
IHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMykgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB2aWV3ID0gbmV3IERh
dGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KLVBBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVm
ZmVyLCAyLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMykgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNt
YWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLi4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhh
cmF5QnVmZmVyLCAxLCAyKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogQXJyYXlCdWZmZXJW
aWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuLgorUEFTUyB2
aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDIsIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5n
ZUVycm9yOiBBcnJheUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRp
dmUgaW50ZWdlci4uCiAKIFRlc3QgZm9yIGdldCBtZXRob2RzIHRoYXQgd29yawogUEFTUyB2aWV3
LmdldEludDgoMCkgaXMgMAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156404</attachid>
            <date>2012-08-03 10:01:03 -0700</date>
            <delta_ts>2012-08-15 18:11:14 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-45118-20120803100042.patch</filename>
            <type>text/plain</type>
            <size>20795</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1ZmYzOGVjMTA3NDA4
MmNjMzAxN2E5Y2YzNWMxM2MxNGRmMzUxYS4uOWExNmFhOWRkZGRkMGVmNTc1NTU5YmQzMTMyYzBi
NWE3NWI2MzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTAyICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXBk
YXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFJhbmdlRXJyb3Igb3Igc2ltaWxhciBpbnN0ZWFkIG9m
IElOREVYX1NJWkVfRVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byByYWlzZSBKYXZhU2NyaXB0IFJhbmdlRXJyb3Ig
aW5zdGVhZCBvZiBkb20KKyAgICAgICAgSU5ERVhfU0laRV9FUlIgZXhjZXB0aW9ucy4gQWxzbywg
dXBkYXRlIFR5cGVkQXJyYXlzIHRvIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBpbnN0ZWFkIG9m
IEphdmFTY3JpcHQgU3ludGF4RXJyb3Igb3IgZG9tIGV4Y2VwdGlvbnMgU1lOVEFYX0VSUiB3aGVu
CisgICAgICAgIGNhbGxpbmcgc2V0IG1ldGhvZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorCisg
ICAgICAgIFNwZWNpZmljYXRpb24gZG9lcyBub3QgZGVmaW5lIHRoZSB0eXBlIG9mIGV4Y2VwdGlv
bnMgdG8gcmFpc2UsIGJ1dAorICAgICAgICBvdGhlciBicm93c2VycyByYWlzZSBKYXZhU2NyaXB0
IGVycm9ycywgc28gdGhvc2UgY2hhbmdlcyB3aWxsIGltcHJvdmUKKyAgICAgICAgY29tcGF0aWJp
bGl0eS4KKworICAgICAgICBOZXcgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWlu
dmFsaWQtYXJndW1lbnRzLmh0bWwKKworICAgICAgICBVcGRhdGVkIFRlc3RzIGV4cGVjdGF0aW9u
czoKKyAgICAgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRz
Lmh0bWwKKyAgICAgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC5odG1s
CisgICAgICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRXZWJHTEFycmF5V2l0aFR5cGVkQXJyYXlB
cmd1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRXZWJHTEFycmF5SGVscGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5
QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2Vi
R0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNldFdl
YkdMQXJyYXlIZWxwZXIpOgorCiAyMDEyLTA4LTAyICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgRG8gbm90IGRpc3BhdGNoIG1vZGlmaWNhdGlvbiBldmVudHMgaW4g
U1ZHIGF0dHJpYnV0ZSBzeW5jaHJvbml6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4IGUwMjg1NjQ4MmY4Njlk
OWE0NjBkNGFjYWU4Mjk3NjVmNWZjYWFiMjAuLjM4MzJiZTdhNjVlMzA0ODk4MDE0NDJjMGI3ZDRk
ZWZjMmQyZjRmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2lmbmRlZiBKU0FycmF5
QnVmZmVyVmlld0hlbHBlcl9oCiAjZGVmaW5lIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKIAot
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
QEAgLTQxLDYgKzQwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3Qg
Y2hhciogdG9vTGFyZ2VTaXplID0gIlNpemUgaXMgdG9vIGxhcmdlIChvciBpcyBuZWdhdGl2ZSku
IjsKK3N0YXRpYyBjb25zdCBjaGFyKiBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zmc2V0ID0gIkluZGV4
IGlzIG91dCBvZiByYW5nZS4iOworCiB0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgogYm9v
bCBjb3B5VHlwZWRBcnJheUJ1ZmZlcihDKiB0YXJnZXQsIEFycmF5QnVmZmVyVmlldyogc291cmNl
LCB1bnNpZ25lZCBzb3VyY2VMZW5ndGgsIHVuc2lnbmVkIG9mZnNldCkKIHsKQEAgLTExNSw3ICsx
MTcsNyBAQCBib29sIHNldFdlYkdMQXJyYXlXaXRoVHlwZWRBcnJheUFyZ3VtZW50KEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBDKiBpbXBsKQogICAgIHVpbnQzMl90IGxlbmd0aCA9IGFzT2JqZWN0KGV4
ZWMtPmFyZ3VtZW50KDApKS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3Ro
IikpLnRvVUludDMyKGV4ZWMpOwogCiAgICAgaWYgKCEoY29weVR5cGVkQXJyYXlCdWZmZXI8Qywg
VD4oaW1wbCwgYXJyYXkuZ2V0KCksIGxlbmd0aCwgb2Zmc2V0KSkpCi0gICAgICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlUmFuZ2VFcnJvcihleGVjLCBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zmc2V0KSk7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEyNCw3ICsxMjYsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBDLCB0
eXBlbmFtZSBUPgogSlNDOjpKU1ZhbHVlIHNldFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEMqIGltcGwpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEp
Ci0gICAgICAgIHJldHVybiBKU0M6OnRocm93U3ludGF4RXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiBKU0M6OnRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
ZXhlYykpOwogCiAgICAgaWYgKHNldFdlYkdMQXJyYXlXaXRoVHlwZWRBcnJheUFyZ3VtZW50PEMs
IFQ+KGV4ZWMsIGltcGwpKQogICAgICAgICAvLyB2b2lkIHNldChpbiBXZWJHTDw+QXJyYXkgYXJy
YXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwpAQCAtMTM4LDcgKzE0MCw3
IEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBDKiBpbXBsKQogICAgICAgICAgICAgb2Zmc2V0ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQz
MihleGVjKTsKICAgICAgICAgdWludDMyX3QgbGVuZ3RoID0gYXJyYXktPmdldChleGVjLCBKU0M6
OklkZW50aWZpZXIoZXhlYywgImxlbmd0aCIpKS50b0ludDMyKGV4ZWMpOwogICAgICAgICBpZiAo
IWltcGwtPmNoZWNrSW5ib3VuZERhdGEob2Zmc2V0LCBsZW5ndGgpKQotICAgICAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgICAgIHRocm93RXJy
b3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zmc2V0
KSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgSlNDOjpKU1ZhbHVlIHYgPSBhcnJheS0+
Z2V0KGV4ZWMsIGkpOwpAQCAtMTUxLDcgKzE1Myw3IEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFy
cmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDKiBpbXBsKQogICAgICAgICByZXR1cm4g
SlNDOjpqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIHJldHVybiBKU0M6OnRocm93U3ludGF4
RXJyb3IoZXhlYyk7CisgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoZXhlYywgIkludmFs
aWQgYXJndW1lbnQiKTsKIH0KIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJh
eUNvbnN0cnVjdG9ycy4KQEAgLTE3MCwxMiArMTcyLDEyIEBAIFBhc3NSZWZQdHI8Qz4gY29uc3Ry
dWN0QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSog
ZXhlCiAgICAgdWludDMyX3QgbGVuZ3RoID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5n
ZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7
CiAgICAgUmVmUHRyPEM+IGFycmF5ID0gQzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgpOwog
ICAgIGlmICghYXJyYXkpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJ
WkVfRVJSKTsKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMs
IHRvb0xhcmdlU2l6ZSkpOwogICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgfQogCiAgICAgaWYg
KCEoY29weVR5cGVkQXJyYXlCdWZmZXI8QywgVD4oYXJyYXkuZ2V0KCksIHNvdXJjZS5nZXQoKSwg
bGVuZ3RoLCAwKSkpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVf
RVJSKTsKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIHRv
b0xhcmdlU2l6ZSkpOwogICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgfQogCkBAIC0yMDQsNyAr
MjA2LDcgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlC
dWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXgKICAgICB9CiAgICAgUmVmUHRyPEM+IGFy
cmF5ID0gQzo6Y3JlYXRlKGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgpOwogICAgIGlmICghYXJyYXkp
Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAg
IHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCB0b29MYXJnZVNpemUpKTsK
ICAgICByZXR1cm4gYXJyYXk7CiB9CiAKQEAgLTI0NSw3ICsyNDcsNyBAQCBQYXNzUmVmUHRyPEM+
IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
dWludDMyX3QgbGVuZ3RoID0gc3JjQXJyYXktPmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhl
YywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKICAgICAgICAgUmVmUHRyPEM+IGFycmF5ID0g
Qzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgpOwogICAgICAgICBpZiAoIWFycmF5KSB7Ci0g
ICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAg
ICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIHRvb0xhcmdlU2l6
ZSkpOwogICAgICAgICAgICAgcmV0dXJuIGFycmF5OwogICAgICAgICB9CiAKQEAgLTI2MSw3ICsy
NjMsNyBAQCBQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6OkV4ZWNT
dGF0ZSogZXhlYykKICAgICBpZiAobGVuZ3RoID49IDApCiAgICAgICAgIHJlc3VsdCA9IEM6OmNy
ZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGVuZ3RoKSk7CiAgICAgaWYgKCFyZXN1bHQpCi0g
ICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiQXJyYXlCdWZm
ZXJWaWV3IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuIikpOwor
ICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgdG9vTGFyZ2VT
aXplKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAppbmRl
eCA3M2NhNWFlMDEwNzMyOTc1OWFlMDNjYWIyMzM0NWM2N2ZhOThkODI3Li41YTVhYWE5NGIwZGE3
Nzc2N2ZlNTJiZTEwMDQ0MzljNTJkMjBlNTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApAQCAt
NDAsNiArNDAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBjaGFy
KiB0b29MYXJnZVNpemUgPSAiU2l6ZSBpcyB0b28gbGFyZ2UgKG9yIGlzIG5lZ2F0aXZlKS4iOwor
c3RhdGljIGNvbnN0IGNoYXIqIG91dE9mUmFuZ2VMZW5ndGhBbmRPZmZzZXQgPSAiSW5kZXggaXMg
b3V0IG9mIHJhbmdlLiI7CisKIC8vIENvcHkgdGhlIGVsZW1lbnRzIGZyb20gdGhlIHNvdXJjZSBh
cnJheSB0byB0aGUgdHlwZWQgZGVzdGluYXRpb24gYXJyYXkuCiAvLyBSZXR1cm5zIHRydWUgaWYg
aXQgc3VjY2VlZGVkLCBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KIGJvb2wgY29weUVsZW1lbnRz
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZGVzdEFycmF5LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHNyY0FycmF5LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG9mZnNldCwgdjg6Oklzb2xhdGUq
KTsKQEAgLTg0LDEzICs4NywxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2Vi
R0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KGNvbnN0IHY4OjpBcmd1bQogICAgIH0KICAg
ICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoYnVmLCBvZmZz
ZXQsIGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCB0b29MYXJn
ZVNpemUsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIHJldHVybiB3cmFwQXJyYXlCdWZmZXJW
aWV3KGFyZ3MsIHR5cGUsIGFycmF5LCBhcnJheVR5cGUsIGhhc0luZGV4ZXIpOwogfQogCi1zdGF0
aWMgY29uc3QgY2hhciogbm90U21hbGxFbm91Z2hTaXplID0gIkFycmF5QnVmZmVyVmlldyBzaXpl
IGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiI7Ci0KIC8vIFRlbXBsYXRl
IGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25zdHJ1Y3RvciBjYWxsYmFj
a3MuCiB0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBKYXZhU2NyaXB0V3JhcHBlckFy
cmF5VHlwZSwgY2xhc3MgRWxlbWVudFR5cGU+CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3Ry
dWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8q
IHR5cGUsIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBhcnJheVR5cGUpCkBAIC0xNDQsNyArMTQ1LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICAgICAgdWludDMyX3QgbGVuZ3RoID0gc291
cmNlLT5sZW5ndGgoKTsKICAgICAgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlD
bGFzczo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgpOwogICAgICAgICBpZiAoIWFycmF5Lmdl
dCgpKQotICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFu
Z2VFcnJvciwgbm90U21hbGxFbm91Z2hTaXplLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCB0b29M
YXJnZVNpemUsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgICAgICBtZW1jcHkoYXJyYXktPmJh
c2VBZGRyZXNzKCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6ZW9mKEVsZW1l
bnRUeXBlKSk7CiAKQEAgLTE3OSw3ICsxODAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29u
c3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZQog
ICAgIH0KIAogICAgIGlmICghYXJyYXkuZ2V0KCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd0Vycm9yKFY4UHJveHk6OlJhbmdlRXJyb3IsIG5vdFNtYWxsRW5vdWdoU2l6ZSwgYXJncy5H
ZXRJc29sYXRlKCkpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5
OjpSYW5nZUVycm9yLCB0b29MYXJnZVNpemUsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogCiAgICAg
Ly8gVHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJy
YXkuCkBAIC0yMDQsNyArMjA1LDcgQEAgdGVtcGxhdGUgPGNsYXNzIENQbHVzUGx1c0FycmF5VHlw
ZSwgY2xhc3MgSmF2YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU+CiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4
Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
IAogICAgIENQbHVzUGx1c0FycmF5VHlwZSogaW1wbCA9IEphdmFTY3JpcHRXcmFwcGVyQXJyYXlU
eXBlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIApAQCAtMjE1LDcgKzIxNiw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiAgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDIpCiAgICAgICAgICAgICBvZmZz
ZXQgPSB0b1VJbnQzMihhcmdzWzFdKTsKICAgICAgICAgaWYgKCFpbXBsLT5zZXQoc3JjLCBvZmZz
ZXQpKQotICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihJTkRFWF9T
SVpFX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93RXJyb3IoVjhQcm94eTo6UmFuZ2VFcnJvciwgb3V0T2ZSYW5nZUxlbmd0aEFuZE9mZnNl
dCwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
ICAgIH0KIApAQCAtMjMwLDcgKzIzMSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJH
TEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICB8fCBv
ZmZzZXQgKyBsZW5ndGggPiBpbXBsLT5sZW5ndGgoKQogICAgICAgICAgICAgfHwgb2Zmc2V0ICsg
bGVuZ3RoIDwgb2Zmc2V0KSB7CiAgICAgICAgICAgICAvLyBPdXQgb2YgcmFuZ2Ugb2Zmc2V0IG9y
IG92ZXJmbG93Ci0gICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKElO
REVYX1NJWkVfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCBvdXRPZlJhbmdlTGVuZ3RoQW5k
T2Zmc2V0LCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KICAgICAgICAgYm9vbCBjb3Bp
ZWQgPSBjb3B5RWxlbWVudHMoYXJncy5Ib2xkZXIoKSwgYXJyYXksIGxlbmd0aCwgb2Zmc2V0LCBh
cmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIGlmICghY29waWVkKSB7CkBAIC0yNDAsNyArMjQx
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJyYXlIZWxwZXIoY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9
CiAKLSAgICByZXR1cm4gVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKKyAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkludmFs
aWQgYXJndW1lbnQiLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNjFiNDlm
NTlkNjFjZmIwZjk4ZjE4M2VkMjk3MjJlYjg5OWZkMDMxLi45ODRkZTEzMWVmN2RiZWM1MTlkYmFj
ZThjZDQ3MWE3N2JjOWIyODM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDgtMDIgIEFy
bmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBV
cGRhdGUgVHlwZWRBcnJheXMgdG8gdGhyb3cgUmFuZ2VFcnJvciBvciBzaW1pbGFyIGluc3RlYWQg
b2YgSU5ERVhfU0laRV9FUlIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IHRlc3QgdG8gdGVzdCBpbnZhbGlkIGFyZ3VtZW50cyB0byBUeXBlZEFycmF5
IHNldCBtZXRob2QKKworICAgICAgICBVcGRhdGUgYXJyYXktc2V0LW91dC1vZi1ib3VuZHMuaHRt
bCwgZGF0YS12aWV3LWNyYXNoLmh0bWwgYW5kCisgICAgICAgIGRhdGEtdmlldy10ZXN0Lmh0bWwg
dGVzdCBleHBlY3RhdGlvbnMgbm8gbWF0Y2ggbmV3IGV4Y2VwdGlvbnMgdGhyb3duLgorCisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWlu
dmFsaWQtYXJndW1lbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmds
L2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wOC0wMiAg
UGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBkaXNwYXRj
aCBtb2RpZmljYXRpb24gZXZlbnRzIGluIFNWRyBhdHRyaWJ1dGUgc3luY2hyb25pemF0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxp
ZC1hcmd1bWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTVi
ZDA0ZWU1OGJjYmVkYmM3NjdlMGUzYjQ0ZTY2MWNlMGE0N2I1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcg
dG8gc2V0IGludmFsaWQgZWxlbWVudHMgdG8gYSBUeXBlZCBBcnJheSB0aHJvd3MgYW4gZXhjZXB0
aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyB0eXBlZEFycmF5LnNldCgp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0
eXBlZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJ
bnZhbGlkIGFyZ3VtZW50LgorUEFTUyB0eXBlZEFycmF5LnNldChvdGhlckFycmF5LCAxKSB0aHJl
dyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlw
ZWRBcnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogSW52YWxpZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJB
cnJheSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5n
ZS4uCitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgYXJndW1lbnQuCitQQVNTIHR5cGVkQXJy
YXkuc2V0KG90aGVyQXJyYXksIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBp
cyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0eXBlZEFycmF5LnNldCgnaGVs
bG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIGFyZ3VtZW50Lgor
UEFTUyB0eXBlZEFycmF5LnNldChvdGhlckFycmF5LCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlwZWRBcnJheS5zZXQoKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgdHlwZWRB
cnJheS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxp
ZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJBcnJheSwgMSkgdGhyZXcgZXhj
ZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHR5cGVkQXJy
YXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEludmFsaWQgYXJndW1lbnQuCitQQVNTIHR5cGVkQXJyYXkuc2V0KG90aGVyQXJyYXks
IDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgor
UEFTUyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB0eXBlZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIGFyZ3VtZW50LgorUEFTUyB0eXBlZEFycmF5LnNl
dChvdGhlckFycmF5LCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0
IG9mIHJhbmdlLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1z
ZXQtaW52YWxpZC1hcmd1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZTRlMjAxYTM3
ZGNhNTIwMmNhZjVhNmRmNzk1YWE3ZTcxNzk5NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1hcmd1bWVudHMuaHRtbApA
QCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKwor
ZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgYXR0ZW1wdGluZyB0byBzZXQgaW52YWxpZCBlbGVt
ZW50cyB0byBhIFR5cGVkIEFycmF5IHRocm93cyBhbiBleGNlcHRpb24iKTsKKworLy8gR2xvYmFs
IHNjb3BlIHNvIHNob3VsZFRocm93IGNhbiBzZWUgaXQKK3ZhciB0eXBlZEFycmF5LCBvdGhlckFy
cmF5OworCitmdW5jdGlvbiBuZWdhdGl2ZVRlc3RTZXQodHlwZU5hbWUpIHsKKyAgICB2YXIgdHlw
ZSA9IHdpbmRvd1t0eXBlTmFtZV07CisgICAgdHlwZWRBcnJheSA9IG5ldyB0eXBlKDEwKTsKKwor
ICAgIHNob3VsZFRocm93KCJ0eXBlZEFycmF5LnNldCgpIik7CisgICAgc2hvdWxkVGhyb3coInR5
cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIik7CisKKyAgICBvdGhlckFycmF5ID0gbmV3IHR5
cGUodHlwZWRBcnJheS5sZW5ndGgpOworICAgIHNob3VsZFRocm93KCJ0eXBlZEFycmF5LnNldChv
dGhlckFycmF5LCAxKSIpOworfQorCituZWdhdGl2ZVRlc3RTZXQoIkludDhBcnJheSIpOworbmVn
YXRpdmVUZXN0U2V0KCJVaW50OEFycmF5Iik7CituZWdhdGl2ZVRlc3RTZXQoIkludDE2QXJyYXki
KTsKK25lZ2F0aXZlVGVzdFNldCgiVWludDE2QXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiSW50
MzJBcnJheSIpOworbmVnYXRpdmVUZXN0U2V0KCJVaW50MzJBcnJheSIpOworbmVnYXRpdmVUZXN0
U2V0KCJGbG9hdDMyQXJyYXkiKTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91
dC1vZi1ib3VuZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktc2V0LW91dC1vZi1ib3VuZHMtZXhwZWN0ZWQudHh0CmluZGV4IDM4YTA1NmQ5NTVmYWZh
ZDQyZjNmMTJmYjg3N2Q0ZGE1ZWI1ODY3MjMuLmJjYzdkODU1ZmI1MWYxNWJjOTg4Y2NmNjFhMjg3
ZmMxMTZmMDFkZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtb3V0LW9mLWJvdW5kcy1leHBlY3RlZC50eHQKQEAgLTQs
MjYgKzQsMjYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUmVncmVzc2lvbiB0ZXN0IGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzNTIgOiBQYXNzaW5n
IGFycmF5IHRoYXQgaXMgdG9vIGxhcmdlIHRvIHNldCBtZXRob2Qgb2YgV2ViR0xBcnJheXMgZG9l
cyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uCiBUZXN0aW5nIEludDhBcnJheQotUEFTUyB3ZWJHTEFy
cmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHdl
YkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4
IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcg
ZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4uCiBUZXN0aW5nIFVp
bnQ4QXJyYXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXku
c2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2Vw
dGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5
LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQg
b2YgcmFuZ2UuLgogVGVzdGluZyBJbnQxNkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1
XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQo
WzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJh
bmdlLi4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFu
Z2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgVWludDE2QXJyYXkKLVBB
U1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2
XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVy
cm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwg
Nl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgog
VGVzdGluZyBJbnQzMkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB3
ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0
aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1Mg
d2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5k
ZXggaXMgb3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgVWludDMyQXJyYXkKLVBBU1Mgd2ViR0xBcnJh
eS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB3ZWJH
TEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBp
cyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4
Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgogVGVzdGluZyBGbG9h
dDMyQXJyYXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdMQXJyYXku
c2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2Vw
dGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJHTEFycmF5
LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQg
b2YgcmFuZ2UuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXct
Y3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12
aWV3LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCBhY2YyMGM0ZjEzZmJhOTFlZmVkNGI5NTMzMmFj
OTBjZjk3NmQwMWJhLi42ZTIwMWIyMjkyYTdmN2U4ZTU1MmEwMGQ1MTM0NGY2N2IxMjkyMjhlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmll
dy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw4IEBAIFRlc3QgdGhhdCBEYXRhVmlldyBk
b2VzIG5vdCBjcmFzaCB3aXRoIGJhZCBvZmZzZXQgb3IgbGVuZ3RoLgogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKLVBBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcnJheS5idWZmZXIsIC00
NTAwMDAwMDAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCi1QQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJyYXkuYnVmZmVyLCAtNDUwMDAw
MDAwMCwgNDUwMDAwMDAwMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5LmJ1ZmZlciwg
LTQ1MDAwMDAwMDApIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTaXplIGlzIHRvbyBsYXJn
ZSAob3IgaXMgbmVnYXRpdmUpLi4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcnJheS5idWZm
ZXIsIC00NTAwMDAwMDAwLCA0NTAwMDAwMDAwKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjog
U2l6ZSBpcyB0b28gbGFyZ2UgKG9yIGlzIG5lZ2F0aXZlKS4uCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBmYmYw
YzhiNTVjNDU0MTdlZmM0ZTJiYzBkYzZlYWViZDg0ZjY4OTlhLi41ZDZiM2EwMjdlZGY1ZTU1NWM1
NmEzOWZiZjU1ODE0ZTcyMGNjODU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0yMiw5ICsyMiw5
IEBAIFBBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDAKIFBBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEK
IAogVGVzdCBmb3IgY29uc3RydWN0b3IgdGhyb3dpbmcgZXhjZXB0aW9uCi1QQVNTIHZpZXcgPSBu
ZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFy
YXlCdWZmZXIsIDEsIDIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KLVBBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAx
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEu
CitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMykgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IFNpemUgaXMgdG9vIGxhcmdlIChvciBpcyBuZWdhdGl2ZSkuLgorUEFT
UyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3IGV4Y2VwdGlvbiBS
YW5nZUVycm9yOiBTaXplIGlzIHRvbyBsYXJnZSAob3IgaXMgbmVnYXRpdmUpLi4KK1BBU1Mgdmll
dyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VF
cnJvcjogU2l6ZSBpcyB0b28gbGFyZ2UgKG9yIGlzIG5lZ2F0aXZlKS4uCiAKIFRlc3QgZm9yIGdl
dCBtZXRob2RzIHRoYXQgd29yawogUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158676</attachid>
            <date>2012-08-15 18:11:19 -0700</date>
            <delta_ts>2012-08-16 16:53:40 -0700</delta_ts>
            <desc>updated patch to build on mac</desc>
            <filename>bug-45118-20120815181046.patch</filename>
            <type>text/plain</type>
            <size>20538</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMzNjhiMzRmMzFhYzRj
MmFiN2U5ZGE0ZGZiMDAyZGI0ZTAyNDg1Yy4uZjIzY2ZiMzQyYTJiZjFmMzBlZmM3MWFhZTQ1OTcy
ZGQ4MzYwOTkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTE1ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXBk
YXRlIFR5cGVkQXJyYXlzIHRvIHRocm93IFJhbmdlRXJyb3Igb3Igc2ltaWxhciBpbnN0ZWFkIG9m
IElOREVYX1NJWkVfRVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byByYWlzZSBKYXZhU2NyaXB0IFJhbmdlRXJyb3Ig
aW5zdGVhZCBvZiBkb20KKyAgICAgICAgSU5ERVhfU0laRV9FUlIgZXhjZXB0aW9ucy4gQWxzbywg
dXBkYXRlIFR5cGVkQXJyYXlzIHRvIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBpbnN0ZWFkIG9m
IEphdmFTY3JpcHQgU3ludGF4RXJyb3Igb3IgZG9tIGV4Y2VwdGlvbnMgU1lOVEFYX0VSUiB3aGVu
CisgICAgICAgIGNhbGxpbmcgc2V0IG1ldGhvZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorCisg
ICAgICAgIFNwZWNpZmljYXRpb24gZG9lcyBub3QgZGVmaW5lIHRoZSB0eXBlIG9mIGV4Y2VwdGlv
bnMgdG8gcmFpc2UsIGJ1dAorICAgICAgICBvdGhlciBicm93c2VycyByYWlzZSBKYXZhU2NyaXB0
IGVycm9ycywgc28gdGhvc2UgY2hhbmdlcyB3aWxsIGltcHJvdmUKKyAgICAgICAgY29tcGF0aWJp
bGl0eS4KKworICAgICAgICBOZXcgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWlu
dmFsaWQtYXJndW1lbnRzLmh0bWwKKworICAgICAgICBVcGRhdGVkIFRlc3RzIGV4cGVjdGF0aW9u
czoKKyAgICAgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRz
Lmh0bWwKKyAgICAgICAgICAgIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC5odG1s
CisgICAgICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRXZWJHTEFycmF5V2l0aFR5cGVkQXJyYXlB
cmd1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRXZWJHTEFycmF5SGVscGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5
QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2Vi
R0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNldFdl
YkdMQXJyYXlIZWxwZXIpOgorCiAyMDEyLTA4LTE1ICBPdHRvIERlcmVrIENoZXVuZyAgPG90Y2hl
dW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNob3cgY3VzdG9tIGVycm9yIHBh
Z2Ugd2hlbiA0MDcgaXMgcmVjZWl2ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4IGUwMjg1NjQ4MmY4NjlkOWE0NjBk
NGFjYWU4Mjk3NjVmNWZjYWFiMjAuLmJhMjEyZGYwYzVhYjEzZDNkNmQ2YjUwOTdmN2Y2MmNhODE4
M2MwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2lmbmRlZiBKU0FycmF5QnVmZmVy
Vmlld0hlbHBlcl9oCiAjZGVmaW5lIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKIAotI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKQEAgLTQx
LDYgKzQwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgY2hhciog
dG9vTGFyZ2VTaXplID0gIlNpemUgaXMgdG9vIGxhcmdlIChvciBpcyBuZWdhdGl2ZSkuIjsKKwog
dGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIGJvb2wgY29weVR5cGVkQXJyYXlCdWZmZXIo
QyogdGFyZ2V0LCBBcnJheUJ1ZmZlclZpZXcqIHNvdXJjZSwgdW5zaWduZWQgc291cmNlTGVuZ3Ro
LCB1bnNpZ25lZCBvZmZzZXQpCiB7CkBAIC0xMTUsNyArMTE2LDcgQEAgYm9vbCBzZXRXZWJHTEFy
cmF5V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQyogaW1wbCkK
ICAgICB1aW50MzJfdCBsZW5ndGggPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSktPmdldChl
eGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKIAog
ICAgIGlmICghKGNvcHlUeXBlZEFycmF5QnVmZmVyPEMsIFQ+KGltcGwsIGFycmF5LmdldCgpLCBs
ZW5ndGgsIG9mZnNldCkpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywg
IkluZGV4IGlzIG91dCBvZiByYW5nZS4iKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEy
NCw3ICsxMjUsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgogSlNDOjpKU1ZhbHVl
IHNldFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEMqIGltcGwpCiB7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiBKU0M6OnRo
cm93U3ludGF4RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OnRocm93RXJyb3IoZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCiAgICAgaWYgKHNldFdl
YkdMQXJyYXlXaXRoVHlwZWRBcnJheUFyZ3VtZW50PEMsIFQ+KGV4ZWMsIGltcGwpKQogICAgICAg
ICAvLyB2b2lkIHNldChpbiBXZWJHTDw+QXJyYXkgYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWdu
ZWQgbG9uZyBvZmZzZXQpOwpAQCAtMTM4LDcgKzEzOSw3IEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJH
TEFycmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDKiBpbXBsKQogICAgICAgICAgICAg
b2Zmc2V0ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICAgICAgdWludDMy
X3QgbGVuZ3RoID0gYXJyYXktPmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgImxlbmd0
aCIpKS50b0ludDMyKGV4ZWMpOwogICAgICAgICBpZiAoIWltcGwtPmNoZWNrSW5ib3VuZERhdGEo
b2Zmc2V0LCBsZW5ndGgpKQotICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVY
X1NJWkVfRVJSKTsKKyAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJv
cihleGVjLCAiSW5kZXggaXMgb3V0IG9mIHJhbmdlLiIpKTsKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAg
ICAgICAgICBKU0M6OkpTVmFsdWUgdiA9IGFycmF5LT5nZXQoZXhlYywgaSk7CkBAIC0xNTEsNyAr
MTUyLDcgQEAgSlNDOjpKU1ZhbHVlIHNldFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEMqIGltcGwpCiAgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiAgICAg
fQogCi0gICAgcmV0dXJuIEpTQzo6dGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICByZXR1cm4g
SlNDOjp0aHJvd1R5cGVFcnJvcihleGVjLCAiSW52YWxpZCBhcmd1bWVudCIpOwogfQogCiAvLyBU
ZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgpAQCAtMTcwLDEy
ICsxNzEsMTIgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlw
ZWRBcnJheUFyZ3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleGUKICAgICB1aW50MzJfdCBsZW5ndGgg
PSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSktPmdldChleGVjLCBKU0M6OklkZW50aWZpZXIo
ZXhlYywgImxlbmd0aCIpKS50b1VJbnQzMihleGVjKTsKICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBD
OjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkgewotICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICB0aHJvd0Vy
cm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgdG9vTGFyZ2VTaXplKSk7CiAgICAgICAg
IHJldHVybiBhcnJheTsKICAgICB9CiAKICAgICBpZiAoIShjb3B5VHlwZWRBcnJheUJ1ZmZlcjxD
LCBUPihhcnJheS5nZXQoKSwgc291cmNlLmdldCgpLCBsZW5ndGgsIDApKSkgewotICAgICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICB0aHJvd0Vycm9y
KGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgdG9vTGFyZ2VTaXplKSk7CiAgICAgICAgIHJl
dHVybiBhcnJheTsKICAgICB9CiAKQEAgLTIwNCw3ICsyMDUsNyBAQCBQYXNzUmVmUHRyPEM+IGNv
bnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KEpTQzo6RXhlY1N0
YXRlKiBleAogICAgIH0KICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUoYnVmZmVyLCBv
ZmZzZXQsIGxlbmd0aCk7CiAgICAgaWYgKCFhcnJheSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVS
YW5nZUVycm9yKGV4ZWMsIHRvb0xhcmdlU2l6ZSkpOwogICAgIHJldHVybiBhcnJheTsKIH0KIApA
QCAtMjQ1LDcgKzI0Niw3IEBAIFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3
KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJh
eS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4
ZWMpOwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGVVbmluaXRpYWxpemVkKGxl
bmd0aCk7CiAgICAgICAgIGlmICghYXJyYXkpIHsKLSAgICAgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBJTkRFWF9TSVpFX0VSUik7CisgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNy
ZWF0ZVJhbmdlRXJyb3IoZXhlYywgdG9vTGFyZ2VTaXplKSk7CiAgICAgICAgICAgICByZXR1cm4g
YXJyYXk7CiAgICAgICAgIH0KIApAQCAtMjYxLDcgKzI2Miw3IEBAIFBhc3NSZWZQdHI8Qz4gY29u
c3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChsZW5n
dGggPj0gMCkKICAgICAgICAgcmVzdWx0ID0gQzo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihsZW5ndGgpKTsKICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgdGhyb3dFcnJvcihleGVjLCBj
cmVhdGVSYW5nZUVycm9yKGV4ZWMsICJBcnJheUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFs
bCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKSk7CisgICAgICAgIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlUmFuZ2VFcnJvcihleGVjLCB0b29MYXJnZVNpemUpKTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhB
cnJheUJ1ZmZlclZpZXdDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCmluZGV4IDQwZGI0MzkyM2NhNGQ4ZmVmNWJiYmZm
MWYwMmNhODVkZjA2OWI4YzcuLmI3NjljMzYwZDYzZDUxZjQyNjI0NWZlOGIzY2Y2YmY2YzIxNGE2
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5
QnVmZmVyVmlld0N1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC00MCw2ICs0MCw5IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IGNoYXIqIHRvb0xhcmdlU2l6ZSA9ICJTaXplIGlz
IHRvbyBsYXJnZSAob3IgaXMgbmVnYXRpdmUpLiI7CitzdGF0aWMgY29uc3QgY2hhciogb3V0T2ZS
YW5nZUxlbmd0aEFuZE9mZnNldCA9ICJJbmRleCBpcyBvdXQgb2YgcmFuZ2UuIjsKKwogLy8gQ29w
eSB0aGUgZWxlbWVudHMgZnJvbSB0aGUgc291cmNlIGFycmF5IHRvIHRoZSB0eXBlZCBkZXN0aW5h
dGlvbiBhcnJheS4KIC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIG90aGVyd2lzZSBy
ZXR1cm5zIGZhbHNlLgogYm9vbCBjb3B5RWxlbWVudHModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBk
ZXN0QXJyYXksIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gc3JjQXJyYXksIHVpbnQzMl90IGxlbmd0
aCwgdWludDMyX3Qgb2Zmc2V0LCB2ODo6SXNvbGF0ZSopOwpAQCAtODQsMTMgKzg3LDExIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQoY29uc3Qgdjg6OkFyZ3VtCiAgICAgfQogICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJh
eSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYsIG9mZnNldCwgbGVuZ3RoKTsKICAgICBpZiAoIWFy
cmF5KQotICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSLCBhcmdz
LkdldElzb2xhdGUoKSk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFJhbmdlRXJyb3IsIHRv
b0xhcmdlU2l6ZSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgcmV0dXJuIHdyYXBBcnJheUJ1
ZmZlclZpZXcoYXJncywgdHlwZSwgYXJyYXksIGFycmF5VHlwZSwgaGFzSW5kZXhlcik7CiB9CiAK
LXN0YXRpYyBjb25zdCBjaGFyKiBub3RTbWFsbEVub3VnaFNpemUgPSAiQXJyYXlCdWZmZXJWaWV3
IHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuIjsKLQogLy8gVGVt
cGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNh
bGxiYWNrcy4KIHRlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEphdmFTY3JpcHRXcmFw
cGVyQXJyYXlUeXBlLCBjbGFzcyBFbGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBl
SW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKQEAgLTE0NCw3ICsx
NDUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZQogICAgICAgICB1aW50MzJfdCBsZW5ndGgg
PSBzb3VyY2UtPmxlbmd0aCgpOwogICAgICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBB
cnJheUNsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCk7CiAgICAgICAgIGlmICghYXJy
YXkuZ2V0KCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihSYW5nZUVycm9yLCBub3RT
bWFsbEVub3VnaFNpemUsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKFJhbmdlRXJyb3IsIHRvb0xhcmdlU2l6ZSwgYXJncy5HZXRJc29sYXRlKCkpOwog
CiAgICAgICAgIG1lbWNweShhcnJheS0+YmFzZUFkZHJlc3MoKSwgc291cmNlLT5iYXNlQWRkcmVz
cygpLCBsZW5ndGggKiBzaXplb2YoRWxlbWVudFR5cGUpKTsKIApAQCAtMTc5LDcgKzE4MCw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAgfQogCiAgICAgaWYgKCFhcnJheS5nZXQoKSkK
LSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoUmFuZ2VFcnJvciwgbm90U21hbGxFbm91Z2hTaXpl
LCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFJhbmdlRXJy
b3IsIHRvb0xhcmdlU2l6ZSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAKICAgICAvLyBUcmFuc2Zv
cm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KQEAgLTIw
NCw3ICsyMDUsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgQ1BsdXNQbHVzQXJyYXlUeXBlLCBjbGFzcyBK
YXZhU2NyaXB0V3JhcHBlckFycmF5VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJH
TEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIs
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgQ1BsdXNQbHVzQXJyYXlUeXBlKiBp
bXBsID0gSmF2YVNjcmlwdFdyYXBwZXJBcnJheVR5cGU6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogCkBAIC0yMTUsNyArMjE2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJy
YXlIZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPT0gMikKICAgICAgICAgICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0pOwogICAg
ICAgICBpZiAoIWltcGwtPnNldChzcmMsIG9mZnNldCkpCi0gICAgICAgICAgICByZXR1cm4gc2V0
RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihSYW5nZUVycm9yLCBvdXRPZlJhbmdlTGVuZ3RoQW5kT2Zm
c2V0LCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CiAgICAgfQogCkBAIC0yMzAsNyArMjMxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdl
YkdMQXJyYXlIZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgICAgIHx8
IG9mZnNldCArIGxlbmd0aCA+IGltcGwtPmxlbmd0aCgpCiAgICAgICAgICAgICB8fCBvZmZzZXQg
KyBsZW5ndGggPCBvZmZzZXQpIHsKICAgICAgICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQg
b3Igb3ZlcmZsb3cKLSAgICAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oSU5ERVhfU0la
RV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KFJhbmdlRXJyb3IsIG91dE9mUmFuZ2VMZW5ndGhBbmRPZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICAgICAgfQogICAgICAgICBib29sIGNvcGllZCA9IGNvcHlFbGVtZW50cyhhcmdzLkhv
bGRlcigpLCBhcnJheSwgbGVuZ3RoLCBvZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAg
ICAgaWYgKCFjb3BpZWQpIHsKQEAgLTI0MCw3ICsyNDEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIHJldHVybiBzZXRET01FeGNl
cHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcigiSW52YWxpZCBhcmd1bWVudCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDJhZGU4ZDEwNDIwMmU5MzA3ODIzMDFiYzJlYWJlZjNmNjRhZTY5YjcuLjk1OTg2MDE0
NjlkMzk2YjQ5OTdmNTM3MWJjMmVlNjQ5ZjIxZjBiNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wOC0xNSAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29t
PgorCisgICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byB0aHJvdyBSYW5nZUVycm9yIG9yIHNp
bWlsYXIgaW5zdGVhZCBvZiBJTkRFWF9TSVpFX0VSUgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdCB0byB0ZXN0IGludmFsaWQgYXJndW1lbnRz
IHRvIFR5cGVkQXJyYXkgc2V0IG1ldGhvZAorCisgICAgICAgIFVwZGF0ZSBhcnJheS1zZXQtb3V0
LW9mLWJvdW5kcy5odG1sLCBkYXRhLXZpZXctY3Jhc2guaHRtbCBhbmQKKyAgICAgICAgZGF0YS12
aWV3LXRlc3QuaHRtbCB0ZXN0IGV4cGVjdGF0aW9ucyBubyBtYXRjaCBuZXcgZXhjZXB0aW9ucyB0
aHJvd24uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1h
cmd1bWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS1zZXQtaW52YWxpZC1hcmd1bWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91dC1vZi1ib3VuZHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0Ogor
CiAyMDEyLTA4LTE1ICBMYXVybyBOZXRvICA8bGF1cm8ubmV0b0BvcGVuYm9zc2Eub3JnPgogCiAg
ICAgICAgIFtRdF0gbmV3IHRlc3QgZmFzdC9mb3Jtcy9yYWRpby9yYWRpby1ncm91cC5odG1sIGlu
dHJvZHVjZWQgaW4gcjEwNDY2OCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU1YmQwNGVlNThiY2JlZGJjNzY3ZTBlM2I0NGU2NjFj
ZTBhNDdiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LXNldC1pbnZhbGlkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBA
QAorVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHNldCBpbnZhbGlkIGVsZW1lbnRzIHRvIGEg
VHlwZWQgQXJyYXkgdGhyb3dzIGFuIGV4Y2VwdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKK1BBU1MgdHlwZWRBcnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRB
cnJheS5zZXQob3RoZXJBcnJheSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4
IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdo
ZWxsbyB3b3JsZCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgYXJndW1lbnQu
CitQQVNTIHR5cGVkQXJyYXkuc2V0KG90aGVyQXJyYXksIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5n
ZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0eXBl
ZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZh
bGlkIGFyZ3VtZW50LgorUEFTUyB0eXBlZEFycmF5LnNldChvdGhlckFycmF5LCAxKSB0aHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlwZWRB
cnJheS5zZXQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1MgdHlwZWRBcnJheS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogSW52YWxpZCBhcmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJBcnJh
eSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4u
CitQQVNTIHR5cGVkQXJyYXkuc2V0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMuCitQQVNTIHR5cGVkQXJyYXkuc2V0KCdoZWxsbyB3b3JsZCcpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgYXJndW1lbnQuCitQQVNTIHR5cGVkQXJyYXku
c2V0KG90aGVyQXJyYXksIDEpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBv
dXQgb2YgcmFuZ2UuLgorUEFTUyB0eXBlZEFycmF5LnNldCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0eXBlZEFycmF5LnNldCgnaGVsbG8g
d29ybGQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIGFyZ3VtZW50LgorUEFT
UyB0eXBlZEFycmF5LnNldChvdGhlckFycmF5LCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1MgdHlwZWRBcnJheS5zZXQoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgdHlwZWRBcnJh
eS5zZXQoJ2hlbGxvIHdvcmxkJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBh
cmd1bWVudC4KK1BBU1MgdHlwZWRBcnJheS5zZXQob3RoZXJBcnJheSwgMSkgdGhyZXcgZXhjZXB0
aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LWludmFsaWQtYXJndW1lbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtaW52YWxpZC1hcmd1bWVudHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZWU0ZTIwMWEzN2RjYTUyMDJjYWY1YTZkZjc5NWFhN2U3MTc5OTZm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXkt
c2V0LWludmFsaWQtYXJndW1lbnRzLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IGF0
dGVtcHRpbmcgdG8gc2V0IGludmFsaWQgZWxlbWVudHMgdG8gYSBUeXBlZCBBcnJheSB0aHJvd3Mg
YW4gZXhjZXB0aW9uIik7CisKKy8vIEdsb2JhbCBzY29wZSBzbyBzaG91bGRUaHJvdyBjYW4gc2Vl
IGl0Cit2YXIgdHlwZWRBcnJheSwgb3RoZXJBcnJheTsKKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0
U2V0KHR5cGVOYW1lKSB7CisgICAgdmFyIHR5cGUgPSB3aW5kb3dbdHlwZU5hbWVdOworICAgIHR5
cGVkQXJyYXkgPSBuZXcgdHlwZSgxMCk7CisKKyAgICBzaG91bGRUaHJvdygidHlwZWRBcnJheS5z
ZXQoKSIpOworICAgIHNob3VsZFRocm93KCJ0eXBlZEFycmF5LnNldCgnaGVsbG8gd29ybGQnKSIp
OworCisgICAgb3RoZXJBcnJheSA9IG5ldyB0eXBlKHR5cGVkQXJyYXkubGVuZ3RoKTsKKyAgICBz
aG91bGRUaHJvdygidHlwZWRBcnJheS5zZXQob3RoZXJBcnJheSwgMSkiKTsKK30KKworbmVnYXRp
dmVUZXN0U2V0KCJJbnQ4QXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiVWludDhBcnJheSIpOwor
bmVnYXRpdmVUZXN0U2V0KCJJbnQxNkFycmF5Iik7CituZWdhdGl2ZVRlc3RTZXQoIlVpbnQxNkFy
cmF5Iik7CituZWdhdGl2ZVRlc3RTZXQoIkludDMyQXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgi
VWludDMyQXJyYXkiKTsKK25lZ2F0aXZlVGVzdFNldCgiRmxvYXQzMkFycmF5Iik7CisKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldC1vdXQtb2YtYm91bmRzLWV4cGVj
dGVkLnR4dAppbmRleCAzOGEwNTZkOTU1ZmFmYWQ0MmYzZjEyZmI4NzdkNGRhNWViNTg2NzIzLi5i
Y2M3ZDg1NWZiNTFmMTViYzk4OGNjZjYxYTI4N2ZjMTE2ZjAxZGUxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXQtb3V0LW9mLWJvdW5kcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0LW91dC1v
Zi1ib3VuZHMtZXhwZWN0ZWQudHh0CkBAIC00LDI2ICs0LDI2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMzMzUyIDogUGFzc2luZyBhcnJheSB0aGF0IGlzIHRvbyBsYXJnZSB0byBz
ZXQgbWV0aG9kIG9mIFdlYkdMQXJyYXlzIGRvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbgogVGVz
dGluZyBJbnQ4QXJyYXkKLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHdlYkdM
QXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3
IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBpcyBvdXQgb2YgcmFuZ2UuLgorUEFTUyB3ZWJH
TEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbmRleCBp
cyBvdXQgb2YgcmFuZ2UuLgogVGVzdGluZyBVaW50OEFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0
KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJh
eS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0
IG9mIHJhbmdlLi4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgSW50MTZBcnJh
eQotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQs
IDUsIDZdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJh
bmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0
LCA1LCA2XSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5n
ZS4uCiBUZXN0aW5nIFVpbnQxNkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgot
UEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVd
LCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4K
K1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgSW50MzJBcnJheQotUEFTUyB3ZWJH
TEFycmF5LnNldChbNCwgNV0sIDEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KLVBBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IElu
ZGV4IGlzIG91dCBvZiByYW5nZS4uCitQQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1LCA2XSkgdGhy
ZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEluZGV4IGlzIG91dCBvZiByYW5nZS4uCiBUZXN0aW5n
IFVpbnQzMkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFy
cmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDVdLCAxKSB0aHJldyBl
eGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KK1BBU1Mgd2ViR0xB
cnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMg
b3V0IG9mIHJhbmdlLi4KIFRlc3RpbmcgRmxvYXQzMkFycmF5Ci1QQVNTIHdlYkdMQXJyYXkuc2V0
KFs0LCA1XSwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgotUEFTUyB3ZWJHTEFycmF5LnNldChbNCwgNSwgNl0pIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgd2ViR0xBcnJh
eS5zZXQoWzQsIDVdLCAxKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0
IG9mIHJhbmdlLi4KK1BBU1Mgd2ViR0xBcnJheS5zZXQoWzQsIDUsIDZdKSB0aHJldyBleGNlcHRp
b24gUmFuZ2VFcnJvcjogSW5kZXggaXMgb3V0IG9mIHJhbmdlLi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXgg
YWNmMjBjNGYxM2ZiYTkxZWZlZDRiOTUzMzJhYzkwY2Y5NzZkMDFiYS4uNmUyMDFiMjI5MmE3Zjdl
OGU1NTJhMDBkNTEzNDRmNjdiMTI5MjI4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZGF0YS12aWV3LWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0yLDgg
KzIsOCBAQCBUZXN0IHRoYXQgRGF0YVZpZXcgZG9lcyBub3QgY3Jhc2ggd2l0aCBiYWQgb2Zmc2V0
IG9yIGxlbmd0aC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIHZpZXcgPSBu
ZXcgRGF0YVZpZXcoYXJyYXkuYnVmZmVyLCAtNDUwMDAwMDAwMCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgotUEFTUyB2aWV3ID0gbmV3IERh
dGFWaWV3KGFycmF5LmJ1ZmZlciwgLTQ1MDAwMDAwMDAsIDQ1MDAwMDAwMDApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgdmlldyA9
IG5ldyBEYXRhVmlldyhhcnJheS5idWZmZXIsIC00NTAwMDAwMDAwKSB0aHJldyBleGNlcHRpb24g
UmFuZ2VFcnJvcjogU2l6ZSBpcyB0b28gbGFyZ2UgKG9yIGlzIG5lZ2F0aXZlKS4uCitQQVNTIHZp
ZXcgPSBuZXcgRGF0YVZpZXcoYXJyYXkuYnVmZmVyLCAtNDUwMDAwMDAwMCwgNDUwMDAwMDAwMCkg
dGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFNpemUgaXMgdG9vIGxhcmdlIChvciBpcyBuZWdh
dGl2ZSkuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVz
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXct
dGVzdC1leHBlY3RlZC50eHQKaW5kZXggZmJmMGM4YjU1YzQ1NDE3ZWZjNGUyYmMwZGM2ZWFlYmQ4
NGY2ODk5YS4uNWQ2YjNhMDI3ZWRmNWU1NTVjNTZhMzlmYmY1NTgxNGU3MjBjYzg1NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0
LWV4cGVjdGVkLnR4dApAQCAtMjIsOSArMjIsOSBAQCBQQVNTIHZpZXcuYnl0ZU9mZnNldCBpcyAw
CiBQQVNTIHZpZXcuYnl0ZUxlbmd0aCBpcyAxCiAKIFRlc3QgZm9yIGNvbnN0cnVjdG9yIHRocm93
aW5nIGV4Y2VwdGlvbgotUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDMp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
LVBBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAxLCAyKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCi1QQVNTIHZpZXcgPSBu
ZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMiwgMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFy
YXlCdWZmZXIsIDAsIDMpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBTaXplIGlzIHRvbyBs
YXJnZSAob3IgaXMgbmVnYXRpdmUpLi4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVm
ZmVyLCAxLCAyKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogU2l6ZSBpcyB0b28gbGFyZ2Ug
KG9yIGlzIG5lZ2F0aXZlKS4uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwg
MiwgMSkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IFNpemUgaXMgdG9vIGxhcmdlIChvciBp
cyBuZWdhdGl2ZSkuLgogCiBUZXN0IGZvciBnZXQgbWV0aG9kcyB0aGF0IHdvcmsKIFBBU1Mgdmll
dy5nZXRJbnQ4KDApIGlzIDAK
</data>

          </attachment>
      

    </bug>

</bugzilla>