<?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>157867</bug_id>
          
          <creation_ts>2016-05-18 15:52:19 -0700</creation_ts>
          <short_desc>Perf dashboard should have a script to sync git commits</short_desc>
          <delta_ts>2016-05-18 16:41:39 -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>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1194473</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-18 15:52:19 -0700</bug_when>
    <thetext>pull-svn.py should be enhanced to support git commit messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194487</commentid>
    <comment_count>1</comment_count>
      <attachid>279308</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-18 16:08:27 -0700</bug_when>
    <thetext>Created attachment 279308
Adds git support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194493</commentid>
    <comment_count>2</comment_count>
      <attachid>279308</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-18 16:16:25 -0700</bug_when>
    <thetext>Comment on attachment 279308
Adds git support

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194512</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-18 16:41:39 -0700</bug_when>
    <thetext>Committed r201115: &lt;http://trac.webkit.org/changeset/201115&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279308</attachid>
            <date>2016-05-18 16:08:27 -0700</date>
            <delta_ts>2016-05-18 16:16:25 -0700</delta_ts>
            <desc>Adds git support</desc>
            <filename>bug-157867-20160518160926.patch</filename>
            <type>text/plain</type>
            <size>21102</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxMTEwKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE2LTA1LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFBlcmYgZGFzaGJvYXJkIHNob3VsZCBoYXZlIGEgc2NyaXB0IHRvIHN5bmMgZ2l0
IGNvbW1pdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1Nzg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIHRoZSBzdXBwb3J0IHRvIHB1bGwgZnJvbSBhIEdpdCByZXBvIHRvIHB1bGwtc3ZuLnB5
IGFuZCByZW5hbWVkIGl0IHRvIHN5bmMtY29tbWl0cy5weS4KKworICAgICAgICBBZGRlZCB0d28g
Y2xhc3NlcyBTVk5SZXBvc2l0b3J5IGFuZCBHaXRSZXBvc2l0b3J5IHdoaWNoIGluaGVyaXRzIGZy
b20gYW4gYWJzdHJhY3QgY2xhc3MsIFJlcG9zaXRvcnkuCisgICAgICAgIFRoZSBjb2RlIHRoYXQg
ZmV0Y2hlcyBjb21taXQgYW5kIGZvcm1hdCByZXZpc2lvbiBudW1iZXIgLyBnaXQgaGFzaCBpcyBz
cGVjaWFsaXplZCBpbiBlYWNoLgorCisgICAgICAgICogSW5zdGFsbC5tZDoKKyAgICAgICAgKiB0
b29scy9wdWxsLXN2bi5weTogUmVtb3ZlZC4KKyAgICAgICAgKiB0b29scy9zeW5jLWNvbW1pdHMu
cHk6IFJlbmFtZWQgZnJvbSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvcHVsbC1zdm4u
cHkuCisgICAgICAgIChtYWluKTogUmVuYW1lZCAtLXN2bi1jb25maWctanNvbiB0byAtLXJlcG9z
aXRvcnktY29uZmlnLWpzb24uIEFsc28gbWFkZSBpdCByb2J1c3QgYWdhaW5zdCBleGNlcHRpb25z
CisgICAgICAgIGluc2lkZSBmZXRjaF9jb21taXRzX2FuZF9zdWJtaXQgb2YgZWFjaCBSZXBvc2l0
b3J5IGNsYXNzLgorICAgICAgICAobG9hZF9yZXBvc2l0b3J5KTogQSBmYWN0b3J5IGZ1bmN0aW9u
IGZvciBTVk5SZXBvc2l0b3J5IGFuZCBHaXRSZXBvc2l0b3J5LgorICAgICAgICAoUmVwb3NpdG9y
eSk6IEFkZGVkLgorICAgICAgICAoUmVwb3NpdG9yeS5fX2luaXRfXyk6IEFkZGVkLgorICAgICAg
ICAoUmVwb3NpdG9yeS5mZXRjaF9jb21taXRzX2FuZF9zdWJtaXQpOiBFeHRyYWN0ZWQgZnJvbSBz
dGFuZGFsb25lIGZldGNoX2NvbW1pdHNfYW5kX3N1Ym1pdC4KKyAgICAgICAgKFJlcG9zaXRvcnku
ZmV0Y2hfY29tbWl0KTogQWRkZWQuIEltcGxlbWVudGVkIGJ5IGEgc3ViY2xhc3MuCisgICAgICAg
IChSZXBvc2l0b3J5LmZvcm1hdF9yZXZpc2lvbik6IERpdHRvLgorICAgICAgICAoUmVwb3NpdG9y
eS5kZXRlcm1pbmVfbGFzdF9yZXBvcnRlZF9yZXZpc2lvbik6IEV4dHJhY3RlZCBmcm9tIGFsb25l
YWxvbmUKKyAgICAgICAgZGV0ZXJtaW5lX2ZpcnN0X3JldmlzaW9uX3RvX2ZldGNoLiBUaGUgZmFs
bGJhY2sgdG8gdXNlICJvbGRlc3QiIGhhcyBiZWVuIG1vdmVkIHRvIFNWTlJlcG9zaXRvcnkncwor
ICAgICAgICBmZXRjaF9jb21taXQgc2luY2UgaXQgZG9lc24ndCB3b3JrIGluIEdpdC4KKyAgICAg
ICAgKFJlcG9zaXRvcnkuZmV0Y2hfcmV2aXNpb25fZnJvbV9kYXNiaG9hcmQpOiBFeHRyYWN0ZWQg
ZnJvbSBmZXRjaF9yZXZpc2lvbl9mcm9tX2Rhc2Job2FyZC4KKyAgICAgICAgKFNWTlJlcG9zaXRv
cnkpOiBBZGRlZC4KKyAgICAgICAgKFNWTlJlcG9zaXRvcnkuX19pbml0X18pOiBBZGRlZC4KKyAg
ICAgICAgKFNWTlJlcG9zaXRvcnkuZmV0Y2hfY29tbWl0KTogRXh0cmFjdGVkIGZyb20gc3RhbmRh
bG9uZSBmZXRjaF9jb21taXRfYW5kX3Jlc29sdmVfYXV0aG9yIGFuZCBmZXRjaF9jb21taXQuCisg
ICAgICAgIChTVk5SZXBvc2l0b3J5Ll9yZXNvbHZlX2F1dGhvcl9uYW1lKTogUmVuYW1lZCBmcm9t
IHJlc29sdmVfYXV0aG9yX25hbWVfZnJvbV9hY2NvdW50LgorICAgICAgICAoU1ZOUmVwb3NpdG9y
eS5mb3JtYXRfcmV2aXNpb24pOiBBZGRlZC4KKyAgICAgICAgKEdpdFJlcG9zaXRvcnkpOiBBZGRl
ZC4KKyAgICAgICAgKEdpdFJlcG9zaXRvcnkuX19pbml0X18pOgorICAgICAgICAoR2l0UmVwb3Np
dG9yeS5mZXRjaF9jb21taXQpOiBBZGRlZC4gRmV0Y2hlcyB0aGUgbGlzdCBvZiBhbGwgZ2l0IGhh
c2hlcyBpZiBuZWVkZWQsIGFuZCBmaW5kcyB0aGUgbmV4dCBoYXNoLgorICAgICAgICAoR2l0UmVw
b3NpdG9yeS5fZmluZF9uZXh0X2hhc2gpOiBBZGRlZC4gRmluZHMgdGhlIGZpcnN0IGNvbW1pdCB0
aGF0IGFwcGVhcnMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBoYXNoLgorICAgICAgICAoR2l0UmVwb3Np
dG9yeS5fZmV0Y2hfYWxsX2hhc2hlcyk6IEFkZGVkLiBHZXRzIHRoZSBsaXN0IG9mIGFsbCBnaXQg
aGFzaHMgY2hyb25vbG9naWNhbGx5IChvbGQgdG8gbmV3KS4KKyAgICAgICAgKEdpdFJlcG9zaXRv
cnkuX3J1bl9naXRfY29tbWFuZCk6IEFkZGVkLgorICAgICAgICAoR2l0UmVwb3NpdG9yeS5mb3Jt
YXRfcmV2aXNpb24pOiBBZGRlZC4gVXNlIHRoZSBmaXJzdCA4IGNoYXJhY3RlcnMgb2YgdGhlIGhh
c2guCisKIDIwMTYtMDUtMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIGEgc3VidGl0bGUgdW5kZXIgcGxhdGZvcm0gbmFtZSBpbiB0aGUgc3VtbWFyeSBw
YWdlCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvSW5zdGFsbC5tZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvSW5zdGFsbC5tZAkocmV2aXNpb24gMjAxMTA5
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0luc3RhbGwubWQJKHdvcmtpbmcgY29weSkK
QEAgLTEwMiw3ICsxMDIsNyBAQCBSZXF1aXJlIHZhbGlkLXVzZXIKICMgQ29uZmlndXJpbmcgUG9z
dGdyZVNRTAogCiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNldHVwIGEgUG9zdGdyZXMg
c2VydmVyIGF0IGAvVm9sdW1lcy9EYXRhL3BlcmYud2Via2l0Lm9yZy9Qb3N0Z3Jlc1NRTGAgKG9y
IHdoZXJldmVyIHlvdSdkIHByZWZlcik6Ci1gcHl0aG9uIC4vc2V0dXAtZGF0YWJhc2UucHkgL1Zv
bHVtZXMvRGF0YS9wZXJmLndlYmtpdC5vcmcvUG9zdGdyZXNTUUxgCitgcHl0aG9uIC4vdG9vbHMv
c2V0dXAtZGF0YWJhc2UucHkgL1ZvbHVtZXMvRGF0YS9wZXJmLndlYmtpdC5vcmcvUG9zdGdyZXNT
UUxgCiAKIEl0IGF1dG9tYXRpY2FsbHkgcmV0cmlldmVzIHRoZSBkYXRhYmFzZSBuYW1lLCB0aGUg
dXNlcm5hbWUsIGFuZCB0aGUgcGFzc3dvcmQgZnJvbSBgY29uZmlnLmpzb25gLgogCkBAIC0xMTEs
NyArMTExLDcgQEAgSXQgYXV0b21hdGljYWxseSByZXRyaWV2ZXMgdGhlIGRhdGFiYXNlIAogVGhl
IHNldHVwIHNjcmlwdCBhdXRvbWF0aWNhbGx5IHN0YXJ0cyB0aGUgZGF0YWJhc2UgYnV0IHlvdSBt
YXkgbmVlZCB0byBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIG1hbnVhbGx5IHN0YXJ0IHRo
ZSBkYXRhYmFzZSBhZnRlciByZWJvb3QuCiAKIC0gU3RhcnRpbmcgdGhlIGRhdGFiYXNlOiBgL0Fw
cGxpY2F0aW9ucy9TZXJ2ZXIuYXBwL0NvbnRlbnRzL1NlcnZlclJvb3QvdXNyL2Jpbi9wZ19jdGwg
LUQgL1ZvbHVtZXMvRGF0YS9wZXJmLndlYmtpdC5vcmcvUG9zdGdyZXNTUUwgLWwgL1ZvbHVtZXMv
RGF0YS9wZXJmLndlYmtpdC5vcmcvUG9zdGdyZXNTUUwvbG9nZmlsZSAtbyAiLWsgL1ZvbHVtZXMv
RGF0YS9wZXJmLndlYmtpdC5vcmcvUG9zdGdyZXNTUUwiIHN0YXJ0YAotLSBTdG9wcGluZyB0aGUg
ZGF0YWJhc2U6IGAvQXBwbGljYXRpb25zL1NlcnZlci5hcHAvQ29udGVudHMvU2VydmVyUm9vdC91
c3IvYmluL3BnX2N0bCAtRCAvVm9sdW1lcy9EYXRhL3BlcmYud2Via2l0Lm9yZy9Qb3N0Z3Jlc1NR
TCAtbCAvVm9sdW1lcy9EYXRhL3BlcmYud2Via2l0Lm9yZy9Qb3N0Z3Jlc1NRTC9sb2dmaWxlIC1v
ICItayAvVm9sdW1lcy9EYXRhL3BlcmYud2Via2l0Lm9yZy9Qb3N0Z3Jlc1NRTCIgc3RhcnRgCist
IFN0b3BwaW5nIHRoZSBkYXRhYmFzZTogYC9BcHBsaWNhdGlvbnMvU2VydmVyLmFwcC9Db250ZW50
cy9TZXJ2ZXJSb290L3Vzci9iaW4vcGdfY3RsIC1EIC9Wb2x1bWVzL0RhdGEvcGVyZi53ZWJraXQu
b3JnL1Bvc3RncmVzU1FMIC1sIC9Wb2x1bWVzL0RhdGEvcGVyZi53ZWJraXQub3JnL1Bvc3RncmVz
U1FML2xvZ2ZpbGUgLW8gIi1rIC9Wb2x1bWVzL0RhdGEvcGVyZi53ZWJraXQub3JnL1Bvc3RncmVz
U1FMIiBzdG9wYAogCiAjIyBJbml0aWFsaXppbmcgdGhlIERhdGFiYXNlCiAKSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9wdWxsLXN2bi5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvcHVsbC1zdm4ucHkJKHJldmlzaW9uIDIwMTEwOSkK
KysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9wdWxsLXN2bi5weQkod29ya2luZyBj
b3B5KQpAQCAtMSwxNTEgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQotaW1wb3J0IGFyZ3Bh
cnNlCi1pbXBvcnQganNvbgotaW1wb3J0IHJlCi1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5
cwotaW1wb3J0IHRpbWUKLWltcG9ydCB1cmxsaWIyCi0KLWZyb20geG1sLmRvbS5taW5pZG9tIGlt
cG9ydCBwYXJzZVN0cmluZyBhcyBwYXJzZVhtbFN0cmluZwotZnJvbSB1dGlsIGltcG9ydCBsb2Fk
X3NlcnZlcl9jb25maWcKLWZyb20gdXRpbCBpbXBvcnQgc3VibWl0X2NvbW1pdHMKLWZyb20gdXRp
bCBpbXBvcnQgdGV4dF9jb250ZW50Ci0KLQotZGVmIG1haW4oYXJndik6Ci0gICAgcGFyc2VyID0g
YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tc3Zu
LWNvbmZpZy1qc29uJywgcmVxdWlyZWQ9VHJ1ZSwgaGVscD0nVGhlIHBhdGggdG8gYSBKU09OIGZp
bGUgdGhhdCBzcGVjaWZpZXMgc3VidmVyc2lvbiBzeW5jaW5nIG9wdGlvbnMnKQotICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoJy0tc2VydmVyLWNvbmZpZy1qc29uJywgcmVxdWlyZWQ9VHJ1ZSwgaGVs
cD0nVGhlIHBhdGggdG8gYSBKU09OIGZpbGUgdGhhdCBzcGVjaWZpZXMgdGhlIHBlcmYgZGFzaGJv
YXJkJykKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXNlY29uZHMtdG8tc2xlZXAnLCB0eXBl
PWZsb2F0LCBkZWZhdWx0PTkwMCwgaGVscD0nVGhlIHNlY29uZHMgdG8gc2xlZXAgYmV0d2VlbiBp
dGVyYXRpb25zJykKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW1heC1mZXRjaC1jb3VudCcs
IHR5cGU9aW50LCBkZWZhdWx0PTEwLCBoZWxwPSdUaGUgbnVtYmVyIG9mIGNvbW1pdHMgdG8gZmV0
Y2ggYXQgb25jZScpCi0gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIHdpdGgg
b3BlbihhcmdzLnN2bl9jb25maWdfanNvbikgYXMgc3ZuX2NvbmZpZ19qc29uOgotICAgICAgICBz
dm5fY29uZmlnID0ganNvbi5sb2FkKHN2bl9jb25maWdfanNvbikKLQotICAgIHdoaWxlIFRydWU6
Ci0gICAgICAgIHNlcnZlcl9jb25maWcgPSBsb2FkX3NlcnZlcl9jb25maWcoYXJncy5zZXJ2ZXJf
Y29uZmlnX2pzb24pCi0gICAgICAgIGZvciByZXBvc2l0b3J5X2luZm8gaW4gc3ZuX2NvbmZpZzoK
LSAgICAgICAgICAgIGZldGNoX2NvbW1pdHNfYW5kX3N1Ym1pdChyZXBvc2l0b3J5X2luZm8sIHNl
cnZlcl9jb25maWcsIGFyZ3MubWF4X2ZldGNoX2NvdW50KQotICAgICAgICBwcmludCAiU2xlZXBp
bmcgZm9yICVkIHNlY29uZHMuLi4iICUgYXJncy5zZWNvbmRzX3RvX3NsZWVwCi0gICAgICAgIHRp
bWUuc2xlZXAoYXJncy5zZWNvbmRzX3RvX3NsZWVwKQotCi0KLWRlZiBmZXRjaF9jb21taXRzX2Fu
ZF9zdWJtaXQocmVwb3NpdG9yeSwgc2VydmVyX2NvbmZpZywgbWF4X2ZldGNoX2NvdW50KToKLSAg
ICBhc3NlcnQgJ25hbWUnIGluIHJlcG9zaXRvcnksICdUaGUgcmVwb3NpdG9yeSBuYW1lIHNob3Vs
ZCBiZSBzcGVjaWZpZWQnCi0gICAgYXNzZXJ0ICd1cmwnIGluIHJlcG9zaXRvcnksICdUaGUgU1ZO
IHJlcG9zaXRvcnkgVVJMIHNob3VsZCBiZSBzcGVjaWZpZWQnCi0KLSAgICBpZiAncmV2aXNpb25U
b0ZldGNoJyBub3QgaW4gcmVwb3NpdG9yeToKLSAgICAgICAgcHJpbnQgIkRldGVybWluaW5nIHRo
ZSBzdGF0aW5nIHJldmlzaW9uIGZvciAlcyIgJSByZXBvc2l0b3J5WyduYW1lJ10KLSAgICAgICAg
cmVwb3NpdG9yeVsncmV2aXNpb25Ub0ZlY3RoJ10gPSBkZXRlcm1pbmVfZmlyc3RfcmV2aXNpb25f
dG9fZmV0Y2goc2VydmVyX2NvbmZpZ1snc2VydmVyJ11bJ3VybCddLCByZXBvc2l0b3J5WyduYW1l
J10pCi0KLSAgICBpZiAndXNlU2VydmVyQXV0aCcgaW4gcmVwb3NpdG9yeToKLSAgICAgICAgcmVw
b3NpdG9yeVsndXNlcm5hbWUnXSA9IHNlcnZlcl9jb25maWdbJ3NlcnZlciddWydhdXRoJ11bJ3Vz
ZXJuYW1lJ10KLSAgICAgICAgcmVwb3NpdG9yeVsncGFzc3dvcmQnXSA9IHNlcnZlcl9jb25maWdb
J3NlcnZlciddWydhdXRoJ11bJ3Bhc3N3b3JkJ10KLQotICAgIHBlbmRpbmdfY29tbWl0cyA9IFtd
Ci0gICAgZm9yIHVudXNlZCBpbiByYW5nZShtYXhfZmV0Y2hfY291bnQpOgotICAgICAgICBjb21t
aXQgPSBmZXRjaF9jb21taXRfYW5kX3Jlc29sdmVfYXV0aG9yKHJlcG9zaXRvcnksIHJlcG9zaXRv
cnkuZ2V0KCdhY2NvdW50TmFtZUZpbmRlclNjcmlwdCcsIE5vbmUpLCByZXBvc2l0b3J5WydyZXZp
c2lvblRvRmVjdGgnXSkKLSAgICAgICAgaWYgbm90IGNvbW1pdDoKLSAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgIHBlbmRpbmdfY29tbWl0cyArPSBbY29tbWl0XQotICAgICAgICByZXBvc2l0b3J5
WydyZXZpc2lvblRvRmVjdGgnXSArPSAxCi0KLSAgICBpZiBub3QgcGVuZGluZ19jb21taXRzOgot
ICAgICAgICBwcmludCAiTm8gbmV3IHJldmlzaW9uIGZvdW5kIGZvciAlcyAod2FpdGluZyBmb3Ig
ciVkKSIgJSAocmVwb3NpdG9yeVsnbmFtZSddLCByZXBvc2l0b3J5WydyZXZpc2lvblRvRmVjdGgn
XSkKLSAgICAgICAgcmV0dXJuCi0KLSAgICByZXZpc2lvbl9saXN0ID0gJ3InICsgJywgcicuam9p
bihtYXAobGFtYmRhIGNvbW1pdDogc3RyKGNvbW1pdFsncmV2aXNpb24nXSksIHBlbmRpbmdfY29t
bWl0cykpCi0gICAgcHJpbnQgIlN1Ym1pdHRpbmcgcmV2aXNpb25zICVzIGZvciAlcyB0byAlcyIg
JSAocmV2aXNpb25fbGlzdCwgcmVwb3NpdG9yeVsnbmFtZSddLCBzZXJ2ZXJfY29uZmlnWydzZXJ2
ZXInXVsndXJsJ10pCi0gICAgc3VibWl0X2NvbW1pdHMocGVuZGluZ19jb21taXRzLCBzZXJ2ZXJf
Y29uZmlnWydzZXJ2ZXInXVsndXJsJ10sIHNlcnZlcl9jb25maWdbJ3NsYXZlJ11bJ25hbWUnXSwg
c2VydmVyX2NvbmZpZ1snc2xhdmUnXVsncGFzc3dvcmQnXSkKLSAgICBwcmludCAiU3VjY2Vzc2Z1
bGx5IHN1Ym1pdHRlZC4iCi0gICAgcHJpbnQKLQotCi1kZWYgZGV0ZXJtaW5lX2ZpcnN0X3Jldmlz
aW9uX3RvX2ZldGNoKGRhc2hib2FyZF91cmwsIHJlcG9zaXRvcnlfbmFtZSk6Ci0gICAgdHJ5Ogot
ICAgICAgICBsYXN0X3JlcG9ydGVkX3JldmlzaW9uID0gZmV0Y2hfcmV2aXNpb25fZnJvbV9kYXNi
aG9hcmQoZGFzaGJvYXJkX3VybCwgcmVwb3NpdG9yeV9uYW1lLCAnbGFzdC1yZXBvcnRlZCcpCi0g
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgc3lzLmV4aXQoJ0ZhaWxlZCB0
byBmZXRjaCB0aGUgbGF0ZXN0IHJlcG9ydGVkIGNvbW1pdDogJyArIHN0cihlcnJvcikpCi0KLSAg
ICBpZiBsYXN0X3JlcG9ydGVkX3JldmlzaW9uOgotICAgICAgICByZXR1cm4gbGFzdF9yZXBvcnRl
ZF9yZXZpc2lvbiArIDEKLQotICAgICMgRklYTUU6IFRoaXMgaXMgYSBwcm9ibGVtYXRpYyBpZiBk
YXNoYm9hcmQgY2FuIGdldCByZXN1bHRzIGZvciByZXZpc2lvbnMgb2xkZXIgdGhhbiBvbGRlc3Rf
cmV2aXNpb24KLSAgICAjIGluIHRoZSBmdXR1cmUgYmVjYXVzZSB3ZSBuZXZlciByZWZldGNoIG9s
ZGVyIHJldmlzaW9ucy4KLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBmZXRjaF9yZXZpc2lvbl9m
cm9tX2Rhc2Job2FyZChkYXNoYm9hcmRfdXJsLCByZXBvc2l0b3J5X25hbWUsICdvbGRlc3QnKSBv
ciAxCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgc3lzLmV4aXQoJ0Zh
aWxlZCB0byBmZXRjaCB0aGUgb2xkZXN0IGNvbW1pdDogJyArIHN0cihlcnJvcikpCi0KLQotZGVm
IGZldGNoX3JldmlzaW9uX2Zyb21fZGFzYmhvYXJkKGRhc2hib2FyZF91cmwsIHJlcG9zaXRvcnlf
bmFtZSwgZmlsdGVyKToKLSAgICByZXN1bHQgPSB1cmxsaWIyLnVybG9wZW4oZGFzaGJvYXJkX3Vy
bCArICcvYXBpL2NvbW1pdHMvJyArIHJlcG9zaXRvcnlfbmFtZSArICcvJyArIGZpbHRlcikucmVh
ZCgpCi0gICAgcGFyc2VkX3Jlc3VsdCA9IGpzb24ubG9hZHMocmVzdWx0KQotICAgIGlmIHBhcnNl
ZF9yZXN1bHRbJ3N0YXR1cyddICE9ICdPSycgYW5kIHBhcnNlZF9yZXN1bHRbJ3N0YXR1cyddICE9
ICdSZXBvc2l0b3J5Tm90Rm91bmQnOgotICAgICAgICByYWlzZSBFeGNlcHRpb24ocmVzdWx0KQot
ICAgIGNvbW1pdHMgPSBwYXJzZWRfcmVzdWx0LmdldCgnY29tbWl0cycpCi0gICAgcmV0dXJuIGlu
dChjb21taXRzWzBdWydyZXZpc2lvbiddKSBpZiBjb21taXRzIGVsc2UgTm9uZQotCi0KLWRlZiBm
ZXRjaF9jb21taXRfYW5kX3Jlc29sdmVfYXV0aG9yKHJlcG9zaXRvcnksIGFjY291bnRfdG9fbmFt
ZV9oZWxwZXIsIHJldmlzaW9uX3RvX2ZldGNoKToKLSAgICB0cnk6Ci0gICAgICAgIGNvbW1pdCA9
IGZldGNoX2NvbW1pdChyZXBvc2l0b3J5LCByZXZpc2lvbl90b19mZXRjaCkKLSAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICBzeXMuZXhpdCgnRmFpbGVkIHRvIGZldGNoIHRo
ZSBjb21taXQgJWQ6ICVzJyAlIChyZXZpc2lvbl90b19mZXRjaCwgc3RyKGVycm9yKSkpCi0KLSAg
ICBpZiBub3QgY29tbWl0OgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgYWNjb3VudCA9IGNv
bW1pdFsnYXV0aG9yJ11bJ2FjY291bnQnXQotICAgIHRyeToKLSAgICAgICAgbmFtZSA9IHJlc29s
dmVfYXV0aG9yX25hbWVfZnJvbV9hY2NvdW50KGFjY291bnRfdG9fbmFtZV9oZWxwZXIsIGFjY291
bnQpIGlmIGFjY291bnRfdG9fbmFtZV9oZWxwZXIgZWxzZSBOb25lCi0gICAgICAgIGlmIG5hbWU6
Ci0gICAgICAgICAgICBjb21taXRbJ2F1dGhvciddWyduYW1lJ10gPSBuYW1lCi0gICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgc3lzLmV4aXQoJ0ZhaWxlZCB0byByZXNvbHZl
IHRoZSBhdXRob3IgbmFtZSBmcm9tIGFuIGFjY291bnQgJXM6ICVzJyAlIChhY2NvdW50LCBzdHIo
ZXJyb3IpKSkKLQotICAgIHJldHVybiBjb21taXQKLQotCi1kZWYgZmV0Y2hfY29tbWl0KHJlcG9z
aXRvcnksIHJldmlzaW9uKToKLSAgICBhcmdzID0gWydzdm4nLCAnbG9nJywgJy0tcmV2aXNpb24n
LCBzdHIocmV2aXNpb24pLCAnLS14bWwnLCByZXBvc2l0b3J5Wyd1cmwnXSwgJy0tbm9uLWludGVy
YWN0aXZlJ10KLSAgICBpZiAndXNlcm5hbWUnIGluIHJlcG9zaXRvcnkgYW5kICdwYXNzd29yZCcg
aW4gcmVwb3NpdG9yeToKLSAgICAgICAgYXJncyArPSBbJy0tbm8tYXV0aC1jYWNoZScsICctLXVz
ZXJuYW1lJywgcmVwb3NpdG9yeVsndXNlcm5hbWUnXSwgJy0tcGFzc3dvcmQnLCByZXBvc2l0b3J5
WydwYXNzd29yZCddXQotICAgIGlmIHJlcG9zaXRvcnkuZ2V0KCd0cnVzdENlcnRpZmljYXRlJywg
RmFsc2UpOgotICAgICAgICBhcmdzICs9IFsnLS10cnVzdC1zZXJ2ZXItY2VydCddCi0KLSAgICB0
cnk6Ci0gICAgICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGFyZ3MsIHN0ZGVy
cj1zdWJwcm9jZXNzLlNURE9VVCkKLSAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNz
RXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgIGlmICgnOiBObyBzdWNoIHJldmlzaW9uICcgKyBzdHIo
cmV2aXNpb24pKSBpbiBlcnJvci5vdXRwdXQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAg
ICAgICByYWlzZSBlcnJvcgotICAgIHhtbCA9IHBhcnNlWG1sU3RyaW5nKG91dHB1dCkKLSAgICB0
aW1lID0gdGV4dF9jb250ZW50KHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGF0ZSIpWzBdKQot
ICAgIGF1dGhvcl9hY2NvdW50ID0gdGV4dF9jb250ZW50KHhtbC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiYXV0aG9yIilbMF0pCi0gICAgbWVzc2FnZSA9IHRleHRfY29udGVudCh4bWwuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIm1zZyIpWzBdKQotICAgIHJldHVybiB7Ci0gICAgICAgICdyZXBvc2l0b3J5
JzogcmVwb3NpdG9yeVsnbmFtZSddLAotICAgICAgICAncmV2aXNpb24nOiByZXZpc2lvbiwKLSAg
ICAgICAgJ3RpbWUnOiB0aW1lLAotICAgICAgICAnYXV0aG9yJzogeydhY2NvdW50JzogYXV0aG9y
X2FjY291bnR9LAotICAgICAgICAnbWVzc2FnZSc6IG1lc3NhZ2UsCi0gICAgfQotCi0KLW5hbWVf
YWNjb3VudF9jb21wb3VuZF9yZWdleCA9IHJlLmNvbXBpbGUocideXHMqKD9QPG5hbWU+KFwiLitc
InxbXjxdKz8pKVxzKlw8KD9QPGFjY291bnQ+LispXD5ccyokJykKLQotCi1kZWYgcmVzb2x2ZV9h
dXRob3JfbmFtZV9mcm9tX2FjY291bnQoaGVscGVyLCBhY2NvdW50KToKLSAgICBvdXRwdXQgPSBz
dWJwcm9jZXNzLmNoZWNrX291dHB1dChoZWxwZXIgKyBbYWNjb3VudF0pCi0gICAgbWF0Y2ggPSBu
YW1lX2FjY291bnRfY29tcG91bmRfcmVnZXgubWF0Y2gob3V0cHV0KQotICAgIGlmIG1hdGNoOgot
ICAgICAgICByZXR1cm4gbWF0Y2guZ3JvdXAoJ25hbWUnKS5zdHJpcCgnIicpCi0gICAgcmV0dXJu
IG91dHB1dC5zdHJpcCgpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBtYWlu
KHN5cy5hcmd2KQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3N5bmMtY29t
bWl0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvc3lu
Yy1jb21taXRzLnB5CShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL3N5bmMtY29tbWl0cy5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyOSBAQAorIyEv
dXNyL2Jpbi9weXRob24KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IG9z
LnBhdGgKK2ltcG9ydCByZQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0
aW1lCitpbXBvcnQgdXJsbGliMgorCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQorZnJv
bSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCitmcm9tIHhtbC5kb20ubWluaWRv
bSBpbXBvcnQgcGFyc2VTdHJpbmcgYXMgcGFyc2VYbWxTdHJpbmcKK2Zyb20gdXRpbCBpbXBvcnQg
bG9hZF9zZXJ2ZXJfY29uZmlnCitmcm9tIHV0aWwgaW1wb3J0IHN1Ym1pdF9jb21taXRzCitmcm9t
IHV0aWwgaW1wb3J0IHRleHRfY29udGVudAorCisKK2RlZiBtYWluKGFyZ3YpOgorICAgIHBhcnNl
ciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCct
LXJlcG9zaXRvcnktY29uZmlnLWpzb24nLCByZXF1aXJlZD1UcnVlLCBoZWxwPSdUaGUgcGF0aCB0
byBhIEpTT04gZmlsZSB0aGF0IHNwZWNpZmllcyBzdWJ2ZXJzaW9uIHN5bmNpbmcgb3B0aW9ucycp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1zZXJ2ZXItY29uZmlnLWpzb24nLCByZXF1aXJl
ZD1UcnVlLCBoZWxwPSdUaGUgcGF0aCB0byBhIEpTT04gZmlsZSB0aGF0IHNwZWNpZmllcyB0aGUg
cGVyZiBkYXNoYm9hcmQnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tc2Vjb25kcy10by1z
bGVlcCcsIHR5cGU9ZmxvYXQsIGRlZmF1bHQ9OTAwLCBoZWxwPSdUaGUgc2Vjb25kcyB0byBzbGVl
cCBiZXR3ZWVuIGl0ZXJhdGlvbnMnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tbWF4LWZl
dGNoLWNvdW50JywgdHlwZT1pbnQsIGRlZmF1bHQ9MTAsIGhlbHA9J1RoZSBudW1iZXIgb2YgY29t
bWl0cyB0byBmZXRjaCBhdCBvbmNlJykKKyAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQor
CisgICAgd2l0aCBvcGVuKGFyZ3MucmVwb3NpdG9yeV9jb25maWdfanNvbikgYXMgcmVwb3NpdG9y
eV9jb25maWdfanNvbjoKKyAgICAgICAgcmVwb3NpdG9yaWVzID0gW2xvYWRfcmVwb3NpdG9yeShy
ZXBvc2l0b3J5X2luZm8pIGZvciByZXBvc2l0b3J5X2luZm8gaW4ganNvbi5sb2FkKHJlcG9zaXRv
cnlfY29uZmlnX2pzb24pXQorCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgc2VydmVyX2NvbmZp
ZyA9IGxvYWRfc2VydmVyX2NvbmZpZyhhcmdzLnNlcnZlcl9jb25maWdfanNvbikKKyAgICAgICAg
Zm9yIHJlcG9zaXRvcnkgaW4gcmVwb3NpdG9yaWVzOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHJlcG9zaXRvcnkuZmV0Y2hfY29tbWl0c19hbmRfc3VibWl0KHNlcnZlcl9jb25m
aWcsIGFyZ3MubWF4X2ZldGNoX2NvdW50KQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlcnJvcjoKKyAgICAgICAgICAgICAgICBwcmludCAiRmFpbGVkIHRvIGZldGNoIGFuZCBzeW5j
OiIsIGVycm9yCisKKyAgICAgICAgcHJpbnQgIlNsZWVwaW5nIGZvciAlZCBzZWNvbmRzLi4uIiAl
IGFyZ3Muc2Vjb25kc190b19zbGVlcAorICAgICAgICB0aW1lLnNsZWVwKGFyZ3Muc2Vjb25kc190
b19zbGVlcCkKKworCitkZWYgbG9hZF9yZXBvc2l0b3J5KHJlcG9zaXRvcnkpOgorICAgIGlmICdn
aXRDaGVja291dCcgaW4gcmVwb3NpdG9yeToKKyAgICAgICAgcmV0dXJuIEdpdFJlcG9zaXRvcnko
bmFtZT1yZXBvc2l0b3J5WyduYW1lJ10sIGdpdF91cmw9cmVwb3NpdG9yeVsndXJsJ10sIGdpdF9j
aGVja291dD1yZXBvc2l0b3J5WydnaXRDaGVja291dCddKQorICAgIHJldHVybiBTVk5SZXBvc2l0
b3J5KG5hbWU9cmVwb3NpdG9yeVsnbmFtZSddLCBzdm5fdXJsPXJlcG9zaXRvcnlbJ3VybCddLCBz
aG91bGRfdHJ1c3RfY2VydGlmaWNhdGU9cmVwb3NpdG9yeS5nZXQoJ3RydXN0Q2VydGlmaWNhdGUn
LCBGYWxzZSksCisgICAgICAgIHVzZV9zZXJ2ZXJfYXV0aD1yZXBvc2l0b3J5LmdldCgndXNlU2Vy
dmVyQXV0aCcsIEZhbHNlKSwgYWNjb3VudF9uYW1lX3NjcmlwdF9wYXRoPXJlcG9zaXRvcnkuZ2V0
KCdhY2NvdW50TmFtZUZpbmRlclNjcmlwdCcpKQorCisKK2NsYXNzIFJlcG9zaXRvcnkob2JqZWN0
KToKKyAgICBfX19tZXRhY2xhc3NfX18gPSBBQkNNZXRhCisKKyAgICBfbmFtZV9hY2NvdW50X2Nv
bXBvdW5kX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15ccyooP1A8bmFtZT4oXCIuK1wifFtePF0rPykp
XHMqXDwoP1A8YWNjb3VudD4uKylcPlxzKiQnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUpOgorICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQorICAgICAgICBzZWxmLl9sYXN0X2ZldGNo
ZWQgPSBOb25lCisKKyAgICBkZWYgZmV0Y2hfY29tbWl0c19hbmRfc3VibWl0KHNlbGYsIHNlcnZl
cl9jb25maWcsIG1heF9mZXRjaF9jb3VudCk6CisgICAgICAgIGlmIG5vdCBzZWxmLl9sYXN0X2Zl
dGNoZWQ6CisgICAgICAgICAgICBwcmludCAiRGV0ZXJtaW5pbmcgdGhlIHN0YXRpbmcgcmV2aXNp
b24gZm9yICVzIiAlIHNlbGYuX25hbWUKKyAgICAgICAgICAgIHNlbGYuX2xhc3RfZmV0Y2hlZCA9
IHNlbGYuZGV0ZXJtaW5lX2xhc3RfcmVwb3J0ZWRfcmV2aXNpb24oc2VydmVyX2NvbmZpZykKKwor
ICAgICAgICBwZW5kaW5nX2NvbW1pdHMgPSBbXQorICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdl
KG1heF9mZXRjaF9jb3VudCk6CisgICAgICAgICAgICBjb21taXQgPSBzZWxmLmZldGNoX2NvbW1p
dChzZXJ2ZXJfY29uZmlnLCBzZWxmLl9sYXN0X2ZldGNoZWQpCisgICAgICAgICAgICBpZiBub3Qg
Y29tbWl0OgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBwZW5kaW5nX2NvbW1p
dHMgKz0gW2NvbW1pdF0KKyAgICAgICAgICAgIHNlbGYuX2xhc3RfZmV0Y2hlZCA9IGNvbW1pdFsn
cmV2aXNpb24nXQorCisgICAgICAgIGlmIG5vdCBwZW5kaW5nX2NvbW1pdHM6CisgICAgICAgICAg
ICBwcmludCAiTm8gbmV3IHJldmlzaW9uIGZvdW5kIGZvciAlcyAobGFzdCBmZXRjaGVkOiAlcyki
ICUgKHNlbGYuX25hbWUsIHNlbGYuZm9ybWF0X3JldmlzaW9uKHNlbGYuX2xhc3RfZmV0Y2hlZCkp
CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICByZXZpc2lvbl9saXN0ID0gJywgJy5qb2lu
KFtzZWxmLmZvcm1hdF9yZXZpc2lvbihjb21taXRbJ3JldmlzaW9uJ10pIGZvciBjb21taXQgaW4g
cGVuZGluZ19jb21taXRzXSkKKworICAgICAgICBwcmludCAiU3VibWl0dGluZyByZXZpc2lvbnMg
JXMgZm9yICVzIHRvICVzIiAlIChyZXZpc2lvbl9saXN0LCBzZWxmLl9uYW1lLCBzZXJ2ZXJfY29u
ZmlnWydzZXJ2ZXInXVsndXJsJ10pCisKKyAgICAgICAgc3VibWl0X2NvbW1pdHMocGVuZGluZ19j
b21taXRzLCBzZXJ2ZXJfY29uZmlnWydzZXJ2ZXInXVsndXJsJ10sCisgICAgICAgICAgICBzZXJ2
ZXJfY29uZmlnWydzbGF2ZSddWyduYW1lJ10sIHNlcnZlcl9jb25maWdbJ3NsYXZlJ11bJ3Bhc3N3
b3JkJ10pCisKKyAgICAgICAgcHJpbnQgIlN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQuIgorICAgICAg
ICBwcmludAorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZldGNoX2NvbW1pdChzZWxm
LCBzZXJ2ZXJfY29uZmlnLCBsYXN0X2ZldGNoZWQpOgorICAgICAgICBwYXNzCisKKyAgICBAYWJz
dHJhY3RtZXRob2QKKyAgICBkZWYgZm9ybWF0X3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKKyAg
ICAgICAgcGFzcworCisgICAgZGVmIGRldGVybWluZV9sYXN0X3JlcG9ydGVkX3JldmlzaW9uKHNl
bGYsIHNlcnZlcl9jb25maWcpOgorICAgICAgICBsYXN0X3JlcG9ydGVkX3JldmlzaW9uID0gc2Vs
Zi5mZXRjaF9yZXZpc2lvbl9mcm9tX2Rhc2Job2FyZChzZXJ2ZXJfY29uZmlnLCAnbGFzdC1yZXBv
cnRlZCcpCisgICAgICAgIGlmIGxhc3RfcmVwb3J0ZWRfcmV2aXNpb246CisgICAgICAgICAgICBy
ZXR1cm4gbGFzdF9yZXBvcnRlZF9yZXZpc2lvbgorCisgICAgZGVmIGZldGNoX3JldmlzaW9uX2Zy
b21fZGFzYmhvYXJkKHNlbGYsIHNlcnZlcl9jb25maWcsIGZpbHRlcik6CisgICAgICAgIHJlc3Vs
dCA9IHVybGxpYjIudXJsb3BlbihzZXJ2ZXJfY29uZmlnWydzZXJ2ZXInXVsndXJsJ10gKyAnL2Fw
aS9jb21taXRzLycgKyBzZWxmLl9uYW1lICsgJy8nICsgZmlsdGVyKS5yZWFkKCkKKyAgICAgICAg
cGFyc2VkX3Jlc3VsdCA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICBpZiBwYXJzZWRfcmVz
dWx0WydzdGF0dXMnXSAhPSAnT0snIGFuZCBwYXJzZWRfcmVzdWx0WydzdGF0dXMnXSAhPSAnUmVw
b3NpdG9yeU5vdEZvdW5kJzoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihyZXN1bHQpCisg
ICAgICAgIGNvbW1pdHMgPSBwYXJzZWRfcmVzdWx0LmdldCgnY29tbWl0cycpCisgICAgICAgIHJl
dHVybiBjb21taXRzWzBdWydyZXZpc2lvbiddIGlmIGNvbW1pdHMgZWxzZSBOb25lCisKKworY2xh
c3MgU1ZOUmVwb3NpdG9yeShSZXBvc2l0b3J5KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lLCBzdm5fdXJsLCBzaG91bGRfdHJ1c3RfY2VydGlmaWNhdGUsIHVzZV9zZXJ2ZXJfYXV0aCwg
YWNjb3VudF9uYW1lX3NjcmlwdF9wYXRoKToKKyAgICAgICAgYXNzZXJ0IG5vdCBhY2NvdW50X25h
bWVfc2NyaXB0X3BhdGggb3IgaXNpbnN0YW5jZShhY2NvdW50X25hbWVfc2NyaXB0X3BhdGgsIGxp
c3QpCisgICAgICAgIHN1cGVyKFNWTlJlcG9zaXRvcnksIHNlbGYpLl9faW5pdF9fKG5hbWUpCisg
ICAgICAgIHNlbGYuX3N2bl91cmwgPSBzdm5fdXJsCisgICAgICAgIHNlbGYuX3Nob3VsZF90cnVz
dF9jZXJ0aWZpY2F0ZSA9IHNob3VsZF90cnVzdF9jZXJ0aWZpY2F0ZQorICAgICAgICBzZWxmLl91
c2Vfc2VydmVyX2F1dGggPSB1c2Vfc2VydmVyX2F1dGgKKyAgICAgICAgc2VsZi5fYWNjb3VudF9u
YW1lX3NjcmlwdF9wYXRoID0gYWNjb3VudF9uYW1lX3NjcmlwdF9wYXRoCisKKyAgICBkZWYgZmV0
Y2hfY29tbWl0KHNlbGYsIHNlcnZlcl9jb25maWcsIGxhc3RfZmV0Y2hlZCk6CisgICAgICAgIGlm
IG5vdCBsYXN0X2ZldGNoZWQ6CisgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgcHJvYmxl
bWF0aWMgaWYgZGFzaGJvYXJkIGNhbiBnZXQgcmVzdWx0cyBmb3IgcmV2aXNpb25zIG9sZGVyIHRo
YW4gb2xkZXN0X3JldmlzaW9uCisgICAgICAgICAgICAjIGluIHRoZSBmdXR1cmUgYmVjYXVzZSB3
ZSBuZXZlciByZWZldGNoIG9sZGVyIHJldmlzaW9ucy4KKyAgICAgICAgICAgIGxhc3RfZmV0Y2hl
ZCA9IHNlbGYuZmV0Y2hfcmV2aXNpb25fZnJvbV9kYXNiaG9hcmQoc2VydmVyX2NvbmZpZywgJ29s
ZGVzdCcpCisKKyAgICAgICAgcmV2aXNpb25fdG9fZmV0Y2ggPSBpbnQobGFzdF9mZXRjaGVkKSAr
IDEKKworICAgICAgICBhcmdzID0gWydzdm4nLCAnbG9nJywgJy0tcmV2aXNpb24nLCBzdHIocmV2
aXNpb25fdG9fZmV0Y2gpLCAnLS14bWwnLCBzZWxmLl9zdm5fdXJsLCAnLS1ub24taW50ZXJhY3Rp
dmUnXQorICAgICAgICBpZiBzZWxmLl91c2Vfc2VydmVyX2F1dGggYW5kICdhdXRoJyBpbiBzZXJ2
ZXJfY29uZmlnWydzZXJ2ZXInXToKKyAgICAgICAgICAgIHNlcnZlcl9hdXRoID0gc2VydmVyX2Nv
bmZpZ1snc2VydmVyJ11bJ2F1dGgnXQorICAgICAgICAgICAgYXJncyArPSBbJy0tbm8tYXV0aC1j
YWNoZScsICctLXVzZXJuYW1lJywgc2VydmVyX2F1dGhbJ3VzZXJuYW1lJ10sICctLXBhc3N3b3Jk
Jywgc2VydmVyX2F1dGhbJ3Bhc3N3b3JkJ11dCisgICAgICAgIGlmIHNlbGYuX3Nob3VsZF90cnVz
dF9jZXJ0aWZpY2F0ZToKKyAgICAgICAgICAgIGFyZ3MgKz0gWyctLXRydXN0LXNlcnZlci1jZXJ0
J10KKworICAgICAgICB0cnk6CisgICAgICAgICAgICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNr
X291dHB1dChhcmdzLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgIGV4Y2VwdCBz
dWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlcnJvcjoKKyAgICAgICAgICAgIGlmICgn
OiBObyBzdWNoIHJldmlzaW9uICcgKyBzdHIocmV2aXNpb25fdG9fZmV0Y2gpKSBpbiBlcnJvci5v
dXRwdXQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHJhaXNlIGVy
cm9yCisKKyAgICAgICAgeG1sID0gcGFyc2VYbWxTdHJpbmcob3V0cHV0KQorICAgICAgICB0aW1l
ID0gdGV4dF9jb250ZW50KHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGF0ZSIpWzBdKQorICAg
ICAgICBhdXRob3JfYWNjb3VudCA9IHRleHRfY29udGVudCh4bWwuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImF1dGhvciIpWzBdKQorICAgICAgICBtZXNzYWdlID0gdGV4dF9jb250ZW50KHhtbC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgibXNnIilbMF0pCisKKyAgICAgICAgbmFtZSA9IHNlbGYuX3Jlc29s
dmVfYXV0aG9yX25hbWUoYXV0aG9yX2FjY291bnQpIGlmIHNlbGYuX2FjY291bnRfbmFtZV9zY3Jp
cHRfcGF0aCBlbHNlIE5vbmUKKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3JlcG9z
aXRvcnknOiBzZWxmLl9uYW1lLAorICAgICAgICAgICAgJ3JldmlzaW9uJzogcmV2aXNpb25fdG9f
ZmV0Y2gsCisgICAgICAgICAgICAndGltZSc6IHRpbWUsCisgICAgICAgICAgICAnYXV0aG9yJzog
eydhY2NvdW50JzogYXV0aG9yX2FjY291bnQsICduYW1lJzogbmFtZX0sCisgICAgICAgICAgICAn
bWVzc2FnZSc6IG1lc3NhZ2UsCisgICAgICAgIH0KKworICAgIGRlZiBfcmVzb2x2ZV9hdXRob3Jf
bmFtZShzZWxmLCBhY2NvdW50KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0cHV0ID0g
c3VicHJvY2Vzcy5jaGVja19vdXRwdXQoc2VsZi5fYWNjb3VudF9uYW1lX3NjcmlwdF9wYXRoICsg
W2FjY291bnRdKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6
CisgICAgICAgICAgICBwcmludCAnRmFpbGVkIHRvIHJlc29sdmUgdGhlIG5hbWUgZm9yIGFjY291
bnQ6JywgYWNjb3VudAorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBtYXRjaCA9
IFJlcG9zaXRvcnkuX25hbWVfYWNjb3VudF9jb21wb3VuZF9yZWdleC5tYXRjaChvdXRwdXQpCisg
ICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKCduYW1lJyku
c3RyaXAoJyInKQorICAgICAgICByZXR1cm4gb3V0cHV0LnN0cmlwKCkKKworICAgIGRlZiBmb3Jt
YXRfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgorICAgICAgICByZXR1cm4gJ3InICsgc3RyKHJl
dmlzaW9uKQorCisKK2NsYXNzIEdpdFJlcG9zaXRvcnkoUmVwb3NpdG9yeSk6CisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbmFtZSwgZ2l0X2NoZWNrb3V0LCBnaXRfdXJsKToKKyAgICAgICAgYXNz
ZXJ0KG9zLnBhdGguaXNkaXIoZ2l0X2NoZWNrb3V0KSkKKyAgICAgICAgc3VwZXIoR2l0UmVwb3Np
dG9yeSwgc2VsZikuX19pbml0X18obmFtZSkKKyAgICAgICAgc2VsZi5fZ2l0X2NoZWNrb3V0ID0g
Z2l0X2NoZWNrb3V0CisgICAgICAgIHNlbGYuX2dpdF91cmwgPSBnaXRfdXJsCisgICAgICAgIHNl
bGYuX3Rva2VuaXplZF9oYXNoZXMgPSBbXQorCisgICAgZGVmIGZldGNoX2NvbW1pdChzZWxmLCBz
ZXJ2ZXJfY29uZmlnLCBsYXN0X2ZldGNoZWQpOgorICAgICAgICBpZiBub3QgbGFzdF9mZXRjaGVk
OgorICAgICAgICAgICAgc2VsZi5fZmV0Y2hfYWxsX2hhc2hlcygpCisgICAgICAgICAgICB0b2tl
bnMgPSBzZWxmLl90b2tlbml6ZWRfaGFzaGVzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICB0b2tlbnMgPSBzZWxmLl9maW5kX25leHRfaGFzaChsYXN0X2ZldGNoZWQpCisgICAgICAgICAg
ICBpZiBub3QgdG9rZW5zOgorICAgICAgICAgICAgICAgIHNlbGYuX2ZldGNoX2FsbF9oYXNoZXMo
KQorICAgICAgICAgICAgICAgIHRva2VucyA9IHNlbGYuX2ZpbmRfbmV4dF9oYXNoKGxhc3RfZmV0
Y2hlZCkKKyAgICAgICAgICAgICAgICBpZiBub3QgdG9rZW5zOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gTm9uZQorCisgICAgICAgIGN1cnJlbnRfaGFzaCA9IHRva2Vuc1swXQorICAgICAg
ICBwcmludCAnY3VycmVudDonLCB0b2tlbnMKKyAgICAgICAgY29tbWl0X3RpbWUgPSBpbnQodG9r
ZW5zWzFdKQorICAgICAgICBhdXRob3JfZW1haWwgPSB0b2tlbnNbMl0KKyAgICAgICAgcGFyZW50
X2hhc2ggPSB0b2tlbnNbM10gaWYgbGVuKHRva2VucykgPj0gNCBlbHNlIE5vbmUKKworICAgICAg
ICBhdXRob3JfbmFtZSA9IHNlbGYuX3J1bl9naXRfY29tbWFuZChbJ2xvZycsIGN1cnJlbnRfaGFz
aCwgJy0xJywgJy0tcHJldHR5PSVjbiddKQorICAgICAgICBtZXNzYWdlID0gc2VsZi5fcnVuX2dp
dF9jb21tYW5kKFsnbG9nJywgY3VycmVudF9oYXNoLCAnLTEnLCAnLS1wcmV0dHk9JUInXSkKKwor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3JlcG9zaXRvcnknOiBzZWxmLl9uYW1lLAor
ICAgICAgICAgICAgJ3JldmlzaW9uJzogY3VycmVudF9oYXNoLAorICAgICAgICAgICAgJ3BhcmVu
dCc6IHBhcmVudF9oYXNoLAorICAgICAgICAgICAgJ3RpbWUnOiBkYXRldGltZS5mcm9tdGltZXN0
YW1wKGNvbW1pdF90aW1lKS5zdHJmdGltZShyJyVZLSVtLSVkVCVIOiVNOiVTLiVmJyksCisgICAg
ICAgICAgICAnYXV0aG9yJzogeydhY2NvdW50JzogYXV0aG9yX2VtYWlsLCAnbmFtZSc6IGF1dGhv
cl9uYW1lfSwKKyAgICAgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZSwKKyAgICAgICAgfQorCisg
ICAgZGVmIF9maW5kX25leHRfaGFzaChzZWxmLCBoYXNoX3RvX2ZpbmQpOgorICAgICAgICBmb3Ig
aSwgdG9rZW5zIGluIGVudW1lcmF0ZShzZWxmLl90b2tlbml6ZWRfaGFzaGVzKToKKyAgICAgICAg
ICAgIGlmIHRva2VucyBhbmQgdG9rZW5zWzBdID09IGhhc2hfdG9fZmluZDoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fdG9rZW5pemVkX2hhc2hlc1tpICsgMV0gaWYgaSArIDEgPCBsZW4o
c2VsZi5fdG9rZW5pemVkX2hhc2hlcykgZWxzZSBOb25lCisgICAgICAgIHJldHVybiBOb25lCisK
KyAgICBkZWYgX2ZldGNoX2FsbF9oYXNoZXMoc2VsZik6CisgICAgICAgIHNlbGYuX3J1bl9naXRf
Y29tbWFuZChbJ3B1bGwnLCBzZWxmLl9naXRfdXJsXSkKKyAgICAgICAgbGluZXMgPSBzZWxmLl9y
dW5fZ2l0X2NvbW1hbmQoWydsb2cnLCAnLS1hbGwnLCAnLS1yZXZlcnNlJywgJy0tcHJldHR5PSVI
ICVjdCAlY2UgJVAnXSkuc3BsaXQoJ1xuJykKKyAgICAgICAgc2VsZi5fdG9rZW5pemVkX2hhc2hl
cyA9IFtsaW5lLnNwbGl0KCkgZm9yIGxpbmUgaW4gbGluZXNdCisKKyAgICBkZWYgX3J1bl9naXRf
Y29tbWFuZChzZWxmLCBhcmdzKToKKyAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0
cHV0KFsnZ2l0JywgJy1DJywgc2VsZi5fZ2l0X2NoZWNrb3V0XSArIGFyZ3MsIHN0ZGVycj1zdWJw
cm9jZXNzLlNURE9VVCkKKworICAgIGRlZiBmb3JtYXRfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24p
OgorICAgICAgICByZXR1cm4gc3RyKHJldmlzaW9uKVswOjhdCisKKworaWYgX19uYW1lX18gPT0g
Il9fbWFpbl9fIjoKKyAgICBtYWluKHN5cy5hcmd2KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3N5bmMtY29tbWl0cy5weQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMCwwICsxICMjCisqClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="303368"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>