<?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>44522</bug_id>
          
          <creation_ts>2010-08-24 06:44:02 -0700</creation_ts>
          <short_desc>IndexedDB needs to manually delete all objectStore data and indexes</short_desc>
          <delta_ts>2010-08-24 09:25:03 -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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>bulach</cc>
    
    <cc>eric</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268528</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-24 06:44:02 -0700</bug_when>
    <thetext>IndexedDB needs to manually delete all objectStore data and indexes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268538</commentid>
    <comment_count>1</comment_count>
      <attachid>65270</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-24 06:59:54 -0700</bug_when>
    <thetext>Created attachment 65270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268543</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-08-24 07:25:02 -0700</bug_when>
    <thetext>&gt; doDelete(sqliteDatabase(), &quot;DELETE FROM ObjectStores WHERE id = ?&quot;, objectStore-&gt;id());
&gt;   doDelete(sqliteDatabase(), &quot;DELETE FROM ObjectStoreData WHERE objectStoreId = ?&quot;, objectStore-&gt;id());
&gt; doDelete(sqliteDatabase(), &quot;DELETE FROM Indexes WHERE objectStoreId = ?&quot;, objectStore-&gt;id());

I think you should start a SQL transaction to run these in, as we want them to succeed or fail together. Going forward, these will execute in the setVersion() transaction but, for now, I think we should have a these in their own transaction.

LGTM otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268559</commentid>
    <comment_count>3</comment_count>
      <attachid>65274</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-24 08:18:20 -0700</bug_when>
    <thetext>Created attachment 65274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268563</commentid>
    <comment_count>4</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-08-24 08:25:28 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268566</commentid>
    <comment_count>5</comment_count>
      <attachid>65274</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-24 08:30:21 -0700</bug_when>
    <thetext>Comment on attachment 65274
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268570</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-24 08:44:27 -0700</bug_when>
    <thetext>Committed r65902: &lt;http://trac.webkit.org/changeset/65902&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268594</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-24 09:25:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65902 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65270</attachid>
            <date>2010-08-24 06:59:54 -0700</date>
            <delta_ts>2010-08-24 08:18:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44522-20100824145952.patch</filename>
            <type>text/plain</type>
            <size>18792</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTE1YzkzOTYyMzUxNDE2NzcyYjEyZWZkNTE4Y2E0MTBjYmJhNDcxLi5hZTI4Y2I3
YTJjNGE4OTcwMGM5NmFkMGY1NTRhOTAyZjk5N2M5MjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5kZXhlZERCIG5lZWRz
IHRvIG1hbnVhbGx5IGRlbGV0ZSBhbGwgb2JqZWN0U3RvcmUgZGF0YSBhbmQgaW5kZXhlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MjIKKworICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtcmVtb3Zlb2JqZWN0c3RvcmUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAgKHVuZXhwZWN0ZWRTdWNjZXNzQ2Fs
bGJhY2spOgorCiAyMDEwLTA4LTE5ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVt
b3Zlb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhM2Q5Mzg2YzViMWI2NDNh
MGQ4MTY5ZThiZGY2ZTY4MjU1ZmYzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNjYgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUucmVt
b3ZlT2JqZWN0U3RvcmUoKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9y
dCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVl
CitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6
CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2RiID0gZXZlbnQucmVzdWx0
CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKK1BBU1MgJ29uc3VjY2Vz
cycgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQ
QVNTICdhYm9ydCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3Vs
dCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZl
bnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
c291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRy
dWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJy
b3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
IGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2V2ZW50LnJl
c3VsdC5hZGQoJ3ZhbHVlJywgJ2tleScpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJl
c3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZl
bnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitldmVudC5zb3VyY2UuZ2V0KCdrZXknKQor
UEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlT
dGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4K
KworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNl
ICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKKworUEFTUyBldmVudC5yZXN1bHQgaXMgInZhbHVlIgorZXZlbnQuc291cmNlLmNyZWF0ZUlu
ZGV4KCdpbmRleE5hbWUnLCAnJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBz
aG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1
bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0
cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vzcycg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQuc291cmNlLmluZGV4TmFtZXMu
Y29udGFpbnMoJ2luZGV4TmFtZScpIGlzIHRydWUKK2RiLnJlbW92ZU9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJv
cicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNo
b3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZl
bnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQu
dGFyZ2V0LkRPTkUKKworZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgor
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9O
RQorCitldmVudC5yZXN1bHQuZ2V0KCdrZXknKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBp
biByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0Fu
IGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworRXJyb3IgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworUEFTUyBldmVudC5jb2RlIGlzIDIKK1BB
U1MgZXZlbnQuc291cmNlLmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zl
b2JqZWN0c3RvcmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg0MmY1YmZiZjhlZTExN2Yw
ZDZmM2MwYzBjYTg0ZWM0N2FlNDhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKQEAgLTAs
MCArMSwxMTUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElE
Qk9iamVjdFN0b3JlLnJlbW92ZU9iamVjdFN0b3JlKCkuIik7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7CisgICAgcmVzdWx0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY3JlYXRl
T2JqZWN0U3RvcmUoKQoreworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAg
IHJlc3VsdC5vbnN1Y2Nlc3MgPSBhZGRWYWx1ZTsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBhZGRWYWx1ZSgpCit7CisgICAgdmVy
aWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50
LnJlc3VsdC5hZGQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7
CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGdldFZhbHVlOworICAgIHJlc3VsdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGdldFZhbHVlKCkKK3sKKyAg
ICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworCisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygi
ZXZlbnQuc291cmNlLmdldCgna2V5JykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAg
ICByZXN1bHQub25zdWNjZXNzID0gYWRkSW5kZXg7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gYWRkSW5kZXgoKQoreworICAgIHZl
cmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC5yZXN1bHQiLCAidmFsdWUiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnNv
dXJjZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJycpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJl
c3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHJlbW92ZU9iamVjdFN0b3JlOworICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHJl
bW92ZU9iamVjdFN0b3JlKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAg
IHNob3VsZEJlVHJ1ZSgiZXZlbnQuc291cmNlLmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFt
ZScpIik7CisKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5yZW1vdmVPYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25z
dWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmVBZ2FpbjsKKyAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZUFn
YWluKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworCisgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7Cisg
ICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGdldFZhbHVl
QWdhaW47CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gZ2V0VmFsdWVBZ2FpbigpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2
ZW50KTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnJlc3VsdC5nZXQoJ2tleScp
Iik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHVu
ZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB2ZXJpZnlFcnJv
cjsKK30KKworZnVuY3Rpb24gdmVyaWZ5RXJyb3IoKQoreworICAgIHZlcmlmeUVycm9yRXZlbnQo
ZXZlbnQpOworICAgIC8vIEZJWE1FOiBTaG91bGQganVzdCBiZSBJREJEYXRhYmFzZUV4Y2VwdGlv
bi5OT1RfRk9VTkRfRVJSIGJ1dCB0aGF0IGRvZXNuJ3Qgd29yayB5ZXQuCisgICAgc2hvdWxkQmUo
ImV2ZW50LmNvZGUiLCAiMiIpOworICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LnNvdXJjZS5pbmRl
eE5hbWVzLmNvbnRhaW5zKCdpbmRleE5hbWUnKSIpOworCisgICAgZG9uZSgpOworfQorCit0ZXN0
KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3NoYXJlZC5qcwppbmRleCA5ZjVlMTFmMTkzYTIxMDg0YjNkNGZhMjQxMTJhM2MyNTQyYWE2N2Nm
Li4xMTJiZjE4MGY5ZGQ3OTJhYWRjNzM0MTM2Y2Y1OWZhYTc5NWU2YjQ5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTUxLDYg
KzUxLDE0IEBAIGZ1bmN0aW9uIHZlcmlmeVJlc3VsdChyZXN1bHQpCiAgICAgZGVidWcoIiIpOwog
fQogCitmdW5jdGlvbiB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrKCkKK3sKKyAgICB0ZXN0RmFp
bGVkKCJTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuIik7CisgICAgZGVidWco
IiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgZG9uZSgpOworfQorCiBm
dW5jdGlvbiB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaygpCiB7CiAgICAgdGVzdEZhaWxlZCgiRXJy
b3IgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseTogKCIgKyBldmVudC5jb2RlICsgIikgIiAr
IGV2ZW50Lm1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiNTI2NDA4M2UzNjM4MmM2YWJkYjRmMjk0M2EyMDE3NzkyMzQzYzZk
Li43NTE0YTJhMDg1NmEwNzcxOTMwZGU5ODY0NTk2ZDRhODllNWE1ZjE1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDEwLTA4LTI0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQiBuZWVk
cyB0byBtYW51YWxseSBkZWxldGUgYWxsIG9iamVjdFN0b3JlIGRhdGEgYW5kIGluZGV4ZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTIyCisKKyAg
ICAgICAgQXBwYXJlbnRseSBpdCdzIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgU1FMaXRlIHRoYXQg
aGFuZGxlIGNhc2NhZGUKKyAgICAgICAgZGVsZXRlLiAgVGhlIHJlc3Qgc2lsZW50bHkgZmFpbC4g
IFNvIGRvIGl0IG1hbnVhbGx5LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpkb0RlbGV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpyZW1vdmVPYmpl
Y3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6Cisg
ICAgICAgICogc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlVGFibGVzKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6cmVtb3ZlSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmlkKToK
KwogMjAxMC0wOC0xOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcAppbmRleCA5MDk1MDM5NTU0MTI5NmE2ZjljOTE0MTQ2OGMyZmQ1YThl
NTE4MjZhLi4xNjUxNjIzMjcwOTg2ZDJlYzAwYzIxMjBkNjdiMWEzOTlmM2RkMTI0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0xNDEsMTAgKzE0MSwx
MCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsg
Ly8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KICAgICBpbnQ2NF90IGlkID0gc3FsaXRl
RGF0YWJhc2UoKS5sYXN0SW5zZXJ0Um93SUQoKTsKIAotICAgIFJlZlB0cjxJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6Y3JlYXRlKHRoaXMsIGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50KTsKKyAgICBS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjcmVhdGUodGhpcywgaWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNy
ZW1lbnQpOwogICAgIEFTU0VSVChvYmplY3RTdG9yZS0+bmFtZSgpID09IG5hbWUpOwogICAgIG1f
b2JqZWN0U3RvcmVzLnNldChuYW1lLCBvYmplY3RTdG9yZSk7Ci0gICAgY2FsbGJhY2tzLT5vblN1
Y2Nlc3Mob2JqZWN0U3RvcmUucmVsZWFzZSgpKTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyhv
YmplY3RTdG9yZS5nZXQoKSk7CiB9CiAKIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvYmplY3RTdG9yZShjb25zdCBTdHJp
bmcmIG5hbWUsIHVuc2lnbmVkIHNob3J0IG1vZGUpCkBAIC0xNTQsMTkgKzE1NCwyOCBAQCBQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6b2JqZWN0U3RvcmUoYwogICAgIHJldHVybiBtX29iamVjdFN0b3Jlcy5nZXQobmFtZSk7
CiB9CiAKK3N0YXRpYyB2b2lkIGRvRGVsZXRlKFNRTGl0ZURhdGFiYXNlJiBkYiwgY29uc3QgY2hh
ciogc3FsLCBpbnQ2NF90IGlkKQoreworICAgIFNRTGl0ZVN0YXRlbWVudCBkZWxldGVRdWVyeShk
Yiwgc3FsKTsKKyAgICBib29sIG9rID0gZGVsZXRlUXVlcnkucHJlcGFyZSgpID09IFNRTFJlc3Vs
dE9rOworICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBo
YW5kbGluZy4KKyAgICBkZWxldGVRdWVyeS5iaW5kSW50NjQoMSwgaWQpOworICAgIG9rID0gZGVs
ZXRlUXVlcnkuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7CisgICAgQVNTRVJUX1VOVVNFRChvaywg
b2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgorfQorCiB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJlbW92ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKLSAgICBpZiAoIW1fb2JqZWN0U3Rv
cmVzLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXMuZ2V0KG5hbWUpOworICAgIGlmICghb2Jq
ZWN0U3RvcmUpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6
OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUiwgIk5vIG9iamVjdFN0
b3JlIHdpdGggdGhhdCBuYW1lIGV4aXN0cy4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTUUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoc3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVU
RSBGUk9NIE9iamVjdFN0b3JlcyBXSEVSRSBuYW1lID0gPyIpOwotICAgIGJvb2wgb2sgPSBkZWxl
dGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0T2s7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywg
b2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgotICAgIGRlbGV0ZVF1ZXJ5LmJp
bmRUZXh0KDEsIG5hbWUpOwotICAgIG9rID0gZGVsZXRlUXVlcnkuc3RlcCgpID09IFNRTFJlc3Vs
dERvbmU7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9y
IGhhbmRsaW5nLgorICAgIGRvRGVsZXRlKHNxbGl0ZURhdGFiYXNlKCksICJERUxFVEUgRlJPTSBP
YmplY3RTdG9yZXMgV0hFUkUgaWQgPSA/Iiwgb2JqZWN0U3RvcmUtPmlkKCkpOworICAgIGRvRGVs
ZXRlKHNxbGl0ZURhdGFiYXNlKCksICJERUxFVEUgRlJPTSBPYmplY3RTdG9yZURhdGEgV0hFUkUg
b2JqZWN0U3RvcmVJZCA9ID8iLCBvYmplY3RTdG9yZS0+aWQoKSk7CisgICAgZG9EZWxldGUoc3Fs
aXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIEluZGV4ZXMgV0hFUkUgb2JqZWN0U3RvcmVJZCA9
ID8iLCBvYmplY3RTdG9yZS0+aWQoKSk7CisgICAgLy8gRklYTUU6IERlbGV0ZSBpbmRleCBkYXRh
IGFzIHdlbGwuCiAKICAgICBtX29iamVjdFN0b3Jlcy5yZW1vdmUobmFtZSk7CiAgICAgY2FsbGJh
Y2tzLT5vblN1Y2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5o
CmluZGV4IDhkMzJlMjdiZDZhOWUxMTNlMjQyNjFmM2EyNjY3YzNhZTgxYzE0ZjEuLjM1NDBiMjEx
Zjk4YjlkM2Q1YTZkOWRlMmQzMDJjMjc4MjlkZTk4NDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuaApAQCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw7CiBjbGFzcyBJREJUcmFuc2Fj
dGlvbkNvb3JkaW5hdG9yOwogY2xhc3MgU1FMaXRlRGF0YWJhc2U7CiAKQEAgLTY5LDcgKzcwLDcg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKICAgICBTdHJpbmcgbV92ZXJz
aW9uOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gPiBPYmplY3RTdG9yZU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gPiBPYmplY3RTdG9yZU1h
cDsKICAgICBPYmplY3RTdG9yZU1hcCBtX29iamVjdFN0b3JlczsKIAogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbkNvb3JkaW5hdG9yPiBtX3RyYW5zYWN0aW9uQ29vcmRpbmF0b3I7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IDI5ZThiNjBjZjQyNjhjYzFj
NWUyNzAwMDcwMGZiN2NhMjU0NzIyYWYuLmQ2NTYxMjhiZjU5OWY5ZmIxYmViMTc2Y2U5YzFmY2Zk
MTMwYTYyMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZElt
cGwuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCkBA
IC04OCwxMiArODgsMTIgQEAgc3RhdGljIGJvb2wgY3JlYXRlVGFibGVzKFNRTGl0ZURhdGFiYXNl
KiBzcWxpdGVEYXRhYmFzZSkKICAgICAgICAgIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVY
SVNUUyBPYmplY3RTdG9yZXNfbmFtZSBPTiBPYmplY3RTdG9yZXMobmFtZSkiLAogCiAgICAgICAg
ICJEUk9QIFRBQkxFIElGIEVYSVNUUyBJbmRleGVzIiwKLSAgICAgICAgIkNSRUFURSBUQUJMRSBJ
RiBOT1QgRVhJU1RTIEluZGV4ZXMgKGlkIElOVEVHRVIgUFJJTUFSWSBLRVksIG9iamVjdFN0b3Jl
SWQgSU5URUdFUiBOT1QgTlVMTCBSRUZFUkVOQ0VTIE9iamVjdFN0b3JlKGlkKSBPTiBERUxFVEUg
Q0FTQ0FERSwgbmFtZSBURVhUIE5PVCBOVUxMLCBrZXlQYXRoIFRFWFQsIGlzVW5pcXVlIElOVEVH
RVIgTk9UIE5VTEwpIiwKKyAgICAgICAgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIEluZGV4
ZXMgKGlkIElOVEVHRVIgUFJJTUFSWSBLRVksIG9iamVjdFN0b3JlSWQgSU5URUdFUiBOT1QgTlVM
TCBSRUZFUkVOQ0VTIE9iamVjdFN0b3JlKGlkKSwgbmFtZSBURVhUIE5PVCBOVUxMLCBrZXlQYXRo
IFRFWFQsIGlzVW5pcXVlIElOVEVHRVIgTk9UIE5VTEwpIiwKICAgICAgICAgIkRST1AgSU5ERVgg
SUYgRVhJU1RTIEluZGV4ZXNfY29tcG9zaXQiLAogICAgICAgICAiQ1JFQVRFIFVOSVFVRSBJTkRF
WCBJRiBOT1QgRVhJU1RTIEluZGV4ZXNfY29tcG9zaXQgT04gSW5kZXhlcyhvYmplY3RTdG9yZUlk
LCBuYW1lKSIsCiAKICAgICAgICAgIkRST1AgVEFCTEUgSUYgRVhJU1RTIE9iamVjdFN0b3JlRGF0
YSIsCi0gICAgICAgICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBPYmplY3RTdG9yZURhdGEg
KGlkIElOVEVHRVIgUFJJTUFSWSBLRVksIG9iamVjdFN0b3JlSWQgSU5URUdFUiBOT1QgTlVMTCBS
RUZFUkVOQ0VTIE9iamVjdFN0b3JlKGlkKSBPTiBERUxFVEUgQ0FTQ0FERSwga2V5U3RyaW5nIFRF
WFQsIGtleURhdGUgSU5URUdFUiwga2V5TnVtYmVyIElOVEVHRVIsIHZhbHVlIFRFWFQgTk9UIE5V
TEwpIiwKKyAgICAgICAgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIE9iamVjdFN0b3JlRGF0
YSAoaWQgSU5URUdFUiBQUklNQVJZIEtFWSwgb2JqZWN0U3RvcmVJZCBJTlRFR0VSIE5PVCBOVUxM
IFJFRkVSRU5DRVMgT2JqZWN0U3RvcmUoaWQpLCBrZXlTdHJpbmcgVEVYVCwga2V5RGF0ZSBJTlRF
R0VSLCBrZXlOdW1iZXIgSU5URUdFUiwgdmFsdWUgVEVYVCBOT1QgTlVMTCkiLAogICAgICAgICAi
RFJPUCBJTkRFWCBJRiBFWElTVFMgT2JqZWN0U3RvcmVEYXRhX2NvbXBvc2l0IiwKICAgICAgICAg
IkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBPYmplY3RTdG9yZURhdGFfY29tcG9z
aXQgT04gT2JqZWN0U3RvcmVEYXRhKGtleVN0cmluZywga2V5RGF0ZSwga2V5TnVtYmVyLCBvYmpl
Y3RTdG9yZUlkKSIKICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmNwcAppbmRleCBlNWUwYjBkMTI2MDdkZjFiNWM0MWMxYWJmMWVhYmU5NDFm
ZDBhODU4Li5lYTU1OWUwNzIwZjJmMDM0MTZhMWI1MDJhZmU4YTcxZTQ0ZGYzZjlmIDEwMDc1NQot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0yNTAsNiAr
MjUwLDggQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpyZW1vdmVJbmRleChjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2EKICAgICBvayA9IGRlbGV0ZVF1ZXJ5LnN0
ZXAoKSA9PSBTUUxSZXN1bHREb25lOwogICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklY
TUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KIAorICAgIC8vIEZJWE1FOiBEZWxldGUgaW5kZXgg
ZGF0YSBhcyB3ZWxsLgorCiAgICAgbV9pbmRleGVzLnJlbW92ZShuYW1lKTsKICAgICBjYWxsYmFj
a3MtPm9uU3VjY2VzcygpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmgKaW5kZXggMDJkY2YwNGEwMmM4NmViNzE4NDRhYTMxZThhODNkMmY3NzkxMjlmMS4u
ZTEwNThjOGY2ZmMxMTcwNzAwNmQxMDExYmVkZjQxNjlkMjQ2YTAwNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCkBAIC0zOSwxMiArMzksMTMgQEAgY2xh
c3MgU1FMaXRlRGF0YWJhc2U7CiAKIGNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwgOiBw
dWJsaWMgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZShJREJE
YXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBjcmVhdGUoSURCRGF0YWJh
c2VCYWNrZW5kSW1wbCogZGF0YWJhc2UsIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwoZGF0YWJhc2Us
IGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50KSk7CiAgICAgfQogICAgIH5JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsKCk7CiAKKyAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQogICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAg
U3RyaW5nIGtleVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2tleVBhdGg7IH0KICAgICBQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IGluZGV4TmFtZXMoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65274</attachid>
            <date>2010-08-24 08:18:20 -0700</date>
            <delta_ts>2010-08-24 08:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44522-20100824161818.patch</filename>
            <type>text/plain</type>
            <size>19082</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNTE1YzkzOTYyMzUxNDE2NzcyYjEyZWZkNTE4Y2E0MTBjYmJhNDcxLi5hZTI4Y2I3
YTJjNGE4OTcwMGM5NmFkMGY1NTRhOTAyZjk5N2M5MjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5kZXhlZERCIG5lZWRz
IHRvIG1hbnVhbGx5IGRlbGV0ZSBhbGwgb2JqZWN0U3RvcmUgZGF0YSBhbmQgaW5kZXhlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MjIKKworICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtcmVtb3Zlb2JqZWN0c3RvcmUuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAgKHVuZXhwZWN0ZWRTdWNjZXNzQ2Fs
bGJhY2spOgorCiAyMDEwLTA4LTE5ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVt
b3Zlb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhM2Q5Mzg2YzViMWI2NDNh
MGQ4MTY5ZThiZGY2ZTY4MjU1ZmYzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNjYgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgSURCT2JqZWN0U3RvcmUucmVt
b3ZlT2JqZWN0U3RvcmUoKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9y
dCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVl
CitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6
CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBp
biBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1Mg
J29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2
ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUK
K1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2RiID0gZXZlbnQucmVzdWx0
CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKK1BBU1MgJ29uc3VjY2Vz
cycgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQ
QVNTICdhYm9ydCcgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3Vs
dCBpcyB0cnVlCitBbiBldmVudCBzaG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZl
bnQgZmlyZWQ6CitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAn
c291cmNlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRy
dWUKK1BBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJy
b3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNT
IGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK2V2ZW50LnJl
c3VsdC5hZGQoJ3ZhbHVlJywgJ2tleScpCitQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0
cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJl
c3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZl
bnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgorCitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAn
cmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQor
UEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nl
c3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQorCitldmVudC5zb3VyY2UuZ2V0KCdrZXknKQor
UEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVz
dWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlT
dGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4K
KworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQgaXMgdHJ1ZQor
UEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGluIGV2ZW50IGlz
IGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNl
ICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1
ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKKworUEFTUyBldmVudC5yZXN1bHQgaXMgInZhbHVlIgorZXZlbnQuc291cmNlLmNyZWF0ZUlu
ZGV4KCdpbmRleE5hbWUnLCAnJykKK1BBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUK
K1BBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdhYm9ydCcgaW4gcmVzdWx0
IGlzIHRydWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCitBbiBldmVudCBz
aG91bGQgZmlyZSBzaG9ydGx5Li4uCisKK1N1Y2Nlc3MgZXZlbnQgZmlyZWQ6CitQQVNTICdyZXN1
bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNT
ICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0
cnVlCitQQVNTIGV2ZW50LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKK1BBU1MgJ29uc3VjY2Vzcycg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBp
cyB0cnVlCitQQVNTICdhYm9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgJ3JlYWR5
U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQuc291cmNlLmluZGV4TmFtZXMu
Y29udGFpbnMoJ2luZGV4TmFtZScpIGlzIHRydWUKK2RiLnJlbW92ZU9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFTUyAnb25lcnJv
cicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiByZXN1bHQgaXMgdHJ1ZQorUEFT
UyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0FuIGV2ZW50IHNob3VsZCBmaXJlIHNo
b3J0bHkuLi4KKworU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcgaW4gZXZlbnQg
aXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21lc3NhZ2UnIGlu
IGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUKK1BBU1MgZXZl
bnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1Mg
J2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZl
bnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQu
dGFyZ2V0LkRPTkUKKworZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCitQ
QVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdvbmVycm9yJyBpbiByZXN1
bHQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCitQQVNTICdyZWFkeVN0
YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQorQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgor
CitTdWNjZXNzIGV2ZW50IGZpcmVkOgorUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCitQ
QVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQorUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMg
ZmFsc2UKK1BBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyBldmVudC5zb3VyY2Ug
IT0gbnVsbCBpcyB0cnVlCitQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVl
CitQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnYWJvcnQnIGlu
IGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQorUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9O
RQorCitldmVudC5yZXN1bHQuZ2V0KCdrZXknKQorUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQg
aXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBp
biByZXN1bHQgaXMgdHJ1ZQorUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKK0Fu
IGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KKworRXJyb3IgZXZlbnQgZmlyZWQ6CitQQVNT
ICdyZXN1bHQnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdjb2RlJyBpbiBldmVudCBpcyB0cnVl
CitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyB0cnVlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50
IGlzIHRydWUKK1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNj
ZXNzJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFy
Z2V0IGlzIHRydWUKK1BBU1MgJ2Fib3J0JyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKK1BBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKKworUEFTUyBldmVudC5jb2RlIGlzIDIKK1BB
U1MgZXZlbnQuc291cmNlLmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFtZScpIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zl
b2JqZWN0c3RvcmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg0MmY1YmZiZjhlZTExN2Yw
ZDZmM2MwYzBjYTg0ZWM0N2FlNDhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKQEAgLTAs
MCArMSwxMTUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElE
Qk9iamVjdFN0b3JlLnJlbW92ZU9iamVjdFN0b3JlKCkuIik7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSAKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCduYW1lJywgJ2Rlc2NyaXB0aW9uJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7CisgICAgcmVzdWx0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gY3JlYXRl
T2JqZWN0U3RvcmUoKQoreworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnJlc3VsdCIpOworCisgICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOworICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOworICAg
IHJlc3VsdC5vbnN1Y2Nlc3MgPSBhZGRWYWx1ZTsKKyAgICByZXN1bHQub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBhZGRWYWx1ZSgpCit7CisgICAgdmVy
aWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50
LnJlc3VsdC5hZGQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7
CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGdldFZhbHVlOworICAgIHJlc3VsdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGdldFZhbHVlKCkKK3sKKyAg
ICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworCisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygi
ZXZlbnQuc291cmNlLmdldCgna2V5JykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAg
ICByZXN1bHQub25zdWNjZXNzID0gYWRkSW5kZXg7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gYWRkSW5kZXgoKQoreworICAgIHZl
cmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC5yZXN1bHQiLCAidmFsdWUiKTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnNv
dXJjZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJycpIik7CisgICAgdmVyaWZ5UmVzdWx0KHJl
c3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHJlbW92ZU9iamVjdFN0b3JlOworICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHJl
bW92ZU9iamVjdFN0b3JlKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworICAg
IHNob3VsZEJlVHJ1ZSgiZXZlbnQuc291cmNlLmluZGV4TmFtZXMuY29udGFpbnMoJ2luZGV4TmFt
ZScpIik7CisKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5yZW1vdmVPYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykiKTsKKyAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKKyAgICByZXN1bHQub25z
dWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmVBZ2FpbjsKKyAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZUFn
YWluKCkKK3sKKyAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOworCisgICAgcmVzdWx0ID0g
ZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7Cisg
ICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGdldFZhbHVl
QWdhaW47CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30K
KworZnVuY3Rpb24gZ2V0VmFsdWVBZ2FpbigpCit7CisgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2
ZW50KTsKKworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnJlc3VsdC5nZXQoJ2tleScp
Iik7CisgICAgdmVyaWZ5UmVzdWx0KHJlc3VsdCk7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHVu
ZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVzdWx0Lm9uZXJyb3IgPSB2ZXJpZnlFcnJv
cjsKK30KKworZnVuY3Rpb24gdmVyaWZ5RXJyb3IoKQoreworICAgIHZlcmlmeUVycm9yRXZlbnQo
ZXZlbnQpOworICAgIC8vIEZJWE1FOiBTaG91bGQganVzdCBiZSBJREJEYXRhYmFzZUV4Y2VwdGlv
bi5OT1RfRk9VTkRfRVJSIGJ1dCB0aGF0IGRvZXNuJ3Qgd29yayB5ZXQuCisgICAgc2hvdWxkQmUo
ImV2ZW50LmNvZGUiLCAiMiIpOworICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LnNvdXJjZS5pbmRl
eE5hbWVzLmNvbnRhaW5zKCdpbmRleE5hbWUnKSIpOworCisgICAgZG9uZSgpOworfQorCit0ZXN0
KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3NoYXJlZC5qcwppbmRleCA5ZjVlMTFmMTkzYTIxMDg0YjNkNGZhMjQxMTJhM2MyNTQyYWE2N2Nm
Li4xMTJiZjE4MGY5ZGQ3OTJhYWRjNzM0MTM2Y2Y1OWZhYTc5NWU2YjQ5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTUxLDYg
KzUxLDE0IEBAIGZ1bmN0aW9uIHZlcmlmeVJlc3VsdChyZXN1bHQpCiAgICAgZGVidWcoIiIpOwog
fQogCitmdW5jdGlvbiB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrKCkKK3sKKyAgICB0ZXN0RmFp
bGVkKCJTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuIik7CisgICAgZGVidWco
IiIpOworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgZG9uZSgpOworfQorCiBm
dW5jdGlvbiB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjaygpCiB7CiAgICAgdGVzdEZhaWxlZCgiRXJy
b3IgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseTogKCIgKyBldmVudC5jb2RlICsgIikgIiAr
IGV2ZW50Lm1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiNTI2NDA4M2UzNjM4MmM2YWJkYjRmMjk0M2EyMDE3NzkyMzQzYzZk
Li43NTE0YTJhMDg1NmEwNzcxOTMwZGU5ODY0NTk2ZDRhODllNWE1ZjE1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDEwLTA4LTI0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQiBuZWVk
cyB0byBtYW51YWxseSBkZWxldGUgYWxsIG9iamVjdFN0b3JlIGRhdGEgYW5kIGluZGV4ZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTIyCisKKyAg
ICAgICAgQXBwYXJlbnRseSBpdCdzIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgU1FMaXRlIHRoYXQg
aGFuZGxlIGNhc2NhZGUKKyAgICAgICAgZGVsZXRlLiAgVGhlIHJlc3Qgc2lsZW50bHkgZmFpbC4g
IFNvIGRvIGl0IG1hbnVhbGx5LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpkb0RlbGV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpyZW1vdmVPYmpl
Y3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6Cisg
ICAgICAgICogc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlVGFibGVzKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6cmVtb3ZlSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmlkKToK
KwogMjAxMC0wOC0xOSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcAppbmRleCA5MDk1MDM5NTU0MTI5NmE2ZjljOTE0MTQ2OGMyZmQ1YThl
NTE4MjZhLi42ZGE1MGZmYzY4NTZlZjM2OWExNWU1MGQ2ZmZiNWU3OTIwZDRlZjg2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNRTGl0
ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCisjaW5jbHVkZSAiU1FM
aXRlVHJhbnNhY3Rpb24uaCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBAIC0x
NDEsMTAgKzE0MiwxMCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVF9VTlVT
RUQob2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KICAgICBpbnQ2NF90
IGlkID0gc3FsaXRlRGF0YWJhc2UoKS5sYXN0SW5zZXJ0Um93SUQoKTsKIAotICAgIFJlZlB0cjxJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbDo6Y3JlYXRlKHRoaXMsIGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVt
ZW50KTsKKyAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUg
PSBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVhdGUodGhpcywgaWQsIG5hbWUsIGtleVBh
dGgsIGF1dG9JbmNyZW1lbnQpOwogICAgIEFTU0VSVChvYmplY3RTdG9yZS0+bmFtZSgpID09IG5h
bWUpOwogICAgIG1fb2JqZWN0U3RvcmVzLnNldChuYW1lLCBvYmplY3RTdG9yZSk7Ci0gICAgY2Fs
bGJhY2tzLT5vblN1Y2Nlc3Mob2JqZWN0U3RvcmUucmVsZWFzZSgpKTsKKyAgICBjYWxsYmFja3Mt
Pm9uU3VjY2VzcyhvYmplY3RTdG9yZS5nZXQoKSk7CiB9CiAKIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvYmplY3RTdG9y
ZShjb25zdCBTdHJpbmcmIG5hbWUsIHVuc2lnbmVkIHNob3J0IG1vZGUpCkBAIC0xNTQsMTkgKzE1
NSwzMSBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6b2JqZWN0U3RvcmUoYwogICAgIHJldHVybiBtX29iamVjdFN0b3Jl
cy5nZXQobmFtZSk7CiB9CiAKK3N0YXRpYyB2b2lkIGRvRGVsZXRlKFNRTGl0ZURhdGFiYXNlJiBk
YiwgY29uc3QgY2hhciogc3FsLCBpbnQ2NF90IGlkKQoreworICAgIFNRTGl0ZVN0YXRlbWVudCBk
ZWxldGVRdWVyeShkYiwgc3FsKTsKKyAgICBib29sIG9rID0gZGVsZXRlUXVlcnkucHJlcGFyZSgp
ID09IFNRTFJlc3VsdE9rOworICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsgLy8gRklYTUU6IEJl
dHRlciBlcnJvciBoYW5kbGluZy4KKyAgICBkZWxldGVRdWVyeS5iaW5kSW50NjQoMSwgaWQpOwor
ICAgIG9rID0gZGVsZXRlUXVlcnkuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7CisgICAgQVNTRVJU
X1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgorfQorCiB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJlbW92ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKLSAgICBpZiAo
IW1fb2JqZWN0U3RvcmVzLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgUmVmUHRyPElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXMuZ2V0KG5hbWUpOwor
ICAgIGlmICghb2JqZWN0U3RvcmUpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUiwg
Ik5vIG9iamVjdFN0b3JlIHdpdGggdGhhdCBuYW1lIGV4aXN0cy4iKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoc3FsaXRlRGF0YWJh
c2UoKSwgIkRFTEVURSBGUk9NIE9iamVjdFN0b3JlcyBXSEVSRSBuYW1lID0gPyIpOwotICAgIGJv
b2wgb2sgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FMUmVzdWx0T2s7Ci0gICAgQVNTRVJU
X1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgotICAgIGRl
bGV0ZVF1ZXJ5LmJpbmRUZXh0KDEsIG5hbWUpOwotICAgIG9rID0gZGVsZXRlUXVlcnkuc3RlcCgp
ID09IFNRTFJlc3VsdERvbmU7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTog
QmV0dGVyIGVycm9yIGhhbmRsaW5nLgorICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0aW9u
KHNxbGl0ZURhdGFiYXNlKCkpOworICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CisgICAgZG9EZWxl
dGUoc3FsaXRlRGF0YWJhc2UoKSwgIkRFTEVURSBGUk9NIE9iamVjdFN0b3JlcyBXSEVSRSBpZCA9
ID8iLCBvYmplY3RTdG9yZS0+aWQoKSk7CisgICAgZG9EZWxldGUoc3FsaXRlRGF0YWJhc2UoKSwg
IkRFTEVURSBGUk9NIE9iamVjdFN0b3JlRGF0YSBXSEVSRSBvYmplY3RTdG9yZUlkID0gPyIsIG9i
amVjdFN0b3JlLT5pZCgpKTsKKyAgICBkb0RlbGV0ZShzcWxpdGVEYXRhYmFzZSgpLCAiREVMRVRF
IEZST00gSW5kZXhlcyBXSEVSRSBvYmplY3RTdG9yZUlkID0gPyIsIG9iamVjdFN0b3JlLT5pZCgp
KTsKKyAgICAvLyBGSVhNRTogRGVsZXRlIGluZGV4IGRhdGEgYXMgd2VsbC4KKyAgICB0cmFuc2Fj
dGlvbi5jb21taXQoKTsKIAogICAgIG1fb2JqZWN0U3RvcmVzLnJlbW92ZShuYW1lKTsKICAgICBj
YWxsYmFja3MtPm9uU3VjY2VzcygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmgKaW5kZXggOGQzMmUyN2JkNmE5ZTExM2UyNDI2MWYzYTI2NjdjM2FlODFjMTRmMS4uMzU0
MGIyMTFmOThiOWQzZDVhNmQ5ZGUyZDMwMmMyNzgyOWRlOTg0NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC0zNSw2ICszNSw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDsKIGNsYXNzIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBTUUxpdGVEYXRhYmFzZTsKIApAQCAtNjksNyAr
NzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOwogICAgIFN0cmluZyBt
X3ZlcnNpb247CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiA+IE9iamVjdFN0b3JlTWFwOworICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiA+IE9iamVjdFN0
b3JlTWFwOwogICAgIE9iamVjdFN0b3JlTWFwIG1fb2JqZWN0U3RvcmVzOwogCiAgICAgUmVmUHRy
PElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3I+IG1fdHJhbnNhY3Rpb25Db29yZGluYXRvcjsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKaW5kZXggMjllOGI2MGNmNDI2
OGNjMWM1ZTI3MDAwNzAwZmI3Y2EyNTQ3MjJhZi4uZDY1NjEyOGJmNTk5ZjlmYjFiZWIxNzZjZTlj
MWZjZmQxMzBhNjIwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5j
cHAKQEAgLTg4LDEyICs4OCwxMiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVUYWJsZXMoU1FMaXRlRGF0
YWJhc2UqIHNxbGl0ZURhdGFiYXNlKQogICAgICAgICAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBO
T1QgRVhJU1RTIE9iamVjdFN0b3Jlc19uYW1lIE9OIE9iamVjdFN0b3JlcyhuYW1lKSIsCiAKICAg
ICAgICAgIkRST1AgVEFCTEUgSUYgRVhJU1RTIEluZGV4ZXMiLAotICAgICAgICAiQ1JFQVRFIFRB
QkxFIElGIE5PVCBFWElTVFMgSW5kZXhlcyAoaWQgSU5URUdFUiBQUklNQVJZIEtFWSwgb2JqZWN0
U3RvcmVJZCBJTlRFR0VSIE5PVCBOVUxMIFJFRkVSRU5DRVMgT2JqZWN0U3RvcmUoaWQpIE9OIERF
TEVURSBDQVNDQURFLCBuYW1lIFRFWFQgTk9UIE5VTEwsIGtleVBhdGggVEVYVCwgaXNVbmlxdWUg
SU5URUdFUiBOT1QgTlVMTCkiLAorICAgICAgICAiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMg
SW5kZXhlcyAoaWQgSU5URUdFUiBQUklNQVJZIEtFWSwgb2JqZWN0U3RvcmVJZCBJTlRFR0VSIE5P
VCBOVUxMIFJFRkVSRU5DRVMgT2JqZWN0U3RvcmUoaWQpLCBuYW1lIFRFWFQgTk9UIE5VTEwsIGtl
eVBhdGggVEVYVCwgaXNVbmlxdWUgSU5URUdFUiBOT1QgTlVMTCkiLAogICAgICAgICAiRFJPUCBJ
TkRFWCBJRiBFWElTVFMgSW5kZXhlc19jb21wb3NpdCIsCiAgICAgICAgICJDUkVBVEUgVU5JUVVF
IElOREVYIElGIE5PVCBFWElTVFMgSW5kZXhlc19jb21wb3NpdCBPTiBJbmRleGVzKG9iamVjdFN0
b3JlSWQsIG5hbWUpIiwKIAogICAgICAgICAiRFJPUCBUQUJMRSBJRiBFWElTVFMgT2JqZWN0U3Rv
cmVEYXRhIiwKLSAgICAgICAgIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIE9iamVjdFN0b3Jl
RGF0YSAoaWQgSU5URUdFUiBQUklNQVJZIEtFWSwgb2JqZWN0U3RvcmVJZCBJTlRFR0VSIE5PVCBO
VUxMIFJFRkVSRU5DRVMgT2JqZWN0U3RvcmUoaWQpIE9OIERFTEVURSBDQVNDQURFLCBrZXlTdHJp
bmcgVEVYVCwga2V5RGF0ZSBJTlRFR0VSLCBrZXlOdW1iZXIgSU5URUdFUiwgdmFsdWUgVEVYVCBO
T1QgTlVMTCkiLAorICAgICAgICAiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgT2JqZWN0U3Rv
cmVEYXRhIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLCBvYmplY3RTdG9yZUlkIElOVEVHRVIgTk9U
IE5VTEwgUkVGRVJFTkNFUyBPYmplY3RTdG9yZShpZCksIGtleVN0cmluZyBURVhULCBrZXlEYXRl
IElOVEVHRVIsIGtleU51bWJlciBJTlRFR0VSLCB2YWx1ZSBURVhUIE5PVCBOVUxMKSIsCiAgICAg
ICAgICJEUk9QIElOREVYIElGIEVYSVNUUyBPYmplY3RTdG9yZURhdGFfY29tcG9zaXQiLAogICAg
ICAgICAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIE9iamVjdFN0b3JlRGF0YV9j
b21wb3NpdCBPTiBPYmplY3RTdG9yZURhdGEoa2V5U3RyaW5nLCBrZXlEYXRlLCBrZXlOdW1iZXIs
IG9iamVjdFN0b3JlSWQpIgogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IGU1ZTBiMGQxMjYwN2RmMWI1YzQxYzFhYmYxZWFi
ZTk0MWZkMGE4NTguLmVhNTU5ZTA3MjBmMmYwMzQxNmExYjUwMmFmZThhNzFlNDRkZjNmOWYgMTAw
NzU1Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTI1
MCw2ICsyNTAsOCBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnJlbW92ZUluZGV4
KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYQogICAgIG9rID0gZGVsZXRlUXVl
cnkuc3RlcCgpID09IFNRTFJlc3VsdERvbmU7CiAgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAv
LyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nLgogCisgICAgLy8gRklYTUU6IERlbGV0ZSBp
bmRleCBkYXRhIGFzIHdlbGwuCisKICAgICBtX2luZGV4ZXMucmVtb3ZlKG5hbWUpOwogICAgIGNh
bGxiYWNrcy0+b25TdWNjZXNzKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaAppbmRleCAwMmRjZjA0YTAyYzg2ZWI3MTg0NGFhMzFlOGE4M2QyZjc3OTEy
OWYxLi5lMTA1OGM4ZjZmYzExNzA3MDA2ZDEwMTFiZWRmNDE2OWQyNDZhMDA0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTM5LDEyICszOSwxMyBA
QCBjbGFzcyBTUUxpdGVEYXRhYmFzZTsKIAogY2xhc3MgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bCA6IHB1YmxpYyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRl
KElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlLCBpbnQ2NF90IGlkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IGNyZWF0ZShJREJE
YXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbChkYXRh
YmFzZSwgaWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpKTsKICAgICB9CiAgICAgfklE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwoKTsKIAorICAgIGludDY0X3QgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9CiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
ICAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5UGF0aDsgfQogICAgIFBh
c3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1lcygpIGNvbnN0Owo=
</data>
<flag name="review"
          id="54013"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>