<?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>111312</bug_id>
          
          <creation_ts>2013-03-04 06:28:11 -0800</creation_ts>
          <short_desc>Web Inspector: allow retrieval of composited layers in a given DOM subtree</short_desc>
          <delta_ts>2013-03-05 03:33:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>apavlov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>846410</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-04 06:28:11 -0800</bug_when>
    <thetext>Web Inspector: allow retrieval of composited layers in a given DOM subtree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846411</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-04 06:29:07 -0800</bug_when>
    <thetext>Add a new LayerTreeAgent method allowing the front-end to gather all composited layers associated with nodes in the subtree of which the provided node is the root. This is a subtask of https://bugs.webkit.org/show_bug.cgi?id=110407.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846412</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-03-04 06:29:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/13336629&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846415</commentid>
    <comment_count>3</comment_count>
      <attachid>191223</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-04 06:32:00 -0800</bug_when>
    <thetext>Created attachment 191223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846928</commentid>
    <comment_count>4</comment_count>
      <attachid>191223</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-04 15:34:34 -0800</bug_when>
    <thetext>Comment on attachment 191223
Patch

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

&gt; Source/WebCore/inspector/InspectorLayerTreeAgent.cpp:136
&gt; +        gatherLayersUsingRenderLayerHierarchy(errorString, renderer-&gt;enclosingLayer(), layers);

renderer-&gt;enclosingLayer() should just be toRenderLayerModelObject(renderer)-&gt;layer()

&gt; Source/WebCore/inspector/InspectorLayerTreeAgent.cpp:179
&gt; +    int id = domAgent-&gt;boundNodeId(node);
&gt; +    if (!id)
&gt; +        id = domAgent-&gt;pushNodeToFrontend(errorString, domAgent-&gt;boundNodeId(node-&gt;document()), node);

Don&apos;t use &apos;id&apos; in code; it will conflict with Objective-C&apos;s reserved word if this is ever turned into Obj-C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846993</commentid>
    <comment_count>5</comment_count>
      <attachid>191223</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-03-04 16:27:29 -0800</bug_when>
    <thetext>Comment on attachment 191223
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:3686
&gt; +                    { &quot;name&quot;: &quot;nodeId&quot;, &quot;$ref&quot;: &quot;DOM.NodeId&quot;, &quot;description&quot;: &quot;Root of the subtree for which we want to gather layers.&quot; }                ],

Formatting: The ending &apos;],&apos; should be on its own line, looks like the newline got lost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847441</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-05 01:42:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 191223 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191223&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorLayerTreeAgent.cpp:136
&gt; &gt; +        gatherLayersUsingRenderLayerHierarchy(errorString, renderer-&gt;enclosingLayer(), layers);
&gt; 
&gt; renderer-&gt;enclosingLayer() should just be toRenderLayerModelObject(renderer)-&gt;layer()

Will change in commit.

&gt; &gt; Source/WebCore/inspector/InspectorLayerTreeAgent.cpp:179
&gt; &gt; +    int id = domAgent-&gt;boundNodeId(node);
&gt; &gt; +    if (!id)
&gt; &gt; +        id = domAgent-&gt;pushNodeToFrontend(errorString, domAgent-&gt;boundNodeId(node-&gt;document()), node);
&gt; 
&gt; Don&apos;t use &apos;id&apos; in code; it will conflict with Objective-C&apos;s reserved word if this is ever turned into Obj-C++.

Good point. I&apos;ll rename to &quot;nodeId&quot;. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847442</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-05 01:42:46 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 191223 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191223&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:3686
&gt; &gt; +                    { &quot;name&quot;: &quot;nodeId&quot;, &quot;$ref&quot;: &quot;DOM.NodeId&quot;, &quot;description&quot;: &quot;Root of the subtree for which we want to gather layers.&quot; }                ],
&gt; 
&gt; Formatting: The ending &apos;],&apos; should be on its own line, looks like the newline got lost.

Not sure what happened in the diff, but the new line is there alright in the code, no worries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847498</commentid>
    <comment_count>8</comment_count>
      <attachid>191449</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-05 02:57:33 -0800</bug_when>
    <thetext>Created attachment 191449
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847521</commentid>
    <comment_count>9</comment_count>
      <attachid>191449</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 03:33:32 -0800</bug_when>
    <thetext>Comment on attachment 191449
Patch for landing

Clearing flags on attachment: 191449

Committed r144747: &lt;http://trac.webkit.org/changeset/144747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847522</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 03:33:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191223</attachid>
            <date>2013-03-04 06:32:00 -0800</date>
            <delta_ts>2013-03-05 02:57:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111312-20130304152746.patch</filename>
            <type>text/plain</type>
            <size>25004</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RjZDA2ODAwZjk5M2Mw
YjE4YWFiZWExZTQ1NjNlZDVjMjcwYzk0NS4uYTYwNTA2OTVmMDdjZmU4MmQ0NTYwMWM0MzcyMTZl
MTUxMWIwNjU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDEzLTAzLTA0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmV0cmlldmFsIG9mIGNvbXBvc2l0ZWQgbGF5ZXJzIGluIGEgZ2l2ZW4gRE9NIHN1YnRy
ZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMx
MgorCisgICAgICAgIE5ldyB0ZXN0IGZvciB0aGUgTGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUoKSBt
ZXRob2QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbAorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JM
YXllclRyZWVBZ2VudDo6bGF5ZXJzRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckxheWVyVHJlZUFnZW50OjpnYXRoZXJMYXllcnNVc2luZ1Jl
bmRlck9iamVjdEhpZXJhcmNoeSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRy
ZWVBZ2VudDo6Z2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJMYXllckhpZXJhcmNoeSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YnVpbGRPYmplY3RGb3JMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6aWRGb3JOb2RlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaDoKKyAgICAgICAg
KEluc3BlY3RvckxheWVyVHJlZUFnZW50KToKKworMjAxMy0wMy0wNCAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBleGlz
dGluZyBMYXllclRyZWVBZ2VudCBwcm90b2NvbCBBUElzCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyNTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCmluZGV4IGFiMjE5NzczYTBmMmFkOTExMzRjYjI1NTM0MWIzOThhN2Yy
MmIzZDYuLmZiZTMwYjI3NDZlM2FhZDhjZjMyM2U5NDg2ZDg4MGMzOTc0NTc2NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTM2NjIsMTEgKzM2NjIsMTIgQEAK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5mb3JtYXRpb24gYWJvdXQgYSBjb21w
b3NpdGluZyBsYXllci4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImxheWVySWQiLCAiJHJlZiI6ICJMYXllcklkIiwgImRl
c2NyaXB0aW9uIjogIlRoZSB1bmlxdWUgaWQgZm9yIHRoaXMgbGF5ZXIuIiB9LAorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIkRPTS5Ob2RlSWQiLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIGlkIGZvciB0aGUgbm9kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBsYXll
ci4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYm91bmRzIiwgIiRyZWYiOiAi
SW50UmVjdCIsICJkZXNjcmlwdGlvbiI6ICJCb3VuZHMgb2YgdGhlIGxheWVyLiIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc0NvbXBvc2l0ZWQiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB3aGV0aGVyIHRo
aXMgbGF5ZXIgaXMgY29tcG9zaXRlZC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicGFpbnRDb3VudCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiSW5kaWNhdGVzIGhvdyBtYW55IHRpbWUgdGhpcyBsYXllciBoYXMgcGFpbnRl
ZC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVtb3J5IiwgInR5cGUiOiAi
aW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFc3RpbWF0ZWQgbWVt
b3J5IHVzZWQgYnkgdGhpcyBsYXllci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY29tcG9zaXRlZEJvdW5kcyIsICIkcmVmIjogIkludFJlY3QiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGJvdW5kcyBvZiB0aGUgY29tcG9zaXRlZCBsYXllci4iIH0K
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYWludENvdW50IiwgInR5cGUiOiAiaW50
ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJJbmRpY2F0ZXMgaG93IG1hbnkgdGltZSB0aGlzIGxheWVy
IGhhcyBwYWludGVkLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZW1vcnki
LCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkVzdGltYXRlZCBtZW1vcnkgdXNl
ZCBieSB0aGlzIGxheWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb21w
b3NpdGVkQm91bmRzIiwgIiRyZWYiOiAiSW50UmVjdCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYm91
bmRzIG9mIHRoZSBjb21wb3NpdGVkIGxheWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc0luU2hhZG93VHJlZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBsYXllciBpcyBhc3Nv
Y2lhdGVkIHdpdGggYW4gZWxlbWVudCBob3N0ZWQgaW4gYSBzaGFkb3cgdHJlZS4iIH0KICAgICAg
ICAgICAgICAgICBdCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCkBAIC0zNjc4LDYgKzM2Nzks
MTUgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgY29tcG9zaXRpbmcgdHJl
ZSBpbnNwZWN0aW9uLiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAibGF5ZXJzRm9yTm9kZSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAi
RE9NLk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJSb290IG9mIHRoZSBzdWJ0cmVlIGZvciB3aGlj
aCB3ZSB3YW50IHRvIGdhdGhlciBsYXllcnMuIiB9ICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGxheWVyIHRyZWUgc3RydWN0dXJl
IG9mIHRoZSBjdXJyZW50IHBhZ2UuIiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsYXllcnMiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiTGF5ZXIiIH0sICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBsYXllcnMu
IiB9CisgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAg
ICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggNzAzZjY0N2NlMGQ4NGY0YTdjZjM5OGM1NzYwOTRm
ZjZkOWIwMmVmNy4uNTRjMTFlZGExMWQ4NGUzMjhlOTFhZDVhZjEzZmQyZmViYjQxZGU5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuY3BwCkBAIC0xMTEsMjUgKzExMSw3NiBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50
OjpyZW5kZXJMYXllckRlc3Ryb3llZChjb25zdCBSZW5kZXJMYXllciogcmVuZGVyTGF5ZQogICAg
IHVuYmluZChyZW5kZXJMYXllcik7CiB9CiAKLVBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkxheWVy
VHJlZTo6TGF5ZXI+IEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvckxheWVy
KFJlbmRlckxheWVyKiByZW5kZXJMYXllcikKK3ZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6
OmxheWVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiA+JiBs
YXllcnMpCiB7CisgICAgbGF5ZXJzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpM
YXllclRyZWU6OkxheWVyPjo6Y3JlYXRlKCk7CisKKyAgICBOb2RlKiBub2RlID0gbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpLT5ub2RlRm9ySWQobm9kZUlkKTsKKyAg
ICBpZiAoIW5vZGUpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIlByb3ZpZGVkIG5vZGUgaWQg
ZG9lc24ndCBtYXRjaCBhbnkga25vd24gbm9kZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAo
IXJlbmRlcmVyKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJOb2RlIGZvciBwcm92aWRlZCBu
b2RlIGlkIGRvZXNuJ3QgaGF2ZSBhIHJlbmRlcmVyIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGdhdGhlckxheWVyc1VzaW5nUmVuZGVyT2JqZWN0SGllcmFyY2h5KGVycm9yU3RyaW5n
LCByZW5kZXJlciwgbGF5ZXJzKTsKK30KKwordm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6
Z2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJPYmplY3RIaWVyYXJjaHkoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiA+JiBsYXllcnMpCit7CisgICAgaWYgKHJl
bmRlcmVyLT5oYXNMYXllcigpKSB7CisgICAgICAgIGdhdGhlckxheWVyc1VzaW5nUmVuZGVyTGF5
ZXJIaWVyYXJjaHkoZXJyb3JTdHJpbmcsIHJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpLCBsYXll
cnMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChyZW5kZXJlciA9IHJlbmRl
cmVyLT5maXJzdENoaWxkKCk7IHJlbmRlcmVyOyByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0U2li
bGluZygpKQorICAgICAgICBnYXRoZXJMYXllcnNVc2luZ1JlbmRlck9iamVjdEhpZXJhcmNoeShl
cnJvclN0cmluZywgcmVuZGVyZXIsIGxheWVycyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQ6OmdhdGhlckxheWVyc1VzaW5nUmVuZGVyTGF5ZXJIaWVyYXJjaHkoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBSZW5kZXJMYXllciogcmVuZGVyTGF5ZXIsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6TGF5ZXI+ID4mIGxheWVycykKK3sK
KyAgICBpZiAocmVuZGVyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKQorICAgICAgICBsYXllcnMtPmFk
ZEl0ZW0oYnVpbGRPYmplY3RGb3JMYXllcihlcnJvclN0cmluZywgcmVuZGVyTGF5ZXIpKTsKKwor
ICAgIGZvciAocmVuZGVyTGF5ZXIgPSByZW5kZXJMYXllci0+Zmlyc3RDaGlsZCgpOyByZW5kZXJM
YXllcjsgcmVuZGVyTGF5ZXIgPSByZW5kZXJMYXllci0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAg
Z2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJMYXllckhpZXJhcmNoeShlcnJvclN0cmluZywgcmVuZGVy
TGF5ZXIsIGxheWVycyk7Cit9CisKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6
TGF5ZXI+IEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvckxheWVyKEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyKQoreworICAgIE5v
ZGUqIG5vZGUgPSByZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+bm9kZSgpOworICAgIFJlbmRlckxh
eWVyQmFja2luZyogYmFja2luZyA9IHJlbmRlckxheWVyLT5iYWNraW5nKCk7CisKICAgICAvLyBC
YXNpYyBzZXQgb2YgcHJvcGVydGllcy4KICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkxheWVyVHJl
ZTo6TGF5ZXI+IGxheWVyT2JqZWN0ID0gVHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6TGF5ZXI6OmNy
ZWF0ZSgpCiAgICAgICAgIC5zZXRMYXllcklkKGJpbmQocmVuZGVyTGF5ZXIpKQotICAgICAgICAu
c2V0Qm91bmRzKGJ1aWxkT2JqZWN0Rm9ySW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KHJlbmRlckxh
eWVyLT5sb2NhbEJvdW5kaW5nQm94KCkpKSk7Ci0KLSAgICAvLyBPcHRpb25hbCBwcm9wZXJ0aWVz
IGZvciBjb21wb3NpdGVkIGxheWVycyBvbmx5LgotICAgIGlmIChyZW5kZXJMYXllci0+aXNDb21w
b3NpdGVkKCkpIHsKLSAgICAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0gcmVuZGVy
TGF5ZXItPmJhY2tpbmcoKTsKLSAgICAgICAgbGF5ZXJPYmplY3QtPnNldE1lbW9yeShiYWNraW5n
LT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpKTsKLSAgICAgICAgbGF5ZXJPYmplY3QtPnNl
dENvbXBvc2l0ZWRCb3VuZHMoYnVpbGRPYmplY3RGb3JJbnRSZWN0KGJhY2tpbmctPmNvbXBvc2l0
ZWRCb3VuZHMoKSkpOwotICAgICAgICBsYXllck9iamVjdC0+c2V0UGFpbnRDb3VudChiYWNraW5n
LT5ncmFwaGljc0xheWVyKCktPnJlcGFpbnRDb3VudCgpKTsKLSAgICAgICAgbGF5ZXJPYmplY3Qt
PnNldElzQ29tcG9zaXRlZCh0cnVlKTsKLSAgICB9CisgICAgICAgIC5zZXROb2RlSWQoaWRGb3JO
b2RlKGVycm9yU3RyaW5nLCBub2RlKSkKKyAgICAgICAgLnNldEJvdW5kcyhidWlsZE9iamVjdEZv
ckludFJlY3QoZW5jbG9zaW5nSW50UmVjdChyZW5kZXJMYXllci0+bG9jYWxCb3VuZGluZ0JveCgp
KSkpCisgICAgICAgIC5zZXRNZW1vcnkoYmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1h
dGUoKSkKKyAgICAgICAgLnNldENvbXBvc2l0ZWRCb3VuZHMoYnVpbGRPYmplY3RGb3JJbnRSZWN0
KGJhY2tpbmctPmNvbXBvc2l0ZWRCb3VuZHMoKSkpCisgICAgICAgIC5zZXRQYWludENvdW50KGJh
Y2tpbmctPmdyYXBoaWNzTGF5ZXIoKS0+cmVwYWludENvdW50KCkpOworCisgICAgaWYgKG5vZGUg
JiYgbm9kZS0+c2hhZG93SG9zdCgpKQorICAgICAgICBsYXllck9iamVjdC0+c2V0SXNJblNoYWRv
d1RyZWUodHJ1ZSk7CiAKICAgICByZXR1cm4gbGF5ZXJPYmplY3Q7CiB9CiAKK2ludCBJbnNwZWN0
b3JMYXllclRyZWVBZ2VudDo6aWRGb3JOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgTm9k
ZSogbm9kZSkKK3sKKyAgICBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCk7CisgICAgCisgICAgaW50IGlkID0gZG9t
QWdlbnQtPmJvdW5kTm9kZUlkKG5vZGUpOworICAgIGlmICghaWQpCisgICAgICAgIGlkID0gZG9t
QWdlbnQtPnB1c2hOb2RlVG9Gcm9udGVuZChlcnJvclN0cmluZywgZG9tQWdlbnQtPmJvdW5kTm9k
ZUlkKG5vZGUtPmRvY3VtZW50KCkpLCBub2RlKTsKKworICAgIHJldHVybiBpZDsKK30KKwogUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpJbnRSZWN0PiBJbnNwZWN0b3JMYXllclRy
ZWVBZ2VudDo6YnVpbGRPYmplY3RGb3JJbnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAg
ICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkludFJlY3Q6OmNyZWF0ZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCmlu
ZGV4IGZiNjNmMzI2Y2E3YjRkMTcxODZkNzNjYmZjNjEwMmJlM2IyZTU5NGIuLjk5M2RiYTUwODI2
Njc5NmJiMzYzMWY3YjE2ZWU0MDI2NTcwNDM1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1
YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgogICAgIHZpcnR1YWwgdm9p
ZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBsYXllcnNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50
IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVl
OjpMYXllcj4gPiYpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvckxheWVyVHJlZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2UqKTsKQEAg
LTc1LDggKzc2LDEzIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGJpbmQoY29uc3QgUmVuZGVyTGF5
ZXIqKTsKICAgICB2b2lkIHVuYmluZChjb25zdCBSZW5kZXJMYXllciopOwogCi0gICAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpMYXllcj4gYnVpbGRPYmplY3RGb3JMYXllcihS
ZW5kZXJMYXllciopOworICAgIHZvaWQgZ2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJPYmplY3RIaWVy
YXJjaHkoRXJyb3JTdHJpbmcqLCBSZW5kZXJPYmplY3QqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiA+Jik7CisgICAgdm9pZCBnYXRoZXJM
YXllcnNVc2luZ1JlbmRlckxheWVySGllcmFyY2h5KEVycm9yU3RyaW5nKiwgUmVuZGVyTGF5ZXIq
LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVy
PiA+Jik7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiBi
dWlsZE9iamVjdEZvckxheWVyKEVycm9yU3RyaW5nKiwgUmVuZGVyTGF5ZXIqKTsKICAgICBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkludFJlY3Q+IGJ1aWxkT2JqZWN0Rm9ySW50
UmVjdChjb25zdCBJbnRSZWN0Jik7CisKKyAgICBpbnQgaWRGb3JOb2RlKEVycm9yU3RyaW5nKiwg
Tm9kZSopOwogICAgICAgICAKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiAgICAgSW5zcGVj
dG9yRnJvbnRlbmQ6OkxheWVyVHJlZSogbV9mcm9udGVuZDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MGQwYzQxNDE3NzAx
MWE4N2Q2MGQ3NTRkMzI5M2ZkYjlhNmNiZDY2Li4yYjc3ZDAyMjY4OTIxMTJlYWFiZGE3NWFiZWUz
MDNmOGIwYjVkOTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMgQEAKIDIwMTMtMDMtMDQgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxv
dyByZXRyaWV2YWwgb2YgY29tcG9zaXRlZCBsYXllcnMgaW4gYSBnaXZlbiBET00gc3VidHJlZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMzEyCisK
KyAgICAgICAgSW50cm9kdWNlIHRoZSBMYXllclRyZWVBZ2VudC5sYXllcnNGb3JOb2RlKG5vZGUp
IG1ldGhvZCBhbGxvd2luZyB0aGUgZnJvbnQtZW5kCisgICAgICAgIHRvIGdhdGhlciBhbGwgY29t
cG9zaXRlZCBsYXllcnMgYXNzb2NpYXRlZCB3aXRoIG5vZGVzIGluIHRoZSBzdWJ0cmVlIG9mIHdo
aWNoCisgICAgICAgIHRoZSBwcm92aWRlZCBub2RlIGlzIHRoZSByb290LgorCisgICAgICAgIElu
IG9yZGVyIHRvIGdhdGhlciB0aGUgbGF5ZXJzIGluIHRoZSBzdWJ0cmVlLCB3ZSBmaXJzdCB0cmF2
ZXJzZSB0aGUgbm9kZSdzCisgICAgICAgIHJlbmRlcmVyJ3MgUmVuZGVyT2JqZWN0IGhpZXJhcmNo
eSBhbmQgd2hlbmV2ZXIgd2UgZW5jb3VudGVyIGEgUmVuZGVyT2JqZWN0CisgICAgICAgIHRoYXQg
aGFzIGEgUmVuZGVyTGF5ZXIsIHdlIHRoZW4gdHJhdmVyc2UgdGhhdCByZW5kZXJMYXllcidzIFJl
bmRlckxheWVyCisgICAgICAgIGhpZXJhcmNoeS4gVGhpcyBhbGxvd3MgZm9yIGEgcXVpY2sgcGF0
aCB0aHJvdWdoIHRoZSByZWxldmFudCBvYmplY3RzIHdlJ3JlCisgICAgICAgIGdhdGhlcmluZy4K
KworICAgICAgICBMYXllcnMgZ2F0aGVyZWQgd2lsbCBwdXNoIHRoZSBub2RlIHRvIHdoaWNoIHRo
ZXkncmUgYXNzb2NpYXRlZCwgYWxsb3dpbmcgYQorICAgICAgICBub2RlSWQgZm9yIHRoaXMgbGF5
ZXIgdG8gYmUgbGlzdGVkIGluIHRoZSBMYXllciBvYmplY3Qgc2VudCB0byB0aGUgZnJvbnQtZW5k
LgorICAgICAgICBJdCBpcyBjcnVjaWFsIHRvIGJlIGFibGUgdG8gcHJvdmlkZSBhIG5vZGVJZCBh
cyB3ZWxsIGFzIGEgbGF5ZXJJZCBmb3IgYSBMYXllcgorICAgICAgICBvYmplY3QgaW4gb3JkZXIg
dG8gYmUgYWJsZSB0byBjb3JyZWN0bHkgYXNzZXNzIG11dGF0aW9ucyBpbiB0aGUgbGF5ZXIgdHJl
ZS4KKyAgICAgICAgRm9yIGluc3RhbmNlLCBpdCBpcyBleHBlY3RlZCB0aGF0IGEgbm9kZSdzIGxh
eWVyIGJlIHJlcGxhY2VkIGJ5IGEgbmV3IGxheWVyCisgICAgICAgIHRvIHJlcHJlc2VudCBhIHNs
aWdodGx5IGRpZmZlcmVudCByZW5kZXJpbmcgb2YgaXRzIGNvbnRlbnQsIGJ1dCB0aGUgZnJvbnQt
ZW5kCisgICAgICAgIHNob3VsZCBiZSBhYmxlIHRvIHJlcHJlc2VudCB0aGlzIGxheWVyIGFzIGFu
IG9iamVjdCBmb3Igd2hpY2ggb25seSBjZXJ0YWluCisgICAgICAgIGF0dHJpYnV0ZXMgaGF2ZSBj
aGFuZ2VkIChsaWtlIHRoZSAicGFpbnRDb3VudCIgcHJvcGVydHkpLgorCisgICAgICAgIExheWVy
IG9iamVjdHMgYWxzbyBpbmRpY2F0ZSB3aGV0aGVyIHRoZXkncmUgYXNzb2NpYXRlZCB0byBhIG5v
ZGUgaG9zdGVkIGluIGEKKyAgICAgICAgc2hhZG93IHRyZWUgKHRoZSBvcHRpb25hbCAiaXNJblNo
YWRvd1RyZWUiIHByb3BlcnR5KSBpbiBvcmRlciBmb3IgdGhlIGZyb250LWVuZAorICAgICAgICB0
byBiZSBhYmxlIHRvIG9ubHkgc2hvdyB0aGlzIGxheWVyIGlmIHRoZSBvcHRpb24gdG8gc2hvdyBu
b2RlcyBob3N0ZWQgaW4gc2hhZG93CisgICAgICAgIHRyZWUgaXMgZW5hYmxlZC4KKworICAgICAg
ICBGaW5hbGx5LCBzaW5jZSB3ZSdyZSBvbmx5IGdhdGhlcmluZyBjb21wb3NpdGVkIGxheWVycywg
d2UncmUgcmVtb3ZpbmcgdGhlCisgICAgICAgICJpc0xheWVyQ29tcG9zaXRlZCIgcHJvcGVydHkg
YW5kIHJlbW92aW5nIHRoZSBvcHRpb25hbCBmbGFnIG9uIHRoZSAicGFpbnRDb3VudCIsCisgICAg
ICAgICJtZW1vcnkiIGFuZCAiY29tcG9zaXRlZEJvdW5kcyIgcHJvcGVydGllcy4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbDogQWRkZWQu
CisKKzIwMTMtMDMtMDQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKwogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgZXhpc3RpbmcgTGF5ZXJUcmVlQWdlbnQgcHJvdG9j
b2wgQVBJcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTExMjUxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXll
cnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
OTRkNjFiMjRkNzczMTg0YTZhOTUyODNmMzBjOTg4MTBlMmJkODY2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjY3IEBACisKKz09PSBFbmFibGUgdGhlIExheWVyVHJl
ZSBhZ2VudCA9PT0KKworUEFTUworCis9PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KKworUEFTUwor
Cis9PT0gR2V0IHRoZSBpbml0aWFsIGxheWVyIHRyZWUgPT09CisKK1BBU1MKKworWworICAgIHsK
KyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIi
LAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAg
InkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIsCisgICAgICAgICAgICAiaGVp
Z2h0IjogIm51bWJlciIKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAor
ICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAg
ICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAg
ICAgImhlaWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50Ijog
Im51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAg
ICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAg
ICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAs
CisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6
ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4
IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAg
ICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50Ijog
Im51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAg
ICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAg
ICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAs
CisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6
ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4
IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAg
ICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50Ijog
Im51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAg
ICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAg
ICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogMTAw
LAorICAgICAgICAgICAgImhlaWdodCI6IDEwMAorICAgICAgICB9LAorICAgICAgICAibWVtb3J5
IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAgICAg
IngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogMTAwLAor
ICAgICAgICAgICAgImhlaWdodCI6IDEwMAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3Vu
dCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIs
CisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAg
ICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6
IDUwLAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1v
cnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAg
ICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwK
KyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3Vu
dCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIs
CisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAg
ICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6
ICJudW1iZXIiLAorICAgICAgICAgICAgImhlaWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisg
ICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7
CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAi
d2lkdGgiOiAibnVtYmVyIiwKKyAgICAgICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAg
ICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfQorXQorCis9PT0gTWVz
c2FnZSB0aGUgcGFnZSB0byBhZGQgYSBuZXcgY29tcG9zaXRlZCBsYXllciA9PT0KKworUEFTUwor
Cis9PT0gR2V0IHRoZSBtb2RpZmllZCBsYXllciB0cmVlID09PQorCitQQVNTCisKK1sKKyAgICB7
CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVy
IiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAg
ICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAgICAgImhl
aWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwK
KyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAg
ICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKKyAgICAgICAg
ICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6
ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisg
ICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAg
ICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUw
LAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnki
OiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAi
eCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAg
ICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6
ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisg
ICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAg
ICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUw
LAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnki
OiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAi
eCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAg
ICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6
ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisg
ICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAg
ICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDEw
MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9y
eSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAg
ICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDEwMCwK
KyAgICAgICAgICAgICJoZWlnaHQiOiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgInBhaW50Q291
bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmci
LAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7CisgICAg
ICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgi
OiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAibWVt
b3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAg
ICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAs
CisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgInBhaW50Q291
bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmci
LAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7CisgICAg
ICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgi
OiAibnVtYmVyIiwKKyAgICAgICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAor
ICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjog
eworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAg
IndpZHRoIjogIm51bWJlciIsCisgICAgICAgICAgICAiaGVpZ2h0IjogIm51bWJlciIKKyAgICAg
ICAgfSwKKyAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAg
ICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisg
ICAgICAgICJib3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6
IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAor
ICAgICAgICB9LAorICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3Np
dGVkQm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAor
ICAgICAgICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAg
ICAgfSwKKyAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgorICAgIH0KK10KKworPT09IEdl
dCBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3bHkgaW5zZXJ0ZWQgbm9kZSA9PT0KKworUEFTUworCis9
PT0gVGVzdCBjb21wbGV0ZSwgYWxsIGV4cGVjdGVkIGNvbmRpdGlvbnMgbWV0ID09PQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1mb3It
bm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMt
Zm9yLW5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDU3OTU0M2IyMTc4OTU1MzZhMmI3NDVlMWQ4NzJl
YmJiYzlkYWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZnVuY3Rpb24gYWRkQ29t
cG9zaXRlZExheWVyKCkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImNvbXBvc2l0ZWQiOworICAgIGVs
ZW1lbnQuaWQgPSAibGFzdC1lbGVtZW50IjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGVsZW1lbnQpOworfTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGRvY3VtZW50Tm9k
ZTsKKyAgICB2YXIgaW5pdGlhbExheWVyczsKKyAgICB2YXIgZXZlbnRzQ291bnQgPSAwOworCisg
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkxheWVyVHJlZS5sYXllclRyZWVEaWRDaGFu
Z2UiXSA9IGZ1bmN0aW9uIChtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgIGV2ZW50c0NvdW50Kys7
CisgICAgfTsKKworICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7CisKKyAgICBmdW5jdGlvbiBl
bmFibGVMYXllclRyZWVBZ2VudChyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsKKyAgICAg
ICAgICAgIG5hbWU6ICJFbmFibGUgdGhlIExheWVyVHJlZSBhZ2VudCIsCisgICAgICAgICAgICBj
b21tYW5kOiAiTGF5ZXJUcmVlLmVuYWJsZSIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwK
KyAgICAgICAgICAgIGNhbGxiYWNrOiBnZXREb2N1bWVudAorICAgICAgICB9KTsKKyAgICB9Owor
ICAgIAorICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0
ZXAoeworICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgRG9jdW1lbnQiLAorICAgICAgICAgICAg
Y29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwK
KyAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRJbml0aWFsTGF5ZXJUcmVlCisgICAgICAgIH0pOwor
ICAgIH07CisgICAgCisgICAgZnVuY3Rpb24gZ2V0SW5pdGlhbExheWVyVHJlZShyZXN1bHQpCisg
ICAgeworICAgICAgICBkb2N1bWVudE5vZGUgPSByZXN1bHQucm9vdDsKKyAgICAgICAgc3RlcCh7
CisgICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBpbml0aWFsIGxheWVyIHRyZWUiLAorICAgICAg
ICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5sYXllcnNGb3JOb2RlIiwKKyAgICAgICAgICAgIHBh
cmFtZXRlcnM6IHsibm9kZUlkIjogZG9jdW1lbnROb2RlLm5vZGVJZH0sCisgICAgICAgICAgICBj
YWxsYmFjazogZ290SW5pdGlhbExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAg
ZnVuY3Rpb24gZ290SW5pdGlhbExheWVyVHJlZShyZXN1bHQpCisgICAgeworICAgICAgICBpbml0
aWFsTGF5ZXJzID0gcmVzdWx0LmxheWVyczsKKworICAgICAgICBkdW1wTGF5ZXJzKGluaXRpYWxM
YXllcnMpOworCisgICAgICAgIHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIk1lc3NhZ2UgdGhl
IHBhZ2UgdG8gYWRkIGEgbmV3IGNvbXBvc2l0ZWQgbGF5ZXIiLAorICAgICAgICAgICAgY29tbWFu
ZDogIlJ1bnRpbWUuZXZhbHVhdGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJleHByZXNz
aW9uIjogImFkZENvbXBvc2l0ZWRMYXllcigpIn0sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0
TW9kaWZpZWRMYXllclRyZWUKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdl
dE1vZGlmaWVkTGF5ZXJUcmVlKHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAg
ICAgICAgbmFtZTogIkdldCB0aGUgbW9kaWZpZWQgbGF5ZXIgdHJlZSIsCisgICAgICAgICAgICBj
b21tYW5kOiAiTGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUiLAorICAgICAgICAgICAgcGFyYW1ldGVy
czogeyJub2RlSWQiOiBkb2N1bWVudE5vZGUubm9kZUlkfSwKKyAgICAgICAgICAgIGNhbGxiYWNr
OiBnb3RNb2RpZmllZExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgdmFyIGxh
eWVyQ291bnQgPSAwOworCisgICAgZnVuY3Rpb24gZ290TW9kaWZpZWRMYXllclRyZWUocmVzdWx0
KQorICAgIHsKKyAgICAgICAgZHVtcExheWVycyhyZXN1bHQubGF5ZXJzKTsKKworICAgICAgICB2
YXIgbXV0YXRpb25zID0gbGF5ZXJNdXRhdGlvbnMoaW5pdGlhbExheWVycywgcmVzdWx0LmxheWVy
cyk7CisgICAgICAgIHZhciBuZXdMYXllciA9IG11dGF0aW9ucy5hZGRpdGlvbnNbMF07CisKKyAg
ICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiR2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBu
ZXdseSBpbnNlcnRlZCBub2RlIiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJET00uZ2V0QXR0cmli
dXRlcyIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IG5ld0xheWVyLm5vZGVJ
ZH0sCisgICAgICAgICAgICBjYWxsYmFjazogZ290Tm9kZUF0dHJpYnV0ZXMKKyAgICAgICAgfSk7
CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdvdE5vZGVBdHRyaWJ1dGVzKHJlc3VsdCkKKyAgICB7
CisgICAgICAgIHZhciBhdHRyaWJ1dGVzID0gYXR0cmlidXRlc0RpY3Rpb25hcnlGcm9tQXJyYXko
cmVzdWx0LmF0dHJpYnV0ZXMpOworICAgICAgICBpZiAoYXR0cmlidXRlcy5pZCAhPT0gImxhc3Qt
ZWxlbWVudCIpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogRGlkIG5vdCBv
YnRhaW4gdGhlIGV4cGVjdGVkIGVsZW1lbnQgZm9yIHRoZSBsYXN0IGluc2VydGVkIGxheWVyLiIp
OworCisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpCisgICAgeworICAgICAgICBpZiAoIWV2ZW50c0NvdW50KQorICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkZBSUw6IERpZCBub3QgcmVjZWl2ZSBsYXllclRyZWVEaWRDaGFuZ2Ug
ZXZlbnRzLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
XG49PT0gVGVzdCBjb21wbGV0ZSwgYWxsIGV4cGVjdGVkIGNvbmRpdGlvbnMgbWV0ID09PSIpOwor
CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIGxheWVyTXV0YXRpb25zKG9sZExheWVycywgbmV3TGF5ZXJzKQorICAgIHsKKyAgICAg
ICAgZnVuY3Rpb24gbGF5ZXJJZE1hcChsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIGxheWVy
LmxheWVySWQ7CisgICAgICAgIH0KKworICAgICAgICB2YXIgb2xkTGF5ZXJJZHMgPSBvbGRMYXll
cnMubWFwKGxheWVySWRNYXApOworICAgICAgICB2YXIgbmV3TGF5ZXJJZHMgPSBuZXdMYXllcnMu
bWFwKGxheWVySWRNYXApOworCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBhZGRpdGlv
bnM6IG5ld0xheWVycy5maWx0ZXIoZnVuY3Rpb24gKGxheWVyKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIChvbGRMYXllcklkcy5pbmRleE9mKGxheWVyLmxheWVySWQpID09PSAtMSk7CisgICAg
ICAgICAgICB9KSwKKyAgICAgICAgICAgIHJlbW92YWxzOiBvbGRMYXllcnMuZmlsdGVyKGZ1bmN0
aW9uIChsYXllcikgeworICAgICAgICAgICAgICAgIHJldHVybiAobmV3TGF5ZXJJZHMuaW5kZXhP
ZihsYXllci5sYXllcklkKSA9PT0gLTEpOworICAgICAgICAgICAgfSkKKyAgICAgICAgfTsKKyAg
ICB9OworCisgICAgZnVuY3Rpb24gYXR0cmlidXRlc0RpY3Rpb25hcnlGcm9tQXJyYXkoYXR0cmli
dXRlcykKKyAgICB7CisgICAgICAgIHZhciBkaWN0aW9uYXJ5ID0ge30KKyAgICAgICAgZm9yICh2
YXIgaSA9IDAsIGNvdW50ID0gYXR0cmlidXRlcy5sZW5ndGg7IGkgPCBjb3VudDsgaSArPSAyKSB7
CisgICAgICAgICAgICBkaWN0aW9uYXJ5W2F0dHJpYnV0ZXNbaV1dID0gYXR0cmlidXRlc1tpICsg
MV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CisgICAgfTsKKworICAg
IGZ1bmN0aW9uIGR1bXBMYXllcnMobGF5ZXJzKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcmVw
bGFjZXIoa2V5LCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGtleSA9PT0gImxh
eWVySWQiIHx8IGtleSA9PT0gIm5vZGVJZCIgfHwga2V5ID09PSAibWVtb3J5IiB8fCBrZXkgPT09
ICJwYWludENvdW50IikKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mKHZhbHVlKTsKKwor
ICAgICAgICAgICAgLy8gc29tZSB2YWx1ZXMgZGlmZmVyIGJhc2VkIG9uIHBvcnQsIGJ1dCB0aGUg
b25lcyB3ZSBtb3N0CisgICAgICAgICAgICAvLyBjYXJlIGFib3V0IHdpbGwgYWx3YXlzIGJlIGxl
c3Mgb3IgZXF1YWwgMTAwLgorICAgICAgICAgICAgaWYgKChrZXkgPT09ICJ3aWR0aCIgfHwga2V5
ID09PSAiaGVpZ2h0IikgJiYgdmFsdWUgPiAxMDApIAorICAgICAgICAgICAgICAgIHJldHVybiB0
eXBlb2YodmFsdWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdmFsdWU7Cisg
ICAgICAgIH07CisgICAgICAgIAorICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iICsgSlNP
Ti5zdHJpbmdpZnkobGF5ZXJzLCByZXBsYWNlciwgIiAgICAiKSk7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIHN0ZXAodGVzdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09
PSAiICsgdGVzdC5uYW1lICsgIiA9PT1cbiIpCisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQodGVzdC5jb21tYW5kLCB0ZXN0LnBhcmFtZXRlcnMsIGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpIHsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlT2JqZWN0Lmhhc093blByb3BlcnR5KCJlcnJv
ciIpKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6ICIgKyBtZXNz
YWdlT2JqZWN0LmVycm9yLm1lc3NhZ2UgKyAiICgiICsgbWVzc2FnZU9iamVjdC5lcnJvci5jb2Rl
ICsgIikiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKKyAgICAgICAgICAgIHRlc3QuY2FsbGJhY2sobWVzc2Fn
ZU9iamVjdC5yZXN1bHQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gYXNz
ZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQg
PT09IGFjdHVhbCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFt
ZSArICIuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
QUlMOiAiICsgbmFtZSArICIuIEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsg
YWN0dWFsKTsKKyAgICB9OworCit9OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29u
dGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKKyAgICBydW5UZXN0KCk7Cit9LCBmYWxzZSk7CisK
Kzwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIAorICAgIGRpdiB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwOworICAgICAgICBsZWZ0
OiAwOworICAgIH0KKyAgICAgIAorICAgIC5yZWd1bGFyIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFj
azsKKyAgICB9CisKKyAgICAuY29tcG9zaXRlZCB7CisgICAgICAgIHRvcDogMjVweDsKKyAgICAg
ICAgbGVmdDogMjVweDsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBw
eDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgfQorICAgICAgCisgICAgLm9mZnNldCB7CisgICAg
ICAgIGxlZnQ6IDIwMHB4OworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigw
KTsKKyAgICB9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDxkaXYgY2xhc3M9
InJlZ3VsYXIiPjwvZGl2PgorCisgICAgPGRpdiBjbGFzcz0iY29tcG9zaXRlZCI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBj
bGFzcz0icmVndWxhciBvZmZzZXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIj48
L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191449</attachid>
            <date>2013-03-05 02:57:33 -0800</date>
            <delta_ts>2013-03-05 03:33:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111312-20130305115336.patch</filename>
            <type>text/plain</type>
            <size>24872</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyNTM4YTlhZjFlY2Zi
NDExNmY0NTVkY2VlNjgxOWM2Y2VhY2U1OC4uYzcyMWU1ZTVlMzVhMjBjYjNkZTg2MzkyMzY0YjI4
OTgyYWYyN2UzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAzLTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmV0cmlldmFsIG9mIGNvbXBvc2l0ZWQgbGF5ZXJzIGluIGEgZ2l2ZW4gRE9NIHN1YnRy
ZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMx
MgorCisgICAgICAgIEludHJvZHVjZSB0aGUgTGF5ZXJUcmVlQWdlbnQubGF5ZXJzRm9yTm9kZShu
b2RlKSBtZXRob2QgYWxsb3dpbmcgdGhlIGZyb250LWVuZAorICAgICAgICB0byBnYXRoZXIgYWxs
IGNvbXBvc2l0ZWQgbGF5ZXJzIGFzc29jaWF0ZWQgd2l0aCBub2RlcyBpbiB0aGUgc3VidHJlZSBv
ZiB3aGljaAorICAgICAgICB0aGUgcHJvdmlkZWQgbm9kZSBpcyB0aGUgcm9vdC4KKworICAgICAg
ICBJbiBvcmRlciB0byBnYXRoZXIgdGhlIGxheWVycyBpbiB0aGUgc3VidHJlZSwgd2UgZmlyc3Qg
dHJhdmVyc2UgdGhlIG5vZGUncworICAgICAgICByZW5kZXJlcidzIFJlbmRlck9iamVjdCBoaWVy
YXJjaHkgYW5kIHdoZW5ldmVyIHdlIGVuY291bnRlciBhIFJlbmRlck9iamVjdAorICAgICAgICB0
aGF0IGhhcyBhIFJlbmRlckxheWVyLCB3ZSB0aGVuIHRyYXZlcnNlIHRoYXQgcmVuZGVyTGF5ZXIn
cyBSZW5kZXJMYXllcgorICAgICAgICBoaWVyYXJjaHkuIFRoaXMgYWxsb3dzIGZvciBhIHF1aWNr
IHBhdGggdGhyb3VnaCB0aGUgcmVsZXZhbnQgb2JqZWN0cyB3ZSdyZQorICAgICAgICBnYXRoZXJp
bmcuCisKKyAgICAgICAgTGF5ZXJzIGdhdGhlcmVkIHdpbGwgcHVzaCB0aGUgbm9kZSB0byB3aGlj
aCB0aGV5J3JlIGFzc29jaWF0ZWQsIGFsbG93aW5nIGEKKyAgICAgICAgbm9kZUlkIGZvciB0aGlz
IGxheWVyIHRvIGJlIGxpc3RlZCBpbiB0aGUgTGF5ZXIgb2JqZWN0IHNlbnQgdG8gdGhlIGZyb250
LWVuZC4KKyAgICAgICAgSXQgaXMgY3J1Y2lhbCB0byBiZSBhYmxlIHRvIHByb3ZpZGUgYSBub2Rl
SWQgYXMgd2VsbCBhcyBhIGxheWVySWQgZm9yIGEgTGF5ZXIKKyAgICAgICAgb2JqZWN0IGluIG9y
ZGVyIHRvIGJlIGFibGUgdG8gY29ycmVjdGx5IGFzc2VzcyBtdXRhdGlvbnMgaW4gdGhlIGxheWVy
IHRyZWUuCisgICAgICAgIEZvciBpbnN0YW5jZSwgaXQgaXMgZXhwZWN0ZWQgdGhhdCBhIG5vZGUn
cyBsYXllciBiZSByZXBsYWNlZCBieSBhIG5ldyBsYXllcgorICAgICAgICB0byByZXByZXNlbnQg
YSBzbGlnaHRseSBkaWZmZXJlbnQgcmVuZGVyaW5nIG9mIGl0cyBjb250ZW50LCBidXQgdGhlIGZy
b250LWVuZAorICAgICAgICBzaG91bGQgYmUgYWJsZSB0byByZXByZXNlbnQgdGhpcyBsYXllciBh
cyBhbiBvYmplY3QgZm9yIHdoaWNoIG9ubHkgY2VydGFpbgorICAgICAgICBhdHRyaWJ1dGVzIGhh
dmUgY2hhbmdlZCAobGlrZSB0aGUgInBhaW50Q291bnQiIHByb3BlcnR5KS4KKworICAgICAgICBM
YXllciBvYmplY3RzIGFsc28gaW5kaWNhdGUgd2hldGhlciB0aGV5J3JlIGFzc29jaWF0ZWQgdG8g
YSBub2RlIGhvc3RlZCBpbiBhCisgICAgICAgIHNoYWRvdyB0cmVlICh0aGUgb3B0aW9uYWwgImlz
SW5TaGFkb3dUcmVlIiBwcm9wZXJ0eSkgaW4gb3JkZXIgZm9yIHRoZSBmcm9udC1lbmQKKyAgICAg
ICAgdG8gYmUgYWJsZSB0byBvbmx5IHNob3cgdGhpcyBsYXllciBpZiB0aGUgb3B0aW9uIHRvIHNo
b3cgbm9kZXMgaG9zdGVkIGluIHNoYWRvdworICAgICAgICB0cmVlIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgRmluYWxseSwgc2luY2Ugd2UncmUgb25seSBnYXRoZXJpbmcgY29tcG9zaXRlZCBsYXll
cnMsIHdlJ3JlIHJlbW92aW5nIHRoZQorICAgICAgICAiaXNMYXllckNvbXBvc2l0ZWQiIHByb3Bl
cnR5IGFuZCByZW1vdmluZyB0aGUgb3B0aW9uYWwgZmxhZyBvbiB0aGUgInBhaW50Q291bnQiLAor
ICAgICAgICAibWVtb3J5IiBhbmQgImNvbXBvc2l0ZWRCb3VuZHMiIHByb3BlcnRpZXMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rv
ci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0bWwKKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6
OmxheWVyc0Zvck5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6Z2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJPYmplY3RIaWVy
YXJjaHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmdhdGhl
ckxheWVyc1VzaW5nUmVuZGVyTGF5ZXJIaWVyYXJjaHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmlkRm9yTm9kZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JMYXll
clRyZWVBZ2VudCk6CisKIDIwMTMtMDMtMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmVmYWN0b3IgVXNlckdlc3R1cmVJbmRpY2F0b3I6OlRva2Vu
IHRvIGJlIGEgdG9wLWxldmVsIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KaW5kZXggYWIyMTk3NzNhMGYyYWQ5MTEzNGNiMjU1MzQxYjM5OGE3ZjIyYjNkNi4uZmJl
MzBiMjc0NmUzYWFkOGNmMzIzZTk0ODZkODgwYzM5NzQ1NzY1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzY2MiwxMSArMzY2MiwxMiBAQAogICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJJbmZvcm1hdGlvbiBhYm91dCBhIGNvbXBvc2l0aW5nIGxh
eWVyLiIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAibGF5ZXJJZCIsICIkcmVmIjogIkxheWVySWQiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIHVuaXF1ZSBpZCBmb3IgdGhpcyBsYXllci4iIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgaWQgZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxheWVyLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJib3VuZHMiLCAiJHJlZiI6ICJJbnRSZWN0Iiwg
ImRlc2NyaXB0aW9uIjogIkJvdW5kcyBvZiB0aGUgbGF5ZXIuIiB9LAotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImlzQ29tcG9zaXRlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBsYXllciBp
cyBjb21wb3NpdGVkLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYWludENv
dW50IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJJbmRpY2F0ZXMgaG93IG1hbnkgdGltZSB0aGlzIGxheWVyIGhhcyBwYWludGVkLiIgfSwKLSAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZW1vcnkiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkVzdGltYXRlZCBtZW1vcnkgdXNlZCBi
eSB0aGlzIGxheWVyLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb21wb3Np
dGVkQm91bmRzIiwgIiRyZWYiOiAiSW50UmVjdCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJUaGUgYm91bmRzIG9mIHRoZSBjb21wb3NpdGVkIGxheWVyLiIgfQorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInBhaW50Q291bnQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRl
c2NyaXB0aW9uIjogIkluZGljYXRlcyBob3cgbWFueSB0aW1lIHRoaXMgbGF5ZXIgaGFzIHBhaW50
ZWQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1lbW9yeSIsICJ0eXBlIjog
ImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiRXN0aW1hdGVkIG1lbW9yeSB1c2VkIGJ5IHRoaXMg
bGF5ZXIuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbXBvc2l0ZWRCb3Vu
ZHMiLCAiJHJlZiI6ICJJbnRSZWN0IiwgImRlc2NyaXB0aW9uIjogIlRoZSBib3VuZHMgb2YgdGhl
IGNvbXBvc2l0ZWQgbGF5ZXIuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlz
SW5TaGFkb3dUcmVlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJJbmRpY2F0ZXMgd2hldGhlciB0aGlzIGxheWVyIGlzIGFzc29jaWF0ZWQgd2l0
aCBhbiBlbGVtZW50IGhvc3RlZCBpbiBhIHNoYWRvdyB0cmVlLiIgfQogICAgICAgICAgICAgICAg
IF0KICAgICAgICAgICAgIH0KICAgICAgICAgXSwKQEAgLTM2NzgsNiArMzY3OSwxNSBAQAogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImRpc2FibGUiLAogICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNhYmxlcyBjb21wb3NpdGluZyB0cmVlIGluc3BlY3Rp
b24uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJsYXllcnNGb3JOb2RlIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJET00uTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlJvb3Qgb2YgdGhlIHN1YnRyZWUgZm9yIHdoaWNoIHdlIHdhbnQg
dG8gZ2F0aGVyIGxheWVycy4iIH0gICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbGF5ZXIgdHJlZSBzdHJ1Y3R1cmUgb2YgdGhlIGN1
cnJlbnQgcGFnZS4iLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImxheWVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAi
JHJlZiI6ICJMYXllciIgfSwgImRlc2NyaXB0aW9uIjogIkNoaWxkIGxheWVycy4iIH0KKyAgICAg
ICAgICAgICAgICBdCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcAppbmRleCAzMWI4ZjIxYTFjNmI2MmY1NjczNjVkOGFlZDkyZTk0YWMxMGViMWRj
Li4yMmFiOGE3NGUyN2ViZjIxYjA2NGNhMGNhZjM2NzllOTBlYjYwN2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAg
LTEwOSwyNSArMTA5LDc2IEBAIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OnJlbmRlckxh
eWVyRGVzdHJveWVkKGNvbnN0IFJlbmRlckxheWVyKiByZW5kZXJMYXllCiAgICAgdW5iaW5kKHJl
bmRlckxheWVyKTsKIH0KIAotUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpMYXll
cj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTGF5ZXIoUmVuZGVyTGF5
ZXIqIHJlbmRlckxheWVyKQordm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6bGF5ZXJzRm9y
Tm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6TGF5ZXI+ID4mIGxheWVycykKIHsK
KyAgICBsYXllcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6
TGF5ZXI+OjpjcmVhdGUoKTsKKworICAgIE5vZGUqIG5vZGUgPSBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckRPTUFnZW50KCktPm5vZGVGb3JJZChub2RlSWQpOworICAgIGlmICghbm9k
ZSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiUHJvdmlkZWQgbm9kZSBpZCBkb2Vzbid0IG1h
dGNoIGFueSBrbm93biBub2RlIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIp
IHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vZGUgZm9yIHByb3ZpZGVkIG5vZGUgaWQgZG9l
c24ndCBoYXZlIGEgcmVuZGVyZXIiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZ2F0
aGVyTGF5ZXJzVXNpbmdSZW5kZXJPYmplY3RIaWVyYXJjaHkoZXJyb3JTdHJpbmcsIHJlbmRlcmVy
LCBsYXllcnMpOworfQorCit2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpnYXRoZXJMYXll
cnNVc2luZ1JlbmRlck9iamVjdEhpZXJhcmNoeShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkxheWVyVHJlZTo6TGF5ZXI+ID4mIGxheWVycykKK3sKKyAgICBpZiAocmVuZGVyZXItPmhh
c0xheWVyKCkpIHsKKyAgICAgICAgZ2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJMYXllckhpZXJhcmNo
eShlcnJvclN0cmluZywgdG9SZW5kZXJMYXllck1vZGVsT2JqZWN0KHJlbmRlcmVyKS0+bGF5ZXIo
KSwgbGF5ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAocmVuZGVyZXIg
PSByZW5kZXJlci0+Zmlyc3RDaGlsZCgpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+
bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgZ2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJPYmplY3RIaWVy
YXJjaHkoZXJyb3JTdHJpbmcsIHJlbmRlcmVyLCBsYXllcnMpOworfQorCit2b2lkIEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50OjpnYXRoZXJMYXllcnNVc2luZ1JlbmRlckxheWVySGllcmFyY2h5KEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyLCBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiA+JiBsYXll
cnMpCit7CisgICAgaWYgKHJlbmRlckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAgICAgbGF5
ZXJzLT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTGF5ZXIoZXJyb3JTdHJpbmcsIHJlbmRlckxheWVy
KSk7CisKKyAgICBmb3IgKHJlbmRlckxheWVyID0gcmVuZGVyTGF5ZXItPmZpcnN0Q2hpbGQoKTsg
cmVuZGVyTGF5ZXI7IHJlbmRlckxheWVyID0gcmVuZGVyTGF5ZXItPm5leHRTaWJsaW5nKCkpCisg
ICAgICAgIGdhdGhlckxheWVyc1VzaW5nUmVuZGVyTGF5ZXJIaWVyYXJjaHkoZXJyb3JTdHJpbmcs
IHJlbmRlckxheWVyLCBsYXllcnMpOworfQorCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpMYXll
clRyZWU6OkxheWVyPiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YnVpbGRPYmplY3RGb3JMYXll
cihFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFJlbmRlckxheWVyKiByZW5kZXJMYXllcikKK3sK
KyAgICBOb2RlKiBub2RlID0gcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPm5vZGUoKTsKKyAgICBS
ZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSByZW5kZXJMYXllci0+YmFja2luZygpOworCiAg
ICAgLy8gQmFzaWMgc2V0IG9mIHByb3BlcnRpZXMuCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpM
YXllclRyZWU6OkxheWVyPiBsYXllck9iamVjdCA9IFR5cGVCdWlsZGVyOjpMYXllclRyZWU6Okxh
eWVyOjpjcmVhdGUoKQogICAgICAgICAuc2V0TGF5ZXJJZChiaW5kKHJlbmRlckxheWVyKSkKLSAg
ICAgICAgLnNldEJvdW5kcyhidWlsZE9iamVjdEZvckludFJlY3QoZW5jbG9zaW5nSW50UmVjdChy
ZW5kZXJMYXllci0+bG9jYWxCb3VuZGluZ0JveCgpKSkpOwotCi0gICAgLy8gT3B0aW9uYWwgcHJv
cGVydGllcyBmb3IgY29tcG9zaXRlZCBsYXllcnMgb25seS4KLSAgICBpZiAocmVuZGVyTGF5ZXIt
PmlzQ29tcG9zaXRlZCgpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9
IHJlbmRlckxheWVyLT5iYWNraW5nKCk7Ci0gICAgICAgIGxheWVyT2JqZWN0LT5zZXRNZW1vcnko
YmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSk7Ci0gICAgICAgIGxheWVyT2Jq
ZWN0LT5zZXRDb21wb3NpdGVkQm91bmRzKGJ1aWxkT2JqZWN0Rm9ySW50UmVjdChiYWNraW5nLT5j
b21wb3NpdGVkQm91bmRzKCkpKTsKLSAgICAgICAgbGF5ZXJPYmplY3QtPnNldFBhaW50Q291bnQo
YmFja2luZy0+Z3JhcGhpY3NMYXllcigpLT5yZXBhaW50Q291bnQoKSk7Ci0gICAgICAgIGxheWVy
T2JqZWN0LT5zZXRJc0NvbXBvc2l0ZWQodHJ1ZSk7Ci0gICAgfQorICAgICAgICAuc2V0Tm9kZUlk
KGlkRm9yTm9kZShlcnJvclN0cmluZywgbm9kZSkpCisgICAgICAgIC5zZXRCb3VuZHMoYnVpbGRP
YmplY3RGb3JJbnRSZWN0KGVuY2xvc2luZ0ludFJlY3QocmVuZGVyTGF5ZXItPmxvY2FsQm91bmRp
bmdCb3goKSkpKQorICAgICAgICAuc2V0TWVtb3J5KGJhY2tpbmctPmJhY2tpbmdTdG9yZU1lbW9y
eUVzdGltYXRlKCkpCisgICAgICAgIC5zZXRDb21wb3NpdGVkQm91bmRzKGJ1aWxkT2JqZWN0Rm9y
SW50UmVjdChiYWNraW5nLT5jb21wb3NpdGVkQm91bmRzKCkpKQorICAgICAgICAuc2V0UGFpbnRD
b3VudChiYWNraW5nLT5ncmFwaGljc0xheWVyKCktPnJlcGFpbnRDb3VudCgpKTsKKworICAgIGlm
IChub2RlICYmIG5vZGUtPnNoYWRvd0hvc3QoKSkKKyAgICAgICAgbGF5ZXJPYmplY3QtPnNldElz
SW5TaGFkb3dUcmVlKHRydWUpOwogCiAgICAgcmV0dXJuIGxheWVyT2JqZWN0OwogfQogCitpbnQg
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmlkRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIE5vZGUqIG5vZGUpCit7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gbV9p
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpOworICAgIAorICAgIGludCBu
b2RlSWQgPSBkb21BZ2VudC0+Ym91bmROb2RlSWQobm9kZSk7CisgICAgaWYgKCFub2RlSWQpCisg
ICAgICAgIG5vZGVJZCA9IGRvbUFnZW50LT5wdXNoTm9kZVRvRnJvbnRlbmQoZXJyb3JTdHJpbmcs
IGRvbUFnZW50LT5ib3VuZE5vZGVJZChub2RlLT5kb2N1bWVudCgpKSwgbm9kZSk7CisKKyAgICBy
ZXR1cm4gbm9kZUlkOworfQorCiBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpMYXllclRyZWU6Oklu
dFJlY3Q+IEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvckludFJlY3QoY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICByZXR1cm4gVHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6
SW50UmVjdDo6Y3JlYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmgKaW5kZXggNjI0Mjk5MWQ1MzdjOWUxNWM4ZGY1YjUzODkzMWY2
NjhjMTM1MzZmNS4uNzcyMWIxOGFkMmFkNzljOWMwZmFjNDFlZjExMGYzNzRhZjY0YzgzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50
LmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9u
dC1lbmQuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CisgICAgdmlydHVhbCB2b2lkIGxheWVyc0Zv
ck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpMYXllclRyZWU6OkxheWVyPiA+Jik7CiAKIHByaXZhdGU6CiAgICAgSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKik7CkBAIC03NCw4ICs3NSwxMyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBiaW5k
KGNvbnN0IFJlbmRlckxheWVyKik7CiAgICAgdm9pZCB1bmJpbmQoY29uc3QgUmVuZGVyTGF5ZXIq
KTsKIAotICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkxheWVyVHJlZTo6TGF5ZXI+IGJ1aWxk
T2JqZWN0Rm9yTGF5ZXIoUmVuZGVyTGF5ZXIqKTsKKyAgICB2b2lkIGdhdGhlckxheWVyc1VzaW5n
UmVuZGVyT2JqZWN0SGllcmFyY2h5KEVycm9yU3RyaW5nKiwgUmVuZGVyT2JqZWN0KiwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpMYXllcj4gPiYpOwor
ICAgIHZvaWQgZ2F0aGVyTGF5ZXJzVXNpbmdSZW5kZXJMYXllckhpZXJhcmNoeShFcnJvclN0cmlu
ZyosIFJlbmRlckxheWVyKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
TGF5ZXJUcmVlOjpMYXllcj4gPiYpOworCisgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5
ZXJUcmVlOjpMYXllcj4gYnVpbGRPYmplY3RGb3JMYXllcihFcnJvclN0cmluZyosIFJlbmRlckxh
eWVyKik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6TGF5ZXJUcmVlOjpJbnRSZWN0PiBi
dWlsZE9iamVjdEZvckludFJlY3QoY29uc3QgSW50UmVjdCYpOworCisgICAgaW50IGlkRm9yTm9k
ZShFcnJvclN0cmluZyosIE5vZGUqKTsKICAgICAgICAgCiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6
OkxheWVyVHJlZSogbV9mcm9udGVuZDsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNkMWJkMjk2NmEyNjRkZTliYzkyMGMz
ZTk0YzMyN2IyOTQ1MjAzMGEuLjRlNjFjMmQxODUzZTNmODFjNjFhODRlMWVkM2E2NWE5ZDU1NmFk
NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMy0wNSAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IHJldHJpZXZh
bCBvZiBjb21wb3NpdGVkIGxheWVycyBpbiBhIGdpdmVuIERPTSBzdWJ0cmVlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEzMTIKKworICAgICAgICBO
ZXcgdGVzdCBmb3IgdGhlIExheWVyVHJlZS5sYXllcnNGb3JOb2RlKCkgbWV0aG9kLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90
b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbDogQWRkZWQu
CisKIDIwMTMtMDMtMDUgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBp
bnRlbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2Rl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5
ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTRkNjFiMjRkNzczMTg0YTZh
OTUyODNmMzBjOTg4MTBlMmJkODY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjY3IEBACisKKz09PSBFbmFibGUgdGhlIExheWVyVHJlZSBhZ2VudCA9PT0KKworUEFT
UworCis9PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KKworUEFTUworCis9PT0gR2V0IHRoZSBpbml0
aWFsIGxheWVyIHRyZWUgPT09CisKK1BBU1MKKworWworICAgIHsKKyAgICAgICAgImxheWVySWQi
OiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRz
IjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAg
ICAgIndpZHRoIjogIm51bWJlciIsCisgICAgICAgICAgICAiaGVpZ2h0IjogIm51bWJlciIKKyAg
ICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRl
ZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAg
ICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAgICAgImhlaWdodCI6ICJudW1i
ZXIiCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAor
ICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJu
dW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAg
ICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVp
Z2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAg
ICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAg
ICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6
IDUwCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAor
ICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJu
dW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAg
ICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVp
Z2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAg
ICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAg
ICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6
IDUwCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAor
ICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJu
dW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAg
ICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogMTAwLAorICAgICAgICAgICAgImhl
aWdodCI6IDEwMAorICAgICAgICB9LAorICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisgICAg
ICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAg
ICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogMTAwLAorICAgICAgICAgICAgImhlaWdo
dCI6IDEwMAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAg
fSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQi
OiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAg
ICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAg
ImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAg
ICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAg
ICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWln
aHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAg
fSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQi
OiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAg
ICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAg
ICAgICAgImhlaWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAi
bnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6
IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwK
KyAgICAgICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAorICAgICAgICAicGFp
bnRDb3VudCI6ICJudW1iZXIiCisgICAgfQorXQorCis9PT0gTWVzc2FnZSB0aGUgcGFnZSB0byBh
ZGQgYSBuZXcgY29tcG9zaXRlZCBsYXllciA9PT0KKworUEFTUworCis9PT0gR2V0IHRoZSBtb2Rp
ZmllZCBsYXllciB0cmVlID09PQorCitQQVNTCisKK1sKKyAgICB7CisgICAgICAgICJsYXllcklk
IjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5k
cyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAg
ICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAgICAgImhlaWdodCI6ICJudW1iZXIiCisg
ICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0
ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisg
ICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKKyAgICAgICAgICAgICJoZWlnaHQiOiAibnVt
YmVyIgorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwK
KyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAi
bnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAg
ICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhl
aWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAg
ICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAg
ICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQi
OiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwK
KyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAi
bnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAg
ICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhl
aWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAg
ICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAg
ICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQi
OiA1MAorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwK
KyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAi
bnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAg
ICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDEwMCwKKyAgICAgICAgICAgICJo
ZWlnaHQiOiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAg
ICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAg
ICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDEwMCwKKyAgICAgICAgICAgICJoZWln
aHQiOiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgorICAg
IH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAorICAgICAgICAibm9kZUlk
IjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisg
ICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAg
ICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisg
ICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAg
ICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVp
Z2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgorICAg
IH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAorICAgICAgICAibm9kZUlk
IjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisg
ICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKKyAgICAg
ICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAorICAgICAgICAibWVtb3J5Ijog
Im51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAgICAgIngi
OiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIs
CisgICAgICAgICAgICAiaGVpZ2h0IjogIm51bWJlciIKKyAgICAgICAgfSwKKyAgICAgICAgInBh
aW50Q291bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJz
dHJpbmciLAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7
CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAi
d2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAg
ICAibWVtb3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAg
ICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRo
IjogNTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgInBh
aW50Q291bnQiOiAibnVtYmVyIgorICAgIH0KK10KKworPT09IEdldCBhdHRyaWJ1dGVzIGZvciB0
aGUgbmV3bHkgaW5zZXJ0ZWQgbm9kZSA9PT0KKworUEFTUworCis9PT0gVGVzdCBjb21wbGV0ZSwg
YWxsIGV4cGVjdGVkIGNvbmRpdGlvbnMgbWV0ID09PQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZDU3OTU0M2IyMTc4OTU1MzZhMmI3NDVlMWQ4NzJlYmJiYzlkYWU1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMt
Zm9yLW5vZGUuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworZnVuY3Rpb24gYWRkQ29tcG9zaXRlZExheWVyKCkKK3sK
KyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGVs
ZW1lbnQuY2xhc3NOYW1lID0gImNvbXBvc2l0ZWQiOworICAgIGVsZW1lbnQuaWQgPSAibGFzdC1l
bGVtZW50IjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGRvY3VtZW50Tm9kZTsKKyAgICB2YXIgaW5pdGlh
bExheWVyczsKKyAgICB2YXIgZXZlbnRzQ291bnQgPSAwOworCisgICAgSW5zcGVjdG9yVGVzdC5l
dmVudEhhbmRsZXJbIkxheWVyVHJlZS5sYXllclRyZWVEaWRDaGFuZ2UiXSA9IGZ1bmN0aW9uICht
ZXNzYWdlT2JqZWN0KSB7CisgICAgICAgIGV2ZW50c0NvdW50Kys7CisgICAgfTsKKworICAgIGVu
YWJsZUxheWVyVHJlZUFnZW50KCk7CisKKyAgICBmdW5jdGlvbiBlbmFibGVMYXllclRyZWVBZ2Vu
dChyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJFbmFi
bGUgdGhlIExheWVyVHJlZSBhZ2VudCIsCisgICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVl
LmVuYWJsZSIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKKyAgICAgICAgICAgIGNhbGxi
YWNrOiBnZXREb2N1bWVudAorICAgICAgICB9KTsKKyAgICB9OworICAgIAorICAgIGZ1bmN0aW9u
IGdldERvY3VtZW50KHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAgICAgICAg
bmFtZTogIkdldCB0aGUgRG9jdW1lbnQiLAorICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXRE
b2N1bWVudCIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKKyAgICAgICAgICAgIGNhbGxi
YWNrOiBnZXRJbml0aWFsTGF5ZXJUcmVlCisgICAgICAgIH0pOworICAgIH07CisgICAgCisgICAg
ZnVuY3Rpb24gZ2V0SW5pdGlhbExheWVyVHJlZShyZXN1bHQpCisgICAgeworICAgICAgICBkb2N1
bWVudE5vZGUgPSByZXN1bHQucm9vdDsKKyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1l
OiAiR2V0IHRoZSBpbml0aWFsIGxheWVyIHRyZWUiLAorICAgICAgICAgICAgY29tbWFuZDogIkxh
eWVyVHJlZS5sYXllcnNGb3JOb2RlIiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsibm9kZUlk
IjogZG9jdW1lbnROb2RlLm5vZGVJZH0sCisgICAgICAgICAgICBjYWxsYmFjazogZ290SW5pdGlh
bExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZ290SW5pdGlh
bExheWVyVHJlZShyZXN1bHQpCisgICAgeworICAgICAgICBpbml0aWFsTGF5ZXJzID0gcmVzdWx0
LmxheWVyczsKKworICAgICAgICBkdW1wTGF5ZXJzKGluaXRpYWxMYXllcnMpOworCisgICAgICAg
IHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIk1lc3NhZ2UgdGhlIHBhZ2UgdG8gYWRkIGEgbmV3
IGNvbXBvc2l0ZWQgbGF5ZXIiLAorICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuZXZhbHVh
dGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJleHByZXNzaW9uIjogImFkZENvbXBvc2l0
ZWRMYXllcigpIn0sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0TW9kaWZpZWRMYXllclRyZWUK
KyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdldE1vZGlmaWVkTGF5ZXJUcmVl
KHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIkdldCB0
aGUgbW9kaWZpZWQgbGF5ZXIgdHJlZSIsCisgICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVl
LmxheWVyc0Zvck5vZGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiBkb2N1
bWVudE5vZGUubm9kZUlkfSwKKyAgICAgICAgICAgIGNhbGxiYWNrOiBnb3RNb2RpZmllZExheWVy
VHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgdmFyIGxheWVyQ291bnQgPSAwOworCisg
ICAgZnVuY3Rpb24gZ290TW9kaWZpZWRMYXllclRyZWUocmVzdWx0KQorICAgIHsKKyAgICAgICAg
ZHVtcExheWVycyhyZXN1bHQubGF5ZXJzKTsKKworICAgICAgICB2YXIgbXV0YXRpb25zID0gbGF5
ZXJNdXRhdGlvbnMoaW5pdGlhbExheWVycywgcmVzdWx0LmxheWVycyk7CisgICAgICAgIHZhciBu
ZXdMYXllciA9IG11dGF0aW9ucy5hZGRpdGlvbnNbMF07CisKKyAgICAgICAgc3RlcCh7CisgICAg
ICAgICAgICBuYW1lOiAiR2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBuZXdseSBpbnNlcnRlZCBub2Rl
IiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJET00uZ2V0QXR0cmlidXRlcyIsCisgICAgICAgICAg
ICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IG5ld0xheWVyLm5vZGVJZH0sCisgICAgICAgICAgICBj
YWxsYmFjazogZ290Tm9kZUF0dHJpYnV0ZXMKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIGdvdE5vZGVBdHRyaWJ1dGVzKHJlc3VsdCkKKyAgICB7CisgICAgICAgIHZhciBhdHRy
aWJ1dGVzID0gYXR0cmlidXRlc0RpY3Rpb25hcnlGcm9tQXJyYXkocmVzdWx0LmF0dHJpYnV0ZXMp
OworICAgICAgICBpZiAoYXR0cmlidXRlcy5pZCAhPT0gImxhc3QtZWxlbWVudCIpCisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogRGlkIG5vdCBvYnRhaW4gdGhlIGV4cGVjdGVk
IGVsZW1lbnQgZm9yIHRoZSBsYXN0IGluc2VydGVkIGxheWVyLiIpOworCisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCisgICAgeworICAg
ICAgICBpZiAoIWV2ZW50c0NvdW50KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUw6IERpZCBub3QgcmVjZWl2ZSBsYXllclRyZWVEaWRDaGFuZ2UgZXZlbnRzLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG49PT0gVGVzdCBjb21wbGV0
ZSwgYWxsIGV4cGVjdGVkIGNvbmRpdGlvbnMgbWV0ID09PSIpOworCisgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGxheWVyTXV0YXRp
b25zKG9sZExheWVycywgbmV3TGF5ZXJzKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbGF5ZXJJ
ZE1hcChsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIGxheWVyLmxheWVySWQ7CisgICAgICAg
IH0KKworICAgICAgICB2YXIgb2xkTGF5ZXJJZHMgPSBvbGRMYXllcnMubWFwKGxheWVySWRNYXAp
OworICAgICAgICB2YXIgbmV3TGF5ZXJJZHMgPSBuZXdMYXllcnMubWFwKGxheWVySWRNYXApOwor
CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBhZGRpdGlvbnM6IG5ld0xheWVycy5maWx0
ZXIoZnVuY3Rpb24gKGxheWVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChvbGRMYXllcklk
cy5pbmRleE9mKGxheWVyLmxheWVySWQpID09PSAtMSk7CisgICAgICAgICAgICB9KSwKKyAgICAg
ICAgICAgIHJlbW92YWxzOiBvbGRMYXllcnMuZmlsdGVyKGZ1bmN0aW9uIChsYXllcikgeworICAg
ICAgICAgICAgICAgIHJldHVybiAobmV3TGF5ZXJJZHMuaW5kZXhPZihsYXllci5sYXllcklkKSA9
PT0gLTEpOworICAgICAgICAgICAgfSkKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgZnVuY3Rp
b24gYXR0cmlidXRlc0RpY3Rpb25hcnlGcm9tQXJyYXkoYXR0cmlidXRlcykKKyAgICB7CisgICAg
ICAgIHZhciBkaWN0aW9uYXJ5ID0ge30KKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNvdW50ID0g
YXR0cmlidXRlcy5sZW5ndGg7IGkgPCBjb3VudDsgaSArPSAyKSB7CisgICAgICAgICAgICBkaWN0
aW9uYXJ5W2F0dHJpYnV0ZXNbaV1dID0gYXR0cmlidXRlc1tpICsgMV07CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGR1bXBMYXll
cnMobGF5ZXJzKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcmVwbGFjZXIoa2V5LCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKGtleSA9PT0gImxheWVySWQiIHx8IGtleSA9PT0g
Im5vZGVJZCIgfHwga2V5ID09PSAibWVtb3J5IiB8fCBrZXkgPT09ICJwYWludENvdW50IikKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mKHZhbHVlKTsKKworICAgICAgICAgICAgLy8gc29t
ZSB2YWx1ZXMgZGlmZmVyIGJhc2VkIG9uIHBvcnQsIGJ1dCB0aGUgb25lcyB3ZSBtb3N0CisgICAg
ICAgICAgICAvLyBjYXJlIGFib3V0IHdpbGwgYWx3YXlzIGJlIGxlc3Mgb3IgZXF1YWwgMTAwLgor
ICAgICAgICAgICAgaWYgKChrZXkgPT09ICJ3aWR0aCIgfHwga2V5ID09PSAiaGVpZ2h0IikgJiYg
dmFsdWUgPiAxMDApIAorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YodmFsdWUpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH07CisgICAgICAg
IAorICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iICsgSlNPTi5zdHJpbmdpZnkobGF5ZXJz
LCByZXBsYWNlciwgIiAgICAiKSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkK
KyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsgdGVzdC5uYW1lICsg
IiA9PT1cbiIpCisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQodGVzdC5jb21tYW5k
LCB0ZXN0LnBhcmFtZXRlcnMsIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAg
IGlmIChtZXNzYWdlT2JqZWN0Lmhhc093blByb3BlcnR5KCJlcnJvciIpKSB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6ICIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLm1l
c3NhZ2UgKyAiICgiICsgbWVzc2FnZU9iamVjdC5lcnJvci5jb2RlICsgIikiKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBB
U1MiKTsKKyAgICAgICAgICAgIHRlc3QuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOwor
ICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwg
ZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIu
IEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKKyAgICB9Owor
Cit9OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0
aW9uICgpIHsKKyAgICBydW5UZXN0KCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICAgIAorICAgIGRpdiB7CisgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgdG9wOiAwOworICAgICAgICBsZWZ0OiAwOworICAgIH0KKyAgICAg
IAorICAgIC5yZWd1bGFyIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICB9CisKKyAgICAu
Y29tcG9zaXRlZCB7CisgICAgICAgIHRvcDogMjVweDsKKyAgICAgICAgbGVmdDogMjVweDsKKyAg
ICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVoo
MCk7CisgICAgfQorICAgICAgCisgICAgLm9mZnNldCB7CisgICAgICAgIGxlZnQ6IDIwMHB4Owor
ICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICB9CisKKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDxkaXYgY2xhc3M9InJlZ3VsYXIiPjwvZGl2Pgor
CisgICAgPGRpdiBjbGFzcz0iY29tcG9zaXRlZCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbXBv
c2l0ZWQiPjwvZGl2PgorICAgIDwvZGl2PgorCisgICAgPGRpdiBjbGFzcz0icmVndWxhciBvZmZz
ZXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4K
KworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>