<?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>127419</bug_id>
          
          <creation_ts>2014-01-22 02:30:17 -0800</creation_ts>
          <short_desc>Refactor diff_parser</short_desc>
          <delta_ts>2024-03-11 18:07:56 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Dániel Bátyai">dbatyai.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970635</commentid>
    <comment_count>0</comment_count>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-01-22 02:30:17 -0800</bug_when>
    <thetext>Refactor diff_parser.py, and change it to compile regexes up-front instead of caching them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970636</commentid>
    <comment_count>1</comment_count>
      <attachid>221845</attachid>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-01-22 02:31:25 -0800</bug_when>
    <thetext>Created attachment 221845
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970637</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-22 02:32:36 -0800</bug_when>
    <thetext>Attachment 221845 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:78:  no spaces around keyword / parameter equals  [pep8/E251] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:101:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:102:  multiple spaces after operator  [pep8/E222] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:110:  missing whitespace around operator  [pep8/E225] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:113:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:127:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:131:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:149:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:154:  missing whitespace around operator  [pep8/E225] [5]
ERROR: Tools/Scripts/webkitpy/common/checkout/diff_parser.py:160:  too many blank lines (2)  [pep8/E303] [5]
Total errors found: 10 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970638</commentid>
    <comment_count>3</comment_count>
      <attachid>221846</attachid>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-01-22 02:37:24 -0800</bug_when>
    <thetext>Created attachment 221846
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970905</commentid>
    <comment_count>4</comment_count>
      <attachid>221846</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2014-01-22 15:21:43 -0800</bug_when>
    <thetext>Comment on attachment 221846
Proposed patch

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

&gt; Tools/ChangeLog:3
&gt; +        Refactor diff_parser

Although the patch looks reasonable, can you please include the addressed issues in the changelog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971545</commentid>
    <comment_count>5</comment_count>
      <attachid>222086</attachid>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-01-24 01:06:05 -0800</bug_when>
    <thetext>Created attachment 222086
Proposed patch

Added addressed issues to changlelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2020319</commentid>
    <comment_count>6</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-03-11 18:07:56 -0700</bug_when>
    <thetext>Just looking quickly, it seems that we have one FIXME at least:

https://searchfox.org/wubkat/rev/711120e7edec012527620d07bf63d85713a180fd/Tools/Scripts/webkitpy/common/checkout/diff_parser.py#41

CCing - some people for input, whether it is good to merge this.

@Sam - appreciate your input. :-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221845</attachid>
            <date>2014-01-22 02:31:25 -0800</date>
            <delta_ts>2014-01-22 02:37:36 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>proposepatch.patch</filename>
            <type>text/plain</type>
            <size>16108</size>
            <attacher name="Dániel Bátyai">dbatyai.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMmJh
YTNjLi41OWE3YjY3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDEtMjIgIETDoW5pZWwgQsOhdHlhaSAgPGRi
YXR5YWkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBSZWZhY3RvciBk
aWZmX3BhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weToKKyAg
ICAgICAgKERpZmZGaWxlLmFkZF91bmNoYW5nZWRfbGluZSk6CisgICAgICAgIChEaWZmUGFyc2Vy
Ll9faW5pdF9fKToKKyAgICAgICAgKERpZmZQYXJzZXIpOgorICAgICAgICAoRGlmZlBhcnNlci5j
b21waWxlX2NvbnZlcnNpb25fcGF0dGVybnMpOgorICAgICAgICAoRGlmZlBhcnNlci50b19zdm5f
ZGlmZik6CisgICAgICAgIChEaWZmUGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKToKKyAgICAg
ICAgKERpZmZQYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKToKKyAgICAgICAgKERpZmZQYXJzZXIu
Y2hlY2tfZmlsZV9kZWNsYXJhdGlvbik6CisgICAgICAgIChEaWZmUGFyc2VyLmNoZWNrX2xpbmVz
X2NoYW5nZWQpOgorICAgICAgICAoRGlmZlBhcnNlci5fcGFyc2VfaW50b19kaWZmX2ZpbGVzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91
bml0dGVzdC5weToKKyAgICAgICAgKERpZmZQYXJzZXJUZXN0LnRlc3RfZGlmZl9jb252ZXJ0ZXIp
OgorICAgICAgICAoRGlmZlBhcnNlclRlc3QudGVzdF9kaWZmX2NvbnZlcnRlci50b19zdm5fZGlm
Zik6CisgICAgICAgIChEaWZmUGFyc2VyVGVzdC50ZXN0X2dpdF9kaWZmX3RvX3N2bl9kaWZmKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvaGFzbGFuZGVkLnB5OgorICAg
ICAgICAoSGFzTGFuZGVkLmNvbnZlcnRfdG9fc3ZuKToKKwogMjAxNC0wMS0yMSAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIElhbiBhbmQgUmlj
a3kgdG8gdGhlIGNvbnRyaWJ1dG9yIGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHkKaW5kZXggM2E5ZWE5Mi4uZjY3NzZk
OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlm
Zl9wYXJzZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
ZGlmZl9wYXJzZXIucHkKQEAgLTMzLDY0ICszMyw2IEBAIGltcG9ydCByZQogCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKLQotIyBGSVhNRTogVGhpcyBpcyBicm9rZW4uIFdl
IHNob3VsZCBjb21waWxlIG91ciByZWdleHBzIHVwLWZyb250Ci0jIGluc3RlYWQgb2YgdXNpbmcg
YSBjdXN0b20gY2FjaGUuCi1fcmVnZXhwX2NvbXBpbGVfY2FjaGUgPSB7fQotCi0KLSMgRklYTUU6
IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQuCi1kZWYgbWF0Y2gocGF0dGVybiwgc3Ry
aW5nKToKLSAgICAiIiJNYXRjaGVzIHRoZSBzdHJpbmcgd2l0aCB0aGUgcGF0dGVybiwgY2FjaGlu
ZyB0aGUgY29tcGlsZWQgcmVnZXhwLiIiIgotICAgIGlmIG5vdCBwYXR0ZXJuIGluIF9yZWdleHBf
Y29tcGlsZV9jYWNoZToKLSAgICAgICAgX3JlZ2V4cF9jb21waWxlX2NhY2hlW3BhdHRlcm5dID0g
cmUuY29tcGlsZShwYXR0ZXJuKQotICAgIHJldHVybiBfcmVnZXhwX2NvbXBpbGVfY2FjaGVbcGF0
dGVybl0ubWF0Y2goc3RyaW5nKQotCi0KLSMgRklYTUU6IFRoaXMgYmVsb25ncyBvbiBEaWZmUGFy
c2VyIChlLmcuIGFzIHRvX3N2bl9kaWZmKCkpLgotZGVmIGdpdF9kaWZmX3RvX3N2bl9kaWZmKGxp
bmUpOgotICAgICIiIkNvbnZlcnRzIGEgZ2l0IGZvcm1hdHRlZCBkaWZmIGxpbmUgdG8gYSBzdm4g
Zm9ybWF0dGVkIGxpbmUuCi0KLSAgICBBcmdzOgotICAgICAgbGluZTogQSBzdHJpbmcgcmVwcmVz
ZW50aW5nIGEgbGluZSBvZiB0aGUgZGlmZi4KLSAgICAiIiIKLSAgICAjIEZJWE1FOiBUaGlzIGxp
c3Qgc2hvdWxkIGJlIGEgY2xhc3MgbWVtYmVyIG9uIERpZmZQYXJzZXIuCi0gICAgIyBUaGVzZSBy
ZWdleHAgcGF0dGVybnMgc2hvdWxkIGJlIGNvbXBpbGVkIG9uY2UgaW5zdGVhZCBvZiBldmVyeSB0
aW1lLgotICAgIGNvbnZlcnNpb25fcGF0dGVybnMgPSAoKCJeZGlmZiAtLWdpdCBcdy8oLispIFx3
Lyg/UDxGaWxlUGF0aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIkluZGV4OiAiICsgbWF0Y2hlZC5n
cm91cCgnRmlsZVBhdGgnKSArICJcbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJe
bmV3IGZpbGUuKiIsIGxhbWJkYSBtYXRjaGVkOiAiXG4iKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgiXmluZGV4ICgoWzAtOWEtZl17N31cLlwuWzAtOWEtZl17N30pfChbMC05YS1mXXs0
MH1cLlwuWzAtOWEtZl17NDB9KSkgWzAtOV17Nn0iLCBsYW1iZGEgbWF0Y2hlZDogIj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT1cbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJeLS0tIFx3Lyg/UDxGaWxlUGF0
aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIi0tLSAiICsgbWF0Y2hlZC5ncm91cCgnRmlsZVBhdGgn
KSArICJcbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJeXCtcK1wrIFx3Lyg/UDxG
aWxlUGF0aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIisrKyAiICsgbWF0Y2hlZC5ncm91cCgnRmls
ZVBhdGgnKSArICJcbiIpKQotCi0gICAgZm9yIHBhdHRlcm4sIGNvbnZlcnNpb24gaW4gY29udmVy
c2lvbl9wYXR0ZXJuczoKLSAgICAgICAgbWF0Y2hlZCA9IG1hdGNoKHBhdHRlcm4sIGxpbmUpCi0g
ICAgICAgIGlmIG1hdGNoZWQ6Ci0gICAgICAgICAgICByZXR1cm4gY29udmVyc2lvbihtYXRjaGVk
KQotICAgIHJldHVybiBsaW5lCi0KLQotIyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBzbyB3ZSBjYW4g
dW5pdHRlc3QgZ2V0X2RpZmZfY29udmVydGVyIGZ1bmN0aW9uCi1kZWYgc3ZuX2RpZmZfdG9fc3Zu
X2RpZmYobGluZSk6Ci0gICAgcmV0dXJuIGxpbmUKLQotCi0jIEZJWE1FOiBUaGlzIG1ldGhvZCBi
ZWxvbmdzIG9uIERpZmZQYXJzZXIKLWRlZiBnZXRfZGlmZl9jb252ZXJ0ZXIobGluZXMpOgotICAg
ICIiIkdldHMgYSBjb252ZXJ0ZXIgZnVuY3Rpb24gb2YgZGlmZiBsaW5lcy4KLQotICAgIEFyZ3M6
Ci0gICAgICBsaW5lczogVGhlIGxpbmVzIG9mIGEgZGlmZiBmaWxlLgotICAgICAgICAgICAgIElm
IHRoaXMgbGluZSBpcyBnaXQgZm9ybWF0dGVkLCB3ZSdsbCByZXR1cm4gYQotICAgICAgICAgICAg
IGNvbnZlcnRlciBmcm9tIGdpdCB0byBTVk4uCi0gICAgIiIiCi0gICAgZm9yIGksIGxpbmUgaW4g
ZW51bWVyYXRlKGxpbmVzWzotMV0pOgotICAgICAgICAjIFN0b3Agd2hlbiB3ZSBmaW5kIHRoZSBm
aXJzdCBwYXRjaAotICAgICAgICBpZiBsaW5lWzozXSA9PSAiKysrIiBhbmQgbGluZXNbaSArIDFd
ID09ICItLS0iOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgbWF0Y2gociJeZGlmZiAt
LWdpdCBcdy8iLCBsaW5lKToKLSAgICAgICAgICAgIHJldHVybiBnaXRfZGlmZl90b19zdm5fZGlm
ZgotICAgIHJldHVybiBzdm5fZGlmZl90b19zdm5fZGlmZgotCiBfSU5JVElBTF9TVEFURSA9IDEK
IF9ERUNMQVJFRF9GSUxFX1BBVEggPSAyCiBfUFJPQ0VTU0lOR19DSFVOSyA9IDMKQEAgLTEyNiw4
ICs2OCw2IEBAIGNsYXNzIERpZmZGaWxlKG9iamVjdCk6CiAgICAgICAgIHNlbGYubGluZXMuYXBw
ZW5kKChkZWxldGVkX2xpbmVfbnVtYmVyLCBuZXdfbGluZV9udW1iZXIsIGxpbmUpKQogCiAKLSMg
SWYgdGhpcyBpcyBnb2luZyB0byBiZSBjYWxsZWQgRGlmZlBhcnNlciwgaXQgc2hvdWxkIGJlIGEg
cmUtdXNlYWJsZSBwYXJzZXIuCi0jIE90aGVyd2lzZSB3ZSBzaG91bGQgcmVuYW1lIGl0IHRvIFBh
cnNlZERpZmYgb3IganVzdCBEaWZmLgogY2xhc3MgRGlmZlBhcnNlcihvYmplY3QpOgogICAgICIi
IkEgcGFyc2VyIGZvciBhIHBhdGNoIGZpbGUuCiAKQEAgLTEzNSw1OSArNzUsMTMxIEBAIGNsYXNz
IERpZmZQYXJzZXIob2JqZWN0KToKICAgICBhIERpZmZGaWxlIG9iamVjdC4KICAgICAiIiIKIAot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaWZmX2lucHV0KToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZGlmZl9pbnB1dCA9IE5vbmUpOgogICAgICAgICAiIiJQYXJzZXMgYSBkaWZmLgogCiAgICAg
ICAgIEFyZ3M6CiAgICAgICAgICAgZGlmZl9pbnB1dDogQW4gaXRlcmFibGUgb2JqZWN0LgogICAg
ICAgICAiIiIKLSAgICAgICAgc2VsZi5maWxlcyA9IHNlbGYuX3BhcnNlX2ludG9fZGlmZl9maWxl
cyhkaWZmX2lucHV0KQorICAgICAgICBzZWxmLl9jb21waWxlZF9jb252ZXJzaW9uX3BhdHRlcm5z
ID0gKCkKKyAgICAgICAgc2VsZi5jb21waWxlX2NvbnZlcnNpb25fcGF0dGVybnMoKQorCisgICAg
ICAgIHNlbGYuX2dpdF9kaWZmX3BhdHRlcm4gPSByZS5jb21waWxlKHIiXmRpZmYgLS1naXQgXHcv
IikKKyAgICAgICAgc2VsZi5fZmlsZV9kZWNsYXJhdGlvbl9wYXR0ZXJuID0gcmUuY29tcGlsZShy
Il5JbmRleDogKD9QPEZpbGVQYXRoPi4rKSIpCisgICAgICAgIHNlbGYuX2xpbmVzX2NoYW5nZWRf
cGF0dGVybiA9IHJlLmNvbXBpbGUociJeQEAgLSg/UDxPbGRTdGFydExpbmU+XGQrKSgsXGQrKT8g
XCsoP1A8TmV3U3RhcnRMaW5lPlxkKykoLFxkKyk/IEBAIikKKworICAgICAgICBzZWxmLl9zdGF0
ZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fY3VycmVudF9maWxlID0gTm9uZQorICAgICAgICBzZWxm
Ll9vbGRfZGlmZl9saW5lID0gTm9uZQorICAgICAgICBzZWxmLl9uZXdfZGlmZl9saW5lID0gTm9u
ZQorICAgICAgICBzZWxmLmZpbGVzID0gTm9uZQorCisgICAgICAgIGlmIGRpZmZfaW5wdXQ6Cisg
ICAgICAgICAgICBzZWxmLl9wYXJzZV9pbnRvX2RpZmZfZmlsZXMoZGlmZl9pbnB1dCkKKworCisg
ICAgZGVmIGNvbXBpbGVfY29udmVyc2lvbl9wYXR0ZXJucyhzZWxmKToKKyAgICAgICAgY29udmVy
c2lvbl9wYXR0ZXJucyA9ICAoKCJeZGlmZiAtLWdpdCBcdy8oLispIFx3Lyg/UDxGaWxlUGF0aD4u
KykiLCBsYW1iZGEgbWF0Y2hlZDogIkluZGV4OiAiICsgbWF0Y2hlZC5ncm91cCgnRmlsZVBhdGgn
KSArICJcbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIl5uZXcgZmlsZS4q
IiwgbGFtYmRhIG1hdGNoZWQ6ICJcbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoIl5pbmRleCAoKFswLTlhLWZdezd9XC5cLlswLTlhLWZdezd9KXwoWzAtOWEtZl17NDB9XC5c
LlswLTlhLWZdezQwfSkpIFswLTldezZ9IiwgbGFtYmRhIG1hdGNoZWQ6ICI9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4i
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJeLS0tIFx3Lyg/UDxGaWxlUGF0
aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIi0tLSAiICsgbWF0Y2hlZC5ncm91cCgnRmlsZVBhdGgn
KSArICJcbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIl5cK1wrXCsgXHcv
KD9QPEZpbGVQYXRoPi4rKSIsIGxhbWJkYSBtYXRjaGVkOiAiKysrICIgKyBtYXRjaGVkLmdyb3Vw
KCdGaWxlUGF0aCcpICsgIlxuIikpCisKKyAgICAgICAgZm9yIHBhdHRlcm4sIGNvbnZlcnNpb24g
aW4gY29udmVyc2lvbl9wYXR0ZXJuczoKKyAgICAgICAgICAgIHBhdHRlcm4gPSByZS5jb21waWxl
KHBhdHRlcm4pCisgICAgICAgICAgICBzZWxmLl9jb21waWxlZF9jb252ZXJzaW9uX3BhdHRlcm5z
PXNlbGYuX2NvbXBpbGVkX2NvbnZlcnNpb25fcGF0dGVybnMrKChwYXR0ZXJuLCBjb252ZXJzaW9u
KSwpCisKKworICAgIGRlZiB0b19zdm5fZGlmZihzZWxmLCBsaW5lKToKKyAgICAgICAgIiIiQ29u
dmVydHMgYSBnaXQgZm9ybWF0dGVkIGRpZmYgbGluZSB0byBhIHN2biBmb3JtYXR0ZWQgbGluZS4K
KworICAgICAgICBBcmdzOgorICAgICAgICAgIGxpbmU6IEEgc3RyaW5nIHJlcHJlc2VudGluZyBh
IGxpbmUgb2YgdGhlIGRpZmYuCisgICAgICAgICIiIgorCisgICAgICAgIGZvciBwYXR0ZXJuLCBj
b252ZXJzaW9uIGluIHNlbGYuX2NvbXBpbGVkX2NvbnZlcnNpb25fcGF0dGVybnM6CisgICAgICAg
ICAgICBtYXRjaGVkID0gcGF0dGVybi5tYXRjaChsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2hl
ZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gY29udmVyc2lvbihtYXRjaGVkKQorICAgICAgICBy
ZXR1cm4gbGluZQorCisKKyAgICBkZWYgc3ZuX2RpZmZfdG9fc3ZuX2RpZmYoc2VsZiwgbGluZSk6
CisgICAgICAgIHJldHVybiBsaW5lCisKKworICAgIGRlZiBnZXRfZGlmZl9jb252ZXJ0ZXIoc2Vs
ZiwgbGluZXMpOgorICAgICAgICAiIiJHZXRzIGEgY29udmVydGVyIGZ1bmN0aW9uIG9mIGRpZmYg
bGluZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBsaW5lczogVGhlIGxpbmVzIG9mIGEg
ZGlmZiBmaWxlLgorICAgICAgICAgICAgICAgICBJZiB0aGlzIGxpbmUgaXMgZ2l0IGZvcm1hdHRl
ZCwgd2UnbGwgcmV0dXJuIGEKKyAgICAgICAgICAgICAgICAgY29udmVydGVyIGZyb20gZ2l0IHRv
IFNWTi4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKGxp
bmVzWzotMV0pOgorICAgICAgICAgICAgIyBTdG9wIHdoZW4gd2UgZmluZCB0aGUgZmlyc3QgcGF0
Y2gKKyAgICAgICAgICAgIGlmIGxpbmVbOjNdID09ICIrKysiIGFuZCBsaW5lc1tpICsgMV0gPT0g
Ii0tLSI6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIHNlbGYuX2dpdF9k
aWZmX3BhdHRlcm4ubWF0Y2gobGluZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudG9f
c3ZuX2RpZmYKKyAgICAgICAgcmV0dXJuIHNlbGYuc3ZuX2RpZmZfdG9fc3ZuX2RpZmYKKworCisg
ICAgZGVmIGNoZWNrX2ZpbGVfZGVjbGFyYXRpb24oc2VsZiwgbGluZSk6CisgICAgICAgIGZpbGVf
ZGVjbGFyYXRpb24gPSBzZWxmLl9maWxlX2RlY2xhcmF0aW9uX3BhdHRlcm4ubWF0Y2gobGluZSkK
KyAgICAgICAgaWYgZmlsZV9kZWNsYXJhdGlvbjoKKyAgICAgICAgICAgIGZpbGVuYW1lID0gZmls
ZV9kZWNsYXJhdGlvbi5ncm91cCgnRmlsZVBhdGgnKQorICAgICAgICAgICAgc2VsZi5fY3VycmVu
dF9maWxlID0gRGlmZkZpbGUoZmlsZW5hbWUpCisgICAgICAgICAgICBzZWxmLmZpbGVzW2ZpbGVu
YW1lXT0gc2VsZi5fY3VycmVudF9maWxlCisgICAgICAgICAgICBzZWxmLl9zdGF0ZSA9IF9ERUNM
QVJFRF9GSUxFX1BBVEgKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBG
YWxzZQorCisKKyAgICBkZWYgY2hlY2tfbGluZXNfY2hhbmdlZChzZWxmLCBsaW5lLCBzdGF0ZSk6
CisgICAgICAgIGxpbmVzX2NoYW5nZWQgPSBzZWxmLl9saW5lc19jaGFuZ2VkX3BhdHRlcm4ubWF0
Y2gobGluZSkKKyAgICAgICAgaWYgbGluZXNfY2hhbmdlZDoKKyAgICAgICAgICAgIGlmIHN0YXRl
ICE9IF9ERUNMQVJFRF9GSUxFX1BBVEggYW5kIHN0YXRlICE9IF9QUk9DRVNTSU5HX0NIVU5LOgor
ICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuZXhwZWN0ZWQgbGluZSBjaGFuZ2Ugd2l0aG91
dCBmaWxlIHBhdGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWNsYXJhdGlvbjog
JXInICUgbGluZSkKKworICAgICAgICAgICAgc2VsZi5fb2xkX2RpZmZfbGluZSA9IGludChsaW5l
c19jaGFuZ2VkLmdyb3VwKCdPbGRTdGFydExpbmUnKSkKKyAgICAgICAgICAgIHNlbGYuX25ld19k
aWZmX2xpbmUgPSBpbnQobGluZXNfY2hhbmdlZC5ncm91cCgnTmV3U3RhcnRMaW5lJykpCisgICAg
ICAgICAgICBzZWxmLl9zdGF0ZSA9IF9QUk9DRVNTSU5HX0NIVU5LCisgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKwogCi0gICAgIyBGSVhNRTogVGhpcyBmdW5j
dGlvbiBpcyB3YXkgdG9vIGxvbmcgYW5kIG5lZWRzIHRvIGJlIGJyb2tlbiB1cC4KICAgICBkZWYg
X3BhcnNlX2ludG9fZGlmZl9maWxlcyhzZWxmLCBkaWZmX2lucHV0KToKLSAgICAgICAgZmlsZXMg
PSB7fQotICAgICAgICBzdGF0ZSA9IF9JTklUSUFMX1NUQVRFCi0gICAgICAgIGN1cnJlbnRfZmls
ZSA9IE5vbmUKLSAgICAgICAgb2xkX2RpZmZfbGluZSA9IE5vbmUKLSAgICAgICAgbmV3X2RpZmZf
bGluZSA9IE5vbmUKLSAgICAgICAgdHJhbnNmb3JtX2xpbmUgPSBnZXRfZGlmZl9jb252ZXJ0ZXIo
ZGlmZl9pbnB1dCkKKyAgICAgICAgc2VsZi5maWxlcyA9IHt9CisgICAgICAgIHNlbGYuX3N0YXRl
ID0gX0lOSVRJQUxfU1RBVEUKKyAgICAgICAgdHJhbnNmb3JtX2xpbmUgPSBzZWxmLmdldF9kaWZm
X2NvbnZlcnRlcihkaWZmX2lucHV0KQorCiAgICAgICAgIGZvciBsaW5lIGluIGRpZmZfaW5wdXQ6
CiAgICAgICAgICAgICBsaW5lID0gbGluZS5yc3RyaXAoIlxuIikKICAgICAgICAgICAgIGxpbmUg
PSB0cmFuc2Zvcm1fbGluZShsaW5lKQogCi0gICAgICAgICAgICBmaWxlX2RlY2xhcmF0aW9uID0g
bWF0Y2gociJeSW5kZXg6ICg/UDxGaWxlUGF0aD4uKykiLCBsaW5lKQotICAgICAgICAgICAgaWYg
ZmlsZV9kZWNsYXJhdGlvbjoKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVfZGVjbGFy
YXRpb24uZ3JvdXAoJ0ZpbGVQYXRoJykKLSAgICAgICAgICAgICAgICBjdXJyZW50X2ZpbGUgPSBE
aWZmRmlsZShmaWxlbmFtZSkKLSAgICAgICAgICAgICAgICBmaWxlc1tmaWxlbmFtZV0gPSBjdXJy
ZW50X2ZpbGUKLSAgICAgICAgICAgICAgICBzdGF0ZSA9IF9ERUNMQVJFRF9GSUxFX1BBVEgKKyAg
ICAgICAgICAgIGlmIHNlbGYuY2hlY2tfZmlsZV9kZWNsYXJhdGlvbihsaW5lKToKICAgICAgICAg
ICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBsaW5lc19jaGFuZ2VkID0gbWF0Y2gociJe
QEAgLSg/UDxPbGRTdGFydExpbmU+XGQrKSgsXGQrKT8gXCsoP1A8TmV3U3RhcnRMaW5lPlxkKyko
LFxkKyk/IEBAIiwgbGluZSkKLSAgICAgICAgICAgIGlmIGxpbmVzX2NoYW5nZWQ6Ci0gICAgICAg
ICAgICAgICAgaWYgc3RhdGUgIT0gX0RFQ0xBUkVEX0ZJTEVfUEFUSCBhbmQgc3RhdGUgIT0gX1BS
T0NFU1NJTkdfQ0hVTks6Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuZXhwZWN0
ZWQgbGluZSBjaGFuZ2Ugd2l0aG91dCBmaWxlIHBhdGggJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdkZWNsYXJhdGlvbjogJXInICUgbGluZSkKLSAgICAgICAgICAgICAgICBvbGRf
ZGlmZl9saW5lID0gaW50KGxpbmVzX2NoYW5nZWQuZ3JvdXAoJ09sZFN0YXJ0TGluZScpKQotICAg
ICAgICAgICAgICAgIG5ld19kaWZmX2xpbmUgPSBpbnQobGluZXNfY2hhbmdlZC5ncm91cCgnTmV3
U3RhcnRMaW5lJykpCi0gICAgICAgICAgICAgICAgc3RhdGUgPSBfUFJPQ0VTU0lOR19DSFVOSwor
ICAgICAgICAgICAgaWYgc2VsZi5jaGVja19saW5lc19jaGFuZ2VkKGxpbmUsIHNlbGYuX3N0YXRl
KToKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBpZiBzdGF0ZSA9PSBf
UFJPQ0VTU0lOR19DSFVOSzoKKyAgICAgICAgICAgIGlmIHNlbGYuX3N0YXRlID09IF9QUk9DRVNT
SU5HX0NIVU5LOgogICAgICAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnKycpOgotICAg
ICAgICAgICAgICAgICAgICBjdXJyZW50X2ZpbGUuYWRkX25ld19saW5lKG5ld19kaWZmX2xpbmUs
IGxpbmVbMTpdKQotICAgICAgICAgICAgICAgICAgICBuZXdfZGlmZl9saW5lICs9IDEKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9maWxlLmFkZF9uZXdfbGluZShzZWxmLl9uZXdf
ZGlmZl9saW5lLCBsaW5lWzE6XSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmV3X2RpZmZf
bGluZSArPSAxCiAgICAgICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoJy0nKToKLSAg
ICAgICAgICAgICAgICAgICAgY3VycmVudF9maWxlLmFkZF9kZWxldGVkX2xpbmUob2xkX2RpZmZf
bGluZSwgbGluZVsxOl0pCi0gICAgICAgICAgICAgICAgICAgIG9sZF9kaWZmX2xpbmUgKz0gMQor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X2ZpbGUuYWRkX2RlbGV0ZWRfbGluZShz
ZWxmLl9vbGRfZGlmZl9saW5lLCBsaW5lWzE6XSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5f
b2xkX2RpZmZfbGluZSArPSAxCiAgICAgICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgo
JyAnKToKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9maWxlLmFkZF91bmNoYW5nZWRfbGlu
ZShvbGRfZGlmZl9saW5lLCBuZXdfZGlmZl9saW5lLCBsaW5lWzE6XSkKLSAgICAgICAgICAgICAg
ICAgICAgb2xkX2RpZmZfbGluZSArPSAxCi0gICAgICAgICAgICAgICAgICAgIG5ld19kaWZmX2xp
bmUgKz0gMQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X2ZpbGUuYWRkX3VuY2hh
bmdlZF9saW5lKHNlbGYuX29sZF9kaWZmX2xpbmUsIHNlbGYuX25ld19kaWZmX2xpbmUsIGxpbmVb
MTpdKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9vbGRfZGlmZl9saW5lICs9IDEKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbmV3X2RpZmZfbGluZSArPSAxCiAgICAgICAgICAgICAgICAg
ZWxpZiBsaW5lID09ICdcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJzoKICAgICAgICAgICAg
ICAgICAgICAgIyBOb3RoaW5nIHRvIGRvLiAgV2UgbWF5IHN0aWxsIGhhdmUgc29tZSBhZGRlZCBs
aW5lcy4KICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuZXhwZWN0ZWQgZGlmZiBmb3JtYXQgd2hl
biBwYXJzaW5nIGEgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaHVuazogJXIn
ICUgbGluZSkKLSAgICAgICAgcmV0dXJuIGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5
CmluZGV4IDc4ZGFiMjYuLjQwZTg2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5CkBA
IC03OSw2ICs3OSw3IEBAIGNsYXNzIERpZmZQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMCwgMSksIGRpZmYubGluZXNbMF1bMDoyXSkKIAog
ICAgIGRlZiB0ZXN0X2RpZmZfY29udmVydGVyKHNlbGYpOgorICAgICAgICBwYXJzZXIgPSBkaWZm
X3BhcnNlci5EaWZmUGFyc2VyKERJRkZfVEVTVF9EQVRBLnNwbGl0bGluZXMoKSkKICAgICAgICAg
Y29tbWVudF9saW5lcyA9IFsKICAgICAgICAgICAgICJIZXkgZ3V5cyxcbiIsCiAgICAgICAgICAg
ICAiXG4iLApAQCAtOTcsMjIgKzk4LDIyIEBAIGNsYXNzIERpZmZQYXJzZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iLAogICAgICAgICAgICAgIi0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weVxu
IiwKICAgICAgICAgICAgICIrKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvZGlmZl9wYXJzZXIucHlcbiIsCi0gICAgICAgICAgICAiQEAgLTU5LDYgKzU5LDcgQEAgZGVm
IGdpdF9kaWZmX3RvX3N2bl9kaWZmKGxpbmUpOlxuIiwKKyAgICAgICAgICAgICJAQCAtNTksNiAr
NTksNyBAQCBkZWYgdG9fc3ZuX2RpZmYobGluZSk6XG4iLAogICAgICAgICAgICAgXQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZlcnRlcihzdm5fZGlm
Zl9saW5lcyksIGRpZmZfcGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZlcnRlcihjb21tZW50X2xpbmVz
ICsgc3ZuX2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5zdm5fZGlmZl90b19zdm5fZGlmZikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIocmV2
aXNpb25fbGluZXMgKyBzdm5fZGlmZl9saW5lcyksIGRpZmZfcGFyc2VyLnN2bl9kaWZmX3RvX3N2
bl9kaWZmKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0
ZXIoc3ZuX2RpZmZfbGluZXMpLCBwYXJzZXIuc3ZuX2RpZmZfdG9fc3ZuX2RpZmYpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmdldF9kaWZmX2NvbnZlcnRlcihjb21tZW50X2xpbmVz
ICsgc3ZuX2RpZmZfbGluZXMpLCBwYXJzZXIuc3ZuX2RpZmZfdG9fc3ZuX2RpZmYpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmdldF9kaWZmX2NvbnZlcnRlcihyZXZpc2lvbl9saW5l
cyArIHN2bl9kaWZmX2xpbmVzKSwgcGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKQogCiAgICAg
ICAgIGdpdF9kaWZmX2xpbmVzID0gWwogICAgICAgICAgICAgImRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5XG4iLAogICAgICAg
ICAgICAgImluZGV4IDNjNWI0NWIuLjAxOTdlYWQgMTAwNjQ0XG4iLAogICAgICAgICAgICAgIi0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5
XG4iLAogICAgICAgICAgICAgIisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2RpZmZfcGFyc2VyLnB5XG4iLAotICAgICAgICAgICAgIkBAIC01OSw2ICs1OSw3IEBA
IGRlZiBnaXRfZGlmZl90b19zdm5fZGlmZihsaW5lKTpcbiIsCisgICAgICAgICAgICAiQEAgLTU5
LDYgKzU5LDcgQEAgZGVmIHRvX3N2bl9kaWZmKGxpbmUpOlxuIiwKICAgICAgICAgICAgIF0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoZ2l0
X2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5naXRfZGlmZl90b19zdm5fZGlmZikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoY29tbWVudF9s
aW5lcyArIGdpdF9kaWZmX2xpbmVzKSwgZGlmZl9wYXJzZXIuZ2l0X2RpZmZfdG9fc3ZuX2RpZmYp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZl9wYXJzZXIuZ2V0X2RpZmZfY29udmVydGVy
KHJldmlzaW9uX2xpbmVzICsgZ2l0X2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5naXRfZGlmZl90
b19zdm5fZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZXIuZ2V0X2RpZmZfY29u
dmVydGVyKGdpdF9kaWZmX2xpbmVzKSwgcGFyc2VyLnRvX3N2bl9kaWZmKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoY29tbWVudF9saW5lcyArIGdp
dF9kaWZmX2xpbmVzKSwgcGFyc2VyLnRvX3N2bl9kaWZmKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIocmV2aXNpb25fbGluZXMgKyBnaXRfZGlmZl9s
aW5lcyksIHBhcnNlci50b19zdm5fZGlmZikKIAogICAgIGRlZiB0ZXN0X2dpdF9tbmVtb25pY3By
ZWZpeChzZWxmKToKICAgICAgICAgcCA9IHJlLmNvbXBpbGUocicgKFthfGJdKS8nKQpAQCAtMTMw
LDYgKzEzMSw3IEBAIGNsYXNzIERpZmZQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgIHNlbGYudGVzdF9kaWZmX3BhcnNlcihkaWZmX3BhcnNlci5EaWZmUGFyc2VyKHBh
dGNoLnNwbGl0bGluZXMoKSkpCiAKICAgICBkZWYgdGVzdF9naXRfZGlmZl90b19zdm5fZGlmZihz
ZWxmKToKKyAgICAgICAgcGFyc2VyID0gZGlmZl9wYXJzZXIuRGlmZlBhcnNlcihESUZGX1RFU1Rf
REFUQS5zcGxpdGxpbmVzKCkpCiAgICAgICAgIG91dHB1dCA9ICIiIlwKIEluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weQogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpAQCAtMTcxLDUgKzE3Myw1IEBAIGluZGV4IGI0OGIxNjIuLmYzMDA5NjAgMTAwNjQ0CiAgRgog
IiIiKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwob3V0cHV0LCAnJy5qb2lu
KGRpZmZfcGFyc2VyLmdpdF9kaWZmX3RvX3N2bl9kaWZmKHgpIGZvciB4IGluIHNob3J0Zm10LnJl
YWRsaW5lcygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChvdXRwdXQsICcn
LmpvaW4oZGlmZl9wYXJzZXIuZ2l0X2RpZmZfdG9fc3ZuX2RpZmYoeCkgZm9yIHggaW4gaW5wdXRm
bXQucmVhZGxpbmVzKCkpKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKG91dHB1
dCwgJycuam9pbihwYXJzZXIudG9fc3ZuX2RpZmYoeCkgZm9yIHggaW4gc2hvcnRmbXQucmVhZGxp
bmVzKCkpKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKG91dHB1dCwgJycuam9p
bihwYXJzZXIudG9fc3ZuX2RpZmYoeCkgZm9yIHggaW4gaW5wdXRmbXQucmVhZGxpbmVzKCkpKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2hhc2xhbmRlZC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9oYXNsYW5kZWQucHkKaW5kZXgg
YjA2OTJiMy4uMGVmODY3MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2hhc2xhbmRlZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvaGFzbGFuZGVkLnB5CkBAIC0zNCw3ICszNCw3IEBAIGltcG9ydCB0ZW1wZmlsZQogCiBmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2Ny
aXB0RXJyb3IKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0IGltcG9ydCBkaWZmX3BhcnNl
cgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuZGlmZl9wYXJzZXIgaW1wb3J0IERpZmZQ
YXJzZXIKIAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzIGltcG9ydCBjb25maXJtZGlmZgogCkBA
IC00Niw3ICs0Niw4IEBAIGNsYXNzIEhhc0xhbmRlZChjb25maXJtZGlmZi5Db25maXJtRGlmZik6
CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNvbnZlcnRfdG9fc3ZuKGNscywgZGlmZik6CiAg
ICAgICAgIGxpbmVzID0gU3RyaW5nSU8uU3RyaW5nSU8oZGlmZikucmVhZGxpbmVzKCkKLSAgICAg
ICAgY29udmVydCA9IGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZlcnRlcihsaW5lcykKKyAgICAg
ICAgcGFyc2VyID0gRGlmZlBhcnNlcigpCisgICAgICAgIGNvbnZlcnQgPSBwYXJzZXIuZ2V0X2Rp
ZmZfY29udmVydGVyKGxpbmVzKQogICAgICAgICByZXR1cm4gIiIuam9pbihjb252ZXJ0KHgpIGZv
ciB4IGluIGxpbmVzKQogCiAgICAgQGNsYXNzbWV0aG9kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221846</attachid>
            <date>2014-01-22 02:37:24 -0800</date>
            <delta_ts>2014-01-24 00:51:01 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>proposepatch.patch</filename>
            <type>text/plain</type>
            <size>16123</size>
            <attacher name="Dániel Bátyai">dbatyai.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMmJh
YTNjLi41OWE3YjY3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDEtMjIgIETDoW5pZWwgQsOhdHlhaSAgPGRi
YXR5YWkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBSZWZhY3RvciBk
aWZmX3BhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weToKKyAg
ICAgICAgKERpZmZGaWxlLmFkZF91bmNoYW5nZWRfbGluZSk6CisgICAgICAgIChEaWZmUGFyc2Vy
Ll9faW5pdF9fKToKKyAgICAgICAgKERpZmZQYXJzZXIpOgorICAgICAgICAoRGlmZlBhcnNlci5j
b21waWxlX2NvbnZlcnNpb25fcGF0dGVybnMpOgorICAgICAgICAoRGlmZlBhcnNlci50b19zdm5f
ZGlmZik6CisgICAgICAgIChEaWZmUGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKToKKyAgICAg
ICAgKERpZmZQYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKToKKyAgICAgICAgKERpZmZQYXJzZXIu
Y2hlY2tfZmlsZV9kZWNsYXJhdGlvbik6CisgICAgICAgIChEaWZmUGFyc2VyLmNoZWNrX2xpbmVz
X2NoYW5nZWQpOgorICAgICAgICAoRGlmZlBhcnNlci5fcGFyc2VfaW50b19kaWZmX2ZpbGVzKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91
bml0dGVzdC5weToKKyAgICAgICAgKERpZmZQYXJzZXJUZXN0LnRlc3RfZGlmZl9jb252ZXJ0ZXIp
OgorICAgICAgICAoRGlmZlBhcnNlclRlc3QudGVzdF9kaWZmX2NvbnZlcnRlci50b19zdm5fZGlm
Zik6CisgICAgICAgIChEaWZmUGFyc2VyVGVzdC50ZXN0X2dpdF9kaWZmX3RvX3N2bl9kaWZmKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvaGFzbGFuZGVkLnB5OgorICAg
ICAgICAoSGFzTGFuZGVkLmNvbnZlcnRfdG9fc3ZuKToKKwogMjAxNC0wMS0yMSAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIElhbiBhbmQgUmlj
a3kgdG8gdGhlIGNvbnRyaWJ1dG9yIGxpc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHkKaW5kZXggM2E5ZWE5Mi4uMTc4ZmZm
MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlm
Zl9wYXJzZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQv
ZGlmZl9wYXJzZXIucHkKQEAgLTMzLDY0ICszMyw2IEBAIGltcG9ydCByZQogCiBfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKLQotIyBGSVhNRTogVGhpcyBpcyBicm9rZW4uIFdl
IHNob3VsZCBjb21waWxlIG91ciByZWdleHBzIHVwLWZyb250Ci0jIGluc3RlYWQgb2YgdXNpbmcg
YSBjdXN0b20gY2FjaGUuCi1fcmVnZXhwX2NvbXBpbGVfY2FjaGUgPSB7fQotCi0KLSMgRklYTUU6
IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQuCi1kZWYgbWF0Y2gocGF0dGVybiwgc3Ry
aW5nKToKLSAgICAiIiJNYXRjaGVzIHRoZSBzdHJpbmcgd2l0aCB0aGUgcGF0dGVybiwgY2FjaGlu
ZyB0aGUgY29tcGlsZWQgcmVnZXhwLiIiIgotICAgIGlmIG5vdCBwYXR0ZXJuIGluIF9yZWdleHBf
Y29tcGlsZV9jYWNoZToKLSAgICAgICAgX3JlZ2V4cF9jb21waWxlX2NhY2hlW3BhdHRlcm5dID0g
cmUuY29tcGlsZShwYXR0ZXJuKQotICAgIHJldHVybiBfcmVnZXhwX2NvbXBpbGVfY2FjaGVbcGF0
dGVybl0ubWF0Y2goc3RyaW5nKQotCi0KLSMgRklYTUU6IFRoaXMgYmVsb25ncyBvbiBEaWZmUGFy
c2VyIChlLmcuIGFzIHRvX3N2bl9kaWZmKCkpLgotZGVmIGdpdF9kaWZmX3RvX3N2bl9kaWZmKGxp
bmUpOgotICAgICIiIkNvbnZlcnRzIGEgZ2l0IGZvcm1hdHRlZCBkaWZmIGxpbmUgdG8gYSBzdm4g
Zm9ybWF0dGVkIGxpbmUuCi0KLSAgICBBcmdzOgotICAgICAgbGluZTogQSBzdHJpbmcgcmVwcmVz
ZW50aW5nIGEgbGluZSBvZiB0aGUgZGlmZi4KLSAgICAiIiIKLSAgICAjIEZJWE1FOiBUaGlzIGxp
c3Qgc2hvdWxkIGJlIGEgY2xhc3MgbWVtYmVyIG9uIERpZmZQYXJzZXIuCi0gICAgIyBUaGVzZSBy
ZWdleHAgcGF0dGVybnMgc2hvdWxkIGJlIGNvbXBpbGVkIG9uY2UgaW5zdGVhZCBvZiBldmVyeSB0
aW1lLgotICAgIGNvbnZlcnNpb25fcGF0dGVybnMgPSAoKCJeZGlmZiAtLWdpdCBcdy8oLispIFx3
Lyg/UDxGaWxlUGF0aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIkluZGV4OiAiICsgbWF0Y2hlZC5n
cm91cCgnRmlsZVBhdGgnKSArICJcbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJe
bmV3IGZpbGUuKiIsIGxhbWJkYSBtYXRjaGVkOiAiXG4iKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgiXmluZGV4ICgoWzAtOWEtZl17N31cLlwuWzAtOWEtZl17N30pfChbMC05YS1mXXs0
MH1cLlwuWzAtOWEtZl17NDB9KSkgWzAtOV17Nn0iLCBsYW1iZGEgbWF0Y2hlZDogIj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT1cbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJeLS0tIFx3Lyg/UDxGaWxlUGF0
aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIi0tLSAiICsgbWF0Y2hlZC5ncm91cCgnRmlsZVBhdGgn
KSArICJcbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJeXCtcK1wrIFx3Lyg/UDxG
aWxlUGF0aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDogIisrKyAiICsgbWF0Y2hlZC5ncm91cCgnRmls
ZVBhdGgnKSArICJcbiIpKQotCi0gICAgZm9yIHBhdHRlcm4sIGNvbnZlcnNpb24gaW4gY29udmVy
c2lvbl9wYXR0ZXJuczoKLSAgICAgICAgbWF0Y2hlZCA9IG1hdGNoKHBhdHRlcm4sIGxpbmUpCi0g
ICAgICAgIGlmIG1hdGNoZWQ6Ci0gICAgICAgICAgICByZXR1cm4gY29udmVyc2lvbihtYXRjaGVk
KQotICAgIHJldHVybiBsaW5lCi0KLQotIyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBzbyB3ZSBjYW4g
dW5pdHRlc3QgZ2V0X2RpZmZfY29udmVydGVyIGZ1bmN0aW9uCi1kZWYgc3ZuX2RpZmZfdG9fc3Zu
X2RpZmYobGluZSk6Ci0gICAgcmV0dXJuIGxpbmUKLQotCi0jIEZJWE1FOiBUaGlzIG1ldGhvZCBi
ZWxvbmdzIG9uIERpZmZQYXJzZXIKLWRlZiBnZXRfZGlmZl9jb252ZXJ0ZXIobGluZXMpOgotICAg
ICIiIkdldHMgYSBjb252ZXJ0ZXIgZnVuY3Rpb24gb2YgZGlmZiBsaW5lcy4KLQotICAgIEFyZ3M6
Ci0gICAgICBsaW5lczogVGhlIGxpbmVzIG9mIGEgZGlmZiBmaWxlLgotICAgICAgICAgICAgIElm
IHRoaXMgbGluZSBpcyBnaXQgZm9ybWF0dGVkLCB3ZSdsbCByZXR1cm4gYQotICAgICAgICAgICAg
IGNvbnZlcnRlciBmcm9tIGdpdCB0byBTVk4uCi0gICAgIiIiCi0gICAgZm9yIGksIGxpbmUgaW4g
ZW51bWVyYXRlKGxpbmVzWzotMV0pOgotICAgICAgICAjIFN0b3Agd2hlbiB3ZSBmaW5kIHRoZSBm
aXJzdCBwYXRjaAotICAgICAgICBpZiBsaW5lWzozXSA9PSAiKysrIiBhbmQgbGluZXNbaSArIDFd
ID09ICItLS0iOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgbWF0Y2gociJeZGlmZiAt
LWdpdCBcdy8iLCBsaW5lKToKLSAgICAgICAgICAgIHJldHVybiBnaXRfZGlmZl90b19zdm5fZGlm
ZgotICAgIHJldHVybiBzdm5fZGlmZl90b19zdm5fZGlmZgotCiBfSU5JVElBTF9TVEFURSA9IDEK
IF9ERUNMQVJFRF9GSUxFX1BBVEggPSAyCiBfUFJPQ0VTU0lOR19DSFVOSyA9IDMKQEAgLTEyNiw2
OCArNjgsMTMwIEBAIGNsYXNzIERpZmZGaWxlKG9iamVjdCk6CiAgICAgICAgIHNlbGYubGluZXMu
YXBwZW5kKChkZWxldGVkX2xpbmVfbnVtYmVyLCBuZXdfbGluZV9udW1iZXIsIGxpbmUpKQogCiAK
LSMgSWYgdGhpcyBpcyBnb2luZyB0byBiZSBjYWxsZWQgRGlmZlBhcnNlciwgaXQgc2hvdWxkIGJl
IGEgcmUtdXNlYWJsZSBwYXJzZXIuCi0jIE90aGVyd2lzZSB3ZSBzaG91bGQgcmVuYW1lIGl0IHRv
IFBhcnNlZERpZmYgb3IganVzdCBEaWZmLgogY2xhc3MgRGlmZlBhcnNlcihvYmplY3QpOgogICAg
ICIiIkEgcGFyc2VyIGZvciBhIHBhdGNoIGZpbGUuCiAKICAgICBUaGUgZmllbGQgImZpbGVzIiBp
cyBhIGRpY3Qgd2hvc2Uga2V5IGlzIHRoZSBmaWxlbmFtZSBhbmQgdmFsdWUgaXMKICAgICBhIERp
ZmZGaWxlIG9iamVjdC4KICAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaWZmX2lu
cHV0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGlmZl9pbnB1dD1Ob25lKToKICAgICAgICAg
IiIiUGFyc2VzIGEgZGlmZi4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGRpZmZfaW5wdXQ6
IEFuIGl0ZXJhYmxlIG9iamVjdC4KICAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuZmlsZXMgPSBz
ZWxmLl9wYXJzZV9pbnRvX2RpZmZfZmlsZXMoZGlmZl9pbnB1dCkKKyAgICAgICAgc2VsZi5fY29t
cGlsZWRfY29udmVyc2lvbl9wYXR0ZXJucyA9ICgpCisgICAgICAgIHNlbGYuY29tcGlsZV9jb252
ZXJzaW9uX3BhdHRlcm5zKCkKKworICAgICAgICBzZWxmLl9naXRfZGlmZl9wYXR0ZXJuID0gcmUu
Y29tcGlsZShyIl5kaWZmIC0tZ2l0IFx3LyIpCisgICAgICAgIHNlbGYuX2ZpbGVfZGVjbGFyYXRp
b25fcGF0dGVybiA9IHJlLmNvbXBpbGUociJeSW5kZXg6ICg/UDxGaWxlUGF0aD4uKykiKQorICAg
ICAgICBzZWxmLl9saW5lc19jaGFuZ2VkX3BhdHRlcm4gPSByZS5jb21waWxlKHIiXkBAIC0oP1A8
T2xkU3RhcnRMaW5lPlxkKykoLFxkKyk/IFwrKD9QPE5ld1N0YXJ0TGluZT5cZCspKCxcZCspPyBA
QCIpCisKKyAgICAgICAgc2VsZi5fc3RhdGUgPSBOb25lCisgICAgICAgIHNlbGYuX2N1cnJlbnRf
ZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fb2xkX2RpZmZfbGluZSA9IE5vbmUKKyAgICAgICAg
c2VsZi5fbmV3X2RpZmZfbGluZSA9IE5vbmUKKyAgICAgICAgc2VsZi5maWxlcyA9IE5vbmUKKwor
ICAgICAgICBpZiBkaWZmX2lucHV0OgorICAgICAgICAgICAgc2VsZi5fcGFyc2VfaW50b19kaWZm
X2ZpbGVzKGRpZmZfaW5wdXQpCisKKyAgICBkZWYgY29tcGlsZV9jb252ZXJzaW9uX3BhdHRlcm5z
KHNlbGYpOgorICAgICAgICBjb252ZXJzaW9uX3BhdHRlcm5zID0gKCgiXmRpZmYgLS1naXQgXHcv
KC4rKSBcdy8oP1A8RmlsZVBhdGg+LispIiwgbGFtYmRhIG1hdGNoZWQ6ICJJbmRleDogIiArIG1h
dGNoZWQuZ3JvdXAoJ0ZpbGVQYXRoJykgKyAiXG4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJebmV3IGZpbGUuKiIsIGxhbWJkYSBtYXRjaGVkOiAiXG4iKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCJeaW5kZXggKChbMC05YS1mXXs3fVwuXC5bMC05YS1m
XXs3fSl8KFswLTlhLWZdezQwfVwuXC5bMC05YS1mXXs0MH0pKSBbMC05XXs2fSIsIGxhbWJkYSBt
YXRjaGVkOiAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PVxuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgiXi0tLSBcdy8oP1A8RmlsZVBhdGg+LispIiwgbGFtYmRhIG1hdGNoZWQ6ICItLS0gIiArIG1h
dGNoZWQuZ3JvdXAoJ0ZpbGVQYXRoJykgKyAiXG4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJeXCtcK1wrIFx3Lyg/UDxGaWxlUGF0aD4uKykiLCBsYW1iZGEgbWF0Y2hlZDog
IisrKyAiICsgbWF0Y2hlZC5ncm91cCgnRmlsZVBhdGgnKSArICJcbiIpKQorCisgICAgICAgIGZv
ciBwYXR0ZXJuLCBjb252ZXJzaW9uIGluIGNvbnZlcnNpb25fcGF0dGVybnM6CisgICAgICAgICAg
ICBwYXR0ZXJuID0gcmUuY29tcGlsZShwYXR0ZXJuKQorICAgICAgICAgICAgc2VsZi5fY29tcGls
ZWRfY29udmVyc2lvbl9wYXR0ZXJucyA9IHNlbGYuX2NvbXBpbGVkX2NvbnZlcnNpb25fcGF0dGVy
bnMgKyAoKHBhdHRlcm4sIGNvbnZlcnNpb24pLCkKKworICAgIGRlZiB0b19zdm5fZGlmZihzZWxm
LCBsaW5lKToKKyAgICAgICAgIiIiQ29udmVydHMgYSBnaXQgZm9ybWF0dGVkIGRpZmYgbGluZSB0
byBhIHN2biBmb3JtYXR0ZWQgbGluZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIGxpbmU6
IEEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGxpbmUgb2YgdGhlIGRpZmYuCisgICAgICAgICIiIgor
CisgICAgICAgIGZvciBwYXR0ZXJuLCBjb252ZXJzaW9uIGluIHNlbGYuX2NvbXBpbGVkX2NvbnZl
cnNpb25fcGF0dGVybnM6CisgICAgICAgICAgICBtYXRjaGVkID0gcGF0dGVybi5tYXRjaChsaW5l
KQorICAgICAgICAgICAgaWYgbWF0Y2hlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gY29udmVy
c2lvbihtYXRjaGVkKQorICAgICAgICByZXR1cm4gbGluZQorCisgICAgZGVmIHN2bl9kaWZmX3Rv
X3N2bl9kaWZmKHNlbGYsIGxpbmUpOgorICAgICAgICByZXR1cm4gbGluZQorCisgICAgZGVmIGdl
dF9kaWZmX2NvbnZlcnRlcihzZWxmLCBsaW5lcyk6CisgICAgICAgICIiIkdldHMgYSBjb252ZXJ0
ZXIgZnVuY3Rpb24gb2YgZGlmZiBsaW5lcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIGxp
bmVzOiBUaGUgbGluZXMgb2YgYSBkaWZmIGZpbGUuCisgICAgICAgICAgICAgICAgIElmIHRoaXMg
bGluZSBpcyBnaXQgZm9ybWF0dGVkLCB3ZSdsbCByZXR1cm4gYQorICAgICAgICAgICAgICAgICBj
b252ZXJ0ZXIgZnJvbSBnaXQgdG8gU1ZOLgorICAgICAgICAiIiIKKworICAgICAgICBmb3IgaSwg
bGluZSBpbiBlbnVtZXJhdGUobGluZXNbOi0xXSk6CisgICAgICAgICAgICAjIFN0b3Agd2hlbiB3
ZSBmaW5kIHRoZSBmaXJzdCBwYXRjaAorICAgICAgICAgICAgaWYgbGluZVs6M10gPT0gIisrKyIg
YW5kIGxpbmVzW2kgKyAxXSA9PSAiLS0tIjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgaWYgc2VsZi5fZ2l0X2RpZmZfcGF0dGVybi5tYXRjaChsaW5lKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VsZi50b19zdm5fZGlmZgorICAgICAgICByZXR1cm4gc2VsZi5zdm5fZGlm
Zl90b19zdm5fZGlmZgorCisgICAgZGVmIGNoZWNrX2ZpbGVfZGVjbGFyYXRpb24oc2VsZiwgbGlu
ZSk6CisgICAgICAgIGZpbGVfZGVjbGFyYXRpb24gPSBzZWxmLl9maWxlX2RlY2xhcmF0aW9uX3Bh
dHRlcm4ubWF0Y2gobGluZSkKKyAgICAgICAgaWYgZmlsZV9kZWNsYXJhdGlvbjoKKyAgICAgICAg
ICAgIGZpbGVuYW1lID0gZmlsZV9kZWNsYXJhdGlvbi5ncm91cCgnRmlsZVBhdGgnKQorICAgICAg
ICAgICAgc2VsZi5fY3VycmVudF9maWxlID0gRGlmZkZpbGUoZmlsZW5hbWUpCisgICAgICAgICAg
ICBzZWxmLmZpbGVzW2ZpbGVuYW1lXSA9IHNlbGYuX2N1cnJlbnRfZmlsZQorICAgICAgICAgICAg
c2VsZi5fc3RhdGUgPSBfREVDTEFSRURfRklMRV9QQVRICisgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBjaGVja19saW5lc19jaGFuZ2VkKHNl
bGYsIGxpbmUsIHN0YXRlKToKKyAgICAgICAgbGluZXNfY2hhbmdlZCA9IHNlbGYuX2xpbmVzX2No
YW5nZWRfcGF0dGVybi5tYXRjaChsaW5lKQorICAgICAgICBpZiBsaW5lc19jaGFuZ2VkOgorICAg
ICAgICAgICAgaWYgc3RhdGUgIT0gX0RFQ0xBUkVEX0ZJTEVfUEFUSCBhbmQgc3RhdGUgIT0gX1BS
T0NFU1NJTkdfQ0hVTks6CisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignVW5leHBlY3RlZCBs
aW5lIGNoYW5nZSB3aXRob3V0IGZpbGUgcGF0aCAnCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2RlY2xhcmF0aW9uOiAlcicgJSBsaW5lKQorCisgICAgICAgICAgICBzZWxmLl9vbGRfZGlm
Zl9saW5lID0gaW50KGxpbmVzX2NoYW5nZWQuZ3JvdXAoJ09sZFN0YXJ0TGluZScpKQorICAgICAg
ICAgICAgc2VsZi5fbmV3X2RpZmZfbGluZSA9IGludChsaW5lc19jaGFuZ2VkLmdyb3VwKCdOZXdT
dGFydExpbmUnKSkKKyAgICAgICAgICAgIHNlbGYuX3N0YXRlID0gX1BST0NFU1NJTkdfQ0hVTksK
KyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgIyBG
SVhNRTogVGhpcyBmdW5jdGlvbiBpcyB3YXkgdG9vIGxvbmcgYW5kIG5lZWRzIHRvIGJlIGJyb2tl
biB1cC4KICAgICBkZWYgX3BhcnNlX2ludG9fZGlmZl9maWxlcyhzZWxmLCBkaWZmX2lucHV0KToK
LSAgICAgICAgZmlsZXMgPSB7fQotICAgICAgICBzdGF0ZSA9IF9JTklUSUFMX1NUQVRFCi0gICAg
ICAgIGN1cnJlbnRfZmlsZSA9IE5vbmUKLSAgICAgICAgb2xkX2RpZmZfbGluZSA9IE5vbmUKLSAg
ICAgICAgbmV3X2RpZmZfbGluZSA9IE5vbmUKLSAgICAgICAgdHJhbnNmb3JtX2xpbmUgPSBnZXRf
ZGlmZl9jb252ZXJ0ZXIoZGlmZl9pbnB1dCkKKyAgICAgICAgc2VsZi5maWxlcyA9IHt9CisgICAg
ICAgIHNlbGYuX3N0YXRlID0gX0lOSVRJQUxfU1RBVEUKKyAgICAgICAgdHJhbnNmb3JtX2xpbmUg
PSBzZWxmLmdldF9kaWZmX2NvbnZlcnRlcihkaWZmX2lucHV0KQorCiAgICAgICAgIGZvciBsaW5l
IGluIGRpZmZfaW5wdXQ6CiAgICAgICAgICAgICBsaW5lID0gbGluZS5yc3RyaXAoIlxuIikKICAg
ICAgICAgICAgIGxpbmUgPSB0cmFuc2Zvcm1fbGluZShsaW5lKQogCi0gICAgICAgICAgICBmaWxl
X2RlY2xhcmF0aW9uID0gbWF0Y2gociJeSW5kZXg6ICg/UDxGaWxlUGF0aD4uKykiLCBsaW5lKQot
ICAgICAgICAgICAgaWYgZmlsZV9kZWNsYXJhdGlvbjoKLSAgICAgICAgICAgICAgICBmaWxlbmFt
ZSA9IGZpbGVfZGVjbGFyYXRpb24uZ3JvdXAoJ0ZpbGVQYXRoJykKLSAgICAgICAgICAgICAgICBj
dXJyZW50X2ZpbGUgPSBEaWZmRmlsZShmaWxlbmFtZSkKLSAgICAgICAgICAgICAgICBmaWxlc1tm
aWxlbmFtZV0gPSBjdXJyZW50X2ZpbGUKLSAgICAgICAgICAgICAgICBzdGF0ZSA9IF9ERUNMQVJF
RF9GSUxFX1BBVEgKKyAgICAgICAgICAgIGlmIHNlbGYuY2hlY2tfZmlsZV9kZWNsYXJhdGlvbihs
aW5lKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBsaW5lc19jaGFu
Z2VkID0gbWF0Y2gociJeQEAgLSg/UDxPbGRTdGFydExpbmU+XGQrKSgsXGQrKT8gXCsoP1A8TmV3
U3RhcnRMaW5lPlxkKykoLFxkKyk/IEBAIiwgbGluZSkKLSAgICAgICAgICAgIGlmIGxpbmVzX2No
YW5nZWQ6Ci0gICAgICAgICAgICAgICAgaWYgc3RhdGUgIT0gX0RFQ0xBUkVEX0ZJTEVfUEFUSCBh
bmQgc3RhdGUgIT0gX1BST0NFU1NJTkdfQ0hVTks6Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cu
ZXJyb3IoJ1VuZXhwZWN0ZWQgbGluZSBjaGFuZ2Ugd2l0aG91dCBmaWxlIHBhdGggJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdkZWNsYXJhdGlvbjogJXInICUgbGluZSkKLSAgICAg
ICAgICAgICAgICBvbGRfZGlmZl9saW5lID0gaW50KGxpbmVzX2NoYW5nZWQuZ3JvdXAoJ09sZFN0
YXJ0TGluZScpKQotICAgICAgICAgICAgICAgIG5ld19kaWZmX2xpbmUgPSBpbnQobGluZXNfY2hh
bmdlZC5ncm91cCgnTmV3U3RhcnRMaW5lJykpCi0gICAgICAgICAgICAgICAgc3RhdGUgPSBfUFJP
Q0VTU0lOR19DSFVOSworICAgICAgICAgICAgaWYgc2VsZi5jaGVja19saW5lc19jaGFuZ2VkKGxp
bmUsIHNlbGYuX3N0YXRlKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAg
ICBpZiBzdGF0ZSA9PSBfUFJPQ0VTU0lOR19DSFVOSzoKKyAgICAgICAgICAgIGlmIHNlbGYuX3N0
YXRlID09IF9QUk9DRVNTSU5HX0NIVU5LOgogICAgICAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRz
d2l0aCgnKycpOgotICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2ZpbGUuYWRkX25ld19saW5l
KG5ld19kaWZmX2xpbmUsIGxpbmVbMTpdKQotICAgICAgICAgICAgICAgICAgICBuZXdfZGlmZl9s
aW5lICs9IDEKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9maWxlLmFkZF9uZXdf
bGluZShzZWxmLl9uZXdfZGlmZl9saW5lLCBsaW5lWzE6XSkKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbmV3X2RpZmZfbGluZSArPSAxCiAgICAgICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0
c3dpdGgoJy0nKToKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9maWxlLmFkZF9kZWxldGVk
X2xpbmUob2xkX2RpZmZfbGluZSwgbGluZVsxOl0pCi0gICAgICAgICAgICAgICAgICAgIG9sZF9k
aWZmX2xpbmUgKz0gMQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jdXJyZW50X2ZpbGUuYWRk
X2RlbGV0ZWRfbGluZShzZWxmLl9vbGRfZGlmZl9saW5lLCBsaW5lWzE6XSkKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb2xkX2RpZmZfbGluZSArPSAxCiAgICAgICAgICAgICAgICAgZWxpZiBs
aW5lLnN0YXJ0c3dpdGgoJyAnKToKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9maWxlLmFk
ZF91bmNoYW5nZWRfbGluZShvbGRfZGlmZl9saW5lLCBuZXdfZGlmZl9saW5lLCBsaW5lWzE6XSkK
LSAgICAgICAgICAgICAgICAgICAgb2xkX2RpZmZfbGluZSArPSAxCi0gICAgICAgICAgICAgICAg
ICAgIG5ld19kaWZmX2xpbmUgKz0gMQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jdXJyZW50
X2ZpbGUuYWRkX3VuY2hhbmdlZF9saW5lKHNlbGYuX29sZF9kaWZmX2xpbmUsIHNlbGYuX25ld19k
aWZmX2xpbmUsIGxpbmVbMTpdKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9vbGRfZGlmZl9s
aW5lICs9IDEKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmV3X2RpZmZfbGluZSArPSAxCiAg
ICAgICAgICAgICAgICAgZWxpZiBsaW5lID09ICdcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
JzoKICAgICAgICAgICAgICAgICAgICAgIyBOb3RoaW5nIHRvIGRvLiAgV2UgbWF5IHN0aWxsIGhh
dmUgc29tZSBhZGRlZCBsaW5lcy4KICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuZXhwZWN0ZWQg
ZGlmZiBmb3JtYXQgd2hlbiBwYXJzaW5nIGEgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjaHVuazogJXInICUgbGluZSkKLSAgICAgICAgcmV0dXJuIGZpbGVzCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFy
c2VyX3VuaXR0ZXN0LnB5CmluZGV4IDc4ZGFiMjYuLjQwZTg2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2Vy
X3VuaXR0ZXN0LnB5CkBAIC03OSw2ICs3OSw3IEBAIGNsYXNzIERpZmZQYXJzZXJUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMCwgMSksIGRpZmYubGlu
ZXNbMF1bMDoyXSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfY29udmVydGVyKHNlbGYpOgorICAgICAg
ICBwYXJzZXIgPSBkaWZmX3BhcnNlci5EaWZmUGFyc2VyKERJRkZfVEVTVF9EQVRBLnNwbGl0bGlu
ZXMoKSkKICAgICAgICAgY29tbWVudF9saW5lcyA9IFsKICAgICAgICAgICAgICJIZXkgZ3V5cyxc
biIsCiAgICAgICAgICAgICAiXG4iLApAQCAtOTcsMjIgKzk4LDIyIEBAIGNsYXNzIERpZmZQYXJz
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICI9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iLAog
ICAgICAgICAgICAgIi0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9k
aWZmX3BhcnNlci5weVxuIiwKICAgICAgICAgICAgICIrKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHlcbiIsCi0gICAgICAgICAgICAiQEAgLTU5
LDYgKzU5LDcgQEAgZGVmIGdpdF9kaWZmX3RvX3N2bl9kaWZmKGxpbmUpOlxuIiwKKyAgICAgICAg
ICAgICJAQCAtNTksNiArNTksNyBAQCBkZWYgdG9fc3ZuX2RpZmYobGluZSk6XG4iLAogICAgICAg
ICAgICAgXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpZmZfcGFyc2VyLmdldF9kaWZmX2Nv
bnZlcnRlcihzdm5fZGlmZl9saW5lcyksIGRpZmZfcGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZm
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZlcnRl
cihjb21tZW50X2xpbmVzICsgc3ZuX2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5zdm5fZGlmZl90
b19zdm5fZGlmZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlm
Zl9jb252ZXJ0ZXIocmV2aXNpb25fbGluZXMgKyBzdm5fZGlmZl9saW5lcyksIGRpZmZfcGFyc2Vy
LnN2bl9kaWZmX3RvX3N2bl9kaWZmKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5n
ZXRfZGlmZl9jb252ZXJ0ZXIoc3ZuX2RpZmZfbGluZXMpLCBwYXJzZXIuc3ZuX2RpZmZfdG9fc3Zu
X2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmdldF9kaWZmX2NvbnZlcnRl
cihjb21tZW50X2xpbmVzICsgc3ZuX2RpZmZfbGluZXMpLCBwYXJzZXIuc3ZuX2RpZmZfdG9fc3Zu
X2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmdldF9kaWZmX2NvbnZlcnRl
cihyZXZpc2lvbl9saW5lcyArIHN2bl9kaWZmX2xpbmVzKSwgcGFyc2VyLnN2bl9kaWZmX3RvX3N2
bl9kaWZmKQogCiAgICAgICAgIGdpdF9kaWZmX2xpbmVzID0gWwogICAgICAgICAgICAgImRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNl
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2Vy
LnB5XG4iLAogICAgICAgICAgICAgImluZGV4IDNjNWI0NWIuLjAxOTdlYWQgMTAwNjQ0XG4iLAog
ICAgICAgICAgICAgIi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L2RpZmZfcGFyc2VyLnB5XG4iLAogICAgICAgICAgICAgIisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5XG4iLAotICAgICAgICAgICAgIkBA
IC01OSw2ICs1OSw3IEBAIGRlZiBnaXRfZGlmZl90b19zdm5fZGlmZihsaW5lKTpcbiIsCisgICAg
ICAgICAgICAiQEAgLTU5LDYgKzU5LDcgQEAgZGVmIHRvX3N2bl9kaWZmKGxpbmUpOlxuIiwKICAg
ICAgICAgICAgIF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlm
Zl9jb252ZXJ0ZXIoZ2l0X2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5naXRfZGlmZl90b19zdm5f
ZGlmZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252
ZXJ0ZXIoY29tbWVudF9saW5lcyArIGdpdF9kaWZmX2xpbmVzKSwgZGlmZl9wYXJzZXIuZ2l0X2Rp
ZmZfdG9fc3ZuX2RpZmYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZl9wYXJzZXIuZ2V0
X2RpZmZfY29udmVydGVyKHJldmlzaW9uX2xpbmVzICsgZ2l0X2RpZmZfbGluZXMpLCBkaWZmX3Bh
cnNlci5naXRfZGlmZl90b19zdm5fZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJz
ZXIuZ2V0X2RpZmZfY29udmVydGVyKGdpdF9kaWZmX2xpbmVzKSwgcGFyc2VyLnRvX3N2bl9kaWZm
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoY29t
bWVudF9saW5lcyArIGdpdF9kaWZmX2xpbmVzKSwgcGFyc2VyLnRvX3N2bl9kaWZmKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIocmV2aXNpb25fbGlu
ZXMgKyBnaXRfZGlmZl9saW5lcyksIHBhcnNlci50b19zdm5fZGlmZikKIAogICAgIGRlZiB0ZXN0
X2dpdF9tbmVtb25pY3ByZWZpeChzZWxmKToKICAgICAgICAgcCA9IHJlLmNvbXBpbGUocicgKFth
fGJdKS8nKQpAQCAtMTMwLDYgKzEzMSw3IEBAIGNsYXNzIERpZmZQYXJzZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYudGVzdF9kaWZmX3BhcnNlcihkaWZmX3BhcnNl
ci5EaWZmUGFyc2VyKHBhdGNoLnNwbGl0bGluZXMoKSkpCiAKICAgICBkZWYgdGVzdF9naXRfZGlm
Zl90b19zdm5fZGlmZihzZWxmKToKKyAgICAgICAgcGFyc2VyID0gZGlmZl9wYXJzZXIuRGlmZlBh
cnNlcihESUZGX1RFU1RfREFUQS5zcGxpdGxpbmVzKCkpCiAgICAgICAgIG91dHB1dCA9ICIiIlwK
IEluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNl
ci5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpAQCAtMTcxLDUgKzE3Myw1IEBAIGluZGV4IGI0OGIxNjIuLmYzMDA5
NjAgMTAwNjQ0CiAgRgogIiIiKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwo
b3V0cHV0LCAnJy5qb2luKGRpZmZfcGFyc2VyLmdpdF9kaWZmX3RvX3N2bl9kaWZmKHgpIGZvciB4
IGluIHNob3J0Zm10LnJlYWRsaW5lcygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVF
cXVhbChvdXRwdXQsICcnLmpvaW4oZGlmZl9wYXJzZXIuZ2l0X2RpZmZfdG9fc3ZuX2RpZmYoeCkg
Zm9yIHggaW4gaW5wdXRmbXQucmVhZGxpbmVzKCkpKQorICAgICAgICBzZWxmLmFzc2VydE11bHRp
TGluZUVxdWFsKG91dHB1dCwgJycuam9pbihwYXJzZXIudG9fc3ZuX2RpZmYoeCkgZm9yIHggaW4g
c2hvcnRmbXQucmVhZGxpbmVzKCkpKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFs
KG91dHB1dCwgJycuam9pbihwYXJzZXIudG9fc3ZuX2RpZmYoeCkgZm9yIHggaW4gaW5wdXRmbXQu
cmVhZGxpbmVzKCkpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2hhc2xhbmRlZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9oYXNs
YW5kZWQucHkKaW5kZXggYjA2OTJiMy4uMGVmODY3MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2hhc2xhbmRlZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvaGFzbGFuZGVkLnB5CkBAIC0zNCw3ICszNCw3IEBAIGltcG9ydCB0
ZW1wZmlsZQogCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBB
YnN0cmFjdFN0ZXAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0IGlt
cG9ydCBkaWZmX3BhcnNlcgorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuZGlmZl9wYXJz
ZXIgaW1wb3J0IERpZmZQYXJzZXIKIAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzIGltcG9ydCBj
b25maXJtZGlmZgogCkBAIC00Niw3ICs0Niw4IEBAIGNsYXNzIEhhc0xhbmRlZChjb25maXJtZGlm
Zi5Db25maXJtRGlmZik6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNvbnZlcnRfdG9fc3Zu
KGNscywgZGlmZik6CiAgICAgICAgIGxpbmVzID0gU3RyaW5nSU8uU3RyaW5nSU8oZGlmZikucmVh
ZGxpbmVzKCkKLSAgICAgICAgY29udmVydCA9IGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZlcnRl
cihsaW5lcykKKyAgICAgICAgcGFyc2VyID0gRGlmZlBhcnNlcigpCisgICAgICAgIGNvbnZlcnQg
PSBwYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKGxpbmVzKQogICAgICAgICByZXR1cm4gIiIuam9p
bihjb252ZXJ0KHgpIGZvciB4IGluIGxpbmVzKQogCiAgICAgQGNsYXNzbWV0aG9kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222086</attachid>
            <date>2014-01-24 01:06:05 -0800</date>
            <delta_ts>2014-05-19 03:31:47 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>proposepatch.patch</filename>
            <type>text/plain</type>
            <size>16283</size>
            <attacher name="Dániel Bátyai">dbatyai.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMmJh
YTNjLi41OWE3YjY3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDEtMjIgIETDoW5pZWwgQsOhdHlhaSAgPGRi
YXR5YWkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBSZWZhY3RvciBk
aWZmX3BhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkcmVzc2VkIG11bHRpcGxlIEZJWE1FLXMsIHdoaWNoIHN1Z2dlc3RlZCByZWZhY3Rvcmlu
ZyBkaWZmX3BhcnNlci5weSwKKyAgICAgICAgYW5kIGNoYW5naW5nIGl0IHRvIGNvbXBpbGUgcmVn
ZXhlcyB1cC1mcm9udCBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlbQorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHk6CisgICAgICAgIChEaWZm
RmlsZS5hZGRfdW5jaGFuZ2VkX2xpbmUpOgorICAgICAgICAoRGlmZlBhcnNlci5fX2luaXRfXyk6
CisgICAgICAgIChEaWZmUGFyc2VyKToKKyAgICAgICAgKERpZmZQYXJzZXIuY29tcGlsZV9jb252
ZXJzaW9uX3BhdHRlcm5zKToKKyAgICAgICAgKERpZmZQYXJzZXIudG9fc3ZuX2RpZmYpOgorICAg
ICAgICAoRGlmZlBhcnNlci5zdm5fZGlmZl90b19zdm5fZGlmZik6CisgICAgICAgIChEaWZmUGFy
c2VyLmdldF9kaWZmX2NvbnZlcnRlcik6CisgICAgICAgIChEaWZmUGFyc2VyLmNoZWNrX2ZpbGVf
ZGVjbGFyYXRpb24pOgorICAgICAgICAoRGlmZlBhcnNlci5jaGVja19saW5lc19jaGFuZ2VkKToK
KyAgICAgICAgKERpZmZQYXJzZXIuX3BhcnNlX2ludG9fZGlmZl9maWxlcyk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXJfdW5pdHRlc3QucHk6
CisgICAgICAgIChEaWZmUGFyc2VyVGVzdC50ZXN0X2RpZmZfY29udmVydGVyKToKKyAgICAgICAg
KERpZmZQYXJzZXJUZXN0LnRlc3RfZGlmZl9jb252ZXJ0ZXIudG9fc3ZuX2RpZmYpOgorICAgICAg
ICAoRGlmZlBhcnNlclRlc3QudGVzdF9naXRfZGlmZl90b19zdm5fZGlmZik6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2hhc2xhbmRlZC5weToKKyAgICAgICAgKEhhc0xh
bmRlZC5jb252ZXJ0X3RvX3N2bik6CisKIDIwMTQtMDEtMjEgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBJYW4gYW5kIFJpY2t5IHRvIHRoZSBj
b250cmlidXRvciBsaXN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9kaWZmX3BhcnNlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5CmluZGV4IDNhOWVhOTIuLjE3OGZmZjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2VyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2RpZmZfcGFyc2Vy
LnB5CkBAIC0zMyw2NCArMzMsNiBAQCBpbXBvcnQgcmUKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQogCi0KLSMgRklYTUU6IFRoaXMgaXMgYnJva2VuLiBXZSBzaG91bGQgY29t
cGlsZSBvdXIgcmVnZXhwcyB1cC1mcm9udAotIyBpbnN0ZWFkIG9mIHVzaW5nIGEgY3VzdG9tIGNh
Y2hlLgotX3JlZ2V4cF9jb21waWxlX2NhY2hlID0ge30KLQotCi0jIEZJWE1FOiBUaGlzIGZ1bmN0
aW9uIHNob3VsZCBiZSByZW1vdmVkLgotZGVmIG1hdGNoKHBhdHRlcm4sIHN0cmluZyk6Ci0gICAg
IiIiTWF0Y2hlcyB0aGUgc3RyaW5nIHdpdGggdGhlIHBhdHRlcm4sIGNhY2hpbmcgdGhlIGNvbXBp
bGVkIHJlZ2V4cC4iIiIKLSAgICBpZiBub3QgcGF0dGVybiBpbiBfcmVnZXhwX2NvbXBpbGVfY2Fj
aGU6Ci0gICAgICAgIF9yZWdleHBfY29tcGlsZV9jYWNoZVtwYXR0ZXJuXSA9IHJlLmNvbXBpbGUo
cGF0dGVybikKLSAgICByZXR1cm4gX3JlZ2V4cF9jb21waWxlX2NhY2hlW3BhdHRlcm5dLm1hdGNo
KHN0cmluZykKLQotCi0jIEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gRGlmZlBhcnNlciAoZS5nLiBh
cyB0b19zdm5fZGlmZigpKS4KLWRlZiBnaXRfZGlmZl90b19zdm5fZGlmZihsaW5lKToKLSAgICAi
IiJDb252ZXJ0cyBhIGdpdCBmb3JtYXR0ZWQgZGlmZiBsaW5lIHRvIGEgc3ZuIGZvcm1hdHRlZCBs
aW5lLgotCi0gICAgQXJnczoKLSAgICAgIGxpbmU6IEEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGxp
bmUgb2YgdGhlIGRpZmYuCi0gICAgIiIiCi0gICAgIyBGSVhNRTogVGhpcyBsaXN0IHNob3VsZCBi
ZSBhIGNsYXNzIG1lbWJlciBvbiBEaWZmUGFyc2VyLgotICAgICMgVGhlc2UgcmVnZXhwIHBhdHRl
cm5zIHNob3VsZCBiZSBjb21waWxlZCBvbmNlIGluc3RlYWQgb2YgZXZlcnkgdGltZS4KLSAgICBj
b252ZXJzaW9uX3BhdHRlcm5zID0gKCgiXmRpZmYgLS1naXQgXHcvKC4rKSBcdy8oP1A8RmlsZVBh
dGg+LispIiwgbGFtYmRhIG1hdGNoZWQ6ICJJbmRleDogIiArIG1hdGNoZWQuZ3JvdXAoJ0ZpbGVQ
YXRoJykgKyAiXG4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICgiXm5ldyBmaWxlLioi
LCBsYW1iZGEgbWF0Y2hlZDogIlxuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoIl5p
bmRleCAoKFswLTlhLWZdezd9XC5cLlswLTlhLWZdezd9KXwoWzAtOWEtZl17NDB9XC5cLlswLTlh
LWZdezQwfSkpIFswLTldezZ9IiwgbGFtYmRhIG1hdGNoZWQ6ICI9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgiXi0tLSBcdy8oP1A8RmlsZVBhdGg+LispIiwgbGFt
YmRhIG1hdGNoZWQ6ICItLS0gIiArIG1hdGNoZWQuZ3JvdXAoJ0ZpbGVQYXRoJykgKyAiXG4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICgiXlwrXCtcKyBcdy8oP1A8RmlsZVBhdGg+Lisp
IiwgbGFtYmRhIG1hdGNoZWQ6ICIrKysgIiArIG1hdGNoZWQuZ3JvdXAoJ0ZpbGVQYXRoJykgKyAi
XG4iKSkKLQotICAgIGZvciBwYXR0ZXJuLCBjb252ZXJzaW9uIGluIGNvbnZlcnNpb25fcGF0dGVy
bnM6Ci0gICAgICAgIG1hdGNoZWQgPSBtYXRjaChwYXR0ZXJuLCBsaW5lKQotICAgICAgICBpZiBt
YXRjaGVkOgotICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnNpb24obWF0Y2hlZCkKLSAgICByZXR1
cm4gbGluZQotCi0KLSMgVGhpcyBmdW5jdGlvbiBleGlzdHMgc28gd2UgY2FuIHVuaXR0ZXN0IGdl
dF9kaWZmX2NvbnZlcnRlciBmdW5jdGlvbgotZGVmIHN2bl9kaWZmX3RvX3N2bl9kaWZmKGxpbmUp
OgotICAgIHJldHVybiBsaW5lCi0KLQotIyBGSVhNRTogVGhpcyBtZXRob2QgYmVsb25ncyBvbiBE
aWZmUGFyc2VyCi1kZWYgZ2V0X2RpZmZfY29udmVydGVyKGxpbmVzKToKLSAgICAiIiJHZXRzIGEg
Y29udmVydGVyIGZ1bmN0aW9uIG9mIGRpZmYgbGluZXMuCi0KLSAgICBBcmdzOgotICAgICAgbGlu
ZXM6IFRoZSBsaW5lcyBvZiBhIGRpZmYgZmlsZS4KLSAgICAgICAgICAgICBJZiB0aGlzIGxpbmUg
aXMgZ2l0IGZvcm1hdHRlZCwgd2UnbGwgcmV0dXJuIGEKLSAgICAgICAgICAgICBjb252ZXJ0ZXIg
ZnJvbSBnaXQgdG8gU1ZOLgotICAgICIiIgotICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShs
aW5lc1s6LTFdKToKLSAgICAgICAgIyBTdG9wIHdoZW4gd2UgZmluZCB0aGUgZmlyc3QgcGF0Y2gK
LSAgICAgICAgaWYgbGluZVs6M10gPT0gIisrKyIgYW5kIGxpbmVzW2kgKyAxXSA9PSAiLS0tIjoK
LSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIG1hdGNoKHIiXmRpZmYgLS1naXQgXHcvIiwg
bGluZSk6Ci0gICAgICAgICAgICByZXR1cm4gZ2l0X2RpZmZfdG9fc3ZuX2RpZmYKLSAgICByZXR1
cm4gc3ZuX2RpZmZfdG9fc3ZuX2RpZmYKLQogX0lOSVRJQUxfU1RBVEUgPSAxCiBfREVDTEFSRURf
RklMRV9QQVRIID0gMgogX1BST0NFU1NJTkdfQ0hVTksgPSAzCkBAIC0xMjYsNjggKzY4LDEzMCBA
QCBjbGFzcyBEaWZmRmlsZShvYmplY3QpOgogICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZCgoZGVs
ZXRlZF9saW5lX251bWJlciwgbmV3X2xpbmVfbnVtYmVyLCBsaW5lKSkKIAogCi0jIElmIHRoaXMg
aXMgZ29pbmcgdG8gYmUgY2FsbGVkIERpZmZQYXJzZXIsIGl0IHNob3VsZCBiZSBhIHJlLXVzZWFi
bGUgcGFyc2VyLgotIyBPdGhlcndpc2Ugd2Ugc2hvdWxkIHJlbmFtZSBpdCB0byBQYXJzZWREaWZm
IG9yIGp1c3QgRGlmZi4KIGNsYXNzIERpZmZQYXJzZXIob2JqZWN0KToKICAgICAiIiJBIHBhcnNl
ciBmb3IgYSBwYXRjaCBmaWxlLgogCiAgICAgVGhlIGZpZWxkICJmaWxlcyIgaXMgYSBkaWN0IHdo
b3NlIGtleSBpcyB0aGUgZmlsZW5hbWUgYW5kIHZhbHVlIGlzCiAgICAgYSBEaWZmRmlsZSBvYmpl
Y3QuCiAgICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlmZl9pbnB1dCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRpZmZfaW5wdXQ9Tm9uZSk6CiAgICAgICAgICIiIlBhcnNlcyBh
IGRpZmYuCiAKICAgICAgICAgQXJnczoKICAgICAgICAgICBkaWZmX2lucHV0OiBBbiBpdGVyYWJs
ZSBvYmplY3QuCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLmZpbGVzID0gc2VsZi5fcGFyc2Vf
aW50b19kaWZmX2ZpbGVzKGRpZmZfaW5wdXQpCisgICAgICAgIHNlbGYuX2NvbXBpbGVkX2NvbnZl
cnNpb25fcGF0dGVybnMgPSAoKQorICAgICAgICBzZWxmLmNvbXBpbGVfY29udmVyc2lvbl9wYXR0
ZXJucygpCisKKyAgICAgICAgc2VsZi5fZ2l0X2RpZmZfcGF0dGVybiA9IHJlLmNvbXBpbGUociJe
ZGlmZiAtLWdpdCBcdy8iKQorICAgICAgICBzZWxmLl9maWxlX2RlY2xhcmF0aW9uX3BhdHRlcm4g
PSByZS5jb21waWxlKHIiXkluZGV4OiAoP1A8RmlsZVBhdGg+LispIikKKyAgICAgICAgc2VsZi5f
bGluZXNfY2hhbmdlZF9wYXR0ZXJuID0gcmUuY29tcGlsZShyIl5AQCAtKD9QPE9sZFN0YXJ0TGlu
ZT5cZCspKCxcZCspPyBcKyg/UDxOZXdTdGFydExpbmU+XGQrKSgsXGQrKT8gQEAiKQorCisgICAg
ICAgIHNlbGYuX3N0YXRlID0gTm9uZQorICAgICAgICBzZWxmLl9jdXJyZW50X2ZpbGUgPSBOb25l
CisgICAgICAgIHNlbGYuX29sZF9kaWZmX2xpbmUgPSBOb25lCisgICAgICAgIHNlbGYuX25ld19k
aWZmX2xpbmUgPSBOb25lCisgICAgICAgIHNlbGYuZmlsZXMgPSBOb25lCisKKyAgICAgICAgaWYg
ZGlmZl9pbnB1dDoKKyAgICAgICAgICAgIHNlbGYuX3BhcnNlX2ludG9fZGlmZl9maWxlcyhkaWZm
X2lucHV0KQorCisgICAgZGVmIGNvbXBpbGVfY29udmVyc2lvbl9wYXR0ZXJucyhzZWxmKToKKyAg
ICAgICAgY29udmVyc2lvbl9wYXR0ZXJucyA9ICgoIl5kaWZmIC0tZ2l0IFx3LyguKykgXHcvKD9Q
PEZpbGVQYXRoPi4rKSIsIGxhbWJkYSBtYXRjaGVkOiAiSW5kZXg6ICIgKyBtYXRjaGVkLmdyb3Vw
KCdGaWxlUGF0aCcpICsgIlxuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
Xm5ldyBmaWxlLioiLCBsYW1iZGEgbWF0Y2hlZDogIlxuIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgiXmluZGV4ICgoWzAtOWEtZl17N31cLlwuWzAtOWEtZl17N30pfChbMC05
YS1mXXs0MH1cLlwuWzAtOWEtZl17NDB9KSkgWzAtOV17Nn0iLCBsYW1iZGEgbWF0Y2hlZDogIj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT1cbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIl4tLS0gXHcv
KD9QPEZpbGVQYXRoPi4rKSIsIGxhbWJkYSBtYXRjaGVkOiAiLS0tICIgKyBtYXRjaGVkLmdyb3Vw
KCdGaWxlUGF0aCcpICsgIlxuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
XlwrXCtcKyBcdy8oP1A8RmlsZVBhdGg+LispIiwgbGFtYmRhIG1hdGNoZWQ6ICIrKysgIiArIG1h
dGNoZWQuZ3JvdXAoJ0ZpbGVQYXRoJykgKyAiXG4iKSkKKworICAgICAgICBmb3IgcGF0dGVybiwg
Y29udmVyc2lvbiBpbiBjb252ZXJzaW9uX3BhdHRlcm5zOgorICAgICAgICAgICAgcGF0dGVybiA9
IHJlLmNvbXBpbGUocGF0dGVybikKKyAgICAgICAgICAgIHNlbGYuX2NvbXBpbGVkX2NvbnZlcnNp
b25fcGF0dGVybnMgPSBzZWxmLl9jb21waWxlZF9jb252ZXJzaW9uX3BhdHRlcm5zICsgKChwYXR0
ZXJuLCBjb252ZXJzaW9uKSwpCisKKyAgICBkZWYgdG9fc3ZuX2RpZmYoc2VsZiwgbGluZSk6Cisg
ICAgICAgICIiIkNvbnZlcnRzIGEgZ2l0IGZvcm1hdHRlZCBkaWZmIGxpbmUgdG8gYSBzdm4gZm9y
bWF0dGVkIGxpbmUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBsaW5lOiBBIHN0cmluZyBy
ZXByZXNlbnRpbmcgYSBsaW5lIG9mIHRoZSBkaWZmLgorICAgICAgICAiIiIKKworICAgICAgICBm
b3IgcGF0dGVybiwgY29udmVyc2lvbiBpbiBzZWxmLl9jb21waWxlZF9jb252ZXJzaW9uX3BhdHRl
cm5zOgorICAgICAgICAgICAgbWF0Y2hlZCA9IHBhdHRlcm4ubWF0Y2gobGluZSkKKyAgICAgICAg
ICAgIGlmIG1hdGNoZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnNpb24obWF0Y2hl
ZCkKKyAgICAgICAgcmV0dXJuIGxpbmUKKworICAgIGRlZiBzdm5fZGlmZl90b19zdm5fZGlmZihz
ZWxmLCBsaW5lKToKKyAgICAgICAgcmV0dXJuIGxpbmUKKworICAgIGRlZiBnZXRfZGlmZl9jb252
ZXJ0ZXIoc2VsZiwgbGluZXMpOgorICAgICAgICAiIiJHZXRzIGEgY29udmVydGVyIGZ1bmN0aW9u
IG9mIGRpZmYgbGluZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBsaW5lczogVGhlIGxp
bmVzIG9mIGEgZGlmZiBmaWxlLgorICAgICAgICAgICAgICAgICBJZiB0aGlzIGxpbmUgaXMgZ2l0
IGZvcm1hdHRlZCwgd2UnbGwgcmV0dXJuIGEKKyAgICAgICAgICAgICAgICAgY29udmVydGVyIGZy
b20gZ2l0IHRvIFNWTi4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51
bWVyYXRlKGxpbmVzWzotMV0pOgorICAgICAgICAgICAgIyBTdG9wIHdoZW4gd2UgZmluZCB0aGUg
Zmlyc3QgcGF0Y2gKKyAgICAgICAgICAgIGlmIGxpbmVbOjNdID09ICIrKysiIGFuZCBsaW5lc1tp
ICsgMV0gPT0gIi0tLSI6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIHNl
bGYuX2dpdF9kaWZmX3BhdHRlcm4ubWF0Y2gobGluZSk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYudG9fc3ZuX2RpZmYKKyAgICAgICAgcmV0dXJuIHNlbGYuc3ZuX2RpZmZfdG9fc3ZuX2Rp
ZmYKKworICAgIGRlZiBjaGVja19maWxlX2RlY2xhcmF0aW9uKHNlbGYsIGxpbmUpOgorICAgICAg
ICBmaWxlX2RlY2xhcmF0aW9uID0gc2VsZi5fZmlsZV9kZWNsYXJhdGlvbl9wYXR0ZXJuLm1hdGNo
KGxpbmUpCisgICAgICAgIGlmIGZpbGVfZGVjbGFyYXRpb246CisgICAgICAgICAgICBmaWxlbmFt
ZSA9IGZpbGVfZGVjbGFyYXRpb24uZ3JvdXAoJ0ZpbGVQYXRoJykKKyAgICAgICAgICAgIHNlbGYu
X2N1cnJlbnRfZmlsZSA9IERpZmZGaWxlKGZpbGVuYW1lKQorICAgICAgICAgICAgc2VsZi5maWxl
c1tmaWxlbmFtZV0gPSBzZWxmLl9jdXJyZW50X2ZpbGUKKyAgICAgICAgICAgIHNlbGYuX3N0YXRl
ID0gX0RFQ0xBUkVEX0ZJTEVfUEFUSAorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBkZWYgY2hlY2tfbGluZXNfY2hhbmdlZChzZWxmLCBsaW5lLCBz
dGF0ZSk6CisgICAgICAgIGxpbmVzX2NoYW5nZWQgPSBzZWxmLl9saW5lc19jaGFuZ2VkX3BhdHRl
cm4ubWF0Y2gobGluZSkKKyAgICAgICAgaWYgbGluZXNfY2hhbmdlZDoKKyAgICAgICAgICAgIGlm
IHN0YXRlICE9IF9ERUNMQVJFRF9GSUxFX1BBVEggYW5kIHN0YXRlICE9IF9QUk9DRVNTSU5HX0NI
VU5LOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1VuZXhwZWN0ZWQgbGluZSBjaGFuZ2Ug
d2l0aG91dCBmaWxlIHBhdGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWNsYXJh
dGlvbjogJXInICUgbGluZSkKKworICAgICAgICAgICAgc2VsZi5fb2xkX2RpZmZfbGluZSA9IGlu
dChsaW5lc19jaGFuZ2VkLmdyb3VwKCdPbGRTdGFydExpbmUnKSkKKyAgICAgICAgICAgIHNlbGYu
X25ld19kaWZmX2xpbmUgPSBpbnQobGluZXNfY2hhbmdlZC5ncm91cCgnTmV3U3RhcnRMaW5lJykp
CisgICAgICAgICAgICBzZWxmLl9zdGF0ZSA9IF9QUk9DRVNTSU5HX0NIVU5LCisgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICMgRklYTUU6IFRoaXMg
ZnVuY3Rpb24gaXMgd2F5IHRvbyBsb25nIGFuZCBuZWVkcyB0byBiZSBicm9rZW4gdXAuCiAgICAg
ZGVmIF9wYXJzZV9pbnRvX2RpZmZfZmlsZXMoc2VsZiwgZGlmZl9pbnB1dCk6Ci0gICAgICAgIGZp
bGVzID0ge30KLSAgICAgICAgc3RhdGUgPSBfSU5JVElBTF9TVEFURQotICAgICAgICBjdXJyZW50
X2ZpbGUgPSBOb25lCi0gICAgICAgIG9sZF9kaWZmX2xpbmUgPSBOb25lCi0gICAgICAgIG5ld19k
aWZmX2xpbmUgPSBOb25lCi0gICAgICAgIHRyYW5zZm9ybV9saW5lID0gZ2V0X2RpZmZfY29udmVy
dGVyKGRpZmZfaW5wdXQpCisgICAgICAgIHNlbGYuZmlsZXMgPSB7fQorICAgICAgICBzZWxmLl9z
dGF0ZSA9IF9JTklUSUFMX1NUQVRFCisgICAgICAgIHRyYW5zZm9ybV9saW5lID0gc2VsZi5nZXRf
ZGlmZl9jb252ZXJ0ZXIoZGlmZl9pbnB1dCkKKwogICAgICAgICBmb3IgbGluZSBpbiBkaWZmX2lu
cHV0OgogICAgICAgICAgICAgbGluZSA9IGxpbmUucnN0cmlwKCJcbiIpCiAgICAgICAgICAgICBs
aW5lID0gdHJhbnNmb3JtX2xpbmUobGluZSkKIAotICAgICAgICAgICAgZmlsZV9kZWNsYXJhdGlv
biA9IG1hdGNoKHIiXkluZGV4OiAoP1A8RmlsZVBhdGg+LispIiwgbGluZSkKLSAgICAgICAgICAg
IGlmIGZpbGVfZGVjbGFyYXRpb246Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlX2Rl
Y2xhcmF0aW9uLmdyb3VwKCdGaWxlUGF0aCcpCi0gICAgICAgICAgICAgICAgY3VycmVudF9maWxl
ID0gRGlmZkZpbGUoZmlsZW5hbWUpCi0gICAgICAgICAgICAgICAgZmlsZXNbZmlsZW5hbWVdID0g
Y3VycmVudF9maWxlCi0gICAgICAgICAgICAgICAgc3RhdGUgPSBfREVDTEFSRURfRklMRV9QQVRI
CisgICAgICAgICAgICBpZiBzZWxmLmNoZWNrX2ZpbGVfZGVjbGFyYXRpb24obGluZSk6CiAgICAg
ICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgbGluZXNfY2hhbmdlZCA9IG1hdGNo
KHIiXkBAIC0oP1A8T2xkU3RhcnRMaW5lPlxkKykoLFxkKyk/IFwrKD9QPE5ld1N0YXJ0TGluZT5c
ZCspKCxcZCspPyBAQCIsIGxpbmUpCi0gICAgICAgICAgICBpZiBsaW5lc19jaGFuZ2VkOgotICAg
ICAgICAgICAgICAgIGlmIHN0YXRlICE9IF9ERUNMQVJFRF9GSUxFX1BBVEggYW5kIHN0YXRlICE9
IF9QUk9DRVNTSU5HX0NIVU5LOgotICAgICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdVbmV4
cGVjdGVkIGxpbmUgY2hhbmdlIHdpdGhvdXQgZmlsZSBwYXRoICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZGVjbGFyYXRpb246ICVyJyAlIGxpbmUpCi0gICAgICAgICAgICAgICAg
b2xkX2RpZmZfbGluZSA9IGludChsaW5lc19jaGFuZ2VkLmdyb3VwKCdPbGRTdGFydExpbmUnKSkK
LSAgICAgICAgICAgICAgICBuZXdfZGlmZl9saW5lID0gaW50KGxpbmVzX2NoYW5nZWQuZ3JvdXAo
J05ld1N0YXJ0TGluZScpKQotICAgICAgICAgICAgICAgIHN0YXRlID0gX1BST0NFU1NJTkdfQ0hV
TksKKyAgICAgICAgICAgIGlmIHNlbGYuY2hlY2tfbGluZXNfY2hhbmdlZChsaW5lLCBzZWxmLl9z
dGF0ZSk6CiAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgaWYgc3RhdGUg
PT0gX1BST0NFU1NJTkdfQ0hVTks6CisgICAgICAgICAgICBpZiBzZWxmLl9zdGF0ZSA9PSBfUFJP
Q0VTU0lOR19DSFVOSzoKICAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJysnKToK
LSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9maWxlLmFkZF9uZXdfbGluZShuZXdfZGlmZl9s
aW5lLCBsaW5lWzE6XSkKLSAgICAgICAgICAgICAgICAgICAgbmV3X2RpZmZfbGluZSArPSAxCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfZmlsZS5hZGRfbmV3X2xpbmUoc2VsZi5f
bmV3X2RpZmZfbGluZSwgbGluZVsxOl0pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX25ld19k
aWZmX2xpbmUgKz0gMQogICAgICAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCctJyk6
Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZmlsZS5hZGRfZGVsZXRlZF9saW5lKG9sZF9k
aWZmX2xpbmUsIGxpbmVbMTpdKQotICAgICAgICAgICAgICAgICAgICBvbGRfZGlmZl9saW5lICs9
IDEKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9maWxlLmFkZF9kZWxldGVkX2xp
bmUoc2VsZi5fb2xkX2RpZmZfbGluZSwgbGluZVsxOl0pCisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX29sZF9kaWZmX2xpbmUgKz0gMQogICAgICAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3
aXRoKCcgJyk6Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZmlsZS5hZGRfdW5jaGFuZ2Vk
X2xpbmUob2xkX2RpZmZfbGluZSwgbmV3X2RpZmZfbGluZSwgbGluZVsxOl0pCi0gICAgICAgICAg
ICAgICAgICAgIG9sZF9kaWZmX2xpbmUgKz0gMQotICAgICAgICAgICAgICAgICAgICBuZXdfZGlm
Zl9saW5lICs9IDEKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9maWxlLmFkZF91
bmNoYW5nZWRfbGluZShzZWxmLl9vbGRfZGlmZl9saW5lLCBzZWxmLl9uZXdfZGlmZl9saW5lLCBs
aW5lWzE6XSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb2xkX2RpZmZfbGluZSArPSAxCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX25ld19kaWZmX2xpbmUgKz0gMQogICAgICAgICAgICAg
ICAgIGVsaWYgbGluZSA9PSAnXFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZSc6CiAgICAgICAg
ICAgICAgICAgICAgICMgTm90aGluZyB0byBkby4gIFdlIG1heSBzdGlsbCBoYXZlIHNvbWUgYWRk
ZWQgbGluZXMuCiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICBlbHNl
OgogICAgICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdVbmV4cGVjdGVkIGRpZmYgZm9ybWF0
IHdoZW4gcGFyc2luZyBhICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2h1bms6
ICVyJyAlIGxpbmUpCi0gICAgICAgIHJldHVybiBmaWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXJfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0dGVz
dC5weQppbmRleCA3OGRhYjI2Li40MGU4NmY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlcl91bml0dGVzdC5w
eQpAQCAtNzksNiArNzksNyBAQCBjbGFzcyBEaWZmUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDAsIDEpLCBkaWZmLmxpbmVzWzBdWzA6Ml0p
CiAKICAgICBkZWYgdGVzdF9kaWZmX2NvbnZlcnRlcihzZWxmKToKKyAgICAgICAgcGFyc2VyID0g
ZGlmZl9wYXJzZXIuRGlmZlBhcnNlcihESUZGX1RFU1RfREFUQS5zcGxpdGxpbmVzKCkpCiAgICAg
ICAgIGNvbW1lbnRfbGluZXMgPSBbCiAgICAgICAgICAgICAiSGV5IGd1eXMsXG4iLAogICAgICAg
ICAgICAgIlxuIiwKQEAgLTk3LDIyICs5OCwyMiBAQCBjbGFzcyBEaWZmUGFyc2VyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAiPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIiwKICAgICAgICAgICAg
ICItLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIu
cHlcbiIsCiAgICAgICAgICAgICAiKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2RpZmZfcGFyc2VyLnB5XG4iLAotICAgICAgICAgICAgIkBAIC01OSw2ICs1OSw3IEBA
IGRlZiBnaXRfZGlmZl90b19zdm5fZGlmZihsaW5lKTpcbiIsCisgICAgICAgICAgICAiQEAgLTU5
LDYgKzU5LDcgQEAgZGVmIHRvX3N2bl9kaWZmKGxpbmUpOlxuIiwKICAgICAgICAgICAgIF0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoc3Zu
X2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5zdm5fZGlmZl90b19zdm5fZGlmZikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoY29tbWVudF9s
aW5lcyArIHN2bl9kaWZmX2xpbmVzKSwgZGlmZl9wYXJzZXIuc3ZuX2RpZmZfdG9fc3ZuX2RpZmYp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZl9wYXJzZXIuZ2V0X2RpZmZfY29udmVydGVy
KHJldmlzaW9uX2xpbmVzICsgc3ZuX2RpZmZfbGluZXMpLCBkaWZmX3BhcnNlci5zdm5fZGlmZl90
b19zdm5fZGlmZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZXIuZ2V0X2RpZmZfY29u
dmVydGVyKHN2bl9kaWZmX2xpbmVzKSwgcGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIoY29tbWVudF9s
aW5lcyArIHN2bl9kaWZmX2xpbmVzKSwgcGFyc2VyLnN2bl9kaWZmX3RvX3N2bl9kaWZmKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIocmV2aXNpb25f
bGluZXMgKyBzdm5fZGlmZl9saW5lcyksIHBhcnNlci5zdm5fZGlmZl90b19zdm5fZGlmZikKIAog
ICAgICAgICBnaXRfZGlmZl9saW5lcyA9IFsKICAgICAgICAgICAgICJkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNlci5weVxuIiwKICAg
ICAgICAgICAgICJpbmRleCAzYzViNDViLi4wMTk3ZWFkIDEwMDY0NFxuIiwKICAgICAgICAgICAg
ICItLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9kaWZmX3BhcnNl
ci5weVxuIiwKICAgICAgICAgICAgICIrKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9kaWZmX3BhcnNlci5weVxuIiwKLSAgICAgICAgICAgICJAQCAtNTksNiArNTks
NyBAQCBkZWYgZ2l0X2RpZmZfdG9fc3ZuX2RpZmYobGluZSk6XG4iLAorICAgICAgICAgICAgIkBA
IC01OSw2ICs1OSw3IEBAIGRlZiB0b19zdm5fZGlmZihsaW5lKTpcbiIsCiAgICAgICAgICAgICBd
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZl9wYXJzZXIuZ2V0X2RpZmZfY29udmVydGVy
KGdpdF9kaWZmX2xpbmVzKSwgZGlmZl9wYXJzZXIuZ2l0X2RpZmZfdG9fc3ZuX2RpZmYpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlmZl9wYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKGNvbW1l
bnRfbGluZXMgKyBnaXRfZGlmZl9saW5lcyksIGRpZmZfcGFyc2VyLmdpdF9kaWZmX3RvX3N2bl9k
aWZmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpZmZfcGFyc2VyLmdldF9kaWZmX2NvbnZl
cnRlcihyZXZpc2lvbl9saW5lcyArIGdpdF9kaWZmX2xpbmVzKSwgZGlmZl9wYXJzZXIuZ2l0X2Rp
ZmZfdG9fc3ZuX2RpZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmdldF9kaWZm
X2NvbnZlcnRlcihnaXRfZGlmZl9saW5lcyksIHBhcnNlci50b19zdm5fZGlmZikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKGNvbW1lbnRfbGluZXMg
KyBnaXRfZGlmZl9saW5lcyksIHBhcnNlci50b19zdm5fZGlmZikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYXJzZXIuZ2V0X2RpZmZfY29udmVydGVyKHJldmlzaW9uX2xpbmVzICsgZ2l0X2Rp
ZmZfbGluZXMpLCBwYXJzZXIudG9fc3ZuX2RpZmYpCiAKICAgICBkZWYgdGVzdF9naXRfbW5lbW9u
aWNwcmVmaXgoc2VsZik6CiAgICAgICAgIHAgPSByZS5jb21waWxlKHInIChbYXxiXSkvJykKQEAg
LTEzMCw2ICsxMzEsNyBAQCBjbGFzcyBEaWZmUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICBzZWxmLnRlc3RfZGlmZl9wYXJzZXIoZGlmZl9wYXJzZXIuRGlmZlBhcnNl
cihwYXRjaC5zcGxpdGxpbmVzKCkpKQogCiAgICAgZGVmIHRlc3RfZ2l0X2RpZmZfdG9fc3ZuX2Rp
ZmYoc2VsZik6CisgICAgICAgIHBhcnNlciA9IGRpZmZfcGFyc2VyLkRpZmZQYXJzZXIoRElGRl9U
RVNUX0RBVEEuc3BsaXRsaW5lcygpKQogICAgICAgICBvdXRwdXQgPSAiIiJcCiBJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvZGlmZl9wYXJzZXIucHkKID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQEAgLTE3MSw1ICsxNzMsNSBAQCBpbmRleCBiNDhiMTYyLi5mMzAwOTYwIDEwMDY0NAog
IEYKICIiIikKIAotICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKG91dHB1dCwgJycu
am9pbihkaWZmX3BhcnNlci5naXRfZGlmZl90b19zdm5fZGlmZih4KSBmb3IgeCBpbiBzaG9ydGZt
dC5yZWFkbGluZXMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwob3V0cHV0
LCAnJy5qb2luKGRpZmZfcGFyc2VyLmdpdF9kaWZmX3RvX3N2bl9kaWZmKHgpIGZvciB4IGluIGlu
cHV0Zm10LnJlYWRsaW5lcygpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChv
dXRwdXQsICcnLmpvaW4ocGFyc2VyLnRvX3N2bl9kaWZmKHgpIGZvciB4IGluIHNob3J0Zm10LnJl
YWRsaW5lcygpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChvdXRwdXQsICcn
LmpvaW4ocGFyc2VyLnRvX3N2bl9kaWZmKHgpIGZvciB4IGluIGlucHV0Zm10LnJlYWRsaW5lcygp
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9oYXNsYW5k
ZWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvaGFzbGFuZGVkLnB5Cmlu
ZGV4IGIwNjkyYjMuLjBlZjg2NzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9oYXNsYW5kZWQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2hhc2xhbmRlZC5weQpAQCAtMzQsNyArMzQsNyBAQCBpbXBvcnQgdGVtcGZpbGUKIAog
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVw
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUs
IFNjcmlwdEVycm9yCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dCBpbXBvcnQgZGlmZl9w
YXJzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmRpZmZfcGFyc2VyIGltcG9ydCBE
aWZmUGFyc2VyCiAKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcyBpbXBvcnQgY29uZmlybWRpZmYK
IApAQCAtNDYsNyArNDYsOCBAQCBjbGFzcyBIYXNMYW5kZWQoY29uZmlybWRpZmYuQ29uZmlybURp
ZmYpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBjb252ZXJ0X3RvX3N2bihjbHMsIGRpZmYp
OgogICAgICAgICBsaW5lcyA9IFN0cmluZ0lPLlN0cmluZ0lPKGRpZmYpLnJlYWRsaW5lcygpCi0g
ICAgICAgIGNvbnZlcnQgPSBkaWZmX3BhcnNlci5nZXRfZGlmZl9jb252ZXJ0ZXIobGluZXMpCisg
ICAgICAgIHBhcnNlciA9IERpZmZQYXJzZXIoKQorICAgICAgICBjb252ZXJ0ID0gcGFyc2VyLmdl
dF9kaWZmX2NvbnZlcnRlcihsaW5lcykKICAgICAgICAgcmV0dXJuICIiLmpvaW4oY29udmVydCh4
KSBmb3IgeCBpbiBsaW5lcykKIAogICAgIEBjbGFzc21ldGhvZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>