<?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>48088</bug_id>
          
          <creation_ts>2010-10-21 12:43:49 -0700</creation_ts>
          <short_desc>Add --suggest-reviewers option to upload to auto-suggest reviewers for your patch</short_desc>
          <delta_ts>2010-10-21 16:01:02 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>297572</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 12:43:49 -0700</bug_when>
    <thetext>Add --suggest-reviewers option to upload to auto-suggest reviewers for your patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297577</commentid>
    <comment_count>1</comment_count>
      <attachid>71475</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 12:51:35 -0700</bug_when>
    <thetext>Created attachment 71475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297578</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 12:52:37 -0700</bug_when>
    <thetext>For example, when uploading this patch, this is the output:

% webkit-patch upload --suggest-reviewers --request-commit                                                                             Parsing ChangeLog: /Projects/WebKit/WebKitTools/ChangeLog
Running check-webkit-style
Total errors found: 0 in 8 files
Using editor in the CHANGE_LOG_EDIT_APPLICATION environment variable.
Please quit the editor application when done editing.
Was that diff correct? [Y/n]: 
Fetching: https://bugs.webkit.org/show_bug.cgi?id=48088&amp;ctype=xml
The following reviewers have recently modified files in your patch:
Adam Barth
Chris Jerdonek
Daniel Bates
David Levin
Eric Seidel
Ojan Vafai
Would you like to CC them? [Y/n]: 
Reading Keychain for bugs.webkit.org account and password.  Click &quot;Allow&quot; to continue...
Logging in as eric@webkit.org...
Adding [&apos;abarth@webkit.org&apos;, &apos;cjerdonek@webkit.org&apos;, &apos;dbates@webkit.org&apos;, &apos;levin@chromium.org&apos;, &apos;eric@webkit.org&apos;, &apos;ojan@chromium.org&apos;] to the CC list for bug 48088
Adding patch &quot;Patch&quot; to https://bugs.webkit.org/show_bug.cgi?id=48088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297579</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 12:53:14 -0700</bug_when>
    <thetext>We&apos;ll definitely want to refine this further, but as-is this is *hugely* useful to me when uploading patches.  I hope it&apos;s useful to others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297620</commentid>
    <comment_count>4</comment_count>
      <attachid>71475</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 14:02:49 -0700</bug_when>
    <thetext>Comment on attachment 71475
Patch

Donde esta la stepe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297624</commentid>
    <comment_count>5</comment_count>
      <attachid>71488</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 14:06:05 -0700</bug_when>
    <thetext>Created attachment 71488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297626</commentid>
    <comment_count>6</comment_count>
      <attachid>71488</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-21 14:07:55 -0700</bug_when>
    <thetext>Comment on attachment 71488
Patch

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

Also, it should work for post!

&gt; WebKitTools/Scripts/webkitpy/tool/steps/suggestreviewers.py:45
&gt; +        reviewers = self._tool.checkout().suggested_reviewers(self._options.git_commit)

You&apos;re not passing in the set of changed_files.

&gt; WebKitTools/Scripts/webkitpy/tool/steps/suggestreviewers.py:50
&gt; +        reviewer_emails = [reviewer.bugzilla_email() for reviewer in reviewers]

You can use map for this if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297631</commentid>
    <comment_count>7</comment_count>
      <attachid>71490</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 14:15:05 -0700</bug_when>
    <thetext>Created attachment 71490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297701</commentid>
    <comment_count>8</comment_count>
      <attachid>71490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 16:00:56 -0700</bug_when>
    <thetext>Comment on attachment 71490
Patch

Clearing flags on attachment: 71490

Committed r70274: &lt;http://trac.webkit.org/changeset/70274&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297702</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 16:01:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71475</attachid>
            <date>2010-10-21 12:51:35 -0700</date>
            <delta_ts>2010-10-21 14:06:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48088-20101021125134.patch</filename>
            <type>text/plain</type>
            <size>10378</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNDQzMjRkYjg0ZDRhYWFiNjFiN2Q1YWY1ZDVjMzA4MmVlY2E5ZGUxLi40MzgxMGYy
MTAzZDY2ZmI5ZTQzYzgyNmQ3ZWIxM2UzMmFlZWM3N2E0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTAtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCAtLXN1Z2dlc3QtcmV2aWV3
ZXJzIG9wdGlvbiB0byB1cGxvYWQgdG8gYXV0by1zdWdnZXN0IHJldmlld2VycyBmb3IgeW91ciBw
YXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
ODgKKworICAgICAgICBUaGlzIGlzIGEgZmlyc3QtcGFzcy4gIFdvcmtzLCBidXQgd2UnbGwgZXZl
bnR1YWxseQorICAgICAgICB0dXJuIHRoaXMgb24gYnkgZGVmYXVsdCwgcmVmaW5lIHRoZSBzdWdn
ZXN0aW9uIGFsZ29yaXRobQorICAgICAgICBhbmQgcG9zc2libHkgbW92ZSBpdCB0byBhIGRpZmZl
cmVudCBwbGFjZSBpbiB0aGUgdXBsb2FkIHN0ZXAgb3JkZXIuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5OgorCiAyMDEwLTEwLTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBUZXN0IHRoYXQgdGhlIFVJIGNsaWVudCBnZXRzIG5vdGlmaWVk
IHdoZW4gV0tWaWV3IHJlY2VpdmVzIGEgV01fQ0xPU0UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weQppbmRleCA3MmNhZDhkYzA4ZGZh
NWYwYjQ5NDI1Mzk3NjJhODc3NzI5OTgxNzJlLi45MDY2M2RjZmJmNjhiMTc1NWRkZTYwYzQ0OGMz
ZGFkN2UxZDJkYmJiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9hcGkucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvYXBpLnB5CkBAIC0xMjAsOCArMTIwLDggQEAgY2xhc3MgQ2hlY2tvdXQo
b2JqZWN0KToKICAgICAgICAgcmV2aXNpb25zID0gc2V0KHN1bShtYXAoc2VsZi5fc2NtLnJldmlz
aW9uc19jaGFuZ2luZ19maWxlLCBwYXRocyksIFtdKSkKICAgICAgICAgcmV0dXJuIHNldChtYXAo
c2VsZi5jb21taXRfaW5mb19mb3JfcmV2aXNpb24sIHJldmlzaW9ucykpCiAKLSAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0KToKLSAgICAgICAgY2hhbmdlZF9maWxl
cyA9IHNlbGYubW9kaWZpZWRfbm9uX2NoYW5nZWxvZ3MoZ2l0X2NvbW1pdCkKKyAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0LCBjaGFuZ2VkX2ZpbGVzPU5vbmUpOgor
ICAgICAgICBjaGFuZ2VkX2ZpbGVzID0gc2VsZi5tb2RpZmllZF9ub25fY2hhbmdlbG9ncyhnaXRf
Y29tbWl0LCBjaGFuZ2VkX2ZpbGVzKQogICAgICAgICBjb21taXRfaW5mb3MgPSBzZWxmLnJlY2Vu
dF9jb21taXRfaW5mb3NfZm9yX2ZpbGVzKGNoYW5nZWRfZmlsZXMpCiAgICAgICAgIHJldmlld2Vy
cyA9IFtjb21taXRfaW5mby5yZXZpZXdlcigpIGZvciBjb21taXRfaW5mbyBpbiBjb21taXRfaW5m
b3MgaWYgY29tbWl0X2luZm8ucmV2aWV3ZXIoKV0KICAgICAgICAgcmV2aWV3ZXJzLmV4dGVuZChb
Y29tbWl0X2luZm8uYXV0aG9yKCkgZm9yIGNvbW1pdF9pbmZvIGluIGNvbW1pdF9pbmZvcyBpZiBj
b21taXRfaW5mby5hdXRob3IoKSBhbmQgY29tbWl0X2luZm8uYXV0aG9yKCkuY2FuX3Jldmlld10p
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNmFmMWY2NGIyZjhmMzcwZjJkYzIz
MzhjN2Q2NDJlYmJiY2UzNTRmYi4uZGUwY2U2YzJhZjAyOGNlMWFmNzRhMjQ4N2E0NmEzZDI1ZmQz
MDBkNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTg2LDUgKzE4Niw2IEBA
IHdoZXJlIEFUVEFDSE1FTlRfSUQgaXMgdGhlIElEIG9mIHRoaXMgYXR0YWNobWVudC4KIAogICAg
IGRlZiB0ZXN0X3JvbGxvdXQoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJQcmVw
YXJpbmcgcm9sbG91dCBmb3IgYnVnIDQyLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblJ1
bm5pbmcgcHJlcGFyZS1DaGFuZ2VMb2dcbk1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi5c
bkJ1aWxkaW5nIFdlYktpdFxuIgotICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMo
Um9sbG91dCgpLCBbODUyLCAiUmVhc29uIl0sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25z
KCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0
ZG91dCA9ICJXYXMgdGhhdCBkaWZmIGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4
ZWN1dGVfb3V0cHV0cyhSb2xsb3V0KCksIFs4NTIsICJSZWFzb24iXSwgb3B0aW9ucz1zZWxmLl9k
ZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggMTA3ZDhkYjZiMjQ2MmZl
MmYwM2JlMGM4NmQ4OTZiYmQ2NjI0NTIyOC4uNDdjOGFhNTE2YzU3NmFkMzk4YmVhNzI3YzM2ZjI3
NmEyZWFiN2I3NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0yMTksNiArMjE5LDcgQEAgY2xhc3MgVXBsb2FkKEFi
c3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuRWRpdENoYW5nZUxv
ZywKICAgICAgICAgc3RlcHMuQ29uZmlybURpZmYsCiAgICAgICAgIHN0ZXBzLk9ic29sZXRlUGF0
Y2hlcywKKyAgICAgICAgc3RlcHMuU3VnZ2VzdFJldmlld2VycywKICAgICAgICAgc3RlcHMuUG9z
dERpZmYsCiAgICAgXQogICAgIGxvbmdfaGVscCA9ICIiInVwbG9hZCB1cGxvYWRzIHRoZSBjdXJy
ZW50IGRpZmYgdG8gYnVncy53ZWJraXQub3JnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKaW5k
ZXggMGQwOTZiNjQxZjVlM2E2MTQxMWJlYTc2ODIxMmQzMGU3YzQ4MWQ2NS4uODk0ZjY1MWMzZGEy
MmY3YTJiODdiN2E2ZmRmZTRhYTYzMmVlN2IwYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5
CkBAIC02Nyw3ICs2Nyw4IEBAIE5vbmUKIC0tIEVuZCBjb21tZW50IC0tCiBNT0NLOiB1c2VyLm9w
ZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICIiIgotICAgICAgICBzZWxmLmFzc2VydF9l
eGVjdXRlX291dHB1dHMoUG9zdCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0
ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJXYXMgdGhh
dCBkaWZmIGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQ
b3N0KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0
ZG91dCwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAogICAgIGRlZiB0ZXN0X2xh
bmRfc2FmZWx5KHNlbGYpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiT2Jzb2xldGluZyAy
IG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MlxuTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIs
IGRlc2NyaXB0aW9uPVBhdGNoIGZvciBsYW5kaW5nLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1h
cmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1UcnVlXG4tLSBCZWdp
biBjb21tZW50IC0tXG5Ob25lXG4tLSBFbmQgY29tbWVudCAtLVxuIgpAQCAtODgsNiArODksNyBA
QCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICAgICAgICAgb3B0
aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9uIgogICAgICAgICBvcHRpb25zLnJl
cXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9ucy5yZXZpZXcgPSBUcnVlCisgICAg
ICAgIG9wdGlvbnMuc3VnZ2VzdF9yZXZpZXdlcnMgPSBGYWxzZQogICAgICAgICBleHBlY3RlZF9z
dGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3Vy
bDogZmlsZTovLy4uLgogT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MgpAQCAtOTcs
NyArOTksOCBAQCBOb25lCiAtLSBFbmQgY29tbWVudCAtLQogTU9DSzogdXNlci5vcGVuX3VybDog
aHR0cDovL2V4YW1wbGUuY29tLzQyCiAiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9v
dXRwdXRzKFVwbG9hZCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1l
eHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJXYXMgdGhhdCBkaWZm
IGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQo
KSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfbWFya19i
dWdfZml4ZWQoc2VsZik6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCkBAIC0xMDYsNyArMTA5
LDggQEAgTU9DSzogdXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAgICAgICAg
IG9wdGlvbnMuYnVnX2lkID0gNDIKICAgICAgICAgb3B0aW9ucy5jb21tZW50ID0gIk1PQ0sgY29t
bWVudCIKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIkJ1ZzogPGh0dHA6Ly9leGFtcGxlLmNv
bS80Mj4gQnVnIHdpdGggdHdvIHIrJ2QgYW5kIGNxKydkIHBhdGNoZXMsIG9uZSBvZiB3aGljaCBo
YXMgYW4gaW52YWxpZCBjb21taXQtcXVldWUgc2V0dGVyLlxuUmV2aXNpb246IDk4NzZcbk1PQ0s6
IHVzZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS80MlxuQWRkaW5nIGNvbW1lbnQgdG8g
QnVnIDQyLlxuTU9DSyBidWcgY29tbWVudDogYnVnX2lkPTQyLCBjYz1Ob25lXG4tLS0gQmVnaW4g
Y29tbWVudCAtLS1cbk1PQ0sgY29tbWVudFxuXG5Db21taXR0ZWQgcjk4NzY6IDxodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC85ODc2PlxuLS0tIEVuZCBjb21tZW50IC0tLVxuXG4iCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhNYXJrQnVnRml4ZWQoKSwgW10sIGV4
cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIHRvb2w9dG9vbCwgb3B0aW9ucz1vcHRpb25z
KQorICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiSXMgdGhpcyBjb3JyZWN0P1xuIgorICAgICAg
ICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoTWFya0J1Z0ZpeGVkKCksIFtdLCBleHBlY3Rl
ZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJy
LCB0b29sPXRvb2wsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIGRlZiB0ZXN0X2VkaXRfY2hhbmdl
bG9nKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoRWRpdENoYW5n
ZUxvZ3MoKSwgW10pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rv
b2wucHkKaW5kZXggMDViMzBkZGNkOTViY2QyYTJhZDQxYjhlNDljYWZkNTY3OTU2ZTYyYi4uOTRm
MTEwNjJjMjNmNjNjZmEzYmY4N2IxNWJlMjU0ZTkxY2I2M2QwMyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtMjM2LDExICsyMzYsMTMgQEAg
Y2xhc3MgTW9ja0J1Z3ppbGxhUXVlcmllcyhNb2NrKToKICAgICAgICAgICAgICAgICByZXR1cm4g
cGF0Y2hlc1swXQogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIHBhdGNoZXMgaW4gdGhlIHJp
ZXR2ZWxkIHF1ZXVlJykKIAorCitfbW9ja19yZXZpZXdlciA9IFJldmlld2VyKCJGb28gQmFyIiwg
ImZvb0BiYXIuY29tIikKKworCiAjIEZJWE1FOiBCdWd6aWxsYSBpcyB0aGUgd3JvbmcgTW9jay1w
b2ludC4gIE9uY2Ugd2UgaGF2ZSBhIEJ1Z3ppbGxhTmV0d29yawogIyAgICAgICAgY2xhc3Mgd2Ug
c2hvdWxkIG1vY2sgdGhhdCBpbnN0ZWFkLgogIyBNb3N0IG9mIHRoaXMgY2xhc3MgaXMganVzdCBj
b3B5L3Bhc3RlIGZyb20gQnVnemlsbGEuCi0KLQogY2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgog
CiAgICAgYnVnX3NlcnZlcl91cmwgPSAiaHR0cDovL2V4YW1wbGUuY29tIgpAQCAtMjU4LDcgKzI2
MCw3IEBAIGNsYXNzIE1vY2tCdWd6aWxsYShNb2NrKToKICAgICBkZWYgX19pbml0X18oc2VsZik6
CiAgICAgICAgIE1vY2suX19pbml0X18oc2VsZikKICAgICAgICAgc2VsZi5xdWVyaWVzID0gTW9j
a0J1Z3ppbGxhUXVlcmllcyhzZWxmKQotICAgICAgICBzZWxmLmNvbW1pdHRlcnMgPSBDb21taXR0
ZXJMaXN0KHJldmlld2Vycz1bUmV2aWV3ZXIoIkZvbyBCYXIiLCAiZm9vQGJhci5jb20iKV0pCisg
ICAgICAgIHNlbGYuY29tbWl0dGVycyA9IENvbW1pdHRlckxpc3QocmV2aWV3ZXJzPVtfbW9ja19y
ZXZpZXdlcl0pCiAgICAgICAgIHNlbGYuX292ZXJyaWRlX3BhdGNoID0gTm9uZQogCiAgICAgZGVm
IGNyZWF0ZV9idWcoc2VsZiwKQEAgLTQ5MSw2ICs0OTMsOCBAQCBjbGFzcyBNb2NrQ2hlY2tvdXQo
b2JqZWN0KToKICAgICBkZWYgYXBwbHlfcmV2ZXJzZV9kaWZmKHNlbGYsIHJldmlzaW9uKToKICAg
ICAgICAgcGFzcwogCisgICAgZGVmIHN1Z2dlc3RlZF9yZXZpZXdlcnMoc2VsZiwgZ2l0X2NvbW1p
dCwgY2hhbmdlZF9maWxlcz1Ob25lKToKKyAgICAgICAgcmV0dXJuIFtfbW9ja19yZXZpZXdlcl0K
IAogY2xhc3MgTW9ja1VzZXIob2JqZWN0KToKIApAQCAtNTA4LDYgKzUxMiw3IEBAIGNsYXNzIE1v
Y2tVc2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBjb25maXJtKHNlbGYsIG1l
c3NhZ2U9Tm9uZSwgZGVmYXVsdD0neScpOgorICAgICAgICBwcmludCBtZXNzYWdlCiAgICAgICAg
IHJldHVybiBkZWZhdWx0ID09ICd5JwogCiAgICAgZGVmIGNhbl9vcGVuX3VybChzZWxmKToKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRf
Xy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eQppbmRleCBkNTljZGM1Mzc3OWYxOGFjOGI2NTk0NjRjMGZhNjI1NmI1NGU5NTk1Li43ZDllNTQ5
OGExZjU5Y2MyOGRjZTRjMTFkZDhkMDM3NDFkY2VkNjJjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC01NCw2ICs1NCw3
IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5wcm9tcHRmb3JidWdvcnRpdGxlIGltcG9ydCBQ
cm9tcHRGb3JCdWdPclRpdGxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMucmVvcGVuYnVnYWZ0
ZXJyb2xsb3V0IGltcG9ydCBSZW9wZW5CdWdBZnRlclJvbGxvdXQKIGZyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5yZXZlcnRyZXZpc2lvbiBpbXBvcnQgUmV2ZXJ0UmV2aXNpb24KIGZyb20gd2Via2l0
cHkudG9vbC5zdGVwcy5ydW50ZXN0cyBpbXBvcnQgUnVuVGVzdHMKK2Zyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5zdWdnZXN0cmV2aWV3ZXJzIGltcG9ydCBTdWdnZXN0UmV2aWV3ZXJzCiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMudXBkYXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdlciBpbXBvcnQgVXBk
YXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdlcgogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLnVwZGF0
ZSBpbXBvcnQgVXBkYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMudmFsaWRhdGVyZXZpZXdl
ciBpbXBvcnQgVmFsaWRhdGVSZXZpZXdlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCA4MzVmZGJhNmQwYzlkNzRmZWE1Yjc4
MmI0Y2M3MDRkMGNmNDVlNmEwLi40ZjE3ZGQzNGQxMmRiOTRiY2Q0YmIwMTQwNTc5OWEzMjYzNzNm
MmZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQpAQCAtNTQsNSArNTQsNiBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAg
cmVxdWVzdF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1yZXF1ZXN0LWNvbW1pdCIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlc3Q9InJlcXVlc3RfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
TWFyayB0aGUgcGF0Y2ggYXMgbmVlZGluZyBhdXRvLWNvbW1pdCBhZnRlciByZXZpZXcuIikKICAg
ICByZXZpZXcgPSBtYWtlX29wdGlvbigiLS1uby1yZXZpZXciLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwgZGVzdD0icmV2aWV3IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3QgbWFyayB0aGUgcGF0
Y2ggZm9yIHJldmlldy4iKQogICAgIHJldmlld2VyID0gbWFrZV9vcHRpb24oIi1yIiwgIi0tcmV2
aWV3ZXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0icmV2aWV3ZXIiLCBo
ZWxwPSJVcGRhdGUgQ2hhbmdlTG9ncyB0byBzYXkgUmV2aWV3ZWQgYnkgUkVWSUVXRVIuIikKKyAg
ICBzdWdnZXN0X3Jldmlld2VycyA9IG1ha2Vfb3B0aW9uKCItLXN1Z2dlc3QtcmV2aWV3ZXJzIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iT2ZmZXIgdG8gQ0MgYXBw
cm9wcmlhdGUgcmV2aWV3ZXJzLiIpCiAgICAgdGVzdCA9IG1ha2Vfb3B0aW9uKCItLXRlc3QiLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ0ZXN0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iUnVu
IHJ1bi13ZWJraXQtdGVzdHMgYmVmb3JlIGNvbW1pdHRpbmcuIikKICAgICB1cGRhdGUgPSBtYWtl
X29wdGlvbigiLS1uby11cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRl
IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5
LiIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71488</attachid>
            <date>2010-10-21 14:06:05 -0700</date>
            <delta_ts>2010-10-21 14:15:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48088-20101021140603.patch</filename>
            <type>text/plain</type>
            <size>15949</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNDQzMjRkYjg0ZDRhYWFiNjFiN2Q1YWY1ZDVjMzA4MmVlY2E5ZGUxLi40MzgxMGYy
MTAzZDY2ZmI5ZTQzYzgyNmQ3ZWIxM2UzMmFlZWM3N2E0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTAtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCAtLXN1Z2dlc3QtcmV2aWV3
ZXJzIG9wdGlvbiB0byB1cGxvYWQgdG8gYXV0by1zdWdnZXN0IHJldmlld2VycyBmb3IgeW91ciBw
YXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
ODgKKworICAgICAgICBUaGlzIGlzIGEgZmlyc3QtcGFzcy4gIFdvcmtzLCBidXQgd2UnbGwgZXZl
bnR1YWxseQorICAgICAgICB0dXJuIHRoaXMgb24gYnkgZGVmYXVsdCwgcmVmaW5lIHRoZSBzdWdn
ZXN0aW9uIGFsZ29yaXRobQorICAgICAgICBhbmQgcG9zc2libHkgbW92ZSBpdCB0byBhIGRpZmZl
cmVudCBwbGFjZSBpbiB0aGUgdXBsb2FkIHN0ZXAgb3JkZXIuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5OgorCiAyMDEwLTEwLTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBUZXN0IHRoYXQgdGhlIFVJIGNsaWVudCBnZXRzIG5vdGlmaWVk
IHdoZW4gV0tWaWV3IHJlY2VpdmVzIGEgV01fQ0xPU0UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weQppbmRleCA3MmNhZDhkYzA4ZGZh
NWYwYjQ5NDI1Mzk3NjJhODc3NzI5OTgxNzJlLi45MDY2M2RjZmJmNjhiMTc1NWRkZTYwYzQ0OGMz
ZGFkN2UxZDJkYmJiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9hcGkucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvYXBpLnB5CkBAIC0xMjAsOCArMTIwLDggQEAgY2xhc3MgQ2hlY2tvdXQo
b2JqZWN0KToKICAgICAgICAgcmV2aXNpb25zID0gc2V0KHN1bShtYXAoc2VsZi5fc2NtLnJldmlz
aW9uc19jaGFuZ2luZ19maWxlLCBwYXRocyksIFtdKSkKICAgICAgICAgcmV0dXJuIHNldChtYXAo
c2VsZi5jb21taXRfaW5mb19mb3JfcmV2aXNpb24sIHJldmlzaW9ucykpCiAKLSAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0KToKLSAgICAgICAgY2hhbmdlZF9maWxl
cyA9IHNlbGYubW9kaWZpZWRfbm9uX2NoYW5nZWxvZ3MoZ2l0X2NvbW1pdCkKKyAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0LCBjaGFuZ2VkX2ZpbGVzPU5vbmUpOgor
ICAgICAgICBjaGFuZ2VkX2ZpbGVzID0gc2VsZi5tb2RpZmllZF9ub25fY2hhbmdlbG9ncyhnaXRf
Y29tbWl0LCBjaGFuZ2VkX2ZpbGVzKQogICAgICAgICBjb21taXRfaW5mb3MgPSBzZWxmLnJlY2Vu
dF9jb21taXRfaW5mb3NfZm9yX2ZpbGVzKGNoYW5nZWRfZmlsZXMpCiAgICAgICAgIHJldmlld2Vy
cyA9IFtjb21taXRfaW5mby5yZXZpZXdlcigpIGZvciBjb21taXRfaW5mbyBpbiBjb21taXRfaW5m
b3MgaWYgY29tbWl0X2luZm8ucmV2aWV3ZXIoKV0KICAgICAgICAgcmV2aWV3ZXJzLmV4dGVuZChb
Y29tbWl0X2luZm8uYXV0aG9yKCkgZm9yIGNvbW1pdF9pbmZvIGluIGNvbW1pdF9pbmZvcyBpZiBj
b21taXRfaW5mby5hdXRob3IoKSBhbmQgY29tbWl0X2luZm8uYXV0aG9yKCkuY2FuX3Jldmlld10p
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNmFmMWY2NGIyZjhmMzcwZjJkYzIz
MzhjN2Q2NDJlYmJiY2UzNTRmYi4uZGUwY2U2YzJhZjAyOGNlMWFmNzRhMjQ4N2E0NmEzZDI1ZmQz
MDBkNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTg2LDUgKzE4Niw2IEBA
IHdoZXJlIEFUVEFDSE1FTlRfSUQgaXMgdGhlIElEIG9mIHRoaXMgYXR0YWNobWVudC4KIAogICAg
IGRlZiB0ZXN0X3JvbGxvdXQoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJQcmVw
YXJpbmcgcm9sbG91dCBmb3IgYnVnIDQyLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblJ1
bm5pbmcgcHJlcGFyZS1DaGFuZ2VMb2dcbk1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi5c
bkJ1aWxkaW5nIFdlYktpdFxuIgotICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMo
Um9sbG91dCgpLCBbODUyLCAiUmVhc29uIl0sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25z
KCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0
ZG91dCA9ICJXYXMgdGhhdCBkaWZmIGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4
ZWN1dGVfb3V0cHV0cyhSb2xsb3V0KCksIFs4NTIsICJSZWFzb24iXSwgb3B0aW9ucz1zZWxmLl9k
ZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggMTA3ZDhkYjZiMjQ2MmZl
MmYwM2JlMGM4NmQ4OTZiYmQ2NjI0NTIyOC4uNDdjOGFhNTE2YzU3NmFkMzk4YmVhNzI3YzM2ZjI3
NmEyZWFiN2I3NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0yMTksNiArMjE5LDcgQEAgY2xhc3MgVXBsb2FkKEFi
c3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuRWRpdENoYW5nZUxv
ZywKICAgICAgICAgc3RlcHMuQ29uZmlybURpZmYsCiAgICAgICAgIHN0ZXBzLk9ic29sZXRlUGF0
Y2hlcywKKyAgICAgICAgc3RlcHMuU3VnZ2VzdFJldmlld2VycywKICAgICAgICAgc3RlcHMuUG9z
dERpZmYsCiAgICAgXQogICAgIGxvbmdfaGVscCA9ICIiInVwbG9hZCB1cGxvYWRzIHRoZSBjdXJy
ZW50IGRpZmYgdG8gYnVncy53ZWJraXQub3JnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKaW5k
ZXggMGQwOTZiNjQxZjVlM2E2MTQxMWJlYTc2ODIxMmQzMGU3YzQ4MWQ2NS4uODk0ZjY1MWMzZGEy
MmY3YTJiODdiN2E2ZmRmZTRhYTYzMmVlN2IwYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5
CkBAIC02Nyw3ICs2Nyw4IEBAIE5vbmUKIC0tIEVuZCBjb21tZW50IC0tCiBNT0NLOiB1c2VyLm9w
ZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICIiIgotICAgICAgICBzZWxmLmFzc2VydF9l
eGVjdXRlX291dHB1dHMoUG9zdCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0
ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJXYXMgdGhh
dCBkaWZmIGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQ
b3N0KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0
ZG91dCwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAogICAgIGRlZiB0ZXN0X2xh
bmRfc2FmZWx5KHNlbGYpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiT2Jzb2xldGluZyAy
IG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MlxuTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIs
IGRlc2NyaXB0aW9uPVBhdGNoIGZvciBsYW5kaW5nLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1h
cmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1UcnVlXG4tLSBCZWdp
biBjb21tZW50IC0tXG5Ob25lXG4tLSBFbmQgY29tbWVudCAtLVxuIgpAQCAtODgsNiArODksNyBA
QCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICAgICAgICAgb3B0
aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9uIgogICAgICAgICBvcHRpb25zLnJl
cXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9ucy5yZXZpZXcgPSBUcnVlCisgICAg
ICAgIG9wdGlvbnMuc3VnZ2VzdF9yZXZpZXdlcnMgPSBGYWxzZQogICAgICAgICBleHBlY3RlZF9z
dGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3Vy
bDogZmlsZTovLy4uLgogT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MgpAQCAtOTcs
NyArOTksOCBAQCBOb25lCiAtLSBFbmQgY29tbWVudCAtLQogTU9DSzogdXNlci5vcGVuX3VybDog
aHR0cDovL2V4YW1wbGUuY29tLzQyCiAiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9v
dXRwdXRzKFVwbG9hZCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1l
eHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJXYXMgdGhhdCBkaWZm
IGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQo
KSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0
LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfbWFya19i
dWdfZml4ZWQoc2VsZik6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCkBAIC0xMDYsNyArMTA5
LDggQEAgTU9DSzogdXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAgICAgICAg
IG9wdGlvbnMuYnVnX2lkID0gNDIKICAgICAgICAgb3B0aW9ucy5jb21tZW50ID0gIk1PQ0sgY29t
bWVudCIKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIkJ1ZzogPGh0dHA6Ly9leGFtcGxlLmNv
bS80Mj4gQnVnIHdpdGggdHdvIHIrJ2QgYW5kIGNxKydkIHBhdGNoZXMsIG9uZSBvZiB3aGljaCBo
YXMgYW4gaW52YWxpZCBjb21taXQtcXVldWUgc2V0dGVyLlxuUmV2aXNpb246IDk4NzZcbk1PQ0s6
IHVzZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS80MlxuQWRkaW5nIGNvbW1lbnQgdG8g
QnVnIDQyLlxuTU9DSyBidWcgY29tbWVudDogYnVnX2lkPTQyLCBjYz1Ob25lXG4tLS0gQmVnaW4g
Y29tbWVudCAtLS1cbk1PQ0sgY29tbWVudFxuXG5Db21taXR0ZWQgcjk4NzY6IDxodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC85ODc2PlxuLS0tIEVuZCBjb21tZW50IC0tLVxuXG4iCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhNYXJrQnVnRml4ZWQoKSwgW10sIGV4
cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIHRvb2w9dG9vbCwgb3B0aW9ucz1vcHRpb25z
KQorICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiSXMgdGhpcyBjb3JyZWN0P1xuIgorICAgICAg
ICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoTWFya0J1Z0ZpeGVkKCksIFtdLCBleHBlY3Rl
ZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJy
LCB0b29sPXRvb2wsIG9wdGlvbnM9b3B0aW9ucykKIAogICAgIGRlZiB0ZXN0X2VkaXRfY2hhbmdl
bG9nKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoRWRpdENoYW5n
ZUxvZ3MoKSwgW10pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rv
b2wucHkKaW5kZXggMDViMzBkZGNkOTViY2QyYTJhZDQxYjhlNDljYWZkNTY3OTU2ZTYyYi4uOTRm
MTEwNjJjMjNmNjNjZmEzYmY4N2IxNWJlMjU0ZTkxY2I2M2QwMyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtMjM2LDExICsyMzYsMTMgQEAg
Y2xhc3MgTW9ja0J1Z3ppbGxhUXVlcmllcyhNb2NrKToKICAgICAgICAgICAgICAgICByZXR1cm4g
cGF0Y2hlc1swXQogICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIHBhdGNoZXMgaW4gdGhlIHJp
ZXR2ZWxkIHF1ZXVlJykKIAorCitfbW9ja19yZXZpZXdlciA9IFJldmlld2VyKCJGb28gQmFyIiwg
ImZvb0BiYXIuY29tIikKKworCiAjIEZJWE1FOiBCdWd6aWxsYSBpcyB0aGUgd3JvbmcgTW9jay1w
b2ludC4gIE9uY2Ugd2UgaGF2ZSBhIEJ1Z3ppbGxhTmV0d29yawogIyAgICAgICAgY2xhc3Mgd2Ug
c2hvdWxkIG1vY2sgdGhhdCBpbnN0ZWFkLgogIyBNb3N0IG9mIHRoaXMgY2xhc3MgaXMganVzdCBj
b3B5L3Bhc3RlIGZyb20gQnVnemlsbGEuCi0KLQogY2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgog
CiAgICAgYnVnX3NlcnZlcl91cmwgPSAiaHR0cDovL2V4YW1wbGUuY29tIgpAQCAtMjU4LDcgKzI2
MCw3IEBAIGNsYXNzIE1vY2tCdWd6aWxsYShNb2NrKToKICAgICBkZWYgX19pbml0X18oc2VsZik6
CiAgICAgICAgIE1vY2suX19pbml0X18oc2VsZikKICAgICAgICAgc2VsZi5xdWVyaWVzID0gTW9j
a0J1Z3ppbGxhUXVlcmllcyhzZWxmKQotICAgICAgICBzZWxmLmNvbW1pdHRlcnMgPSBDb21taXR0
ZXJMaXN0KHJldmlld2Vycz1bUmV2aWV3ZXIoIkZvbyBCYXIiLCAiZm9vQGJhci5jb20iKV0pCisg
ICAgICAgIHNlbGYuY29tbWl0dGVycyA9IENvbW1pdHRlckxpc3QocmV2aWV3ZXJzPVtfbW9ja19y
ZXZpZXdlcl0pCiAgICAgICAgIHNlbGYuX292ZXJyaWRlX3BhdGNoID0gTm9uZQogCiAgICAgZGVm
IGNyZWF0ZV9idWcoc2VsZiwKQEAgLTQ5MSw2ICs0OTMsOCBAQCBjbGFzcyBNb2NrQ2hlY2tvdXQo
b2JqZWN0KToKICAgICBkZWYgYXBwbHlfcmV2ZXJzZV9kaWZmKHNlbGYsIHJldmlzaW9uKToKICAg
ICAgICAgcGFzcwogCisgICAgZGVmIHN1Z2dlc3RlZF9yZXZpZXdlcnMoc2VsZiwgZ2l0X2NvbW1p
dCwgY2hhbmdlZF9maWxlcz1Ob25lKToKKyAgICAgICAgcmV0dXJuIFtfbW9ja19yZXZpZXdlcl0K
IAogY2xhc3MgTW9ja1VzZXIob2JqZWN0KToKIApAQCAtNTA4LDYgKzUxMiw3IEBAIGNsYXNzIE1v
Y2tVc2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBjb25maXJtKHNlbGYsIG1l
c3NhZ2U9Tm9uZSwgZGVmYXVsdD0neScpOgorICAgICAgICBwcmludCBtZXNzYWdlCiAgICAgICAg
IHJldHVybiBkZWZhdWx0ID09ICd5JwogCiAgICAgZGVmIGNhbl9vcGVuX3VybChzZWxmKToKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRf
Xy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eQppbmRleCBkNTljZGM1Mzc3OWYxOGFjOGI2NTk0NjRjMGZhNjI1NmI1NGU5NTk1Li43ZDllNTQ5
OGExZjU5Y2MyOGRjZTRjMTFkZDhkMDM3NDFkY2VkNjJjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC01NCw2ICs1NCw3
IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5wcm9tcHRmb3JidWdvcnRpdGxlIGltcG9ydCBQ
cm9tcHRGb3JCdWdPclRpdGxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMucmVvcGVuYnVnYWZ0
ZXJyb2xsb3V0IGltcG9ydCBSZW9wZW5CdWdBZnRlclJvbGxvdXQKIGZyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5yZXZlcnRyZXZpc2lvbiBpbXBvcnQgUmV2ZXJ0UmV2aXNpb24KIGZyb20gd2Via2l0
cHkudG9vbC5zdGVwcy5ydW50ZXN0cyBpbXBvcnQgUnVuVGVzdHMKK2Zyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5zdWdnZXN0cmV2aWV3ZXJzIGltcG9ydCBTdWdnZXN0UmV2aWV3ZXJzCiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMudXBkYXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdlciBpbXBvcnQgVXBk
YXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdlcgogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLnVwZGF0
ZSBpbXBvcnQgVXBkYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMudmFsaWRhdGVyZXZpZXdl
ciBpbXBvcnQgVmFsaWRhdGVSZXZpZXdlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCA4MzVmZGJhNmQwYzlkNzRmZWE1Yjc4
MmI0Y2M3MDRkMGNmNDVlNmEwLi40ZjE3ZGQzNGQxMmRiOTRiY2Q0YmIwMTQwNTc5OWEzMjYzNzNm
MmZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQpAQCAtNTQsNSArNTQsNiBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAg
cmVxdWVzdF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1yZXF1ZXN0LWNvbW1pdCIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlc3Q9InJlcXVlc3RfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
TWFyayB0aGUgcGF0Y2ggYXMgbmVlZGluZyBhdXRvLWNvbW1pdCBhZnRlciByZXZpZXcuIikKICAg
ICByZXZpZXcgPSBtYWtlX29wdGlvbigiLS1uby1yZXZpZXciLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwgZGVzdD0icmV2aWV3IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3QgbWFyayB0aGUgcGF0
Y2ggZm9yIHJldmlldy4iKQogICAgIHJldmlld2VyID0gbWFrZV9vcHRpb24oIi1yIiwgIi0tcmV2
aWV3ZXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0icmV2aWV3ZXIiLCBo
ZWxwPSJVcGRhdGUgQ2hhbmdlTG9ncyB0byBzYXkgUmV2aWV3ZWQgYnkgUkVWSUVXRVIuIikKKyAg
ICBzdWdnZXN0X3Jldmlld2VycyA9IG1ha2Vfb3B0aW9uKCItLXN1Z2dlc3QtcmV2aWV3ZXJzIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iT2ZmZXIgdG8gQ0MgYXBw
cm9wcmlhdGUgcmV2aWV3ZXJzLiIpCiAgICAgdGVzdCA9IG1ha2Vfb3B0aW9uKCItLXRlc3QiLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJ0ZXN0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iUnVu
IHJ1bi13ZWJraXQtdGVzdHMgYmVmb3JlIGNvbW1pdHRpbmcuIikKICAgICB1cGRhdGUgPSBtYWtl
X29wdGlvbigiLS1uby11cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRl
IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5
LiIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3VnZ2VzdHJldmlld2Vycy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9zdWdnZXN0cmV2aWV3ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YTBjMzBhODAxZTZhMzI0YWVm
M2ExMWY5ODY4NjA3ZWE2MmI0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vycy5weQpAQCAtMCwwICsxLDUx
IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0
c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9u
cyBpbXBvcnQgT3B0aW9ucworCisKK2NsYXNzIFN1Z2dlc3RSZXZpZXdlcnMoQWJzdHJhY3RTdGVw
KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMpOgorICAgICAgICByZXR1
cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAgIE9wdGlvbnMuZ2l0X2Nv
bW1pdCwKKyAgICAgICAgICAgIE9wdGlvbnMuc3VnZ2VzdF9yZXZpZXdlcnMsCisgICAgICAgIF0K
KworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9u
cy5zdWdnZXN0X3Jldmlld2VyczoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHJldmll
d2VycyA9IHNlbGYuX3Rvb2wuY2hlY2tvdXQoKS5zdWdnZXN0ZWRfcmV2aWV3ZXJzKHNlbGYuX29w
dGlvbnMuZ2l0X2NvbW1pdCkKKyAgICAgICAgcHJpbnQgIlRoZSBmb2xsb3dpbmcgcmV2aWV3ZXJz
IGhhdmUgcmVjZW50bHkgbW9kaWZpZWQgZmlsZXMgaW4geW91ciBwYXRjaDoiCisgICAgICAgIHBy
aW50ICJcbiIuam9pbihbcmV2aWV3ZXIuZnVsbF9uYW1lIGZvciByZXZpZXdlciBpbiByZXZpZXdl
cnNdKQorICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51c2VyLmNvbmZpcm0oIldvdWxkIHlvdSBs
aWtlIHRvIENDIHRoZW0/Iik6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcmV2aWV3ZXJf
ZW1haWxzID0gW3Jldmlld2VyLmJ1Z3ppbGxhX2VtYWlsKCkgZm9yIHJldmlld2VyIGluIHJldmll
d2Vyc10KKyAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9jY190b19idWcoc3RhdGVbJ2J1Z19p
ZCddLCByZXZpZXdlcl9lbWFpbHMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdWdnZXN0cmV2aWV3ZXJzX3VuaXR0ZXN0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBjODY1MzViNjgzMzgzNzZkNzllYjEzMmVmNzEwMmRjMGEzMzc0YWMK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5v
dXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbAorZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLnN1Z2dlc3RyZXZpZXdlcnMgaW1wb3J0IFN1Z2dlc3RSZXZpZXdlcnMKKworCitjbGFzcyBT
dWdnZXN0UmV2aWV3ZXJzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZGlz
YWJsZWQoc2VsZik6CisgICAgICAgIHN0ZXAgPSBTdWdnZXN0UmV2aWV3ZXJzKE1vY2tUb29sKCks
IE1vY2tPcHRpb25zKHN1Z2dlc3RfcmV2aWV3ZXJzPUZhbHNlKSkKKyAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dKQorCisgICAgZGVmIHRl
c3RfYmFzaWMoc2VsZik6CisgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAg
ICAgc3RlcCA9IFN1Z2dlc3RSZXZpZXdlcnMoTW9ja1Rvb2woKSwgTW9ja09wdGlvbnMoc3VnZ2Vz
dF9yZXZpZXdlcnM9VHJ1ZSwgZ2l0X2NvbW1pdD1Ob25lKSkKKyAgICAgICAgZXhwZWN0ZWRfc3Rk
b3V0ID0gIlRoZSBmb2xsb3dpbmcgcmV2aWV3ZXJzIGhhdmUgcmVjZW50bHkgbW9kaWZpZWQgZmls
ZXMgaW4geW91ciBwYXRjaDpcbkZvbyBCYXJcbldvdWxkIHlvdSBsaWtlIHRvIENDIHRoZW0/XG4i
CisgICAgICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7ImJ1Z19p
ZCI6ICIxMjMifV0sIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71490</attachid>
            <date>2010-10-21 14:15:05 -0700</date>
            <delta_ts>2010-10-21 16:00:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48088-20101021141503.patch</filename>
            <type>text/plain</type>
            <size>16543</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNDQzMjRkYjg0ZDRhYWFiNjFiN2Q1YWY1ZDVjMzA4MmVlY2E5ZGUxLi40MzgxMGYy
MTAzZDY2ZmI5ZTQzYzgyNmQ3ZWIxM2UzMmFlZWM3N2E0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMTAtMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCAtLXN1Z2dlc3QtcmV2aWV3
ZXJzIG9wdGlvbiB0byB1cGxvYWQgdG8gYXV0by1zdWdnZXN0IHJldmlld2VycyBmb3IgeW91ciBw
YXRjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
ODgKKworICAgICAgICBUaGlzIGlzIGEgZmlyc3QtcGFzcy4gIFdvcmtzLCBidXQgd2UnbGwgZXZl
bnR1YWxseQorICAgICAgICB0dXJuIHRoaXMgb24gYnkgZGVmYXVsdCwgcmVmaW5lIHRoZSBzdWdn
ZXN0aW9uIGFsZ29yaXRobQorICAgICAgICBhbmQgcG9zc2libHkgbW92ZSBpdCB0byBhIGRpZmZl
cmVudCBwbGFjZSBpbiB0aGUgdXBsb2FkIHN0ZXAgb3JkZXIuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5OgorCiAyMDEwLTEwLTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBUZXN0IHRoYXQgdGhlIFVJIGNsaWVudCBnZXRzIG5vdGlmaWVk
IHdoZW4gV0tWaWV3IHJlY2VpdmVzIGEgV01fQ0xPU0UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2FwaS5weQppbmRleCA3MmNhZDhkYzA4ZGZh
NWYwYjQ5NDI1Mzk3NjJhODc3NzI5OTgxNzJlLi45MDY2M2RjZmJmNjhiMTc1NWRkZTYwYzQ0OGMz
ZGFkN2UxZDJkYmJiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9hcGkucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvYXBpLnB5CkBAIC0xMjAsOCArMTIwLDggQEAgY2xhc3MgQ2hlY2tvdXQo
b2JqZWN0KToKICAgICAgICAgcmV2aXNpb25zID0gc2V0KHN1bShtYXAoc2VsZi5fc2NtLnJldmlz
aW9uc19jaGFuZ2luZ19maWxlLCBwYXRocyksIFtdKSkKICAgICAgICAgcmV0dXJuIHNldChtYXAo
c2VsZi5jb21taXRfaW5mb19mb3JfcmV2aXNpb24sIHJldmlzaW9ucykpCiAKLSAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0KToKLSAgICAgICAgY2hhbmdlZF9maWxl
cyA9IHNlbGYubW9kaWZpZWRfbm9uX2NoYW5nZWxvZ3MoZ2l0X2NvbW1pdCkKKyAgICBkZWYgc3Vn
Z2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0LCBjaGFuZ2VkX2ZpbGVzPU5vbmUpOgor
ICAgICAgICBjaGFuZ2VkX2ZpbGVzID0gc2VsZi5tb2RpZmllZF9ub25fY2hhbmdlbG9ncyhnaXRf
Y29tbWl0LCBjaGFuZ2VkX2ZpbGVzKQogICAgICAgICBjb21taXRfaW5mb3MgPSBzZWxmLnJlY2Vu
dF9jb21taXRfaW5mb3NfZm9yX2ZpbGVzKGNoYW5nZWRfZmlsZXMpCiAgICAgICAgIHJldmlld2Vy
cyA9IFtjb21taXRfaW5mby5yZXZpZXdlcigpIGZvciBjb21taXRfaW5mbyBpbiBjb21taXRfaW5m
b3MgaWYgY29tbWl0X2luZm8ucmV2aWV3ZXIoKV0KICAgICAgICAgcmV2aWV3ZXJzLmV4dGVuZChb
Y29tbWl0X2luZm8uYXV0aG9yKCkgZm9yIGNvbW1pdF9pbmZvIGluIGNvbW1pdF9pbmZvcyBpZiBj
b21taXRfaW5mby5hdXRob3IoKSBhbmQgY29tbWl0X2luZm8uYXV0aG9yKCkuY2FuX3Jldmlld10p
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNmFmMWY2NGIyZjhmMzcwZjJkYzIz
MzhjN2Q2NDJlYmJiY2UzNTRmYi4uZGUwY2U2YzJhZjAyOGNlMWFmNzRhMjQ4N2E0NmEzZDI1ZmQz
MDBkNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTg2LDUgKzE4Niw2IEBA
IHdoZXJlIEFUVEFDSE1FTlRfSUQgaXMgdGhlIElEIG9mIHRoaXMgYXR0YWNobWVudC4KIAogICAg
IGRlZiB0ZXN0X3JvbGxvdXQoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJQcmVw
YXJpbmcgcm9sbG91dCBmb3IgYnVnIDQyLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblJ1
bm5pbmcgcHJlcGFyZS1DaGFuZ2VMb2dcbk1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi5c
bkJ1aWxkaW5nIFdlYktpdFxuIgotICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMo
Um9sbG91dCgpLCBbODUyLCAiUmVhc29uIl0sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25z
KCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIGV4cGVjdGVkX3N0
ZG91dCA9ICJXYXMgdGhhdCBkaWZmIGNvcnJlY3Q/XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4
ZWN1dGVfb3V0cHV0cyhSb2xsb3V0KCksIFs4NTIsICJSZWFzb24iXSwgb3B0aW9ucz1zZWxmLl9k
ZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggMTA3ZDhkYjZiMjQ2MmZl
MmYwM2JlMGM4NmQ4OTZiYmQ2NjI0NTIyOC4uNWEyMTcyZTk3MTczOWU1YTZhYzcyNWEzN2FhYzc1
ZDEwYjVmNDNhYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0xNzEsNiArMTcxLDcgQEAgY2xhc3MgUG9zdChBYnN0
cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgICAgIHN0ZXBzLkNoZWNrU3R5bGUsCiAg
ICAgICAgIHN0ZXBzLkNvbmZpcm1EaWZmLAogICAgICAgICBzdGVwcy5PYnNvbGV0ZVBhdGNoZXMs
CisgICAgICAgIHN0ZXBzLlN1Z2dlc3RSZXZpZXdlcnMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZm
LAogICAgIF0KIApAQCAtMjE5LDYgKzIyMCw3IEBAIGNsYXNzIFVwbG9hZChBYnN0cmFjdFBhdGNo
VXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgICAgIHN0ZXBzLkVkaXRDaGFuZ2VMb2csCiAgICAgICAg
IHN0ZXBzLkNvbmZpcm1EaWZmLAogICAgICAgICBzdGVwcy5PYnNvbGV0ZVBhdGNoZXMsCisgICAg
ICAgIHN0ZXBzLlN1Z2dlc3RSZXZpZXdlcnMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZmLAogICAg
IF0KICAgICBsb25nX2hlbHAgPSAiIiJ1cGxvYWQgdXBsb2FkcyB0aGUgY3VycmVudCBkaWZmIHRv
IGJ1Z3Mud2Via2l0Lm9yZy4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5CmluZGV4IDBkMDk2YjY0
MWY1ZTNhNjE0MTFiZWE3NjgyMTJkMzBlN2M0ODFkNjUuLmJkMWZiZDYxMTU4MjEzYjExOWZmODhj
MTQ5ODViZThhOWExZTdjMzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQpAQCAtNTgsNiAr
NTgsNyBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rlc3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAg
b3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9uIgogICAgICAgICBvcHRpb25z
LnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9ucy5yZXZpZXcgPSBUcnVlCisg
ICAgICAgIG9wdGlvbnMuc3VnZ2VzdF9yZXZpZXdlcnMgPSBGYWxzZQogICAgICAgICBleHBlY3Rl
ZF9zdGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVu
X3VybDogZmlsZTovLy4uLgogT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MgpAQCAt
NjcsNyArNjgsOCBAQCBOb25lCiAtLSBFbmQgY29tbWVudCAtLQogTU9DSzogdXNlci5vcGVuX3Vy
bDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0
ZV9vdXRwdXRzKFBvc3QoKSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyKQorICAgICAgICBleHBlY3RlZF9zdGRvdXQgPSAiV2FzIHRoYXQgZGlm
ZiBjb3JyZWN0P1xuIgorICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoUG9zdCgp
LCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQs
IGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAKICAgICBkZWYgdGVzdF9sYW5kX3Nh
ZmVseShzZWxmKToKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk9ic29sZXRpbmcgMiBvbGQg
cGF0Y2hlcyBvbiBidWcgNDJcbk1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPTQyLCBkZXNj
cmlwdGlvbj1QYXRjaCBmb3IgbGFuZGluZywgbWFya19mb3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zv
cl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xhbmRpbmc9VHJ1ZVxuLS0gQmVnaW4gY29t
bWVudCAtLVxuTm9uZVxuLS0gRW5kIGNvbW1lbnQgLS1cbiIKQEAgLTg4LDYgKzkwLDcgQEAgTU9D
SzogdXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAgICAgICAgIG9wdGlvbnMu
ZGVzY3JpcHRpb24gPSAiTU9DSyBkZXNjcmlwdGlvbiIKICAgICAgICAgb3B0aW9ucy5yZXF1ZXN0
X2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMucmV2aWV3ID0gVHJ1ZQorICAgICAgICBv
cHRpb25zLnN1Z2dlc3RfcmV2aWV3ZXJzID0gRmFsc2UKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJy
ID0gIiIiUnVubmluZyBjaGVjay13ZWJraXQtc3R5bGUKIE1PQ0s6IHVzZXIub3Blbl91cmw6IGZp
bGU6Ly8uLi4KIE9ic29sZXRpbmcgMiBvbGQgcGF0Y2hlcyBvbiBidWcgNDIKQEAgLTk3LDcgKzEw
MCw4IEBAIE5vbmUKIC0tIEVuZCBjb21tZW50IC0tCiBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRw
Oi8vZXhhbXBsZS5jb20vNDIKICIiIgotICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1
dHMoVXBsb2FkKCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3RkZXJyPWV4cGVj
dGVkX3N0ZGVycikKKyAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIldhcyB0aGF0IGRpZmYgY29y
cmVjdD9cbiIKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKFVwbG9hZCgpLCBb
NDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQsIGV4
cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAKICAgICBkZWYgdGVzdF9tYXJrX2J1Z19m
aXhlZChzZWxmKToKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKQEAgLTEwNiw3ICsxMTAsOCBA
QCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICAgICAgICAgb3B0
aW9ucy5idWdfaWQgPSA0MgogICAgICAgICBvcHRpb25zLmNvbW1lbnQgPSAiTU9DSyBjb21tZW50
IgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiQnVnOiA8aHR0cDovL2V4YW1wbGUuY29tLzQy
PiBCdWcgd2l0aCB0d28gcisnZCBhbmQgY3ErJ2QgcGF0Y2hlcywgb25lIG9mIHdoaWNoIGhhcyBh
biBpbnZhbGlkIGNvbW1pdC1xdWV1ZSBzZXR0ZXIuXG5SZXZpc2lvbjogOTg3NlxuTU9DSzogdXNl
ci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyXG5BZGRpbmcgY29tbWVudCB0byBCdWcg
NDIuXG5NT0NLIGJ1ZyBjb21tZW50OiBidWdfaWQ9NDIsIGNjPU5vbmVcbi0tLSBCZWdpbiBjb21t
ZW50IC0tLVxuTU9DSyBjb21tZW50XG5cbkNvbW1pdHRlZCByOTg3NjogPGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0Lzk4NzY+XG4tLS0gRW5kIGNvbW1lbnQgLS0tXG5cbiIKLSAgICAg
ICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKE1hcmtCdWdGaXhlZCgpLCBbXSwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgdG9vbD10b29sLCBvcHRpb25zPW9wdGlvbnMpCisg
ICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJJcyB0aGlzIGNvcnJlY3Q/XG4iCisgICAgICAgIHNl
bGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhNYXJrQnVnRml4ZWQoKSwgW10sIGV4cGVjdGVkX3N0
ZG91dD1leHBlY3RlZF9zdGRvdXQsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIHRv
b2w9dG9vbCwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHRlc3RfZWRpdF9jaGFuZ2Vsb2co
c2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhFZGl0Q2hhbmdlTG9n
cygpLCBbXSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9t
b2NrdG9vbC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5w
eQppbmRleCAwNWIzMGRkY2Q5NWJjZDJhMmFkNDFiOGU0OWNhZmQ1Njc5NTZlNjJiLi45NGYxMTA2
MmMyM2Y2M2NmYTNiZjg3YjE1YmUyNTRlOTFjYjYzZDAzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CkBAIC0yMzYsMTEgKzIzNiwxMyBAQCBjbGFz
cyBNb2NrQnVnemlsbGFRdWVyaWVzKE1vY2spOgogICAgICAgICAgICAgICAgIHJldHVybiBwYXRj
aGVzWzBdCiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gcGF0Y2hlcyBpbiB0aGUgcmlldHZl
bGQgcXVldWUnKQogCisKK19tb2NrX3Jldmlld2VyID0gUmV2aWV3ZXIoIkZvbyBCYXIiLCAiZm9v
QGJhci5jb20iKQorCisKICMgRklYTUU6IEJ1Z3ppbGxhIGlzIHRoZSB3cm9uZyBNb2NrLXBvaW50
LiAgT25jZSB3ZSBoYXZlIGEgQnVnemlsbGFOZXR3b3JrCiAjICAgICAgICBjbGFzcyB3ZSBzaG91
bGQgbW9jayB0aGF0IGluc3RlYWQuCiAjIE1vc3Qgb2YgdGhpcyBjbGFzcyBpcyBqdXN0IGNvcHkv
cGFzdGUgZnJvbSBCdWd6aWxsYS4KLQotCiBjbGFzcyBNb2NrQnVnemlsbGEoTW9jayk6CiAKICAg
ICBidWdfc2VydmVyX3VybCA9ICJodHRwOi8vZXhhbXBsZS5jb20iCkBAIC0yNTgsNyArMjYwLDcg
QEAgY2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAg
ICAgICAgTW9jay5fX2luaXRfXyhzZWxmKQogICAgICAgICBzZWxmLnF1ZXJpZXMgPSBNb2NrQnVn
emlsbGFRdWVyaWVzKHNlbGYpCi0gICAgICAgIHNlbGYuY29tbWl0dGVycyA9IENvbW1pdHRlckxp
c3QocmV2aWV3ZXJzPVtSZXZpZXdlcigiRm9vIEJhciIsICJmb29AYmFyLmNvbSIpXSkKKyAgICAg
ICAgc2VsZi5jb21taXR0ZXJzID0gQ29tbWl0dGVyTGlzdChyZXZpZXdlcnM9W19tb2NrX3Jldmll
d2VyXSkKICAgICAgICAgc2VsZi5fb3ZlcnJpZGVfcGF0Y2ggPSBOb25lCiAKICAgICBkZWYgY3Jl
YXRlX2J1ZyhzZWxmLApAQCAtNDkxLDYgKzQ5Myw4IEBAIGNsYXNzIE1vY2tDaGVja291dChvYmpl
Y3QpOgogICAgIGRlZiBhcHBseV9yZXZlcnNlX2RpZmYoc2VsZiwgcmV2aXNpb24pOgogICAgICAg
ICBwYXNzCiAKKyAgICBkZWYgc3VnZ2VzdGVkX3Jldmlld2VycyhzZWxmLCBnaXRfY29tbWl0LCBj
aGFuZ2VkX2ZpbGVzPU5vbmUpOgorICAgICAgICByZXR1cm4gW19tb2NrX3Jldmlld2VyXQogCiBj
bGFzcyBNb2NrVXNlcihvYmplY3QpOgogCkBAIC01MDgsNiArNTEyLDcgQEAgY2xhc3MgTW9ja1Vz
ZXIob2JqZWN0KToKICAgICAgICAgcGFzcwogCiAgICAgZGVmIGNvbmZpcm0oc2VsZiwgbWVzc2Fn
ZT1Ob25lLCBkZWZhdWx0PSd5Jyk6CisgICAgICAgIHByaW50IG1lc3NhZ2UKICAgICAgICAgcmV0
dXJuIGRlZmF1bHQgPT0gJ3knCiAKICAgICBkZWYgY2FuX29wZW5fdXJsKHNlbGYpOgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5Cmlu
ZGV4IGQ1OWNkYzUzNzc5ZjE4YWM4YjY1OTQ2NGMwZmE2MjU2YjU0ZTk1OTUuLjdkOWU1NDk4YTFm
NTljYzI4ZGNlNGMxMWRkOGQwMzc0MWRjZWQ2MmMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTU0LDYgKzU0LDcgQEAg
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLnByb21wdGZvcmJ1Z29ydGl0bGUgaW1wb3J0IFByb21w
dEZvckJ1Z09yVGl0bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5yZW9wZW5idWdhZnRlcnJv
bGxvdXQgaW1wb3J0IFJlb3BlbkJ1Z0FmdGVyUm9sbG91dAogZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLnJldmVydHJldmlzaW9uIGltcG9ydCBSZXZlcnRSZXZpc2lvbgogZnJvbSB3ZWJraXRweS50
b29sLnN0ZXBzLnJ1bnRlc3RzIGltcG9ydCBSdW5UZXN0cworZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLnN1Z2dlc3RyZXZpZXdlcnMgaW1wb3J0IFN1Z2dlc3RSZXZpZXdlcnMKIGZyb20gd2Via2l0
cHkudG9vbC5zdGVwcy51cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld2VyIGltcG9ydCBVcGRhdGVD
aGFuZ2VMb2dzV2l0aFJldmlld2VyCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMudXBkYXRlIGlt
cG9ydCBVcGRhdGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy52YWxpZGF0ZXJldmlld2VyIGlt
cG9ydCBWYWxpZGF0ZVJldmlld2VyCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDgzNWZkYmE2ZDBjOWQ3NGZlYTViNzgyYjRj
YzcwNGQwY2Y0NWU2YTAuLjRmMTdkZDM0ZDEyZGI5NGJjZDRiYjAxNDA1Nzk5YTMyNjM3M2YyZmUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5CkBAIC01NCw1ICs1NCw2IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICByZXF1
ZXN0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItLXJlcXVlc3QtY29tbWl0IiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgZGVzdD0icmVxdWVzdF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYXJr
IHRoZSBwYXRjaCBhcyBuZWVkaW5nIGF1dG8tY29tbWl0IGFmdGVyIHJldmlldy4iKQogICAgIHJl
dmlldyA9IG1ha2Vfb3B0aW9uKCItLW5vLXJldmlldyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBk
ZXN0PSJyZXZpZXciLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBtYXJrIHRoZSBwYXRjaCBm
b3IgcmV2aWV3LiIpCiAgICAgcmV2aWV3ZXIgPSBtYWtlX29wdGlvbigiLXIiLCAiLS1yZXZpZXdl
ciIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJyZXZpZXdlciIsIGhlbHA9
IlVwZGF0ZSBDaGFuZ2VMb2dzIHRvIHNheSBSZXZpZXdlZCBieSBSRVZJRVdFUi4iKQorICAgIHN1
Z2dlc3RfcmV2aWV3ZXJzID0gbWFrZV9vcHRpb24oIi0tc3VnZ2VzdC1yZXZpZXdlcnMiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJPZmZlciB0byBDQyBhcHByb3By
aWF0ZSByZXZpZXdlcnMuIikKICAgICB0ZXN0ID0gbWFrZV9vcHRpb24oIi0tdGVzdCIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InRlc3QiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJSdW4gcnVu
LXdlYmtpdC10ZXN0cyBiZWZvcmUgY29tbWl0dGluZy4iKQogICAgIHVwZGF0ZSA9IG1ha2Vfb3B0
aW9uKCItLW5vLXVwZGF0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJ1cGRhdGUiLCBk
ZWZhdWx0PVRydWUsIGhlbHA9IkRvbid0IHVwZGF0ZSB0aGUgd29ya2luZyBkaXJlY3RvcnkuIikK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdWdn
ZXN0cmV2aWV3ZXJzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3N1Z2dlc3RyZXZpZXdlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZiZWYzNWFjMmQwZjliMTc2MTQxNjU4
MDgyNjQ0ODM1YjhhZTZkOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9zdWdnZXN0cmV2aWV3ZXJzLnB5CkBAIC0wLDAgKzEsNTEgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVw
IGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGlt
cG9ydCBPcHRpb25zCisKKworY2xhc3MgU3VnZ2VzdFJldmlld2VycyhBYnN0cmFjdFN0ZXApOgor
ICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBB
YnN0cmFjdFN0ZXAub3B0aW9ucygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5naXRfY29tbWl0
LAorICAgICAgICAgICAgT3B0aW9ucy5zdWdnZXN0X3Jldmlld2VycywKKyAgICAgICAgXQorCisg
ICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLnN1
Z2dlc3RfcmV2aWV3ZXJzOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgcmV2aWV3ZXJz
ID0gc2VsZi5fdG9vbC5jaGVja291dCgpLnN1Z2dlc3RlZF9yZXZpZXdlcnMoc2VsZi5fb3B0aW9u
cy5naXRfY29tbWl0LCBzZWxmLl9jaGFuZ2VkX2ZpbGVzKHN0YXRlKSkKKyAgICAgICAgcHJpbnQg
IlRoZSBmb2xsb3dpbmcgcmV2aWV3ZXJzIGhhdmUgcmVjZW50bHkgbW9kaWZpZWQgZmlsZXMgaW4g
eW91ciBwYXRjaDoiCisgICAgICAgIHByaW50ICJcbiIuam9pbihbcmV2aWV3ZXIuZnVsbF9uYW1l
IGZvciByZXZpZXdlciBpbiByZXZpZXdlcnNdKQorICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC51
c2VyLmNvbmZpcm0oIldvdWxkIHlvdSBsaWtlIHRvIENDIHRoZW0/Iik6CisgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgcmV2aWV3ZXJfZW1haWxzID0gW3Jldmlld2VyLmJ1Z3ppbGxhX2VtYWls
KCkgZm9yIHJldmlld2VyIGluIHJldmlld2Vyc10KKyAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFk
ZF9jY190b19idWcoc3RhdGVbJ2J1Z19pZCddLCByZXZpZXdlcl9lbWFpbHMpCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vy
c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9z
dWdnZXN0cmV2aWV3ZXJzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjODY1MzViNjgzMzgzNzZk
NzllYjEzMmVmNzEwMmRjMGEzMzc0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3VnZ2VzdHJldmlld2Vyc191bml0dGVzdC5weQpA
QCAtMCwwICsxLDQ1IEBACisjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJl
Citmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9v
bAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLnN1Z2dlc3RyZXZpZXdlcnMgaW1wb3J0IFN1Z2dl
c3RSZXZpZXdlcnMKKworCitjbGFzcyBTdWdnZXN0UmV2aWV3ZXJzVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHRlc3RfZGlzYWJsZWQoc2VsZik6CisgICAgICAgIHN0ZXAgPSBTdWdn
ZXN0UmV2aWV3ZXJzKE1vY2tUb29sKCksIE1vY2tPcHRpb25zKHN1Z2dlc3RfcmV2aWV3ZXJzPUZh
bHNlKSkKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAu
cnVuLCBbe31dKQorCisgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CisgICAgICAgIGNhcHR1cmUg
PSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgc3RlcCA9IFN1Z2dlc3RSZXZpZXdlcnMoTW9ja1Rv
b2woKSwgTW9ja09wdGlvbnMoc3VnZ2VzdF9yZXZpZXdlcnM9VHJ1ZSwgZ2l0X2NvbW1pdD1Ob25l
KSkKKyAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIlRoZSBmb2xsb3dpbmcgcmV2aWV3ZXJzIGhh
dmUgcmVjZW50bHkgbW9kaWZpZWQgZmlsZXMgaW4geW91ciBwYXRjaDpcbkZvbyBCYXJcbldvdWxk
IHlvdSBsaWtlIHRvIENDIHRoZW0/XG4iCisgICAgICAgIGNhcHR1cmUuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7ImJ1Z19pZCI6ICIxMjMifV0sIGV4cGVjdGVkX3N0ZG91dD1leHBl
Y3RlZF9zdGRvdXQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>