<?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>113148</bug_id>
          
          <creation_ts>2013-03-24 00:03:38 -0700</creation_ts>
          <short_desc>Web Inspector: Use generate-inspector-protocol-version to list valid public API changes</short_desc>
          <delta_ts>2013-03-25 06:55:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vladislav Kaznacheev">kaznacheev</reporter>
          <assigned_to name="Vladislav Kaznacheev">kaznacheev</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>862322</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-03-24 00:03:38 -0700</bug_when>
    <thetext>generate-inspector-protocol-version script can check the current Inspector.json for incompatibilities with the fixed baseline version. It would be nice if it could also list all valid changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862323</commentid>
    <comment_count>1</comment_count>
      <attachid>194737</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-03-24 00:12:50 -0700</bug_when>
    <thetext>Created attachment 194737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862326</commentid>
    <comment_count>2</comment_count>
      <attachid>194737</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-24 00:31:51 -0700</bug_when>
    <thetext>Comment on attachment 194737
Patch

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

&gt; Source/WebCore/inspector/generate-inspector-protocol-version:61
&gt; +def translate_messages(messages, subst_map):

this is a fairly strange pattern. i&apos;d rather build a diff using constants (added, removed, changed) and then formatted it using corresponding strings

&gt; Source/WebCore/inspector/generate-inspector-protocol-version:454
&gt; +            sys.stderr.write(&quot;  Public changes since %s\n&quot; % version)

This is not error. Just use print.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862405</commentid>
    <comment_count>3</comment_count>
      <attachid>194764</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-03-24 12:57:37 -0700</bug_when>
    <thetext>Created attachment 194764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862408</commentid>
    <comment_count>4</comment_count>
      <attachid>194737</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-03-24 13:00:33 -0700</bug_when>
    <thetext>Comment on attachment 194737
Patch

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

&gt;&gt; Source/WebCore/inspector/generate-inspector-protocol-version:61
&gt;&gt; +def translate_messages(messages, subst_map):
&gt; 
&gt; this is a fairly strange pattern. i&apos;d rather build a diff using constants (added, removed, changed) and then formatted it using corresponding strings

And I was so proud of it. Rewrote it in a more transparent way.

&gt;&gt; Source/WebCore/inspector/generate-inspector-protocol-version:454
&gt;&gt; +            sys.stderr.write(&quot;  Public changes since %s\n&quot; % version)
&gt; 
&gt; This is not error. Just use print.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862715</commentid>
    <comment_count>5</comment_count>
      <attachid>194764</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 06:55:10 -0700</bug_when>
    <thetext>Comment on attachment 194764
Patch

Clearing flags on attachment: 194764

Committed r146765: &lt;http://trac.webkit.org/changeset/146765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862716</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-25 06:55:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194737</attachid>
            <date>2013-03-24 00:12:50 -0700</date>
            <delta_ts>2013-03-24 13:00:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113148-20130324110834.patch</filename>
            <type>text/plain</type>
            <size>18721</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRkOGY2ZGFlZDNiYjk5
ZmQwYWU2ZjU4YTJiNjdjNmI5NmU1NzYzYS4uMDRhODkwZjQ5YWRhOGE1ODVkMGE1N2IxY2FjOTMw
YzBiYTdiM2Q1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTI0ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFVzZSBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbiB0byBs
aXN0IHZhbGlkIHB1YmxpYyBBUEkgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMTQ4CisKKyAgICAgICAgQWRkZWQgLS1zaG93LWNoYW5n
ZXMgY29tbWFuZCBsaW5lIG9wdGlvbi4gVXNlZCBleGlzdGluZyBjb21wYXJlX3NjaGVtYXMgbWV0
aG9kIHRvIGRvIGEgcmV2ZXJzZQorICAgICAgICBjb21wYXJlLiBGaXhlZCBhIG51bWJlciBvZiBz
bWFsbCBwcm9ibGVtcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbjoK
KyAgICAgICAgKG5hbWVkX2xpc3RfdG9fbWFwKToKKyAgICAgICAgKHRyYW5zbGF0ZV9tZXNzYWdl
cyk6CisgICAgICAgIChjb21wYXJlX3NjaGVtYXMpOgorICAgICAgICAoY29tcGFyZV9zY2hlbWFz
X3JldmVyc2UpOgorICAgICAgICAoY29tcGFyZV9jb21tYW5kcyk6CisgICAgICAgIChjb21wYXJl
X2V2ZW50cyk6CisgICAgICAgIChjb21wYXJlX3BhcmFtc19saXN0KToKKyAgICAgICAgKGNvbXBh
cmVfdHlwZXMpOgorICAgICAgICAoc2VsZl90ZXN0KToKKyAgICAgICAgKHNlbGZfdGVzdC5jcmVh
dGVfdGVzdF9zY2hlbWFfMSk6CisgICAgICAgIChzZWxmX3Rlc3QuY3JlYXRlX3Rlc3Rfc2NoZW1h
XzIpOgorICAgICAgICAoc2VsZl90ZXN0LmlzX3N1YnNldCk6CisgICAgICAgIChzZWxmX3Rlc3Qu
ZXJyb3JzX21hdGNoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAzLTIwICBBcnZpZCBOaWxz
c29uICA8YW5pbHNzb25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gY29tcG9zaXRp
bmcvaWZyYW1lcy9zY3JvbGwtZml4ZWQtdHJhbnNmb3JtZWQtZWxlbWVudC5odG1sIGZhaWxzIGlu
IG1hbnVhbCB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNpb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNpb24KaW5kZXggMzhhMGY5OGMzM2M5
YzJiNGRmYTRiZTgwODAxZjA0N2IzMDliM2I0Ny4uNmRmZjVjODQwNmY3YTQ0ZmVmNzJiMzgyM2I4
MTdmNzQ2N2VkYjk4NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVy
YXRlLWluc3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbgpAQCAtMzIsMTIgKzMyLDE1
IEBACiAjIFRlc3RzIHRoYXQgc3Vic2VxdWVudCBwcm90b2NvbCBjaGFuZ2VzIGFyZSBub3QgYnJl
YWtpbmcgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAjIEZvbGxvd2luZyB2aW9sYXRpb25zIGFy
ZSByZXBvcnRlZDoKICMKKyMgICAtIERvbWFpbiBoYXMgYmVlbiByZW1vdmVkCiAjICAgLSBDb21t
YW5kIGhhcyBiZWVuIHJlbW92ZWQKICMgICAtIFJlcXVpcmVkIGNvbW1hbmQgcGFyYW1ldGVyIHdh
cyBhZGRlZCAoY291bGQgYmUgYSBwYXJ0IG9mIHJlZmVyZW5jZWQgdHlwZSkKICMgICAtIFJlcXVp
cmVkIHJlc3BvbnNlIHBhcmFtZXRlciB3YXMgcmVtb3ZlZAogIyAgIC0gRXZlbnQgaGFzIGJlZW4g
cmVtb3ZlZAogIyAgIC0gUmVxdWlyZWQgZXZlbnQgcGFyYW1ldGVyIHdhcyByZW1vdmVkIChjb3Vs
ZCBiZSBhIHBhcnQgb2YgcmVmZXJlbmNlZCB0eXBlKQorIyAgIC0gUGFyYW1ldGVyIHR5cGUgaGFz
IGNoYW5nZWQuCiAjCisjIEFkZGluZyAtLXNob3dfY2hhbmdlcyB0byB0aGUgY29tbWFuZCBsaW5l
IHByaW50cyBvdXQgYSBsaXN0IG9mIHZhbGlkIHB1YmxpYyBBUEkgY2hhbmdlcy4KIAogaW1wb3J0
IG9zLnBhdGgKIGltcG9ydCByZQpAQCAtNTUsOSArNTgsMTYgQEAgZGVmIG5hbWVkX2xpc3RfdG9f
bWFwKGNvbnRhaW5lciwgbmFtZSwga2V5KToKICAgICAgICAgcmV0dXJuIGxpc3RfdG9fbWFwKGNv
bnRhaW5lcltuYW1lXSwga2V5KQogICAgIHJldHVybiB7fQogCi1kZWYgcHJpbnRfZXJyb3JzKGRv
bWFpbl9uYW1lLCBtZXRob2RfbmFtZSwgbG9jYWxfZXJyb3JzLCBlcnJvcnMpOgotICAgIGZvciBl
cnJvciBpbiBsb2NhbF9lcnJvcnM6Ci0gICAgICAgIGVycm9ycy5hcHBlbmQoIiVzLiVzOiAlcyIg
JSAoZG9tYWluX25hbWUsIG1ldGhvZF9uYW1lLCBlcnJvcikpCitkZWYgdHJhbnNsYXRlX21lc3Nh
Z2VzKG1lc3NhZ2VzLCBzdWJzdF9tYXApOgorICAgIHJlc3VsdHMgPSBbXQorICAgIGZvciBtZXNz
YWdlIGluIG1lc3NhZ2VzOgorICAgICAgICByZXN1bHQgPSBtZXNzYWdlCisgICAgICAgIGZvciBr
ZXkgaW4gc3Vic3RfbWFwOgorICAgICAgICAgICAgaWYga2V5IGluIHJlc3VsdDoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZS5zdWIoa2V5LCBzdWJzdF9tYXBba2V5XSwgcmVzdWx0KQorICAg
ICAgICAgICAgICAgIGJyZWFrICAjIE9ubHkgcmVwbGFjZSBvbmNlIHRvIGF2b2lkIGNpcmNsZXMu
CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlc3VsdCkKKyAgICByZXR1cm4gcmVzdWx0cwogCiBk
ZWYgY29tcGFyZV9zY2hlbWFzKHNjaGVtYV8xLCBzY2hlbWFfMik6CiAgICAgZXJyb3JzID0gW10K
QEAgLTcwLDExICs4MCwyMSBAQCBkZWYgY29tcGFyZV9zY2hlbWFzKHNjaGVtYV8xLCBzY2hlbWFf
Mik6CiAgICAgZm9yIG5hbWUgaW4gZG9tYWluc19ieV9uYW1lXzE6CiAgICAgICAgIGRvbWFpbl8x
ID0gZG9tYWluc19ieV9uYW1lXzFbbmFtZV0KICAgICAgICAgaWYgbm90IG5hbWUgaW4gZG9tYWlu
c19ieV9uYW1lXzI6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJEb21haW4gJXMgaXMgbWlz
c2luZ1xuIikKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIiVzOiBkb21haW4gaXMgbWlzc2lu
ZyIgJSBuYW1lKQogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgY29tcGFyZV9kb21haW5z
KGRvbWFpbl8xLCBkb21haW5zX2J5X25hbWVfMltuYW1lXSwgdHlwZXNfMSwgdHlwZXNfMiwgZXJy
b3JzKQogICAgIHJldHVybiBlcnJvcnMKIAorZGVmIGNvbXBhcmVfc2NoZW1hc19yZXZlcnNlKHNj
aGVtYV8xLCBzY2hlbWFfMik6CisgICAgY2hhbmdlcyA9IGNvbXBhcmVfc2NoZW1hcyhzY2hlbWFf
Miwgc2NoZW1hXzEpCisgICAgIyBSZXZlcnNlIHRoZSBtZWFuaW5nIG9mIHRoZSBtZXNzYWdlcy4K
KyAgICByZXR1cm4gdHJhbnNsYXRlX21lc3NhZ2VzKGNoYW5nZXMsIHsKKyAgICAgICAgImlzIG1p
c3NpbmciOiAiaXMgbmV3IiwKKyAgICAgICAgImlzIHVuZXhwZWN0ZWQiOiAiaXMgcmVtb3ZlZCIs
CisgICAgICAgICJpcyBub3ciOiAidXNlZCB0byBiZSIsCisgICAgICAgICJ1c2VkIHRvIGJlIjog
ImlzIG5vdyIKKyAgICB9KQorCiBkZWYgY29tcGFyZV9kb21haW5zKGRvbWFpbl8xLCBkb21haW5f
MiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBlcnJvcnMpOgogICAgIGRvbWFpbl9uYW1lID0g
ZG9tYWluXzFbImRvbWFpbiJdCiAgICAgY29tbWFuZHNfMSA9IG5hbWVkX2xpc3RfdG9fbWFwKGRv
bWFpbl8xLCAiY29tbWFuZHMiLCAibmFtZSIpCkBAIC05Niw1NyArMTE2LDcwIEBAIGRlZiBjb21w
YXJlX2RvbWFpbnMoZG9tYWluXzEsIGRvbWFpbl8yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIs
IGVycm9ycyk6CiAgICAgICAgIGNvbXBhcmVfZXZlbnRzKGRvbWFpbl9uYW1lLCBldmVudF8xLCBl
dmVudHNfMltuYW1lXSwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBlcnJvcnMpCiAKIGRlZiBj
b21wYXJlX2NvbW1hbmRzKGRvbWFpbl9uYW1lLCBjb21tYW5kXzEsIGNvbW1hbmRfMiwgdHlwZXNf
bWFwXzEsIHR5cGVzX21hcF8yLCBlcnJvcnMpOgorICAgIGNvbnRleHQgPSBkb21haW5fbmFtZSAr
ICIuIiArIGNvbW1hbmRfMVsibmFtZSJdCisKICAgICBjb21tYW5kX2Vycm9ycyA9IFtdCiAgICAg
cGFyYW1zXzEgPSBuYW1lZF9saXN0X3RvX21hcChjb21tYW5kXzEsICJwYXJhbWV0ZXJzIiwgIm5h
bWUiKQogICAgIHBhcmFtc18yID0gbmFtZWRfbGlzdF90b19tYXAoY29tbWFuZF8yLCAicGFyYW1l
dGVycyIsICJuYW1lIikKLSAgICAjIE5vdGUgdGhlIHJldmVyc2VkIG9yZGVyOiB3ZSBhbGxvdyBy
ZW1vdmluZyBwYXJhbWV0ZXJzLgotICAgIGNvbXBhcmVfcGFyYW1zX2xpc3QocGFyYW1zXzIsIHBh
cmFtc18xLCB0eXBlc19tYXBfMiwgdHlwZXNfbWFwXzEsIDAsIGNvbW1hbmRfZXJyb3JzKQorICAg
ICMgTm90ZSB0aGUgcmV2ZXJzZWQgb3JkZXI6IHdlIGFsbG93IHJlbW92aW5nIGJ1dCBmb3JiaWQg
YWRkaW5nIHBhcmFtZXRlcnMuCisgICAgY29tcGFyZV9wYXJhbXNfbGlzdChjb250ZXh0LCAicGFy
YW1ldGVyIiwgcGFyYW1zXzIsIHBhcmFtc18xLCB0eXBlc19tYXBfMiwgdHlwZXNfbWFwXzEsIDAs
IGNvbW1hbmRfZXJyb3JzKQorICAgICMgUmV2ZXJzZSB0aGUgbWVhbmluZyBvZiB0aGUgbWVzc2Fn
ZXMuCisgICAgY29tbWFuZF9lcnJvcnMgPSB0cmFuc2xhdGVfbWVzc2FnZXMoY29tbWFuZF9lcnJv
cnMsIHsKKyAgICAgICAgImlzIG1pc3NpbmciOiAiaXMgdW5leHBlY3RlZCIsCisgICAgICAgICJp
cyBub3ciOiAidXNlZCB0byBiZSIsCisgICAgfSkKKyAgICBmb3IgZXJyb3IgaW4gY29tbWFuZF9l
cnJvcnM6CisgICAgICAgIGVycm9ycy5hcHBlbmQoZXJyb3IpCiAKICAgICByZXR1cm5zXzEgPSBu
YW1lZF9saXN0X3RvX21hcChjb21tYW5kXzEsICJyZXR1cm5zIiwgIm5hbWUiKQogICAgIHJldHVy
bnNfMiA9IG5hbWVkX2xpc3RfdG9fbWFwKGNvbW1hbmRfMiwgInJldHVybnMiLCAibmFtZSIpCi0g
ICAgY29tcGFyZV9wYXJhbXNfbGlzdChyZXR1cm5zXzEsIHJldHVybnNfMiwgdHlwZXNfbWFwXzEs
IHR5cGVzX21hcF8yLCAwLCBjb21tYW5kX2Vycm9ycykKLSAgICBwcmludF9lcnJvcnMoZG9tYWlu
X25hbWUsIGNvbW1hbmRfMVsibmFtZSJdLCBjb21tYW5kX2Vycm9ycywgZXJyb3JzKQorICAgIGNv
bXBhcmVfcGFyYW1zX2xpc3QoY29udGV4dCwgInJlc3BvbnNlIHBhcmFtZXRlciIsIHJldHVybnNf
MSwgcmV0dXJuc18yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIDAsIGVycm9ycykKIAogZGVm
IGNvbXBhcmVfZXZlbnRzKGRvbWFpbl9uYW1lLCBldmVudF8xLCBldmVudF8yLCB0eXBlc19tYXBf
MSwgdHlwZXNfbWFwXzIsIGVycm9ycyk6Ci0gICAgZXZlbnRfZXJyb3JzID0gW10KKyAgICBjb250
ZXh0ID0gZG9tYWluX25hbWUgKyAiLiIgKyBldmVudF8xWyJuYW1lIl0KICAgICBwYXJhbXNfMSA9
IG5hbWVkX2xpc3RfdG9fbWFwKGV2ZW50XzEsICJwYXJhbWV0ZXJzIiwgIm5hbWUiKQogICAgIHBh
cmFtc18yID0gbmFtZWRfbGlzdF90b19tYXAoZXZlbnRfMiwgInBhcmFtZXRlcnMiLCAibmFtZSIp
Ci0gICAgY29tcGFyZV9wYXJhbXNfbGlzdChwYXJhbXNfMSwgcGFyYW1zXzIsIHR5cGVzX21hcF8x
LCB0eXBlc19tYXBfMiwgMCwgZXZlbnRfZXJyb3JzKQotICAgIHByaW50X2Vycm9ycyhkb21haW5f
bmFtZSwgZXZlbnRfMVsibmFtZSJdLCBldmVudF9lcnJvcnMsIGVycm9ycykKKyAgICBjb21wYXJl
X3BhcmFtc19saXN0KGNvbnRleHQsICJwYXJhbWV0ZXIiLCBwYXJhbXNfMSwgcGFyYW1zXzIsIHR5
cGVzX21hcF8xLCB0eXBlc19tYXBfMiwgMCwgZXJyb3JzKQogCi1kZWYgY29tcGFyZV9wYXJhbXNf
bGlzdChwYXJhbXNfMSwgcGFyYW1zXzIsIHR5cGVzX21hcF8xLCB0eXBlc19tYXBfMiwgZGVwdGgs
IGVycm9ycyk6CitkZWYgY29tcGFyZV9wYXJhbXNfbGlzdChjb250ZXh0LCBraW5kLCBwYXJhbXNf
MSwgcGFyYW1zXzIsIHR5cGVzX21hcF8xLCB0eXBlc19tYXBfMiwgZGVwdGgsIGVycm9ycyk6CiAg
ICAgZm9yIG5hbWUgaW4gcGFyYW1zXzE6CiAgICAgICAgIHBhcmFtXzEgPSBwYXJhbXNfMVtuYW1l
XQogICAgICAgICBpZiBub3QgbmFtZSBpbiBwYXJhbXNfMjoKICAgICAgICAgICAgIGlmIG5vdCAi
b3B0aW9uYWwiIGluIHBhcmFtXzE6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgicmVx
dWlyZWQgcGFyYW1ldGVyIGlzIG1pc3Npbmc6ICVzIiAlIG5hbWUpCisgICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgiJXMuJXM6IHJlcXVpcmVkICVzIGlzIG1pc3NpbmciICUgKGNvbnRleHQs
IG5hbWUsIGtpbmQpKQogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICBwYXJhbV8yID0g
cGFyYW1zXzJbbmFtZV0KICAgICAgICAgaWYgcGFyYW1fMiBhbmQgIm9wdGlvbmFsIiBpbiBwYXJh
bV8yIGFuZCBub3QgIm9wdGlvbmFsIiBpbiBwYXJhbV8xOgotICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgicmVxdWlyZWQgcGFyYW1ldGVyIGlzIG5vdyBvcHRpb25hbDogJXMiICUgbmFtZSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiJXMuJXM6IHJl
cXVpcmVkICVzIGlzIG5vdyBvcHRpb25hbCIgJSAoY29udGV4dCwgbmFtZSwga2luZCkpCisgICAg
ICAgICAgICBjb250aW51ZQogICAgICAgICB0eXBlXzEgPSBleHRyYWN0X3R5cGUocGFyYW1fMSwg
dHlwZXNfbWFwXzEsIGVycm9ycykKICAgICAgICAgdHlwZV8yID0gZXh0cmFjdF90eXBlKHBhcmFt
XzIsIHR5cGVzX21hcF8yLCBlcnJvcnMpCi0gICAgICAgIGNvbXBhcmVfdHlwZXMoInBhcmFtICIg
KyBuYW1lLCB0eXBlXzEsIHR5cGVfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBkZXB0aCwg
ZXJyb3JzKQorICAgICAgICBjb21wYXJlX3R5cGVzKGNvbnRleHQgKyAiLiIgKyBuYW1lLCBraW5k
LCB0eXBlXzEsIHR5cGVfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBkZXB0aCwgZXJyb3Jz
KQogCi1kZWYgY29tcGFyZV90eXBlcyhjb250ZXh0LCB0eXBlXzEsIHR5cGVfMiwgdHlwZXNfbWFw
XzEsIHR5cGVzX21hcF8yLCBkZXB0aCwgZXJyb3JzKToKK2RlZiBjb21wYXJlX3R5cGVzKGNvbnRl
eHQsIGtpbmQsIHR5cGVfMSwgdHlwZV8yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGRlcHRo
LCBlcnJvcnMpOgogICAgIGlmIGRlcHRoID4gMTA6Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAg
cmV0dXJuCiAKICAgICBiYXNlX3R5cGVfMSA9IHR5cGVfMVsidHlwZSJdCiAgICAgYmFzZV90eXBl
XzIgPSB0eXBlXzJbInR5cGUiXQogCiAgICAgaWYgYmFzZV90eXBlXzEgIT0gYmFzZV90eXBlXzI6
Ci0gICAgICAgIGVycm9ycy5hcHBlbmQoIiVzIGJhc2UgdHlwZSBtaXNtYXRjaCwgJyVzJyB2cyAn
JXMnIiAlIChjb250ZXh0LCBiYXNlX3R5cGVfMSwgYmFzZV90eXBlXzIpKQorICAgICAgICBlcnJv
cnMuYXBwZW5kKCIlczogJXMgYmFzZSB0eXBlIG1pc21hdGNoLCAnJXMnIHZzICclcyciICUgKGNv
bnRleHQsIGtpbmQsIGJhc2VfdHlwZV8xLCBiYXNlX3R5cGVfMikpCiAgICAgZWxpZiBiYXNlX3R5
cGVfMSA9PSAib2JqZWN0IjoKICAgICAgICAgcGFyYW1zXzEgPSBuYW1lZF9saXN0X3RvX21hcCh0
eXBlXzEsICJwcm9wZXJ0aWVzIiwgIm5hbWUiKQogICAgICAgICBwYXJhbXNfMiA9IG5hbWVkX2xp
c3RfdG9fbWFwKHR5cGVfMiwgInByb3BlcnRpZXMiLCAibmFtZSIpCi0gICAgICAgIGNvbXBhcmVf
cGFyYW1zX2xpc3QocGFyYW1zXzEsIHBhcmFtc18yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIs
IGRlcHRoICsgMSwgZXJyb3JzKQorICAgICAgICAjIElmIGlmIGJvdGggcGFyYW1zIGhhdmUgdGhl
IHNhbWUgbmFtZWQgdHlwZSB1c2UgaXQgaW4gdGhlIGNvbnRleHQuCisgICAgICAgIGlmICJpZCIg
aW4gdHlwZV8xIGFuZCAiaWQiIGluIHR5cGVfMiBhbmQgdHlwZV8xWyJpZCJdID09IHR5cGVfMlsi
aWQiXToKKyAgICAgICAgICAgIHR5cGVfbmFtZSA9IHR5cGVfMVsiaWQiXQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgdHlwZV9uYW1lID0gIjxvYmplY3Q+IgorICAgICAgICBjb250ZXh0ICs9
ICIgJXMtPiVzIiAlIChraW5kLCB0eXBlX25hbWUpCisgICAgICAgIGNvbXBhcmVfcGFyYW1zX2xp
c3QoY29udGV4dCwgInByb3BlcnR5IiwgcGFyYW1zXzEsIHBhcmFtc18yLCB0eXBlc19tYXBfMSwg
dHlwZXNfbWFwXzIsIGRlcHRoICsgMSwgZXJyb3JzKQogICAgIGVsaWYgYmFzZV90eXBlXzEgPT0g
ImFycmF5IjoKICAgICAgICAgaXRlbV90eXBlXzEgPSBleHRyYWN0X3R5cGUodHlwZV8xWyJpdGVt
cyJdLCB0eXBlc19tYXBfMSwgZXJyb3JzKQogICAgICAgICBpdGVtX3R5cGVfMiA9IGV4dHJhY3Rf
dHlwZSh0eXBlXzJbIml0ZW1zIl0sIHR5cGVzX21hcF8yLCBlcnJvcnMpCi0gICAgICAgIGNvbXBh
cmVfdHlwZXMoY29udGV4dCwgaXRlbV90eXBlXzEsIGl0ZW1fdHlwZV8yLCB0eXBlc19tYXBfMSwg
dHlwZXNfbWFwXzIsIGRlcHRoICsgMSwgZXJyb3JzKQorICAgICAgICBjb21wYXJlX3R5cGVzKGNv
bnRleHQsIGtpbmQsIGl0ZW1fdHlwZV8xLCBpdGVtX3R5cGVfMiwgdHlwZXNfbWFwXzEsIHR5cGVz
X21hcF8yLCBkZXB0aCArIDEsIGVycm9ycykKIAogZGVmIGV4dHJhY3RfdHlwZSh0eXBlZF9vYmpl
Y3QsIHR5cGVzX21hcCwgZXJyb3JzKToKICAgICBpZiAidHlwZSIgaW4gdHlwZWRfb2JqZWN0OgpA
QCAtMTkyLDcgKzIyNSw4IEBAIGRlZiBsb2FkX2pzb24oZmlsZW5hbWUpOgogICAgIHJldHVybiBl
dmFsKGpzb25fc3RyaW5nKQogCiBkZWYgc2VsZl90ZXN0KCk6Ci0gICAgc2NoZW1hXzEgPSBbCisg
ICAgZGVmIGNyZWF0ZV90ZXN0X3NjaGVtYV8xKCk6CisgICAgICAgIHJldHVybiBbCiAgICAgICAg
IHsKICAgICAgICAgICAgICJkb21haW4iOiAiTmV0d29yayIsCiAgICAgICAgICAgICAidHlwZXMi
OiBbCkBAIC0yMTEsMTIgKzI0NSwyMiBAQCBkZWYgc2VsZl90ZXN0KCk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWV0aG9kIiwgInR5cGUiOiAic3RyaW5nIiB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoZWFkZXJzIiwgIiRyZWYiOiAiSGVh
ZGVycyIgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicG9zdERhdGEiLCAi
dHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicG9z
dERhdGEiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInBvc3REYXRhMiIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgICAgICAg
ICBdCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJjb21t
YW5kcyI6IFsKICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjog
ImVuYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3YXNQcmVzZW50IiwgInR5cGUiOiAic3RyaW5nIiB9
LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3YXNSZXF1aXJlZCIsICJ0eXBl
IjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2FzT3B0
aW9uYWwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBUcnVlIH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImRlc2NyaXB0aW9uIiwgInR5cGUiOiAic3RyaW5nIiB9
CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0VXNlckFnZW50T3ZlcnJpZGUi
LAogICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidXNlckFnZW50IiwgInR5cGUiOiAic3RyaW5nIiB9CkBAIC0yMzAs
NyArMjc0LDggQEAgZGVmIHNlbGZfdGVzdCgpOgogICAgICAgICAgICAgICAgICAgICAicmV0dXJu
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWltZVR5cGUiLCAidHlw
ZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vbk9w
dGlvbmFsTWltZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm9wdGlvbmFsTWltZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiBUcnVlIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3B0aW9u
YWxNaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRydWUgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2FzT3B0aW9uYWwiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiBUcnVlIH0KICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIF0sCkBAIC0yNDAsNiArMjg1LDggQEAgZGVmIHNlbGZfdGVz
dCgpOgogICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJoaWRkZW4i
OiBUcnVlIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvY3VtZW50VVJM
IiwgInR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJiYXNlVVJMIiwgInR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ3YXNPcHRpb25hbCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRy
dWUgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdCIsICIkcmVm
IjogIlJlcXVlc3QiIH0sCiAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICB9
LApAQCAtMjUxLDEwICsyOTgsMTQgQEAgZGVmIHNlbGZfdGVzdCgpOgogICAgICAgICAgICAgICAg
ICAgICBdCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAiZG9tYWluIjogICJvbGREb21haW4iCiAgICAgICAgIH0KICAg
ICBdCiAKLSAgICBzY2hlbWFfMiA9IFsKKyAgICBkZWYgY3JlYXRlX3Rlc3Rfc2NoZW1hXzIoKToK
KyAgICAgICAgcmV0dXJuIFsKICAgICAgICAgewogICAgICAgICAgICAgImRvbWFpbiI6ICJOZXR3
b3JrIiwKICAgICAgICAgICAgICJ0eXBlcyI6IFsKQEAgLTI2OSwxNyArMzIwLDMzIEBAIGRlZiBz
ZWxmX3Rlc3QoKToKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5
cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZXRo
b2QiLCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhlYWRlcnMiLCAidHlwZSI6ICJvYmplY3QiIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInBvc3REYXRhMiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRy
dWUgfSwKICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAiY29tbWFuZHMiOiBbCiAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAorICAgICAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2FzT3B0
aW9uYWwiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIndhc1JlcXVpcmVkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogVHJ1ZSB9
LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuZXdSZXF1aXJlZCIsICJ0eXBl
IjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGVzY3Jp
cHRpb24iLCAidHlwZSI6ICJvYmplY3QiIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFt
ZSI6ICJuZXdDb21tYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbXQor
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJzZXRFeHRyYUhUVFBIZWFkZXJzIiwKICAgICAgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWRlcnMi
LCAidHlwZSI6ICJvYmplY3QiIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhlYWRlcnMiLCAidHlwZSI6ICJvYmplY3QiIH0KICAgICAgICAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm5vbk9wdGlvbmFsTWltZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiBUcnVlIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9uT3B0aW9u
YWxNaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRydWUgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2FzT3B0aW9uYWwiLCAidHlwZSI6ICJzdHJp
bmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmV3VmFsdWUiLCAidHlw
ZSI6ICJzdHJpbmcifSwKICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIF0sCkBAIC0yODcsMjUgKzM1NCw2NyBAQCBkZWYgc2VsZl90ZXN0KCk6CiAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0V2ls
bEJlU2VudCIsCiAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiYXNlVVJMIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogVHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuZXdQ
YXJhbSIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAid2FzT3B0aW9uYWwiLCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInJlcXVlc3QiLCAiJHJlZiI6ICJSZXF1ZXN0IiB9CiAgICAgICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAibmV3RXZlbnQiLAorICAgICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFtdCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZG9tYWluIjogIm5ld0RvbWFpbiIKICAg
ICAgICAgfQogICAgIF0KIAotICAgIGVycm9ycyA9IGNvbXBhcmVfc2NoZW1hcyhzY2hlbWFfMSwg
c2NoZW1hXzIpCi0gICAgZ29sZGVuX2Vycm9ycyA9IFsKKyAgICBleHBlY3RlZF9lcnJvcnMgPSBb
CisgICAgICAgICJvbGREb21haW46IGRvbWFpbiBpcyBtaXNzaW5nIiwKICAgICAgICAgIk5ldHdv
cmsuc2V0VXNlckFnZW50T3ZlcnJpZGU6IGNvbW1hbmQgaXMgbWlzc2luZyIsCi0gICAgICAgICJO
ZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnM6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5n
OiBtaW1lVHlwZSIsCi0gICAgICAgICJOZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnM6IHJlcXVp
cmVkIHBhcmFtZXRlciBpcyBub3cgb3B0aW9uYWw6IG5vbk9wdGlvbmFsTWltZVR5cGUiLAogICAg
ICAgICAiTmV0d29yay5sb2FkaW5nRmFpbGVkOiBldmVudCBpcyBtaXNzaW5nIiwKLSAgICAgICAg
Ik5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQ6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5n
OiBwb3N0RGF0YSIsCi0gICAgICAgICJOZXR3b3JrLnJlcXVlc3RXaWxsQmVTZW50OiByZXF1aXJl
ZCBwYXJhbWV0ZXIgaXMgbWlzc2luZzogZG9jdW1lbnRVUkwiIF0KLSAgICBmb3IgaSBpbiByYW5n
ZShsZW4oZXJyb3JzKSk6Ci0gICAgICAgIGlmIGVycm9yc1tpXSBub3QgaW4gZ29sZGVuX2Vycm9y
czoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBsZW4oZXJyb3JzKSBpcyBs
ZW4oZ29sZGVuX2Vycm9ycykKKyAgICAgICAgIk5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQuZG9j
dW1lbnRVUkw6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIiwKKyAgICAgICAgIk5ldHdv
cmsucmVxdWVzdFdpbGxCZVNlbnQuYmFzZVVSTDogcmVxdWlyZWQgcGFyYW1ldGVyIGlzIG5vdyBv
cHRpb25hbCIsCisgICAgICAgICJOZXR3b3JrLmVuYWJsZS5uZXdSZXF1aXJlZDogcmVxdWlyZWQg
cGFyYW1ldGVyIGlzIHVuZXhwZWN0ZWQiLAorICAgICAgICAiTmV0d29yay5lbmFibGUud2FzT3B0
aW9uYWw6IHJlcXVpcmVkIHBhcmFtZXRlciB1c2VkIHRvIGJlIG9wdGlvbmFsIiwKKyAgICAgICAg
Ik5ldHdvcmsuc2V0RXh0cmFIVFRQSGVhZGVycy5taW1lVHlwZTogcmVxdWlyZWQgcmVzcG9uc2Ug
cGFyYW1ldGVyIGlzIG1pc3NpbmciLAorICAgICAgICAiTmV0d29yay5zZXRFeHRyYUhUVFBIZWFk
ZXJzLm5vbk9wdGlvbmFsTWltZVR5cGU6IHJlcXVpcmVkIHJlc3BvbnNlIHBhcmFtZXRlciBpcyBu
b3cgb3B0aW9uYWwiLAorICAgICAgICAiTmV0d29yay5yZXF1ZXN0V2lsbEJlU2VudC5yZXF1ZXN0
IHBhcmFtZXRlci0+TmV0d29yay5SZXF1ZXN0LnBvc3REYXRhOiByZXF1aXJlZCBwcm9wZXJ0eSBp
cyBtaXNzaW5nIiwKKyAgICAgICAgIk5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQucmVxdWVzdCBw
YXJhbWV0ZXItPk5ldHdvcmsuUmVxdWVzdC5wb3N0RGF0YTI6IHJlcXVpcmVkIHByb3BlcnR5IGlz
IG5vdyBvcHRpb25hbCIsCisgICAgICAgICJOZXR3b3JrLmVuYWJsZS5kZXNjcmlwdGlvbjogcGFy
YW1ldGVyIGJhc2UgdHlwZSBtaXNtYXRjaCwgJ29iamVjdCcgdnMgJ3N0cmluZyciLAorICAgIF0K
KworICAgIGV4cGVjdGVkX2Vycm9yc19yZXZlcnNlID0gWworICAgICAgICJuZXdEb21haW46IGRv
bWFpbiBpcyBuZXciLAorICAgICAgICJOZXR3b3JrLm5ld0V2ZW50OiBldmVudCBpcyBuZXciLAor
ICAgICAgICJOZXR3b3JrLm5ld0NvbW1hbmQ6IGNvbW1hbmQgaXMgbmV3IiwKKyAgICAgICAiTmV0
d29yay5lbmFibGUud2FzUHJlc2VudDogcmVxdWlyZWQgcGFyYW1ldGVyIGlzIHJlbW92ZWQiLAor
ICAgICAgICJOZXR3b3JrLmVuYWJsZS53YXNSZXF1aXJlZDogcmVxdWlyZWQgcGFyYW1ldGVyIGlz
IG5vdyBvcHRpb25hbCIsCisgICAgICAgIk5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQubmV3UGFy
YW06IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBuZXciLAorICAgICAgICJOZXR3b3JrLnJlcXVlc3RX
aWxsQmVTZW50Lndhc09wdGlvbmFsOiByZXF1aXJlZCBwYXJhbWV0ZXIgdXNlZCB0byBiZSBvcHRp
b25hbCIsCisgICAgICAgIk5ldHdvcmsuc2V0RXh0cmFIVFRQSGVhZGVycy53YXNPcHRpb25hbDog
cmVxdWlyZWQgcmVzcG9uc2UgcGFyYW1ldGVyIHVzZWQgdG8gYmUgb3B0aW9uYWwiLAorICAgICAg
ICJOZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnMubmV3VmFsdWU6IHJlcXVpcmVkIHJlc3BvbnNl
IHBhcmFtZXRlciBpcyBuZXciLAorICAgICAgICJOZXR3b3JrLmVuYWJsZS5kZXNjcmlwdGlvbjog
cGFyYW1ldGVyIGJhc2UgdHlwZSBtaXNtYXRjaCwgJ3N0cmluZycgdnMgJ29iamVjdCciLAorICAg
IF0KKworICAgIGRlZiBpc19zdWJzZXQoc3Vic2V0LCBzdXBlcnNldCwgbWVzc2FnZSk6CisgICAg
ICAgIGZvciBpIGluIHJhbmdlKGxlbihzdWJzZXQpKToKKyAgICAgICAgICAgIGlmIHN1YnNldFtp
XSBub3QgaW4gc3VwZXJzZXQ6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJXMg
ZXJyb3I6ICVzXG4iICUgKG1lc3NhZ2UsIHN1YnNldFtpXSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgZXJyb3JzX21hdGNoKGV4
cGVjdGVkLCBhY3R1YWwpOgorICAgICAgICByZXR1cm4gKGlzX3N1YnNldChhY3R1YWwsIGV4cGVj
dGVkLCAiVW5leHBlY3RlZCIpIGFuZAorICAgICAgICAgICAgICAgIGlzX3N1YnNldChleHBlY3Rl
ZCwgYWN0dWFsLCAiTWlzc2luZyIpKQorCisgICAgcmV0dXJuIChlcnJvcnNfbWF0Y2goZXhwZWN0
ZWRfZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVfc2NoZW1hcyhjcmVh
dGVfdGVzdF9zY2hlbWFfMSgpLCBjcmVhdGVfdGVzdF9zY2hlbWFfMigpKSkgYW5kCisgICAgICAg
ICAgICBlcnJvcnNfbWF0Y2goZXhwZWN0ZWRfZXJyb3JzX3JldmVyc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcGFyZV9zY2hlbWFzX3JldmVyc2UoY3JlYXRlX3Rlc3Rfc2NoZW1hXzEo
KSwgY3JlYXRlX3Rlc3Rfc2NoZW1hXzIoKSkpKQorCiAKIGRlZiBtYWluKCk6CiAgICAgaWYgbm90
IHNlbGZfdGVzdCgpOgpAQCAtMzEzLDcgKzQyMiw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHJl
dHVybiAxCiAKICAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgNCBvciBzeXMuYXJndlsxXSAhPSAiLW8i
OgotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJVc2FnZTogJXMgLW8gT1VUUFVUX0ZJTEUgSU5Q
VVRfRklMRVxuIiAlIHN5cy5hcmd2WzBdKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJVc2Fn
ZTogJXMgLW8gT1VUUFVUX0ZJTEUgSU5QVVRfRklMRSBbLS1zaG93LWNoYW5nZXNdXG4iICUgc3lz
LmFyZ3ZbMF0pCiAgICAgICAgIHJldHVybiAxCiAKICAgICBvdXRwdXRfcGF0aCA9IHN5cy5hcmd2
WzJdCkBAIC0zMjYsMTYgKzQzNSwyNiBAQCBkZWYgbWFpbigpOgogICAgIG1ham9yID0gc2NoZW1h
WyJ2ZXJzaW9uIl1bIm1ham9yIl0KICAgICBtaW5vciA9IHNjaGVtYVsidmVyc2lvbiJdWyJtaW5v
ciJdCiAgICAgdmVyc2lvbiA9ICIlcy4lcyIgJSAobWFqb3IsIG1pbm9yKQotICAgIHZlcnNpb25f
ZmlsZV9uYW1lID0gb3MucGF0aC5ub3JtcGF0aChkaXJfbmFtZSArICIvSW5zcGVjdG9yLSIgKyB2
ZXJzaW9uICsgIi5qc29uIikKLSAgICB2ZXJzaW9uX3NjaGVtYSA9IGxvYWRfanNvbih2ZXJzaW9u
X2ZpbGVfbmFtZSkKKyAgICBpZiBsZW4oZGlyX25hbWUpID09IDA6CisgICAgICAgIGRpcl9uYW1l
ID0gIi4iCisgICAgYmFzZWxpbmVfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoZGlyX25hbWUgKyAi
L0luc3BlY3Rvci0iICsgdmVyc2lvbiArICIuanNvbiIpCisgICAgYmFzZWxpbmVfc2NoZW1hID0g
bG9hZF9qc29uKGJhc2VsaW5lX3BhdGgpCiAKLSAgICBlcnJvcnMgPSBjb21wYXJlX3NjaGVtYXMo
dmVyc2lvbl9zY2hlbWFbImRvbWFpbnMiXSwgc2NoZW1hWyJkb21haW5zIl0pCisgICAgZXJyb3Jz
ID0gY29tcGFyZV9zY2hlbWFzKGJhc2VsaW5lX3NjaGVtYVsiZG9tYWlucyJdLCBzY2hlbWFbImRv
bWFpbnMiXSkKICAgICBpZiBsZW4oZXJyb3JzKSA+IDA6Ci0gICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUoIiAgY29tcGF0aWJpbGl0eSB3aXRoICVzOiBGQUlMRURcbiIgJSB2ZXJzaW9uKQorICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCIgIENvbXBhdGliaWxpdHkgd2l0aCAlczogRkFJTEVEXG4iICUg
dmVyc2lvbikKICAgICAgICAgZm9yIGVycm9yIGluIGVycm9yczoKICAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoICIgICAgJXNcbiIgJSBlcnJvcikKICAgICAgICAgcmV0dXJuIDEKIAorICAg
IGlmIGxlbihzeXMuYXJndikgPiA0IGFuZCBzeXMuYXJndls0XSA9PSAiLS1zaG93LWNoYW5nZXMi
OgorICAgICAgICBjaGFuZ2VzID0gY29tcGFyZV9zY2hlbWFzX3JldmVyc2UoCisgICAgICAgICAg
ICBsb2FkX2pzb24oYmFzZWxpbmVfcGF0aClbImRvbWFpbnMiXSwgbG9hZF9qc29uKGlucHV0X3Bh
dGgpWyJkb21haW5zIl0pCisgICAgICAgIGlmIGxlbihjaGFuZ2VzKSA+IDA6CisgICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCIgIFB1YmxpYyBjaGFuZ2VzIHNpbmNlICVzXG4iICUgdmVyc2lv
bikKKyAgICAgICAgICAgIGZvciBjaGFuZ2UgaW4gY2hhbmdlczoKKyAgICAgICAgICAgICAgICBz
eXMuc3RkZXJyLndyaXRlKCAiICAgICVzXG4iICUgY2hhbmdlKQorCiAgICAgb3V0cHV0X2ZpbGUu
d3JpdGUoIiIiCiAjaWZuZGVmIEluc3BlY3RvclByb3RvY29sVmVyc2lvbl9oCiAjZGVmaW5lIElu
c3BlY3RvclByb3RvY29sVmVyc2lvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194764</attachid>
            <date>2013-03-24 12:57:37 -0700</date>
            <delta_ts>2013-03-25 06:55:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113148-20130324235321.patch</filename>
            <type>text/plain</type>
            <size>21542</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRkOGY2ZGFlZDNiYjk5
ZmQwYWU2ZjU4YTJiNjdjNmI5NmU1NzYzYS4uNjRkYmY3ZDQ5YmExZDc1NDg4MTdhYmIyZTljMmJi
MGZlMTk5MTIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAzLTI0ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFVzZSBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtdmVyc2lvbiB0byBs
aXN0IHZhbGlkIHB1YmxpYyBBUEkgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMTQ4CisKKyAgICAgICAgQWRkZWQgLS1zaG93LWNoYW5n
ZXMgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAgICAgVXNlZCBleGlzdGluZyBjb21wYXJlX3Nj
aGVtYXMgbWV0aG9kIHRvIGRvIGEgcmV2ZXJzZSBjb21wYXJlLgorICAgICAgICBGaXhlZCBhIG51
bWJlciBvZiBzbWFsbCBwcm9ibGVtcyAobWlzc2luZyBkb21haW4gbmFtZSBpbiB0aGUgbWVzc2Fn
ZSwKKyAgICAgICAgaW5jb3JyZWN0IGVycm9yIG1lc3NhZ2VzIGZvciBjb21tYW5kIHBhcmFtZXRl
cnMpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aW5zcGVjdG9yL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uOgorICAgICAgICAo
bmFtZWRfbGlzdF90b19tYXApOgorICAgICAgICAocmVtb3ZlZCk6CisgICAgICAgIChyZXF1aXJl
ZCk6CisgICAgICAgIChjb21wYXJlX3NjaGVtYXMpOgorICAgICAgICAoY29tcGFyZV9kb21haW5z
KToKKyAgICAgICAgKGNvbXBhcmVfY29tbWFuZHMpOgorICAgICAgICAoY29tcGFyZV9ldmVudHMp
OgorICAgICAgICAoY29tcGFyZV9wYXJhbXNfbGlzdCk6CisgICAgICAgIChjb21wYXJlX3R5cGVz
KToKKyAgICAgICAgKHNlbGZfdGVzdCk6CisgICAgICAgIChzZWxmX3Rlc3QuY3JlYXRlX3Rlc3Rf
c2NoZW1hXzEpOgorICAgICAgICAoc2VsZl90ZXN0LmNyZWF0ZV90ZXN0X3NjaGVtYV8yKToKKyAg
ICAgICAgKHNlbGZfdGVzdC5pc19zdWJzZXQpOgorICAgICAgICAoc2VsZl90ZXN0LmVycm9yc19t
YXRjaCk6CisgICAgICAgIChtYWluKToKKwogMjAxMy0wMy0yMCAgQXJ2aWQgTmlsc3NvbiAgPGFu
aWxzc29uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIGNvbXBvc2l0aW5nL2lmcmFt
ZXMvc2Nyb2xsLWZpeGVkLXRyYW5zZm9ybWVkLWVsZW1lbnQuaHRtbCBmYWlscyBpbiBtYW51YWwg
dGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVy
YXRlLWluc3BlY3Rvci1wcm90b2NvbC12ZXJzaW9uCmluZGV4IDM4YTBmOThjMzNjOWMyYjRkZmE0
YmU4MDgwMWYwNDdiMzA5YjNiNDcuLjEyZjQyOTg4NWQ0ZjkxOGRlYjNmM2RjZDhiZjhhNWZkN2M2
NTVhMGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNw
ZWN0b3ItcHJvdG9jb2wtdmVyc2lvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLXZlcnNpb24KQEAgLTMyLDEyICszMiwxOCBAQAogIyBU
ZXN0cyB0aGF0IHN1YnNlcXVlbnQgcHJvdG9jb2wgY2hhbmdlcyBhcmUgbm90IGJyZWFraW5nIGJh
Y2t3YXJkcyBjb21wYXRpYmlsaXR5LgogIyBGb2xsb3dpbmcgdmlvbGF0aW9ucyBhcmUgcmVwb3J0
ZWQ6CiAjCisjICAgLSBEb21haW4gaGFzIGJlZW4gcmVtb3ZlZAogIyAgIC0gQ29tbWFuZCBoYXMg
YmVlbiByZW1vdmVkCi0jICAgLSBSZXF1aXJlZCBjb21tYW5kIHBhcmFtZXRlciB3YXMgYWRkZWQg
KGNvdWxkIGJlIGEgcGFydCBvZiByZWZlcmVuY2VkIHR5cGUpCi0jICAgLSBSZXF1aXJlZCByZXNw
b25zZSBwYXJhbWV0ZXIgd2FzIHJlbW92ZWQKKyMgICAtIFJlcXVpcmVkIGNvbW1hbmQgcGFyYW1l
dGVyIHdhcyBhZGRlZCBvciBjaGFuZ2VkIGZyb20gb3B0aW9uYWwKKyMgICAtIFJlcXVpcmVkIHJl
c3BvbnNlIHBhcmFtZXRlciB3YXMgcmVtb3ZlZCBvciBjaGFuZ2VkIHRvIG9wdGlvbmFsCiAjICAg
LSBFdmVudCBoYXMgYmVlbiByZW1vdmVkCi0jICAgLSBSZXF1aXJlZCBldmVudCBwYXJhbWV0ZXIg
d2FzIHJlbW92ZWQgKGNvdWxkIGJlIGEgcGFydCBvZiByZWZlcmVuY2VkIHR5cGUpCisjICAgLSBS
ZXF1aXJlZCBldmVudCBwYXJhbWV0ZXIgd2FzIHJlbW92ZWQgb3IgY2hhbmdlZCB0byBvcHRpb25h
bAorIyAgIC0gUGFyYW1ldGVyIHR5cGUgaGFzIGNoYW5nZWQuCisjICAgCisjIEZvciB0aGUgcGFy
YW1ldGVycyB3aXRoIGNvbXBvc2l0ZSB0eXBlcyB0aGUgYWJvdmUgY2hlY2tzIGFyZSBhbHNvIGFw
cGxpZWQKKyMgcmVjdXJzaXZlbHkgdG8gZXZlcnkgcHJvcGVydHkgb2YgdGhlIHR5cGUuCiAjCisj
IEFkZGluZyAtLXNob3dfY2hhbmdlcyB0byB0aGUgY29tbWFuZCBsaW5lIHByaW50cyBvdXQgYSBs
aXN0IG9mIHZhbGlkIHB1YmxpYyBBUEkgY2hhbmdlcy4KIAogaW1wb3J0IG9zLnBhdGgKIGltcG9y
dCByZQpAQCAtNTUsMTEgKzYxLDE3IEBAIGRlZiBuYW1lZF9saXN0X3RvX21hcChjb250YWluZXIs
IG5hbWUsIGtleSk6CiAgICAgICAgIHJldHVybiBsaXN0X3RvX21hcChjb250YWluZXJbbmFtZV0s
IGtleSkKICAgICByZXR1cm4ge30KIAotZGVmIHByaW50X2Vycm9ycyhkb21haW5fbmFtZSwgbWV0
aG9kX25hbWUsIGxvY2FsX2Vycm9ycywgZXJyb3JzKToKLSAgICBmb3IgZXJyb3IgaW4gbG9jYWxf
ZXJyb3JzOgotICAgICAgICBlcnJvcnMuYXBwZW5kKCIlcy4lczogJXMiICUgKGRvbWFpbl9uYW1l
LCBtZXRob2RfbmFtZSwgZXJyb3IpKQorZGVmIHJlbW92ZWQocmV2ZXJzZSk6CisgICAgaWYgcmV2
ZXJzZToKKyAgICAgICAgcmV0dXJuICJhZGRlZCIKKyAgICByZXR1cm4gInJlbW92ZWQiCiAKLWRl
ZiBjb21wYXJlX3NjaGVtYXMoc2NoZW1hXzEsIHNjaGVtYV8yKToKK2RlZiByZXF1aXJlZChyZXZl
cnNlKToKKyAgICBpZiByZXZlcnNlOgorICAgICAgICByZXR1cm4gIm9wdGlvbmFsIgorICAgIHJl
dHVybiAicmVxdWlyZWQiCisKK2RlZiBjb21wYXJlX3NjaGVtYXMoc2NoZW1hXzEsIHNjaGVtYV8y
LCByZXZlcnNlKToKICAgICBlcnJvcnMgPSBbXQogICAgIHR5cGVzXzEgPSBub3JtYWxpemVfdHlw
ZXNfaW5fc2NoZW1hKHNjaGVtYV8xKQogICAgIHR5cGVzXzIgPSBub3JtYWxpemVfdHlwZXNfaW5f
c2NoZW1hKHNjaGVtYV8yKQpAQCAtNzAsODMgKzgyLDg4IEBAIGRlZiBjb21wYXJlX3NjaGVtYXMo
c2NoZW1hXzEsIHNjaGVtYV8yKToKICAgICBmb3IgbmFtZSBpbiBkb21haW5zX2J5X25hbWVfMToK
ICAgICAgICAgZG9tYWluXzEgPSBkb21haW5zX2J5X25hbWVfMVtuYW1lXQogICAgICAgICBpZiBu
b3QgbmFtZSBpbiBkb21haW5zX2J5X25hbWVfMjoKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
IkRvbWFpbiAlcyBpcyBtaXNzaW5nXG4iKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiJXM6
IGRvbWFpbiBoYXMgYmVlbiAlcyIgJSAobmFtZSwgcmVtb3ZlZChyZXZlcnNlKSkpCiAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICBjb21wYXJlX2RvbWFpbnMoZG9tYWluXzEsIGRvbWFpbnNf
YnlfbmFtZV8yW25hbWVdLCB0eXBlc18xLCB0eXBlc18yLCBlcnJvcnMpCisgICAgICAgIGNvbXBh
cmVfZG9tYWlucyhkb21haW5fMSwgZG9tYWluc19ieV9uYW1lXzJbbmFtZV0sIHR5cGVzXzEsIHR5
cGVzXzIsIGVycm9ycywgcmV2ZXJzZSkKICAgICByZXR1cm4gZXJyb3JzCiAKLWRlZiBjb21wYXJl
X2RvbWFpbnMoZG9tYWluXzEsIGRvbWFpbl8yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGVy
cm9ycyk6CitkZWYgY29tcGFyZV9kb21haW5zKGRvbWFpbl8xLCBkb21haW5fMiwgdHlwZXNfbWFw
XzEsIHR5cGVzX21hcF8yLCBlcnJvcnMsIHJldmVyc2UpOgogICAgIGRvbWFpbl9uYW1lID0gZG9t
YWluXzFbImRvbWFpbiJdCiAgICAgY29tbWFuZHNfMSA9IG5hbWVkX2xpc3RfdG9fbWFwKGRvbWFp
bl8xLCAiY29tbWFuZHMiLCAibmFtZSIpCiAgICAgY29tbWFuZHNfMiA9IG5hbWVkX2xpc3RfdG9f
bWFwKGRvbWFpbl8yLCAiY29tbWFuZHMiLCAibmFtZSIpCiAgICAgZm9yIG5hbWUgaW4gY29tbWFu
ZHNfMToKICAgICAgICAgY29tbWFuZF8xID0gY29tbWFuZHNfMVtuYW1lXQogICAgICAgICBpZiBu
b3QgbmFtZSBpbiBjb21tYW5kc18yOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiJXMuJXM6
IGNvbW1hbmQgaXMgbWlzc2luZyIgJSAoZG9tYWluXzFbImRvbWFpbiJdLCBuYW1lKSkKKyAgICAg
ICAgICAgIGVycm9ycy5hcHBlbmQoIiVzLiVzOiBjb21tYW5kIGhhcyBiZWVuICVzIiAlIChkb21h
aW5fMVsiZG9tYWluIl0sIG5hbWUsIHJlbW92ZWQocmV2ZXJzZSkpKQogICAgICAgICAgICAgY29u
dGludWUKLSAgICAgICAgY29tcGFyZV9jb21tYW5kcyhkb21haW5fbmFtZSwgY29tbWFuZF8xLCBj
b21tYW5kc18yW25hbWVdLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGVycm9ycykKKyAgICAg
ICAgY29tcGFyZV9jb21tYW5kcyhkb21haW5fbmFtZSwgY29tbWFuZF8xLCBjb21tYW5kc18yW25h
bWVdLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGVycm9ycywgcmV2ZXJzZSkKIAogICAgIGV2
ZW50c18xID0gbmFtZWRfbGlzdF90b19tYXAoZG9tYWluXzEsICJldmVudHMiLCAibmFtZSIpCiAg
ICAgZXZlbnRzXzIgPSBuYW1lZF9saXN0X3RvX21hcChkb21haW5fMiwgImV2ZW50cyIsICJuYW1l
IikKICAgICBmb3IgbmFtZSBpbiBldmVudHNfMToKICAgICAgICAgZXZlbnRfMSA9IGV2ZW50c18x
W25hbWVdCiAgICAgICAgIGlmIG5vdCBuYW1lIGluIGV2ZW50c18yOgotICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZCgiJXMuJXM6IGV2ZW50IGlzIG1pc3NpbmciICUgKGRvbWFpbl8xWyJkb21haW4i
XSwgbmFtZSkpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCIlcy4lczogZXZlbnQgaGFzIGJl
ZW4gJXMiICUgKGRvbWFpbl8xWyJkb21haW4iXSwgbmFtZSwgcmVtb3ZlZChyZXZlcnNlKSkpCiAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICBjb21wYXJlX2V2ZW50cyhkb21haW5fbmFtZSwg
ZXZlbnRfMSwgZXZlbnRzXzJbbmFtZV0sIHR5cGVzX21hcF8xLCB0eXBlc19tYXBfMiwgZXJyb3Jz
KQorICAgICAgICBjb21wYXJlX2V2ZW50cyhkb21haW5fbmFtZSwgZXZlbnRfMSwgZXZlbnRzXzJb
bmFtZV0sIHR5cGVzX21hcF8xLCB0eXBlc19tYXBfMiwgZXJyb3JzLCByZXZlcnNlKQorCitkZWYg
Y29tcGFyZV9jb21tYW5kcyhkb21haW5fbmFtZSwgY29tbWFuZF8xLCBjb21tYW5kXzIsIHR5cGVz
X21hcF8xLCB0eXBlc19tYXBfMiwgZXJyb3JzLCByZXZlcnNlKToKKyAgICBjb250ZXh0ID0gZG9t
YWluX25hbWUgKyAiLiIgKyBjb21tYW5kXzFbIm5hbWUiXQogCi1kZWYgY29tcGFyZV9jb21tYW5k
cyhkb21haW5fbmFtZSwgY29tbWFuZF8xLCBjb21tYW5kXzIsIHR5cGVzX21hcF8xLCB0eXBlc19t
YXBfMiwgZXJyb3JzKToKLSAgICBjb21tYW5kX2Vycm9ycyA9IFtdCiAgICAgcGFyYW1zXzEgPSBu
YW1lZF9saXN0X3RvX21hcChjb21tYW5kXzEsICJwYXJhbWV0ZXJzIiwgIm5hbWUiKQogICAgIHBh
cmFtc18yID0gbmFtZWRfbGlzdF90b19tYXAoY29tbWFuZF8yLCAicGFyYW1ldGVycyIsICJuYW1l
IikKLSAgICAjIE5vdGUgdGhlIHJldmVyc2VkIG9yZGVyOiB3ZSBhbGxvdyByZW1vdmluZyBwYXJh
bWV0ZXJzLgotICAgIGNvbXBhcmVfcGFyYW1zX2xpc3QocGFyYW1zXzIsIHBhcmFtc18xLCB0eXBl
c19tYXBfMiwgdHlwZXNfbWFwXzEsIDAsIGNvbW1hbmRfZXJyb3JzKQorICAgICMgTm90ZSB0aGUg
cmV2ZXJzZWQgb3JkZXI6IHdlIGFsbG93IHJlbW92aW5nIGJ1dCBmb3JiaWQgYWRkaW5nIHBhcmFt
ZXRlcnMuCisgICAgY29tcGFyZV9wYXJhbXNfbGlzdChjb250ZXh0LCAicGFyYW1ldGVyIiwgcGFy
YW1zXzIsIHBhcmFtc18xLCB0eXBlc19tYXBfMiwgdHlwZXNfbWFwXzEsIDAsIGVycm9ycywgbm90
IHJldmVyc2UpCiAKICAgICByZXR1cm5zXzEgPSBuYW1lZF9saXN0X3RvX21hcChjb21tYW5kXzEs
ICJyZXR1cm5zIiwgIm5hbWUiKQogICAgIHJldHVybnNfMiA9IG5hbWVkX2xpc3RfdG9fbWFwKGNv
bW1hbmRfMiwgInJldHVybnMiLCAibmFtZSIpCi0gICAgY29tcGFyZV9wYXJhbXNfbGlzdChyZXR1
cm5zXzEsIHJldHVybnNfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCAwLCBjb21tYW5kX2Vy
cm9ycykKLSAgICBwcmludF9lcnJvcnMoZG9tYWluX25hbWUsIGNvbW1hbmRfMVsibmFtZSJdLCBj
b21tYW5kX2Vycm9ycywgZXJyb3JzKQorICAgIGNvbXBhcmVfcGFyYW1zX2xpc3QoY29udGV4dCwg
InJlc3BvbnNlIHBhcmFtZXRlciIsIHJldHVybnNfMSwgcmV0dXJuc18yLCB0eXBlc19tYXBfMSwg
dHlwZXNfbWFwXzIsIDAsIGVycm9ycywgcmV2ZXJzZSkKIAotZGVmIGNvbXBhcmVfZXZlbnRzKGRv
bWFpbl9uYW1lLCBldmVudF8xLCBldmVudF8yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGVy
cm9ycyk6Ci0gICAgZXZlbnRfZXJyb3JzID0gW10KK2RlZiBjb21wYXJlX2V2ZW50cyhkb21haW5f
bmFtZSwgZXZlbnRfMSwgZXZlbnRfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBlcnJvcnMs
IHJldmVyc2UpOgorICAgIGNvbnRleHQgPSBkb21haW5fbmFtZSArICIuIiArIGV2ZW50XzFbIm5h
bWUiXQogICAgIHBhcmFtc18xID0gbmFtZWRfbGlzdF90b19tYXAoZXZlbnRfMSwgInBhcmFtZXRl
cnMiLCAibmFtZSIpCiAgICAgcGFyYW1zXzIgPSBuYW1lZF9saXN0X3RvX21hcChldmVudF8yLCAi
cGFyYW1ldGVycyIsICJuYW1lIikKLSAgICBjb21wYXJlX3BhcmFtc19saXN0KHBhcmFtc18xLCBw
YXJhbXNfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCAwLCBldmVudF9lcnJvcnMpCi0gICAg
cHJpbnRfZXJyb3JzKGRvbWFpbl9uYW1lLCBldmVudF8xWyJuYW1lIl0sIGV2ZW50X2Vycm9ycywg
ZXJyb3JzKQorICAgIGNvbXBhcmVfcGFyYW1zX2xpc3QoY29udGV4dCwgInBhcmFtZXRlciIsIHBh
cmFtc18xLCBwYXJhbXNfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCAwLCBlcnJvcnMsIHJl
dmVyc2UpCiAKLWRlZiBjb21wYXJlX3BhcmFtc19saXN0KHBhcmFtc18xLCBwYXJhbXNfMiwgdHlw
ZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBkZXB0aCwgZXJyb3JzKToKK2RlZiBjb21wYXJlX3BhcmFt
c19saXN0KGNvbnRleHQsIGtpbmQsIHBhcmFtc18xLCBwYXJhbXNfMiwgdHlwZXNfbWFwXzEsIHR5
cGVzX21hcF8yLCBkZXB0aCwgZXJyb3JzLCByZXZlcnNlKToKICAgICBmb3IgbmFtZSBpbiBwYXJh
bXNfMToKICAgICAgICAgcGFyYW1fMSA9IHBhcmFtc18xW25hbWVdCiAgICAgICAgIGlmIG5vdCBu
YW1lIGluIHBhcmFtc18yOgogICAgICAgICAgICAgaWYgbm90ICJvcHRpb25hbCIgaW4gcGFyYW1f
MToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJyZXF1aXJlZCBwYXJhbWV0ZXIgaXMg
bWlzc2luZzogJXMiICUgbmFtZSkKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCIlcy4l
czogcmVxdWlyZWQgJXMgaGFzIGJlZW4gJXMiICUgKGNvbnRleHQsIG5hbWUsIGtpbmQsIHJlbW92
ZWQocmV2ZXJzZSkpKQogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICBwYXJhbV8yID0g
cGFyYW1zXzJbbmFtZV0KICAgICAgICAgaWYgcGFyYW1fMiBhbmQgIm9wdGlvbmFsIiBpbiBwYXJh
bV8yIGFuZCBub3QgIm9wdGlvbmFsIiBpbiBwYXJhbV8xOgotICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgicmVxdWlyZWQgcGFyYW1ldGVyIGlzIG5vdyBvcHRpb25hbDogJXMiICUgbmFtZSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiJXMuJXM6ICVz
ICVzIGlzIG5vdyAlcyIgJSAoY29udGV4dCwgbmFtZSwgcmVxdWlyZWQocmV2ZXJzZSksIGtpbmQs
IHJlcXVpcmVkKG5vdCByZXZlcnNlKSkpCisgICAgICAgICAgICBjb250aW51ZQogICAgICAgICB0
eXBlXzEgPSBleHRyYWN0X3R5cGUocGFyYW1fMSwgdHlwZXNfbWFwXzEsIGVycm9ycykKICAgICAg
ICAgdHlwZV8yID0gZXh0cmFjdF90eXBlKHBhcmFtXzIsIHR5cGVzX21hcF8yLCBlcnJvcnMpCi0g
ICAgICAgIGNvbXBhcmVfdHlwZXMoInBhcmFtICIgKyBuYW1lLCB0eXBlXzEsIHR5cGVfMiwgdHlw
ZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBkZXB0aCwgZXJyb3JzKQorICAgICAgICBjb21wYXJlX3R5
cGVzKGNvbnRleHQgKyAiLiIgKyBuYW1lLCBraW5kLCB0eXBlXzEsIHR5cGVfMiwgdHlwZXNfbWFw
XzEsIHR5cGVzX21hcF8yLCBkZXB0aCwgZXJyb3JzLCByZXZlcnNlKQogCi1kZWYgY29tcGFyZV90
eXBlcyhjb250ZXh0LCB0eXBlXzEsIHR5cGVfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21hcF8yLCBk
ZXB0aCwgZXJyb3JzKToKK2RlZiBjb21wYXJlX3R5cGVzKGNvbnRleHQsIGtpbmQsIHR5cGVfMSwg
dHlwZV8yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGRlcHRoLCBlcnJvcnMsIHJldmVyc2Up
OgogICAgIGlmIGRlcHRoID4gMTA6Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuCiAK
ICAgICBiYXNlX3R5cGVfMSA9IHR5cGVfMVsidHlwZSJdCiAgICAgYmFzZV90eXBlXzIgPSB0eXBl
XzJbInR5cGUiXQogCiAgICAgaWYgYmFzZV90eXBlXzEgIT0gYmFzZV90eXBlXzI6Ci0gICAgICAg
IGVycm9ycy5hcHBlbmQoIiVzIGJhc2UgdHlwZSBtaXNtYXRjaCwgJyVzJyB2cyAnJXMnIiAlIChj
b250ZXh0LCBiYXNlX3R5cGVfMSwgYmFzZV90eXBlXzIpKQorICAgICAgICBlcnJvcnMuYXBwZW5k
KCIlczogJXMgYmFzZSB0eXBlIG1pc21hdGNoLCAnJXMnIHZzICclcyciICUgKGNvbnRleHQsIGtp
bmQsIGJhc2VfdHlwZV8xLCBiYXNlX3R5cGVfMikpCiAgICAgZWxpZiBiYXNlX3R5cGVfMSA9PSAi
b2JqZWN0IjoKICAgICAgICAgcGFyYW1zXzEgPSBuYW1lZF9saXN0X3RvX21hcCh0eXBlXzEsICJw
cm9wZXJ0aWVzIiwgIm5hbWUiKQogICAgICAgICBwYXJhbXNfMiA9IG5hbWVkX2xpc3RfdG9fbWFw
KHR5cGVfMiwgInByb3BlcnRpZXMiLCAibmFtZSIpCi0gICAgICAgIGNvbXBhcmVfcGFyYW1zX2xp
c3QocGFyYW1zXzEsIHBhcmFtc18yLCB0eXBlc19tYXBfMSwgdHlwZXNfbWFwXzIsIGRlcHRoICsg
MSwgZXJyb3JzKQorICAgICAgICAjIElmIGJvdGggcGFyYW1ldGVycyBoYXZlIHRoZSBzYW1lIG5h
bWVkIHR5cGUgdXNlIGl0IGluIHRoZSBjb250ZXh0LgorICAgICAgICBpZiAiaWQiIGluIHR5cGVf
MSBhbmQgImlkIiBpbiB0eXBlXzIgYW5kIHR5cGVfMVsiaWQiXSA9PSB0eXBlXzJbImlkIl06Cisg
ICAgICAgICAgICB0eXBlX25hbWUgPSB0eXBlXzFbImlkIl0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHR5cGVfbmFtZSA9ICI8b2JqZWN0PiIKKyAgICAgICAgY29udGV4dCArPSAiICVzLT4l
cyIgJSAoa2luZCwgdHlwZV9uYW1lKQorICAgICAgICBjb21wYXJlX3BhcmFtc19saXN0KGNvbnRl
eHQsICJwcm9wZXJ0eSIsIHBhcmFtc18xLCBwYXJhbXNfMiwgdHlwZXNfbWFwXzEsIHR5cGVzX21h
cF8yLCBkZXB0aCArIDEsIGVycm9ycywgcmV2ZXJzZSkKICAgICBlbGlmIGJhc2VfdHlwZV8xID09
ICJhcnJheSI6CiAgICAgICAgIGl0ZW1fdHlwZV8xID0gZXh0cmFjdF90eXBlKHR5cGVfMVsiaXRl
bXMiXSwgdHlwZXNfbWFwXzEsIGVycm9ycykKICAgICAgICAgaXRlbV90eXBlXzIgPSBleHRyYWN0
X3R5cGUodHlwZV8yWyJpdGVtcyJdLCB0eXBlc19tYXBfMiwgZXJyb3JzKQotICAgICAgICBjb21w
YXJlX3R5cGVzKGNvbnRleHQsIGl0ZW1fdHlwZV8xLCBpdGVtX3R5cGVfMiwgdHlwZXNfbWFwXzEs
IHR5cGVzX21hcF8yLCBkZXB0aCArIDEsIGVycm9ycykKKyAgICAgICAgY29tcGFyZV90eXBlcyhj
b250ZXh0LCBraW5kLCBpdGVtX3R5cGVfMSwgaXRlbV90eXBlXzIsIHR5cGVzX21hcF8xLCB0eXBl
c19tYXBfMiwgZGVwdGggKyAxLCBlcnJvcnMsIHJldmVyc2UpCiAKIGRlZiBleHRyYWN0X3R5cGUo
dHlwZWRfb2JqZWN0LCB0eXBlc19tYXAsIGVycm9ycyk6CiAgICAgaWYgInR5cGUiIGluIHR5cGVk
X29iamVjdDoKQEAgLTE5Miw3ICsyMDksOCBAQCBkZWYgbG9hZF9qc29uKGZpbGVuYW1lKToKICAg
ICByZXR1cm4gZXZhbChqc29uX3N0cmluZykKIAogZGVmIHNlbGZfdGVzdCgpOgotICAgIHNjaGVt
YV8xID0gWworICAgIGRlZiBjcmVhdGVfdGVzdF9zY2hlbWFfMSgpOgorICAgICAgICByZXR1cm4g
WwogICAgICAgICB7CiAgICAgICAgICAgICAiZG9tYWluIjogIk5ldHdvcmsiLAogICAgICAgICAg
ICAgInR5cGVzIjogWwpAQCAtMjExLDI2ICsyMjksMzEgQEAgZGVmIHNlbGZfdGVzdCgpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciIH0s
CiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1ldGhvZCIsICJ0eXBlIjogInN0
cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVycyIsICIk
cmVmIjogIkhlYWRlcnMiIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBv
c3REYXRhIiwgInR5cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImJlY2FtZU9wdGlvbmFsRmllbGQiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlbW92ZWRGaWVsZCIsICJ0eXBlIjogInN0cmlu
ZyIgfSwKICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAiY29tbWFuZHMiOiBbCiAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRVc2VyQWdlbnRPdmVycmlkZSIsCi0gICAgICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ1c2VyQWdlbnQiLCAidHlwZSI6ICJzdHJpbmciIH0KLSAgICAgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVkQ29tbWFuZCIsCiAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJu
YW1lIjogInNldEV4dHJhSFRUUEhlYWRlcnMiLAogICAgICAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVycyIsICIk
cmVmIjogIkhlYWRlcnMiIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVh
ZGVycyIsICIkcmVmIjogIkhlYWRlcnMiIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm1pc21hdGNoZWQiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJlY2FtZU9wdGlvbmFsIiwgIiRyZWYiOiAiSGVhZGVycyIgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVtb3ZlZFJlcXVpcmVkIiwgIiRy
ZWYiOiAiSGVhZGVycyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmVj
YW1lUmVxdWlyZWQiLCAiJHJlZiI6ICJIZWFkZXJzIiwgIm9wdGlvbmFsIjogVHJ1ZSB9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZW1vdmVkT3B0aW9uYWwiLCAiJHJlZiI6
ICJIZWFkZXJzIiwgIm9wdGlvbmFsIjogVHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICBdLAog
ICAgICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibWltZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vbk9wdGlvbmFsTWltZVR5cGUiLCAidHlwZSI6ICJzdHJp
bmciIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9wdGlvbmFsTWltZVR5
cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBUcnVlIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYmVjYW1lT3B0aW9uYWwiLCAidHlwZSI6ICJzdHJpbmciIH0s
CisgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlbW92ZWRSZXF1aXJlZCIsICJ0
eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmVj
YW1lUmVxdWlyZWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBUcnVlIH0sCisgICAg
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlbW92ZWRPcHRpb25hbCIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IFRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgXQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIF0sCkBAIC0yMzksMjIgKzI2MiwyOSBAQCBkZWYg
c2VsZl90ZXN0KCk6CiAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RXaWxsQmVT
ZW50IiwKICAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiaGlkZGVu
IjogVHJ1ZSB9LAotICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb2N1bWVudFVS
TCIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVxdWVzdCIsICIkcmVmIjogIlJlcXVlc3QiIH0sCi0gICAgICAgICAgICAgICAgICAgIF0K
KyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmVjYW1lT3B0aW9uYWwiLCAidHlw
ZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlbW92
ZWRSZXF1aXJlZCIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYmVjYW1lUmVxdWlyZWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwi
OiBUcnVlIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlbW92ZWRPcHRp
b25hbCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRydWUgfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAibG9hZGluZ0ZhaWxlZCIsCisgICAgICAgICAgICAg
ICAgICAgICJuYW1lIjogInJlbW92ZWRFdmVudCIsCiAgICAgICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlcnJvclRleHQi
LCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNhbmNlbGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IFRydWUgfQogICAgICAg
ICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiZG9tYWluIjogICJyZW1vdmVkRG9tYWluIgog
ICAgICAgICB9CiAgICAgXQogCi0gICAgc2NoZW1hXzIgPSBbCisgICAgZGVmIGNyZWF0ZV90ZXN0
X3NjaGVtYV8yKCk6CisgICAgICAgIHJldHVybiBbCiAgICAgICAgIHsKICAgICAgICAgICAgICJk
b21haW4iOiAiTmV0d29yayIsCiAgICAgICAgICAgICAidHlwZXMiOiBbCkBAIC0yNjksMTcgKzI5
OSwzMCBAQCBkZWYgc2VsZl90ZXN0KCk6CiAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAibWV0aG9kIiwgInR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJoZWFkZXJzIiwgInR5cGUiOiAib2JqZWN0IiB9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiZWNhbWVPcHRpb25hbEZpZWxkIiwgInR5cGUiOiAi
c3RyaW5nIiwgIm9wdGlvbmFsIjogVHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICBdCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJjb21tYW5kcyI6IFsK
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImFkZGVkQ29t
bWFuZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICJuYW1lIjogInNldEV4dHJhSFRUUEhlYWRlcnMiLAogICAgICAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aGVhZGVycyIsICJ0eXBlIjogIm9iamVjdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAibWlzbWF0Y2hlZCIsICJ0eXBlIjogIm9iamVjdCIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYmVjYW1lT3B0aW9uYWwiLCAidHlwZSI6ICJvYmplY3QiICwg
Im9wdGlvbmFsIjogVHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
ZGRlZFJlcXVpcmVkIiwgInR5cGUiOiAib2JqZWN0IiB9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJiZWNhbWVSZXF1aXJlZCIsICJ0eXBlIjogIm9iamVjdCIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYWRkZWRPcHRpb25hbCIsICJ0eXBlIjogIm9i
amVjdCIsICJvcHRpb25hbCI6IFRydWUgIH0sCiAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJub25PcHRpb25hbE1pbWVUeXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogVHJ1ZSB9CisgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1pbWVUeXBlIiwg
InR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
ZWNhbWVPcHRpb25hbCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRydWUgfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYWRkZWRSZXF1aXJlZCIsICJ0eXBlIjog
InN0cmluZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiZWNhbWVSZXF1
aXJlZCIsICJ0eXBlIjogInN0cmluZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYWRkZWRPcHRpb25hbCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IFRydWUg
IH0sCiAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBdLApAQCAtMjg3LDI1ICszMzAsNjcgQEAgZGVmIHNlbGZfdGVzdCgpOgogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVxdWVzdFdpbGxCZVNlbnQiLAog
ICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicmVxdWVzdCIsICIkcmVmIjogIlJlcXVlc3QiIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdCIsICIkcmVmIjogIlJlcXVlc3QiIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJlY2FtZU9wdGlvbmFsIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogVHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJhZGRlZFJlcXVpcmVkIiwgInR5cGUiOiAic3RyaW5nIn0sCisgICAgICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJlY2FtZVJlcXVpcmVkIiwgInR5cGUiOiAic3RyaW5n
IiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhZGRlZE9wdGlvbmFsIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogVHJ1ZSAgfSwKICAgICAgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAibmFtZSI6ICJhZGRlZEV2ZW50IgogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImRvbWFpbiI6ICJhZGRl
ZERvbWFpbiIKICAgICAgICAgfQogICAgIF0KIAotICAgIGVycm9ycyA9IGNvbXBhcmVfc2NoZW1h
cyhzY2hlbWFfMSwgc2NoZW1hXzIpCi0gICAgZ29sZGVuX2Vycm9ycyA9IFsKLSAgICAgICAgIk5l
dHdvcmsuc2V0VXNlckFnZW50T3ZlcnJpZGU6IGNvbW1hbmQgaXMgbWlzc2luZyIsCi0gICAgICAg
ICJOZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnM6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNz
aW5nOiBtaW1lVHlwZSIsCi0gICAgICAgICJOZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnM6IHJl
cXVpcmVkIHBhcmFtZXRlciBpcyBub3cgb3B0aW9uYWw6IG5vbk9wdGlvbmFsTWltZVR5cGUiLAot
ICAgICAgICAiTmV0d29yay5sb2FkaW5nRmFpbGVkOiBldmVudCBpcyBtaXNzaW5nIiwKLSAgICAg
ICAgIk5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQ6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNz
aW5nOiBwb3N0RGF0YSIsCi0gICAgICAgICJOZXR3b3JrLnJlcXVlc3RXaWxsQmVTZW50OiByZXF1
aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZzogZG9jdW1lbnRVUkwiIF0KLSAgICBmb3IgaSBpbiBy
YW5nZShsZW4oZXJyb3JzKSk6Ci0gICAgICAgIGlmIGVycm9yc1tpXSBub3QgaW4gZ29sZGVuX2Vy
cm9yczoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBsZW4oZXJyb3JzKSBp
cyBsZW4oZ29sZGVuX2Vycm9ycykKKyAgICBleHBlY3RlZF9lcnJvcnMgPSBbCisgICAgICAgICJy
ZW1vdmVkRG9tYWluOiBkb21haW4gaGFzIGJlZW4gcmVtb3ZlZCIsCisgICAgICAgICJOZXR3b3Jr
LnJlbW92ZWRDb21tYW5kOiBjb21tYW5kIGhhcyBiZWVuIHJlbW92ZWQiLAorICAgICAgICAiTmV0
d29yay5yZW1vdmVkRXZlbnQ6IGV2ZW50IGhhcyBiZWVuIHJlbW92ZWQiLAorICAgICAgICAiTmV0
d29yay5zZXRFeHRyYUhUVFBIZWFkZXJzLm1pc21hdGNoZWQ6IHBhcmFtZXRlciBiYXNlIHR5cGUg
bWlzbWF0Y2gsICdvYmplY3QnIHZzICdzdHJpbmcnIiwKKyAgICAgICAgIk5ldHdvcmsuc2V0RXh0
cmFIVFRQSGVhZGVycy5hZGRlZFJlcXVpcmVkOiByZXF1aXJlZCBwYXJhbWV0ZXIgaGFzIGJlZW4g
YWRkZWQiLAorICAgICAgICAiTmV0d29yay5zZXRFeHRyYUhUVFBIZWFkZXJzLmJlY2FtZVJlcXVp
cmVkOiBvcHRpb25hbCBwYXJhbWV0ZXIgaXMgbm93IHJlcXVpcmVkIiwKKyAgICAgICAgIk5ldHdv
cmsuc2V0RXh0cmFIVFRQSGVhZGVycy5yZW1vdmVkUmVxdWlyZWQ6IHJlcXVpcmVkIHJlc3BvbnNl
IHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkIiwKKyAgICAgICAgIk5ldHdvcmsuc2V0RXh0cmFI
VFRQSGVhZGVycy5iZWNhbWVPcHRpb25hbDogcmVxdWlyZWQgcmVzcG9uc2UgcGFyYW1ldGVyIGlz
IG5vdyBvcHRpb25hbCIsCisgICAgICAgICJOZXR3b3JrLnJlcXVlc3RXaWxsQmVTZW50LnJlbW92
ZWRSZXF1aXJlZDogcmVxdWlyZWQgcGFyYW1ldGVyIGhhcyBiZWVuIHJlbW92ZWQiLAorICAgICAg
ICAiTmV0d29yay5yZXF1ZXN0V2lsbEJlU2VudC5iZWNhbWVPcHRpb25hbDogcmVxdWlyZWQgcGFy
YW1ldGVyIGlzIG5vdyBvcHRpb25hbCIsCisgICAgICAgICJOZXR3b3JrLnJlcXVlc3RXaWxsQmVT
ZW50LnJlcXVlc3QgcGFyYW1ldGVyLT5OZXR3b3JrLlJlcXVlc3QucmVtb3ZlZEZpZWxkOiByZXF1
aXJlZCBwcm9wZXJ0eSBoYXMgYmVlbiByZW1vdmVkIiwKKyAgICAgICAgIk5ldHdvcmsucmVxdWVz
dFdpbGxCZVNlbnQucmVxdWVzdCBwYXJhbWV0ZXItPk5ldHdvcmsuUmVxdWVzdC5iZWNhbWVPcHRp
b25hbEZpZWxkOiByZXF1aXJlZCBwcm9wZXJ0eSBpcyBub3cgb3B0aW9uYWwiLAorICAgIF0KKwor
ICAgIGV4cGVjdGVkX2Vycm9yc19yZXZlcnNlID0gWworICAgICAgICJhZGRlZERvbWFpbjogZG9t
YWluIGhhcyBiZWVuIGFkZGVkIiwKKyAgICAgICAiTmV0d29yay5hZGRlZEV2ZW50OiBldmVudCBo
YXMgYmVlbiBhZGRlZCIsCisgICAgICAgIk5ldHdvcmsuYWRkZWRDb21tYW5kOiBjb21tYW5kIGhh
cyBiZWVuIGFkZGVkIiwKKyAgICAgICAiTmV0d29yay5zZXRFeHRyYUhUVFBIZWFkZXJzLm1pc21h
dGNoZWQ6IHBhcmFtZXRlciBiYXNlIHR5cGUgbWlzbWF0Y2gsICdzdHJpbmcnIHZzICdvYmplY3Qn
IiwKKyAgICAgICAiTmV0d29yay5zZXRFeHRyYUhUVFBIZWFkZXJzLnJlbW92ZWRSZXF1aXJlZDog
cmVxdWlyZWQgcGFyYW1ldGVyIGhhcyBiZWVuIHJlbW92ZWQiLAorICAgICAgICJOZXR3b3JrLnNl
dEV4dHJhSFRUUEhlYWRlcnMuYmVjYW1lT3B0aW9uYWw6IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBu
b3cgb3B0aW9uYWwiLAorICAgICAgICJOZXR3b3JrLnNldEV4dHJhSFRUUEhlYWRlcnMuYWRkZWRS
ZXF1aXJlZDogcmVxdWlyZWQgcmVzcG9uc2UgcGFyYW1ldGVyIGhhcyBiZWVuIGFkZGVkIiwKKyAg
ICAgICAiTmV0d29yay5zZXRFeHRyYUhUVFBIZWFkZXJzLmJlY2FtZVJlcXVpcmVkOiBvcHRpb25h
bCByZXNwb25zZSBwYXJhbWV0ZXIgaXMgbm93IHJlcXVpcmVkIiwKKyAgICAgICAiTmV0d29yay5y
ZXF1ZXN0V2lsbEJlU2VudC5iZWNhbWVSZXF1aXJlZDogb3B0aW9uYWwgcGFyYW1ldGVyIGlzIG5v
dyByZXF1aXJlZCIsCisgICAgICAgIk5ldHdvcmsucmVxdWVzdFdpbGxCZVNlbnQuYWRkZWRSZXF1
aXJlZDogcmVxdWlyZWQgcGFyYW1ldGVyIGhhcyBiZWVuIGFkZGVkIiwKKyAgICBdCisKKyAgICBk
ZWYgaXNfc3Vic2V0KHN1YnNldCwgc3VwZXJzZXQsIG1lc3NhZ2UpOgorICAgICAgICBmb3IgaSBp
biByYW5nZShsZW4oc3Vic2V0KSk6CisgICAgICAgICAgICBpZiBzdWJzZXRbaV0gbm90IGluIHN1
cGVyc2V0OgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIiVzIGVycm9yOiAlc1xu
IiAlIChtZXNzYWdlLCBzdWJzZXRbaV0pKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIGVycm9yc19tYXRjaChleHBlY3RlZCwgYWN0
dWFsKToKKyAgICAgICAgcmV0dXJuIChpc19zdWJzZXQoYWN0dWFsLCBleHBlY3RlZCwgIlVuZXhw
ZWN0ZWQiKSBhbmQKKyAgICAgICAgICAgICAgICBpc19zdWJzZXQoZXhwZWN0ZWQsIGFjdHVhbCwg
Ik1pc3NpbmciKSkKKworICAgIHJldHVybiAoZXJyb3JzX21hdGNoKGV4cGVjdGVkX2Vycm9ycywK
KyAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlX3NjaGVtYXMoY3JlYXRlX3Rlc3Rfc2No
ZW1hXzEoKSwgY3JlYXRlX3Rlc3Rfc2NoZW1hXzIoKSwgRmFsc2UpKSBhbmQKKyAgICAgICAgICAg
IGVycm9yc19tYXRjaChleHBlY3RlZF9lcnJvcnNfcmV2ZXJzZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21wYXJlX3NjaGVtYXMoY3JlYXRlX3Rlc3Rfc2NoZW1hXzIoKSwgY3JlYXRlX3Rl
c3Rfc2NoZW1hXzEoKSwgVHJ1ZSkpKQorCiAKIGRlZiBtYWluKCk6CiAgICAgaWYgbm90IHNlbGZf
dGVzdCgpOgpAQCAtMzEzLDcgKzM5OCw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHJldHVybiAx
CiAKICAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgNCBvciBzeXMuYXJndlsxXSAhPSAiLW8iOgotICAg
ICAgICBzeXMuc3RkZXJyLndyaXRlKCJVc2FnZTogJXMgLW8gT1VUUFVUX0ZJTEUgSU5QVVRfRklM
RVxuIiAlIHN5cy5hcmd2WzBdKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJVc2FnZTogJXMg
LW8gT1VUUFVUX0ZJTEUgSU5QVVRfRklMRSBbLS1zaG93LWNoYW5nZXNdXG4iICUgc3lzLmFyZ3Zb
MF0pCiAgICAgICAgIHJldHVybiAxCiAKICAgICBvdXRwdXRfcGF0aCA9IHN5cy5hcmd2WzJdCkBA
IC0zMjYsMTYgKzQxMSwyNiBAQCBkZWYgbWFpbigpOgogICAgIG1ham9yID0gc2NoZW1hWyJ2ZXJz
aW9uIl1bIm1ham9yIl0KICAgICBtaW5vciA9IHNjaGVtYVsidmVyc2lvbiJdWyJtaW5vciJdCiAg
ICAgdmVyc2lvbiA9ICIlcy4lcyIgJSAobWFqb3IsIG1pbm9yKQotICAgIHZlcnNpb25fZmlsZV9u
YW1lID0gb3MucGF0aC5ub3JtcGF0aChkaXJfbmFtZSArICIvSW5zcGVjdG9yLSIgKyB2ZXJzaW9u
ICsgIi5qc29uIikKLSAgICB2ZXJzaW9uX3NjaGVtYSA9IGxvYWRfanNvbih2ZXJzaW9uX2ZpbGVf
bmFtZSkKKyAgICBpZiBsZW4oZGlyX25hbWUpID09IDA6CisgICAgICAgIGRpcl9uYW1lID0gIi4i
CisgICAgYmFzZWxpbmVfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoZGlyX25hbWUgKyAiL0luc3Bl
Y3Rvci0iICsgdmVyc2lvbiArICIuanNvbiIpCisgICAgYmFzZWxpbmVfc2NoZW1hID0gbG9hZF9q
c29uKGJhc2VsaW5lX3BhdGgpCiAKLSAgICBlcnJvcnMgPSBjb21wYXJlX3NjaGVtYXModmVyc2lv
bl9zY2hlbWFbImRvbWFpbnMiXSwgc2NoZW1hWyJkb21haW5zIl0pCisgICAgZXJyb3JzID0gY29t
cGFyZV9zY2hlbWFzKGJhc2VsaW5lX3NjaGVtYVsiZG9tYWlucyJdLCBzY2hlbWFbImRvbWFpbnMi
XSwgRmFsc2UpCiAgICAgaWYgbGVuKGVycm9ycykgPiAwOgotICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCIgIGNvbXBhdGliaWxpdHkgd2l0aCAlczogRkFJTEVEXG4iICUgdmVyc2lvbikKKyAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZSgiICBDb21wYXRpYmlsaXR5IHdpdGggJXM6IEZBSUxFRFxuIiAl
IHZlcnNpb24pCiAgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CiAgICAgICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCAiICAgICVzXG4iICUgZXJyb3IpCiAgICAgICAgIHJldHVybiAxCiAKKyAg
ICBpZiBsZW4oc3lzLmFyZ3YpID4gNCBhbmQgc3lzLmFyZ3ZbNF0gPT0gIi0tc2hvdy1jaGFuZ2Vz
IjoKKyAgICAgICAgY2hhbmdlcyA9IGNvbXBhcmVfc2NoZW1hcygKKyAgICAgICAgICAgIGxvYWRf
anNvbihpbnB1dF9wYXRoKVsiZG9tYWlucyJdLCBsb2FkX2pzb24oYmFzZWxpbmVfcGF0aClbImRv
bWFpbnMiXSwgVHJ1ZSkKKyAgICAgICAgaWYgbGVuKGNoYW5nZXMpID4gMDoKKyAgICAgICAgICAg
IHByaW50ICIgIFB1YmxpYyBjaGFuZ2VzIHNpbmNlICVzOiIgJSB2ZXJzaW9uCisgICAgICAgICAg
ICBmb3IgY2hhbmdlIGluIGNoYW5nZXM6CisgICAgICAgICAgICAgICAgcHJpbnQgIiAgICAlcyIg
JSBjaGFuZ2UKKwogICAgIG91dHB1dF9maWxlLndyaXRlKCIiIgogI2lmbmRlZiBJbnNwZWN0b3JQ
cm90b2NvbFZlcnNpb25faAogI2RlZmluZSBJbnNwZWN0b3JQcm90b2NvbFZlcnNpb25faAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>