<?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>91559</bug_id>
          
          <creation_ts>2012-07-17 17:09:55 -0700</creation_ts>
          <short_desc>nrwt: start merging port/webkit.py into port/base.py</short_desc>
          <delta_ts>2012-07-18 12:59:11 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671770</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-17 17:09:55 -0700</bug_when>
    <thetext>nrwt: start merging port/webkit.py into port/base.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671771</commentid>
    <comment_count>1</comment_count>
      <attachid>152879</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-17 17:12:45 -0700</bug_when>
    <thetext>Created attachment 152879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671842</commentid>
    <comment_count>2</comment_count>
      <attachid>152879</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-07-17 18:14:45 -0700</bug_when>
    <thetext>Comment on attachment 152879
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672657</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-18 12:59:11 -0700</bug_when>
    <thetext>Committed r123002: &lt;http://trac.webkit.org/changeset/123002&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152879</attachid>
            <date>2012-07-17 17:12:45 -0700</date>
            <delta_ts>2012-07-17 18:14:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91559-20120717171244.patch</filename>
            <type>text/plain</type>
            <size>19276</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODk3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2FkMjA2NTM4NTBhMjFmYzQyZWE0OTM5YWE5M2FjNWIz
MDc1Mzk4MS4uYWNiOTRlMjMyNjJhNmI5YzY3ZmVkODc5MmE3NWZhNzU5NTJkZWM1NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0
IEBACiAyMDEyLTA3LTE3ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IHN0YXJ0IG1lcmdpbmcgcG9ydC93ZWJraXQucHkgaW50byBwb3J0L2Jhc2Uu
cHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ug
YWxsIHRoZSBub24tdGVzdCBwb3J0IGltcGxlbWVudGF0aW9ucyBub3cgZGVyaXZlIGZyb20KKyAg
ICAgICAgV2ViS2l0UG9ydCwgdGhlcmUncyBubyByZWFsIHBvaW50IGluIGtlZXBpbmcgV2ViS2l0
UG9ydCBkaXN0aW5jdAorICAgICAgICBmcm9tIFBvcnQuIFRoaXMgcGF0Y2ggc3RhcnRzIG1lcmdp
bmcgdGhlIHR3byBieSBtb3ZpbmcgbmVhcmx5CisgICAgICAgIGFsbCBvZiB0aGUgd2Via2l0IGlt
cGxlbWVudGF0aW9ucyBvZiByb3V0aW5lcyB3aXRoIG5vIGRlZmF1bHQKKyAgICAgICAgYmVoYXZp
b3IgaW50byBiYXNlLnB5LiBUaGUgZmV3IHRoYXQgZGlkbid0IG1vdmUgcmVseSBvbgorICAgICAg
ICBhZGRpdGlvbmFsIGluZnJhc3RydWN0dXJlIHRoYXQgc2hvdWxkIGJlIHJlZmFjdG9yZWQgZGlm
ZmVyZW50bHkKKyAgICAgICAgKGxpa2UgdGhlIGltYWdlIGRpZmZpbmcsIHdoaWNoIHNob3VsZCBw
cm9iYWJseSBiZSBpdHMgb3duCisgICAgICAgIGNsYXNzKSBhbmQgZGVzZXJ2ZSB0aGVpciBvd24g
cGF0Y2hlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHNob3VsZCBqdXN0IGJlIG1vdmluZyBjb2Rl
IGFyb3VuZCwgYW5kIHJlcXVpcmUgbm8KKyAgICAgICAgYWRkaXRpb25hbCB0ZXN0czsgaW4gZmFj
dCwgd2UgY2FuIGRlbGV0ZSB0aGUgdGVzdHMgdGhhdCB3ZXJlCisgICAgICAgIGFzc2VydGluZyB2
aXJ0dWFsIG1ldGhvZHMgaW4gdGhlIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LmJhc2VsaW5l
X3NlYXJjaF9wYXRoKToKKyAgICAgICAgKFBvcnQuY2hlY2tfYnVpbGQpOgorICAgICAgICAoUG9y
dCk6CisgICAgICAgIChQb3J0Ll9jaGVja19kcml2ZXIpOgorICAgICAgICAoUG9ydC5fY2hlY2tf
cG9ydF9idWlsZCk6CisgICAgICAgIChQb3J0LmNoZWNrX2ltYWdlX2RpZmYpOgorICAgICAgICAo
UG9ydC5kcml2ZXJfbmFtZSk6CisgICAgICAgIChQb3J0LmRlZmF1bHRfcmVzdWx0c19kaXJlY3Rv
cnkpOgorICAgICAgICAoUG9ydC50by5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIpOgorICAgICAg
ICAoUG9ydC5fcGF0aF90b19hcGFjaGUpOgorICAgICAgICAoUG9ydC5faXNfcmVkaGF0X2Jhc2Vk
KToKKyAgICAgICAgKFBvcnQuX2lzX2RlYmlhbl9iYXNlZCk6CisgICAgICAgIChQb3J0Ll9hcGFj
aGVfY29uZmlnX2ZpbGVfbmFtZV9mb3JfcGxhdGZvcm0pOgorICAgICAgICAoUG9ydC5fcGF0aF90
b19hcGFjaGVfY29uZmlnX2ZpbGUpOgorICAgICAgICAoUG9ydC5fYnVpbGRfcGF0aCk6CisgICAg
ICAgIChQb3J0Ll9wYXRoX3RvX2RyaXZlcik6CisgICAgICAgIChQb3J0Ll9wYXRoX3RvX3dlYmNv
cmVfbGlicmFyeSk6CisgICAgICAgIChQb3J0Ll9wYXRoX3RvX2hlbHBlcik6CisgICAgICAgIChQ
b3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYpOgorICAgICAgICAoUG9ydC5fcGF0aF90b193ZGlmZik6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUG9ydFRlc3QudGVzdF9odHRwZF9yZXR1cm5zX2Vycm9yX2NvZGUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5
OgorICAgICAgICAoV2ViS2l0UG9ydCk6CisgICAgICAgIChXZWJLaXRQb3J0Ll9idWlsZF9kcml2
ZXJfZmxhZ3MpOgorICAgICAgICAoV2ViS2l0UG9ydC5fcmVhZF9pbWFnZV9kaWZmKToKKyAgICAg
ICAgKFdlYktpdFBvcnQuc2tpcHBlZF9sYXlvdXRfdGVzdHMpOgorCisyMDEyLTA3LTE3ICBEaXJr
IFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIG5yd3Q6IG1vdmUgcGVy
LXRlc3QgcmVzdWx0IG91dHB1dCBpbnRvIHByaW50aW5nLnB5CiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTQ2NQogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggZmJmMGI5MzBiOGQwNDUy
MjFhOTlmMjYzMTFmZDM0ZTAxZmJlNGMwNS4uNjZmMWI3Y2ZkZGRiM2UyNjFiZDQwZjRkNDg3ZGM0
MzliZTEwNjBmYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weQpAQCAtMzYsNiArMzYsNyBAQCBpbXBvcnQgZXJybm8KIGltcG9ydCBvcwog
aW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIAogdHJ5OgogICAgIGZyb20g
Y29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CkBAIC0xODQsMTIgKzE4NSwzOSBAQCBjbGFz
cyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgogICAg
ICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGFic29sdXRlIHBhdGhzIHRvIGRpcmVjdG9yaWVzIHRv
IHNlYXJjaCB1bmRlciBmb3IKICAgICAgICAgYmFzZWxpbmVzLiBUaGUgZGlyZWN0b3JpZXMgYXJl
IHNlYXJjaGVkIGluIG9yZGVyLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KCdQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoJykKKyAgICAgICAgc2VhcmNoX3BhdGhzID0gW10K
KyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAg
ICAgICAgIHNlYXJjaF9wYXRocy5hcHBlbmQoc2VsZi5fd2syX3BvcnRfbmFtZSgpKQorICAgICAg
ICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYubmFtZSgpKQorICAgICAgICBpZiBzZWxmLm5hbWUo
KSAhPSBzZWxmLnBvcnRfbmFtZToKKyAgICAgICAgICAgIHNlYXJjaF9wYXRocy5hcHBlbmQoc2Vs
Zi5wb3J0X25hbWUpCisgICAgICAgIHJldHVybiBtYXAoc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgsIHNlYXJjaF9wYXRocykKIAogICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRw
KToKICAgICAgICAgIiIiVGhpcyByb3V0aW5lIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGJ1
aWxkIGlzIHVwIHRvIGRhdGUKICAgICAgICAgYW5kIGFsbCB0aGUgbmVlZGVkIGJpbmFyaWVzIGFy
ZSBwcmVzZW50LiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNo
ZWNrX2J1aWxkJykKKyAgICAgICAgIyBJZiB3ZSdyZSB1c2luZyBhIHByZS1idWlsdCBjb3B5IG9m
IFdlYktpdCAoLS1yb290KSwgd2UgYXNzdW1lIGl0IGFsc28gaW5jbHVkZXMgYSBidWlsZCBvZiBE
UlQuCisgICAgICAgIGlmIG5vdCBzZWxmLmdldF9vcHRpb24oJ3Jvb3QnKSBhbmQgc2VsZi5nZXRf
b3B0aW9uKCdidWlsZCcpIGFuZCBub3Qgc2VsZi5fYnVpbGRfZHJpdmVyKCk6CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNrX2RyaXZlcigpOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbigncGl4ZWxf
dGVzdHMnKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNoZWNrX2ltYWdlX2RpZmYoKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNrX3Bv
cnRfYnVpbGQoKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1
ZQorCisgICAgZGVmIF9jaGVja19kcml2ZXIoc2VsZik6CisgICAgICAgIGRyaXZlcl9wYXRoID0g
c2VsZi5fcGF0aF90b19kcml2ZXIoKQorICAgICAgICBpZiBub3Qgc2VsZi5fZmlsZXN5c3RlbS5l
eGlzdHMoZHJpdmVyX3BhdGgpOgorICAgICAgICAgICAgX2xvZy5lcnJvcigiJXMgd2FzIG5vdCBm
b3VuZCBhdCAlcyIgJSAoc2VsZi5kcml2ZXJfbmFtZSgpLCBkcml2ZXJfcGF0aCkpCisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfY2hlY2tf
cG9ydF9idWlsZChzZWxmKToKKyAgICAgICAgIyBQb3J0cyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRo
b2QgdG8gZG8gYWRkaXRpb25hbCBjaGVja3MuCisgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBk
ZWYgY2hlY2tfc3lzX2RlcHMoc2VsZiwgbmVlZHNfaHR0cCk6CiAgICAgICAgICIiIklmIHRoZSBw
b3J0IG5lZWRzIHRvIGRvIHNvbWUgcnVudGltZSBjaGVja3MgdG8gZW5zdXJlIHRoYXQgdGhlCkBA
IC0yMDMsNyArMjMxLDExIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgIGRlZiBjaGVja19p
bWFnZV9kaWZmKHNlbGYsIG92ZXJyaWRlX3N0ZXA9Tm9uZSwgbG9nZ2luZz1UcnVlKToKICAgICAg
ICAgIiIiVGhpcyByb3V0aW5lIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciBpbWFnZV9kaWZmIGJp
bmFyeSBleGlzdHMuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQu
Y2hlY2tfaW1hZ2VfZGlmZicpCisgICAgICAgIGltYWdlX2RpZmZfcGF0aCA9IHNlbGYuX3BhdGhf
dG9faW1hZ2VfZGlmZigpCisgICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhp
bWFnZV9kaWZmX3BhdGgpOgorICAgICAgICAgICAgX2xvZy5lcnJvcigiSW1hZ2VEaWZmIHdhcyBu
b3QgZm91bmQgYXQgJXMiICUgaW1hZ2VfZGlmZl9wYXRoKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgY2hlY2tfcHJldHR5X3BhdGNoKHNl
bGYsIGxvZ2dpbmc9VHJ1ZSk6CiAgICAgICAgICIiIkNoZWNrcyB3aGV0aGVyIHdlIGNhbiB1c2Ug
dGhlIFByZXR0eVBhdGNoIHJ1Ynkgc2NyaXB0LiIiIgpAQCAtMzA4LDkgKzM0MCwxMCBAQCBjbGFz
cyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBkcml2ZXJfbmFtZShzZWxm
KToKLSAgICAgICAgIyBGSVhNRTogU2VlbXMgd2Ugc2hvdWxkIGdldCB0aGlzIGZyb20gdGhlIFBv
cnQncyBEcml2ZXIgY2xhc3MuCiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignZHJpdmVyX25h
bWUnKToKICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9vcHRpb24oJ2RyaXZlcl9uYW1lJykK
KyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAg
ICAgICAgIHJldHVybiAnV2ViS2l0VGVzdFJ1bm5lcicKICAgICAgICAgcmV0dXJuICdEdW1wUmVu
ZGVyVHJlZScKIAogICAgIGRlZiBleHBlY3RlZF9iYXNlbGluZXNfYnlfZXh0ZW5zaW9uKHNlbGYs
IHRlc3RfbmFtZSk6CkBAIC03MzMsNyArNzY2LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogCiAg
ICAgZGVmIGRlZmF1bHRfcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CiAgICAgICAgICIiIkFic29s
dXRlIHBhdGggdG8gdGhlIGRlZmF1bHQgcGxhY2UgdG8gc3RvcmUgdGhlIHRlc3QgcmVzdWx0cy4i
IiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgICAgICAgICMgUmVzdWx0
cyBhcmUgc3RvcmUgcmVsYXRpdmUgdG8gdGhlIGJ1aWx0IHByb2R1Y3RzIHRvIG1ha2UgaXQgZWFz
eQorICAgICAgICAjIHRvIGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIHdlYmtpdCBjaGVja2VkIG91
dCBhbmQgYnVpbHQuCisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCdsYXlvdXQtdGVz
dC1yZXN1bHRzJykKIAogICAgIGRlZiBzZXR1cF90ZXN0X3J1bihzZWxmKToKICAgICAgICAgIiIi
UGVyZm9ybSBwb3J0LXNwZWNpZmljIHdvcmsgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRlc3QgcnVu
LiIiIgpAQCAtNzc3LDYgKzgxMiw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgICAgICAg
ICAgIyBXaW5kb3dzOgogICAgICAgICAgICAgJ1BBVEgnLAorCisgICAgICAgICAgICAjIE1vc3Qg
cG9ydHMgKD8pOgorICAgICAgICAgICAgJ1dFQktJVF9URVNURk9OVFMnLAogICAgICAgICBdCiAg
ICAgICAgIGZvciB2YXJpYWJsZSBpbiB2YXJpYWJsZXNfdG9fY29weToKICAgICAgICAgICAgIHNl
bGYuX2NvcHlfdmFsdWVfZnJvbV9lbnZpcm9uX2lmX3NldChjbGVhbl9lbnYsIHZhcmlhYmxlKQpA
QCAtMTAyOSwyNSArMTA2Nyw2MyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIF91c2Vz
X2FwYWNoZShzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgICMgRklYTUU6IFRoaXMg
ZG9lcyBub3QgYmVsb25nIG9uIHRoZSBwb3J0IG9iamVjdC4KKyAgICBAbWVtb2l6ZWQKICAgICBk
ZWYgX3BhdGhfdG9fYXBhY2hlKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBh
dGggdG8gdGhlIGFwYWNoZSBiaW5hcnkuCiAKICAgICAgICAgVGhpcyBpcyBuZWVkZWQgb25seSBi
eSBwb3J0cyB0aGF0IHVzZSB0aGUgYXBhY2hlX2h0dHBfc2VydmVyIG1vZHVsZS4iIiIKLSAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX2FwYWNoZScpCisgICAg
ICAgICMgVGhlIEFwYWNoZSBiaW5hcnkgcGF0aCBjYW4gdmFyeSBkZXBlbmRpbmcgb24gT1MgYW5k
IGRpc3RyaWJ1dGlvbgorICAgICAgICAjIFNlZSBodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBk
L0Rpc3Ryb3NEZWZhdWx0TGF5b3V0CisgICAgICAgIGZvciBwYXRoIGluIFsiL3Vzci9zYmluL2h0
dHBkIiwgIi91c3Ivc2Jpbi9hcGFjaGUyIl06CisgICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lz
dGVtLmV4aXN0cyhwYXRoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcGF0aAorICAgICAgICBf
bG9nLmVycm9yKCJDb3VsZCBub3QgZmluZCBhcGFjaGUuIE5vdCBpbnN0YWxsZWQgb3IgdW5rbm93
biBwYXRoLiIpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICAjIEZJWE1FOiBUaGlzIGJlbG9u
Z3Mgb24gc29tZSBwbGF0Zm9ybSBhYnN0cmFjdGlvbiBpbnN0ZWFkIG9mIFBvcnQuCisgICAgZGVm
IF9pc19yZWRoYXRfYmFzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVt
LmV4aXN0cygnL2V0Yy9yZWRoYXQtcmVsZWFzZScpCisKKyAgICBkZWYgX2lzX2RlYmlhbl9iYXNl
ZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKCcvZXRjL2Rl
Ymlhbl92ZXJzaW9uJykKKworICAgICMgV2UgcGFzcyBzeXNfcGxhdGZvcm0gaW50byB0aGlzIG1l
dGhvZCB0byBtYWtlIGl0IGVhc3kgdG8gdW5pdCB0ZXN0LgorICAgIGRlZiBfYXBhY2hlX2NvbmZp
Z19maWxlX25hbWVfZm9yX3BsYXRmb3JtKHNlbGYsIHN5c19wbGF0Zm9ybSk6CisgICAgICAgIGlm
IHN5c19wbGF0Zm9ybSA9PSAnY3lnd2luJzoKKyAgICAgICAgICAgIHJldHVybiAnY3lnd2luLWh0
dHBkLmNvbmYnICAjIENZR1dJTiBpcyB0aGUgb25seSBwbGF0Zm9ybSB0byBzdGlsbCB1c2UgQXBh
Y2hlIDEuMy4KKyAgICAgICAgaWYgc3lzX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6Cisg
ICAgICAgICAgICBpZiBzZWxmLl9pc19yZWRoYXRfYmFzZWQoKToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gJ2ZlZG9yYS1odHRwZC5jb25mJyAgIyBUaGlzIGlzIGFuIEFwYWNoZSAyLnggY29uZmln
IGZpbGUgZGVzcGl0ZSB0aGUgbmFtaW5nLgorICAgICAgICAgICAgaWYgc2VsZi5faXNfZGViaWFu
X2Jhc2VkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdhcGFjaGUyLWRlYmlhbi1odHRwZC5j
b25mJworICAgICAgICAjIEFsbCBwbGF0Zm9ybXMgdXNlIGFwYWNoZTIgZXhjZXB0IGZvciBDWUdX
SU4gKGFuZCBNYWMgT1MgWCBUaWdlciBhbmQgcHJpb3IsIHdoaWNoIHdlIG5vIGxvbmdlciBzdXBw
b3J0KS4KKyAgICAgICAgcmV0dXJuICJhcGFjaGUyLWh0dHBkLmNvbmYiCiAKICAgICBkZWYgX3Bh
dGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBm
dWxsIHBhdGggdG8gdGhlIGFwYWNoZSBiaW5hcnkuCiAKICAgICAgICAgVGhpcyBpcyBuZWVkZWQg
b25seSBieSBwb3J0cyB0aGF0IHVzZSB0aGUgYXBhY2hlX2h0dHBfc2VydmVyIG1vZHVsZS4iIiIK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX2FwYWNoZV9j
b25maWdfZmlsZScpCisgICAgICAgIGNvbmZpZ19maWxlX25hbWUgPSBzZWxmLl9hcGFjaGVfY29u
ZmlnX2ZpbGVfbmFtZV9mb3JfcGxhdGZvcm0oc3lzLnBsYXRmb3JtKQorICAgICAgICByZXR1cm4g
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCAnaHR0cCcsICdj
b25mJywgY29uZmlnX2ZpbGVfbmFtZSkKKworICAgIGRlZiBfYnVpbGRfcGF0aChzZWxmLCAqY29t
cHMpOgorICAgICAgICAjIC0tcm9vdCBpcyB1c2VkIGZvciBydW5uaW5nIHdpdGggYSBwcmUtYnVp
bHQgcm9vdCAobGlrZSBmcm9tIGEgbmlnaHRseSB6aXApLgorICAgICAgICBidWlsZF9kaXJlY3Rv
cnkgPSBzZWxmLmdldF9vcHRpb24oJ3Jvb3QnKSBvciBzZWxmLmdldF9vcHRpb24oJ2J1aWxkX2Rp
cmVjdG9yeScpCisgICAgICAgIGlmIG5vdCBidWlsZF9kaXJlY3Rvcnk6CisgICAgICAgICAgICBi
dWlsZF9kaXJlY3RvcnkgPSBzZWxmLl9jb25maWcuYnVpbGRfZGlyZWN0b3J5KHNlbGYuZ2V0X29w
dGlvbignY29uZmlndXJhdGlvbicpKQorICAgICAgICAgICAgIyBTZXQgLS1idWlsZC1kaXJlY3Rv
cnkgaGVyZSBTaW5jZSB0aGlzIG1vZGlmaWVzIHRoZSBvcHRpb25zIG9iamVjdCB1c2VkIGJ5IHRo
ZSB3b3JrZXIgc3VicHJvY2Vzc2VzLAorICAgICAgICAgICAgIyBpdCBhdm9pZHMgdGhlIHNsb3cg
Y2FsbCBvdXQgdG8gYnVpbGRfZGlyZWN0b3J5IGluIGVhY2ggc3VicHJvY2Vzcy4KKyAgICAgICAg
ICAgIHNlbGYuc2V0X29wdGlvbl9kZWZhdWx0KCdidWlsZF9kaXJlY3RvcnknLCBidWlsZF9kaXJl
Y3RvcnkpCisgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZmlsZXN5
c3RlbS5hYnNwYXRoKGJ1aWxkX2RpcmVjdG9yeSksICpjb21wcykKIAogICAgIGRlZiBfcGF0aF90
b19kcml2ZXIoc2VsZiwgY29uZmlndXJhdGlvbj1Ob25lKToKICAgICAgICAgIiIiUmV0dXJucyB0
aGUgZnVsbCBwYXRoIHRvIHRoZSB0ZXN0IGRyaXZlciAoRHVtcFJlbmRlclRyZWUpLiIiIgotICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0Ll9wYXRoX3RvX2RyaXZlcicpCisg
ICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKIAogICAg
IGRlZiBfcGF0aF90b193ZWJjb3JlX2xpYnJhcnkoc2VsZik6CiAgICAgICAgICIiIlJldHVybnMg
dGhlIGZ1bGwgcGF0aCB0byBhIGJ1aWx0IGNvcHkgb2YgV2ViQ29yZS4iIiIKLSAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX3dlYmNvcmVfbGlicmFyeScpCisg
ICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgX3BhdGhfdG9faGVscGVyKHNlbGYpOgogICAg
ICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gdGhlIGxheW91dF90ZXN0X2hlbHBlciBi
aW5hcnksIHdoaWNoCkBAIC0xMDU1LDEzICsxMTMxLDEzIEBAIGNsYXNzIFBvcnQob2JqZWN0KToK
ICAgICAgICAgaWYgbm8gaGVscGVyIGlzIG5lZWRlZC4KIAogICAgICAgICBUaGlzIGlzIGxpa2Vs
eSBvbmx5IHVzZWQgYnkgc3RhcnQvc3RvcF9oZWxwZXIoKS4iIiIKLSAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcignUG9ydC5fcGF0aF90b19oZWxwZXInKQorICAgICAgICByZXR1cm4g
Tm9uZQogCiAgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CiAgICAgICAgICIiIlJl
dHVybnMgdGhlIGZ1bGwgcGF0aCB0byB0aGUgaW1hZ2VfZGlmZiBiaW5hcnksIG9yIE5vbmUgaWYg
aXQgaXMgbm90IGF2YWlsYWJsZS4KIAogICAgICAgICBUaGlzIGlzIGxpa2VseSB1c2VkIG9ubHkg
YnkgZGlmZl9pbWFnZSgpIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1Bv
cnQucGF0aF90b19pbWFnZV9kaWZmJykKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgo
J0ltYWdlRGlmZicpCiAKICAgICBkZWYgX3BhdGhfdG9fbGlnaHR0cGQoc2VsZik6CiAgICAgICAg
ICIiIlJldHVybnMgdGhlIHBhdGggdG8gdGhlIExpZ0hUVFBkIGJpbmFyeS4KQEAgLTEwODUsNyAr
MTE2MSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVs
bCBwYXRoIHRvIHRoZSB3ZGlmZiBiaW5hcnksIG9yIE5vbmUgaWYgaXQgaXMgbm90IGF2YWlsYWJs
ZS4KIAogICAgICAgICBUaGlzIGlzIGxpa2VseSB1c2VkIG9ubHkgYnkgd2RpZmZfdGV4dCgpIiIi
Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuX3BhdGhfdG9fd2RpZmYn
KQorICAgICAgICByZXR1cm4gJ3dkaWZmJwogCiAgICAgZGVmIF93ZWJraXRfYmFzZWxpbmVfcGF0
aChzZWxmLCBwbGF0Zm9ybSk6CiAgICAgICAgICIiIlJldHVybiB0aGUgIGZ1bGwgcGF0aCB0byB0
aGUgdG9wIG9mIHRoZSBiYXNlbGluZSB0cmVlIGZvciBhCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKaW5kZXgg
ZjdhZmI3YjIyYzEyYTM3YmU2MzBjZGJmNmYxOTNlOWI5MjM2MTQ0Zi4uMWQzNzY4NDIxNWM1NjIx
MmQ0ZDgyYmMyN2M2NDJjOTBjYjc3ZTc3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQpAQCAtMzgzLDI4
ICszODMsNiBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIF8s
IF8sIGxvZ3MgPSBjYXB0dXJlLnJlc3RvcmVfb3V0cHV0KCkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnaHR0cGQgc2VlbXMgYnJva2VuLiBDYW5ub3QgcnVuIGh0dHAgdGVzdHMuXG4nLCBsb2dz
KQogCi0gICAgZGVmIGFzc2VydFZpcnR1YWwoc2VsZiwgbWV0aG9kLCAqYXJncywgKiprd2FyZ3Mp
OgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtZXRob2Qs
ICphcmdzLCAqKmt3YXJncykKLQotICAgIGRlZiB0ZXN0X3ZpcnR1YWxfbWV0aG9kcyhzZWxmKToK
LSAgICAgICAgcG9ydCA9IFBvcnQoTW9ja1N5c3RlbUhvc3QoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRWaXJ0dWFsKHBvcnQuYmFzZWxpbmVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFs
KHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChw
b3J0LmNoZWNrX2J1aWxkLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5j
aGVja19pbWFnZV9kaWZmKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jcmVhdGVf
ZHJpdmVyLCAwKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5kaWZmX2ltYWdlLCBO
b25lLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5kZWZhdWx0X3Jlc3Vs
dHNfZGlyZWN0b3J5KQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19h
cGFjaGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2FwYWNoZV9j
b25maWdfZmlsZSkKLSAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuX3BhdGhfdG9fZHJp
dmVyKQotICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19oZWxwZXIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkKQotICAgICAgICBz
ZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19saWdodHRwZF9tb2R1bGVzKQotICAgICAg
ICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19saWdodHRwZF9waHApCi0gICAgICAg
IHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX3dkaWZmKQotCiAgICAgZGVmIHRlc3Rf
dGVzdF9leGlzdHMoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCh3aXRoX3Rl
c3RzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LnRlc3RfZXhpc3RzKCdwYXNz
ZXMnKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93
ZWJraXQucHkKaW5kZXggZDM3NmU3NzRhMmFmODhiYWEyMWQ2OTllODY5MTcyNjRmZTE3ZjAzZi4u
YjJlOTY4OGM5MTZmYThjM2QzOWExNmNmNzM2N2Q0NWRmYWI0NTU5NyAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTUyLDIy
ICs1Miw4IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgV2Vi
S2l0UG9ydChQb3J0KToKIAotICAgIGRlZiBkcml2ZXJfbmFtZShzZWxmKToKLSAgICAgICAgaWYg
c2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKLSAgICAgICAgICAgIHJldHVy
biAiV2ViS2l0VGVzdFJ1bm5lciIKLSAgICAgICAgcmV0dXJuICJEdW1wUmVuZGVyVHJlZSIKLQog
ICAgICMgRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN0YW5kYXJpemUgcG9ydCBuYW1pbmcs
IGFuZCBtYWtlIHRoaXMgbWV0aG9kIHNtYXJ0IGVub3VnaAogICAgICMgdG8gdXNlIGZvciBhbGwg
cG9ydCBjb25maWd1cmF0aW9ucyAoaW5jbHVkaW5nIGFyY2hpdGVjdHVyZXMsIGdyYXBoaWNzIHR5
cGVzLCBldGMpLgotICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAg
c2VhcmNoX3BhdGhzID0gW10KLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVz
dF9ydW5uZXInKToKLSAgICAgICAgICAgIHNlYXJjaF9wYXRocy5hcHBlbmQoc2VsZi5fd2syX3Bv
cnRfbmFtZSgpKQotICAgICAgICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYubmFtZSgpKQotICAg
ICAgICBpZiBzZWxmLm5hbWUoKSAhPSBzZWxmLnBvcnRfbmFtZToKLSAgICAgICAgICAgIHNlYXJj
aF9wYXRocy5hcHBlbmQoc2VsZi5wb3J0X25hbWUpCi0gICAgICAgIHJldHVybiBtYXAoc2VsZi5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlYXJjaF9wYXRocykKLQogICAgIGRlZiBfcG9ydF9mbGFn
X2Zvcl9zY3JpcHRzKHNlbGYpOgogICAgICAgICAjIFRoaXMgaXMgb3ZlcnJyaWRlbiBieSBwb3J0
cyB3aGljaCBuZWVkIGEgZmxhZyBwYXNzZWQgdG8gc2NyaXB0cyB0byBkaXN0aW5ndWlzaCB0aGUg
dXNlIG9mIHRoYXQgcG9ydC4KICAgICAgICAgIyBGb3IgZXhhbXBsZSAtLXF0IG9uIGxpbnV4LCBz
aW5jZSBhIHVzZXIgbWlnaHQgaGF2ZSBib3RoIEd0ayBhbmQgUXQgbGlicmFyaWVzIGluc3RhbGxl
ZC4KQEAgLTExNiwzNyArMTAyLDYgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKICAgICBkZWYg
X2J1aWxkX2RyaXZlcl9mbGFncyhzZWxmKToKICAgICAgICAgcmV0dXJuIFtdCiAKLSAgICBkZWYg
X2NoZWNrX2RyaXZlcihzZWxmKToKLSAgICAgICAgZHJpdmVyX3BhdGggPSBzZWxmLl9wYXRoX3Rv
X2RyaXZlcigpCi0gICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhkcml2ZXJf
cGF0aCk6Ci0gICAgICAgICAgICBfbG9nLmVycm9yKCIlcyB3YXMgbm90IGZvdW5kIGF0ICVzIiAl
IChzZWxmLmRyaXZlcl9uYW1lKCksIGRyaXZlcl9wYXRoKSkKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIGNoZWNrX2J1aWxkKHNlbGYsIG5l
ZWRzX2h0dHApOgotICAgICAgICAjIElmIHdlJ3JlIHVzaW5nIGEgcHJlLWJ1aWx0IGNvcHkgb2Yg
V2ViS2l0ICgtLXJvb3QpLCB3ZSBhc3N1bWUgaXQgYWxzbyBpbmNsdWRlcyBhIGJ1aWxkIG9mIERS
VC4KLSAgICAgICAgaWYgbm90IHNlbGYuZ2V0X29wdGlvbigncm9vdCcpIGFuZCBzZWxmLmdldF9v
cHRpb24oJ2J1aWxkJykgYW5kIG5vdCBzZWxmLl9idWlsZF9kcml2ZXIoKToKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfZHJpdmVyKCk6Ci0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCdwaXhlbF90
ZXN0cycpOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuY2hlY2tfaW1hZ2VfZGlmZigpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcG9y
dF9idWlsZCgpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBUcnVl
Ci0KLSAgICBkZWYgX2NoZWNrX3BvcnRfYnVpbGQoc2VsZik6Ci0gICAgICAgICMgUG9ydHMgY2Fu
IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzLgotICAgICAgICBy
ZXR1cm4gVHJ1ZQotCi0gICAgZGVmIGNoZWNrX2ltYWdlX2RpZmYoc2VsZiwgb3ZlcnJpZGVfc3Rl
cD1Ob25lLCBsb2dnaW5nPVRydWUpOgotICAgICAgICBpbWFnZV9kaWZmX3BhdGggPSBzZWxmLl9w
YXRoX3RvX2ltYWdlX2RpZmYoKQotICAgICAgICBpZiBub3Qgc2VsZi5fZmlsZXN5c3RlbS5leGlz
dHMoaW1hZ2VfZGlmZl9wYXRoKToKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoIkltYWdlRGlmZiB3
YXMgbm90IGZvdW5kIGF0ICVzIiAlIGltYWdlX2RpZmZfcGF0aCkKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotCiAgICAgZGVmIGRpZmZfaW1hZ2Uoc2VsZiwg
ZXhwZWN0ZWRfY29udGVudHMsIGFjdHVhbF9jb250ZW50cywgdG9sZXJhbmNlPU5vbmUpOgogICAg
ICAgICAjIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgdGVzdCBkaWRuJ3QgYWN0dWFsbHkgZ2Vu
ZXJhdGUgYW4gaW1hZ2UuCiAgICAgICAgICMgRklYTUU6IG5lZWQgdW5pdCB0ZXN0cyBmb3IgdGhp
cy4KQEAgLTIyMiwxNiArMTc3LDYgQEAgY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKIAogICAgICAg
ICByZXR1cm4gKG91dHB1dF9pbWFnZSwgZGlmZl9wZXJjZW50KQogCi0gICAgZGVmIHNldHVwX2Vu
dmlyb25fZm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKLSAgICAgICAgY2xlYW5f
ZW52ID0gc3VwZXIoV2ViS2l0UG9ydCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNl
cnZlcl9uYW1lKQotICAgICAgICBzZWxmLl9jb3B5X3ZhbHVlX2Zyb21fZW52aXJvbl9pZl9zZXQo
Y2xlYW5fZW52LCAnV0VCS0lUX1RFU1RGT05UUycpCi0gICAgICAgIHJldHVybiBjbGVhbl9lbnYK
LQotICAgIGRlZiBkZWZhdWx0X3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgotICAgICAgICAjIFJl
c3VsdHMgYXJlIHN0b3JlIHJlbGF0aXZlIHRvIHRoZSBidWlsdCBwcm9kdWN0cyB0byBtYWtlIGl0
IGVhc3kKLSAgICAgICAgIyB0byBoYXZlIG11bHRpcGxlIGNvcGllcyBvZiB3ZWJraXQgY2hlY2tl
ZCBvdXQgYW5kIGJ1aWx0LgotICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnbGF5b3V0
LXRlc3QtcmVzdWx0cycpCi0KICAgICBkZWYgX2RyaXZlcl9jbGFzcyhzZWxmKToKICAgICAgICAg
cmV0dXJuIFdlYktpdERyaXZlcgogCkBAIC0zNjEsNjUgKzMwNiw2IEBAIGNsYXNzIFdlYktpdFBv
cnQoUG9ydCk6CiAgICAgICAgIHRlc3RzX3RvX3NraXAudXBkYXRlKHNlbGYuX3NraXBwZWRfdGVz
dHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKHRlc3RfbGlzdCkpCiAgICAgICAgIHJldHVybiB0
ZXN0c190b19za2lwCiAKLSAgICBkZWYgX2J1aWxkX3BhdGgoc2VsZiwgKmNvbXBzKToKLSAgICAg
ICAgIyAtLXJvb3QgaXMgdXNlZCBmb3IgcnVubmluZyB3aXRoIGEgcHJlLWJ1aWx0IHJvb3QgKGxp
a2UgZnJvbSBhIG5pZ2h0bHkgemlwKS4KLSAgICAgICAgYnVpbGRfZGlyZWN0b3J5ID0gc2VsZi5n
ZXRfb3B0aW9uKCdyb290Jykgb3Igc2VsZi5nZXRfb3B0aW9uKCdidWlsZF9kaXJlY3RvcnknKQot
ICAgICAgICBpZiBub3QgYnVpbGRfZGlyZWN0b3J5OgotICAgICAgICAgICAgYnVpbGRfZGlyZWN0
b3J5ID0gc2VsZi5fY29uZmlnLmJ1aWxkX2RpcmVjdG9yeShzZWxmLmdldF9vcHRpb24oJ2NvbmZp
Z3VyYXRpb24nKSkKLSAgICAgICAgICAgICMgU2V0IC0tYnVpbGQtZGlyZWN0b3J5IGhlcmUgU2lu
Y2UgdGhpcyBtb2RpZmllcyB0aGUgb3B0aW9ucyBvYmplY3QgdXNlZCBieSB0aGUgd29ya2VyIHN1
YnByb2Nlc3NlcywKLSAgICAgICAgICAgICMgaXQgYXZvaWRzIHRoZSBzbG93IGNhbGwgb3V0IHRv
IGJ1aWxkX2RpcmVjdG9yeSBpbiBlYWNoIHN1YnByb2Nlc3MuCi0gICAgICAgICAgICBzZWxmLnNl
dF9vcHRpb25fZGVmYXVsdCgnYnVpbGRfZGlyZWN0b3J5JywgYnVpbGRfZGlyZWN0b3J5KQotICAg
ICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2ZpbGVzeXN0ZW0uYWJzcGF0
aChidWlsZF9kaXJlY3RvcnkpLCAqY29tcHMpCi0KLSAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aChzZWxmLmRyaXZlcl9uYW1lKCkp
Ci0KLSAgICBkZWYgX3BhdGhfdG9fd2ViY29yZV9saWJyYXJ5KHNlbGYpOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIF9wYXRoX3RvX2hlbHBlcihzZWxmKToKLSAgICAgICAgcmV0dXJu
IE5vbmUKLQotICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5fYnVpbGRfcGF0aCgnSW1hZ2VEaWZmJykKLQotICAgIGRlZiBfcGF0aF90b193ZGlm
ZihzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhpcyBkb2VzIG5vdCBleGlzdCBvbiBhIGRlZmF1
bHQgTWFjIE9TIFggTGVvcGFyZCBpbnN0YWxsLgotICAgICAgICByZXR1cm4gJ3dkaWZmJwotCi0g
ICAgIyBGSVhNRTogVGhpcyBkb2VzIG5vdCBiZWxvbmcgb24gdGhlIHBvcnQgb2JqZWN0LgotICAg
IEBtZW1vaXplZAotICAgIGRlZiBfcGF0aF90b19hcGFjaGUoc2VsZik6Ci0gICAgICAgICMgVGhl
IEFwYWNoZSBiaW5hcnkgcGF0aCBjYW4gdmFyeSBkZXBlbmRpbmcgb24gT1MgYW5kIGRpc3RyaWJ1
dGlvbgotICAgICAgICAjIFNlZSBodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0Rpc3Ryb3NE
ZWZhdWx0TGF5b3V0Ci0gICAgICAgIGZvciBwYXRoIGluIFsiL3Vzci9zYmluL2h0dHBkIiwgIi91
c3Ivc2Jpbi9hcGFjaGUyIl06Ci0gICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0
cyhwYXRoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gcGF0aAotICAgICAgICBfbG9nLmVycm9y
KCJDb3VsZCBub3QgZmluZCBhcGFjaGUuIE5vdCBpbnN0YWxsZWQgb3IgdW5rbm93biBwYXRoLiIp
Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICAjIEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gc29t
ZSBwbGF0Zm9ybSBhYnN0cmFjdGlvbiBpbnN0ZWFkIG9mIFBvcnQuCi0gICAgZGVmIF9pc19yZWRo
YXRfYmFzZWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cygn
L2V0Yy9yZWRoYXQtcmVsZWFzZScpCi0KLSAgICBkZWYgX2lzX2RlYmlhbl9iYXNlZChzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKCcvZXRjL2RlYmlhbl92ZXJz
aW9uJykKLQotICAgICMgV2UgcGFzcyBzeXNfcGxhdGZvcm0gaW50byB0aGlzIG1ldGhvZCB0byBt
YWtlIGl0IGVhc3kgdG8gdW5pdCB0ZXN0LgotICAgIGRlZiBfYXBhY2hlX2NvbmZpZ19maWxlX25h
bWVfZm9yX3BsYXRmb3JtKHNlbGYsIHN5c19wbGF0Zm9ybSk6Ci0gICAgICAgIGlmIHN5c19wbGF0
Zm9ybSA9PSAnY3lnd2luJzoKLSAgICAgICAgICAgIHJldHVybiAnY3lnd2luLWh0dHBkLmNvbmYn
ICAjIENZR1dJTiBpcyB0aGUgb25seSBwbGF0Zm9ybSB0byBzdGlsbCB1c2UgQXBhY2hlIDEuMy4K
LSAgICAgICAgaWYgc3lzX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6Ci0gICAgICAgICAg
ICBpZiBzZWxmLl9pc19yZWRoYXRfYmFzZWQoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gJ2Zl
ZG9yYS1odHRwZC5jb25mJyAgIyBUaGlzIGlzIGFuIEFwYWNoZSAyLnggY29uZmlnIGZpbGUgZGVz
cGl0ZSB0aGUgbmFtaW5nLgotICAgICAgICAgICAgaWYgc2VsZi5faXNfZGViaWFuX2Jhc2VkKCk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdhcGFjaGUyLWRlYmlhbi1odHRwZC5jb25mJwotICAg
ICAgICAjIEFsbCBwbGF0Zm9ybXMgdXNlIGFwYWNoZTIgZXhjZXB0IGZvciBDWUdXSU4gKGFuZCBN
YWMgT1MgWCBUaWdlciBhbmQgcHJpb3IsIHdoaWNoIHdlIG5vIGxvbmdlciBzdXBwb3J0KS4KLSAg
ICAgICAgcmV0dXJuICJhcGFjaGUyLWh0dHBkLmNvbmYiCi0KLSAgICBkZWYgX3BhdGhfdG9fYXBh
Y2hlX2NvbmZpZ19maWxlKHNlbGYpOgotICAgICAgICBjb25maWdfZmlsZV9uYW1lID0gc2VsZi5f
YXBhY2hlX2NvbmZpZ19maWxlX25hbWVfZm9yX3BsYXRmb3JtKHN5cy5wbGF0Zm9ybSkKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwg
J2h0dHAnLCAnY29uZicsIGNvbmZpZ19maWxlX25hbWUpCiAKIAogY2xhc3MgV2ViS2l0RHJpdmVy
KERyaXZlcik6Cg==
</data>
<flag name="review"
          id="161673"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>