<?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>119389</bug_id>
          
          <creation_ts>2013-08-01 04:38:43 -0700</creation_ts>
          <short_desc>Make WebHistory more type safe</short_desc>
          <delta_ts>2013-09-27 05:33:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>
          
          <blocked>122010</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913700</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-08-01 04:38:43 -0700</bug_when>
    <thetext>Make WebHistory more type safe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913702</commentid>
    <comment_count>1</comment_count>
      <attachid>207912</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-08-01 04:45:28 -0700</bug_when>
    <thetext>Created attachment 207912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913704</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-01 04:47:10 -0700</bug_when>
    <thetext>Attachment 207912 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/WebKit/win/WebHistory.cpp&apos;, u&apos;Source/WebKit/win/WebHistory.h&apos;]&quot; exit_code: 1
Source/WebKit/win/WebHistory.cpp:532:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebKit/win/WebHistory.cpp:533:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929522</commentid>
    <comment_count>3</comment_count>
      <attachid>207912</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-15 17:37:50 -0700</bug_when>
    <thetext>Comment on attachment 207912
Patch

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

Looks good!  Can you please use &apos;auto&apos;?

&gt; Source/WebKit/win/WebHistory.cpp:246
&gt; +    for (URLToEntriesMap::const_iterator it = m_entriesByURL.begin(); it != m_entriesByURL.end(); ++it)

Can this be for (auto it = ...)?

&gt; Source/WebKit/win/WebHistory.cpp:345
&gt; +    for (URLToEntriesMap::const_iterator it = m_entriesByURL.begin(); it != m_entriesByURL.end(); ++i, ++it) {

auto!

&gt;&gt; Source/WebKit/win/WebHistory.cpp:532
&gt;&gt; +    /* [in] */ BSTR url,
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

I&apos;ve been changing these to be one-line in &quot;WebKit Style&quot; when I&apos;m changing the signature.  Do we really need the STDMETHODCALLTYPE here? I thought that if it was in the header file that was sufficient.

&gt; Source/WebKit/win/WebHistory.cpp:539
&gt; +    URLToEntriesMap::iterator it = m_entriesByURL.find(url);

auto it = ...

&gt; Source/WebKit/win/WebHistory.cpp:549
&gt; +    URLToEntriesMap::iterator it = m_entriesByURL.find(urlString);

auto ...

&gt; Source/WebKit/win/WebHistory.cpp:757
&gt; +    for (URLToEntriesMap::const_iterator it = m_entriesByURL.begin(); it != m_entriesByURL.end(); ++it) {

auto...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929531</commentid>
    <comment_count>4</comment_count>
      <attachid>211733</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-09-15 18:29:44 -0700</bug_when>
    <thetext>Created attachment 211733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929538</commentid>
    <comment_count>5</comment_count>
      <attachid>211733</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-15 19:41:29 -0700</bug_when>
    <thetext>Comment on attachment 211733
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930671</commentid>
    <comment_count>6</comment_count>
      <attachid>211733</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 10:31:26 -0700</bug_when>
    <thetext>Comment on attachment 211733
Patch

Clearing flags on attachment: 211733

Committed r156051: &lt;http://trac.webkit.org/changeset/156051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930672</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 10:31:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207912</attachid>
            <date>2013-08-01 04:45:28 -0700</date>
            <delta_ts>2013-09-15 18:29:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119389.patch</filename>
            <type>text/plain</type>
            <size>11758</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCAwNjhlMGJjLi42OTU0M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTMtMDgtMDEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJIaXN0b3J5IG1vcmUgdHlwZSBzYWZlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzODkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYSBXVEY6Okhh
c2hNYXAgaW5zdGVhZCBvZiBhIENGTXV0YWJsZURpY3Rpb25hcnkgdG8gYXZvaWQKKyAgICAgICAg
Y2FzdGluZyBmcm9tIHZvaWQqIGFsbCB0aGUgdGltZSB3aGVuIGFjY2Vzc2luZyB0aGUgZW50cmll
cy4KKyAgICAgICAgVGhpcyByZWR1Y2VzIHRoZSBkZXBlbmRlbmNpZXMgb24gQ29yZUZvdW5kYXRp
b24gdG9vLgorCisgICAgICAgICogV2ViSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJIaXN0b3J5
OjpXZWJIaXN0b3J5KToKKyAgICAgICAgKFdlYkhpc3Rvcnk6OnJlbW92ZUFsbEl0ZW1zKToKKyAg
ICAgICAgKFdlYkhpc3Rvcnk6OmFsbEl0ZW1zKToKKyAgICAgICAgKFdlYkhpc3Rvcnk6OnJlbW92
ZUl0ZW0pOgorICAgICAgICAoV2ViSGlzdG9yeTo6YWRkSXRlbSk6CisgICAgICAgIChXZWJIaXN0
b3J5Ojp2aXNpdGVkVVJMKToKKyAgICAgICAgKFdlYkhpc3Rvcnk6Oml0ZW1Gb3JVUkwpOgorICAg
ICAgICAoV2ViSGlzdG9yeTo6cmVtb3ZlSXRlbUZvclVSTFN0cmluZyk6CisgICAgICAgIChXZWJI
aXN0b3J5OjppdGVtRm9yVVJMU3RyaW5nKToKKyAgICAgICAgKFdlYkhpc3Rvcnk6OmFkZFZpc2l0
ZWRMaW5rc1RvUGFnZUdyb3VwKToKKyAgICAgICAgKiBXZWJIaXN0b3J5Lmg6CisKIDIwMTMtMDct
MjUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIENocm9tZUNs
aWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKCkgc2hvdWxkIGJlIGZvY3VzZWRFbGVtZW50Q2hhbmdl
ZCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNwcAppbmRleCBmZjFjZGYyLi43OTlhYzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJIaXN0b3J5LmNwcApAQCAtODQsOCArODQsNiBAQCBXZWJIaXN0b3J5OjpXZWJI
aXN0b3J5KCkKICAgICBnQ2xhc3NDb3VudCsrOwogICAgIGdDbGFzc05hbWVDb3VudC5hZGQoIldl
Ykhpc3RvcnkiKTsKIAotICAgIG1fZW50cmllc0J5VVJMID0gYWRvcHRDRihDRkRpY3Rpb25hcnlD
cmVhdGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJk1hcnNo
YWxsaW5nSGVscGVyczo6a0lVbmtub3duRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0KICAg
ICBtX3ByZWZlcmVuY2VzID0gV2ViUHJlZmVyZW5jZXM6OnNoYXJlZFN0YW5kYXJkUHJlZmVyZW5j
ZXMoKTsKIH0KIApAQCAtMjQ0LDEyICsyNDIsMTIgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJIaXN0b3J5OjpyZW1vdmVBbGxJdGVtcyggdm9pZCkKICAgICBtX2VudHJpZXNCeURhdGUu
Y2xlYXIoKTsKICAgICBtX29yZGVyZWRMYXN0VmlzaXRlZERheXMuY2xlYXIoKTsKIAotICAgIENG
SW5kZXggaXRlbUNvdW50ID0gQ0ZEaWN0aW9uYXJ5R2V0Q291bnQobV9lbnRyaWVzQnlVUkwuZ2V0
KCkpOwotICAgIFZlY3RvcjxJV2ViSGlzdG9yeUl0ZW0qPiBpdGVtc1ZlY3RvcihpdGVtQ291bnQp
OwotICAgIENGRGljdGlvbmFyeUdldEtleXNBbmRWYWx1ZXMobV9lbnRyaWVzQnlVUkwuZ2V0KCks
IDAsIChjb25zdCB2b2lkKiopaXRlbXNWZWN0b3IuZGF0YSgpKTsKLSAgICBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gYWxsSXRlbXMgPSBhZG9wdENGKENGQXJyYXlDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgKGNvbnN0IHZvaWQqKilpdGVtc1ZlY3Rvci5kYXRhKCksIGl0ZW1Db3VudCwgJk1hcnNo
YWxsaW5nSGVscGVyczo6a0lVbmtub3duQXJyYXlDYWxsQmFja3MpKTsKKyAgICBWZWN0b3I8SVdl
Ykhpc3RvcnlJdGVtKj4gaXRlbXNWZWN0b3IobV9lbnRyaWVzQnlVUkwuc2l6ZSgpKTsKKyAgICBm
b3IgKFVSTFRvRW50cmllc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2VudHJpZXNCeVVSTC5i
ZWdpbigpOyBpdCAhPSBtX2VudHJpZXNCeVVSTC5lbmQoKTsgKytpdCkKKyAgICAgICAgaXRlbXNW
ZWN0b3IuYXBwZW5kKGl0LT52YWx1ZS5nZXQoKSk7CisgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+
IGFsbEl0ZW1zID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChj
b25zdCB2b2lkKiopaXRlbXNWZWN0b3IuZGF0YSgpLCBpdGVtc1ZlY3Rvci5zaXplKCksICZNYXJz
aGFsbGluZ0hlbHBlcnM6OmtJVW5rbm93bkFycmF5Q2FsbEJhY2tzKSk7CiAKLSAgICBDRkRpY3Rp
b25hcnlSZW1vdmVBbGxWYWx1ZXMobV9lbnRyaWVzQnlVUkwuZ2V0KCkpOworICAgIG1fZW50cmll
c0J5VVJMLmNsZWFyKCk7CiAKICAgICBQYWdlR3JvdXA6OnJlbW92ZUFsbFZpc2l0ZWRMaW5rcygp
OwogCkBAIC0zMzAsNyArMzI4LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0
b3J5OjphbGxJdGVtcygKICAgICAvKiBbb3V0XVtpbl0gKi8gaW50KiBjb3VudCwKICAgICAvKiBb
b3V0XVtyZXR2YWxdICovIElXZWJIaXN0b3J5SXRlbSoqIGl0ZW1zKQogewotICAgIGludCBlbnRy
aWVzQnlVUkxDb3VudCA9IENGRGljdGlvbmFyeUdldENvdW50KG1fZW50cmllc0J5VVJMLmdldCgp
KTsKKyAgICBpbnQgZW50cmllc0J5VVJMQ291bnQgPSBtX2VudHJpZXNCeVVSTC5zaXplKCk7CiAK
ICAgICBpZiAoIWl0ZW1zKSB7CiAgICAgICAgICpjb3VudCA9IGVudHJpZXNCeVVSTENvdW50OwpA
QCAtMzQzLDkgKzM0MSwxMSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkhpc3Rvcnk6
OmFsbEl0ZW1zKAogICAgIH0KIAogICAgICpjb3VudCA9IGVudHJpZXNCeVVSTENvdW50OwotICAg
IENGRGljdGlvbmFyeUdldEtleXNBbmRWYWx1ZXMobV9lbnRyaWVzQnlVUkwuZ2V0KCksIDAsIChj
b25zdCB2b2lkKiopaXRlbXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW50cmllc0J5VVJM
Q291bnQ7IGkrKykKKyAgICBpbnQgaSA9IDA7CisgICAgZm9yIChVUkxUb0VudHJpZXNNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9lbnRyaWVzQnlVUkwuYmVnaW4oKTsgaXQgIT0gbV9lbnRyaWVz
QnlVUkwuZW5kKCk7ICsraSwgKytpdCkgeworICAgICAgICBpdGVtc1tpXSA9IGl0LT52YWx1ZS5n
ZXQoKTsKICAgICAgICAgaXRlbXNbaV0tPkFkZFJlZigpOworICAgIH0KIAogICAgIHJldHVybiBT
X09LOwogfQpAQCAtNDAzLDE2ICs0MDMsMTkgQEAgSFJFU1VMVCBXZWJIaXN0b3J5OjpyZW1vdmVJ
dGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnkpCiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAg
IHJldHVybiBocjsKIAotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdXJsU3RyaW5nID0gYWRv
cHRDRihNYXJzaGFsbGluZ0hlbHBlcnM6OkJTVFJUb0NGU3RyaW5nUmVmKHVybEJTdHIpKTsKKyAg
ICBTdHJpbmcgdXJsU3RyaW5nKHVybEJTdHIsIFN5c1N0cmluZ0xlbih1cmxCU3RyKSk7CisKKyAg
ICBVUkxUb0VudHJpZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9lbnRyaWVzQnlVUkwuZmluZCh1cmxT
dHJpbmcpOworICAgIGlmIChpdCA9PSBtX2VudHJpZXNCeVVSTC5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIEVfRkFJTDsKIAogICAgIC8vIElmIHRoaXMgZXhhY3Qgb2JqZWN0IGlzbid0IHN0b3JlZCwg
dGhlbiBtYWtlIG5vIGNoYW5nZS4KICAgICAvLyBGSVhNRTogSXMgdGhpcyB0aGUgcmlnaHQgYmVo
YXZpb3IgaWYgdGhpcyBlbnRyeSBpc24ndCBwcmVzZW50LCBidXQgYW5vdGhlciBlbnRyeSBmb3Ig
dGhlIHNhbWUgVVJMIGlzPwogICAgIC8vIE1heWJlIG5lZWQgdG8gY2hhbmdlIHRoZSBBUEkgdG8g
bWFrZSBzb21ldGhpbmcgbGlrZSByZW1vdmVFbnRyeUZvclVSTFN0cmluZyBwdWJsaWMgaW5zdGVh
ZC4KLSAgICBJV2ViSGlzdG9yeUl0ZW0gKm1hdGNoaW5nRW50cnkgPSAoSVdlYkhpc3RvcnlJdGVt
KilDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2VudHJpZXNCeVVSTC5nZXQoKSwgdXJsU3RyaW5nLmdl
dCgpKTsKLSAgICBpZiAobWF0Y2hpbmdFbnRyeSAhPSBlbnRyeSkKKyAgICBpZiAoaXQtPnZhbHVl
LmdldCgpICE9IGVudHJ5KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgaHIgPSByZW1v
dmVJdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZy5nZXQoKSk7CisgICAgaHIgPSByZW1vdmVJdGVt
Rm9yVVJMU3RyaW5nKHVybFN0cmluZyk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJl
dHVybiBocjsKIApAQCAtNDM1LDE5ICs0MzgsMTggQEAgSFJFU1VMVCBXZWJIaXN0b3J5OjphZGRJ
dGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnksIGJvb2wgZGlzY2FyZER1cGxpY2F0ZSwgYm9vbCoK
ICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwogCi0gICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiB1cmxTdHJpbmcgPSBhZG9wdENGKE1hcnNoYWxsaW5nSGVscGVyczo6QlNU
UlRvQ0ZTdHJpbmdSZWYodXJsQlN0cikpOworICAgIFN0cmluZyB1cmxTdHJpbmcodXJsQlN0ciwg
U3lzU3RyaW5nTGVuKHVybEJTdHIpKTsKKworICAgIENPTVB0cjxJV2ViSGlzdG9yeUl0ZW0+IG9s
ZEVudHJ5KG1fZW50cmllc0J5VVJMLmdldCh1cmxTdHJpbmcpKTsKIAotICAgIENPTVB0cjxJV2Vi
SGlzdG9yeUl0ZW0+IG9sZEVudHJ5KChJV2ViSGlzdG9yeUl0ZW0qKSBDRkRpY3Rpb25hcnlHZXRW
YWx1ZSgKLSAgICAgICAgbV9lbnRyaWVzQnlVUkwuZ2V0KCksIHVybFN0cmluZy5nZXQoKSkpOwot
ICAgIAogICAgIGlmIChvbGRFbnRyeSkgewogICAgICAgICBpZiAoZGlzY2FyZER1cGxpY2F0ZSkg
ewogICAgICAgICAgICAgaWYgKGFkZGVkKQogICAgICAgICAgICAgICAgICphZGRlZCA9IGZhbHNl
OwogICAgICAgICAgICAgcmV0dXJuIFNfT0s7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IHJlbW92ZUl0ZW1Gb3JVUkxTdHJpbmcodXJsU3RyaW5nLmdldCgpKTsKKworICAgICAgICByZW1v
dmVJdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZyk7CiAKICAgICAgICAgLy8gSWYgd2UgYWxyZWFk
eSBoYXZlIGFuIGl0ZW0gd2l0aCB0aGlzIFVSTCwgd2UgbmVlZCB0byBtZXJnZSBpbmZvIHRoYXQg
ZHJpdmVzIHRoZQogICAgICAgICAvLyBVUkwgYXV0b2NvbXBsZXRlIGhldXJpc3RpY3MgZnJvbSB0
aGF0IGl0ZW0gaW50byB0aGUgbmV3IG9uZS4KQEAgLTQ2Myw3ICs0NjUsNyBAQCBIUkVTVUxUIFdl
Ykhpc3Rvcnk6OmFkZEl0ZW0oSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSwgYm9vbCBkaXNjYXJkRHVw
bGljYXRlLCBib29sKgogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAK
LSAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2VudHJpZXNCeVVSTC5nZXQoKSwgdXJsU3RyaW5n
LmdldCgpLCBlbnRyeSk7CisgICAgbV9lbnRyaWVzQnlVUkwuc2V0KHVybFN0cmluZywgZW50cnkp
OwogCiAgICAgQ09NUHRyPENGRGljdGlvbmFyeVByb3BlcnR5QmFnPiB1c2VySW5mbyA9IGNyZWF0
ZVVzZXJJbmZvRnJvbUhpc3RvcnlJdGVtKAogICAgICAgICBnZXROb3RpZmljYXRpb25TdHJpbmco
a1dlYkhpc3RvcnlJdGVtc0FkZGVkTm90aWZpY2F0aW9uKSwgZW50cnkpOwpAQCAtNDc3LDkgKzQ3
OSw3IEBAIEhSRVNVTFQgV2ViSGlzdG9yeTo6YWRkSXRlbShJV2ViSGlzdG9yeUl0ZW0qIGVudHJ5
LCBib29sIGRpc2NhcmREdXBsaWNhdGUsIGJvb2wqCiAKIHZvaWQgV2ViSGlzdG9yeTo6dmlzaXRl
ZFVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
aHR0cE1ldGhvZCwgYm9vbCB3YXNGYWlsdXJlLCBib29sIGluY3JlYXNlVmlzaXRDb3VudCkKIHsK
LSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVybFN0cmluZyA9IHVybC5zdHJpbmcoKS5jcmVh
dGVDRlN0cmluZygpOwotCi0gICAgSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSA9IChJV2ViSGlzdG9y
eUl0ZW0qKUNGRGljdGlvbmFyeUdldFZhbHVlKG1fZW50cmllc0J5VVJMLmdldCgpLCB1cmxTdHJp
bmcuZ2V0KCkpOworICAgIElXZWJIaXN0b3J5SXRlbSogZW50cnkgPSBtX2VudHJpZXNCeVVSTC5n
ZXQodXJsLnN0cmluZygpKS5nZXQoKTsKICAgICBpZiAoZW50cnkpIHsKICAgICAgICAgQ09NUHRy
PElXZWJIaXN0b3J5SXRlbVByaXZhdGU+IGVudHJ5UHJpdmF0ZShRdWVyeSwgZW50cnkpOwogICAg
ICAgICBpZiAoIWVudHJ5UHJpdmF0ZSkKQEAgLTUwNyw3ICs1MDcsNyBAQCB2b2lkIFdlYkhpc3Rv
cnk6OnZpc2l0ZWRVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmCiAgICAgICAgIAogICAgICAgICBpdGVtLT5yZWNvcmRJbml0aWFsVmlzaXQoKTsK
IAotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2VudHJpZXNCeVVSTC5nZXQoKSwgdXJs
U3RyaW5nLmdldCgpLCBlbnRyeSk7CisgICAgICAgIG1fZW50cmllc0J5VVJMLnNldCh1cmwuc3Ry
aW5nKCksIGVudHJ5KTsKICAgICB9CiAKICAgICBhZGRJdGVtVG9EYXRlQ2FjaGVzKGVudHJ5KTsK
QEAgLTUyOCw0MSArNTI4LDMyIEBAIHZvaWQgV2ViSGlzdG9yeTo6dmlzaXRlZFVSTChjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYKICAgICBwb3N0Tm90
aWZpY2F0aW9uKGtXZWJIaXN0b3J5SXRlbXNBZGRlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8uZ2V0
KCkpOwogfQogCi1IUkVTVUxUIFdlYkhpc3Rvcnk6Oml0ZW1Gb3JVUkxTdHJpbmcoCi0gICAgLyog
W2luXSAqLyBDRlN0cmluZ1JlZiB1cmxTdHJpbmcsCi0gICAgLyogW3JldHZhbF1bb3V0XSAqLyBJ
V2ViSGlzdG9yeUl0ZW0qKiBpdGVtKSBjb25zdAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJIaXN0b3J5OjppdGVtRm9yVVJMKAorICAgIC8qIFtpbl0gKi8gQlNUUiB1cmwsCisgICAgLyog
W3JldHZhbF1bb3V0XSAqLyBJV2ViSGlzdG9yeUl0ZW0qKiBpdGVtKQogewogICAgIGlmICghaXRl
bSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICAqaXRlbSA9IDA7CiAKLSAgICBJV2ViSGlz
dG9yeUl0ZW0qIGZvdW5kSXRlbSA9IChJV2ViSGlzdG9yeUl0ZW0qKSBDRkRpY3Rpb25hcnlHZXRW
YWx1ZShtX2VudHJpZXNCeVVSTC5nZXQoKSwgdXJsU3RyaW5nKTsKLSAgICBpZiAoIWZvdW5kSXRl
bSkKKyAgICBVUkxUb0VudHJpZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9lbnRyaWVzQnlVUkwuZmlu
ZCh1cmwpOworICAgIGlmIChpdCA9PSBtX2VudHJpZXNCeVVSTC5lbmQoKSkKICAgICAgICAgcmV0
dXJuIEVfRkFJTDsKIAotICAgIGZvdW5kSXRlbS0+QWRkUmVmKCk7Ci0gICAgKml0ZW0gPSBmb3Vu
ZEl0ZW07CisgICAgaXQtPnZhbHVlLmNvcHlSZWZUbyhpdGVtKTsKICAgICByZXR1cm4gU19PSzsK
IH0KIAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5OjppdGVtRm9yVVJMKCAK
LSAgICAvKiBbaW5dICovIEJTVFIgdXJsLAotICAgIC8qIFtyZXR2YWxdW291dF0gKi8gSVdlYkhp
c3RvcnlJdGVtKiogaXRlbSkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVybFN0cmlu
ZyA9IGFkb3B0Q0YoTWFyc2hhbGxpbmdIZWxwZXJzOjpCU1RSVG9DRlN0cmluZ1JlZih1cmwpKTsK
LSAgICByZXR1cm4gaXRlbUZvclVSTFN0cmluZyh1cmxTdHJpbmcuZ2V0KCksIGl0ZW0pOwotfQot
Ci1IUkVTVUxUIFdlYkhpc3Rvcnk6OnJlbW92ZUl0ZW1Gb3JVUkxTdHJpbmcoQ0ZTdHJpbmdSZWYg
dXJsU3RyaW5nKQorSFJFU1VMVCBXZWJIaXN0b3J5OjpyZW1vdmVJdGVtRm9yVVJMU3RyaW5nKGNv
bnN0IFdURjo6U3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgSVdlYkhpc3RvcnlJdGVtKiBlbnRy
eSA9IChJV2ViSGlzdG9yeUl0ZW0qKSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2VudHJpZXNCeVVS
TC5nZXQoKSwgdXJsU3RyaW5nKTsKLSAgICBpZiAoIWVudHJ5KSAKKyAgICBVUkxUb0VudHJpZXNN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9lbnRyaWVzQnlVUkwuZmluZCh1cmxTdHJpbmcpOworICAgIGlm
IChpdCA9PSBtX2VudHJpZXNCeVVSTC5lbmQoKSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAot
ICAgIEhSRVNVTFQgaHIgPSByZW1vdmVJdGVtRnJvbURhdGVDYWNoZXMoZW50cnkpOwotICAgIENG
RGljdGlvbmFyeVJlbW92ZVZhbHVlKG1fZW50cmllc0J5VVJMLmdldCgpLCB1cmxTdHJpbmcpOwor
ICAgIEhSRVNVTFQgaHIgPSByZW1vdmVJdGVtRnJvbURhdGVDYWNoZXMoaXQtPnZhbHVlLmdldCgp
KTsKKyAgICBtX2VudHJpZXNCeVVSTC5yZW1vdmUoaXQpOwogCi0gICAgaWYgKCFDRkRpY3Rpb25h
cnlHZXRDb3VudChtX2VudHJpZXNCeVVSTC5nZXQoKSkpCisgICAgaWYgKCFtX2VudHJpZXNCeVVS
TC5zaXplKCkpCiAgICAgICAgIFBhZ2VHcm91cDo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiAK
ICAgICByZXR1cm4gaHI7CkBAIC01NzIsMTAgKzU2Myw3IEBAIENPTVB0cjxJV2ViSGlzdG9yeUl0
ZW0+IFdlYkhpc3Rvcnk6Oml0ZW1Gb3JVUkxTdHJpbmcoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
IGNvCiB7CiAgICAgaWYgKCF1cmxTdHJpbmcpCiAgICAgICAgIHJldHVybiAwOwotICAgIENPTVB0
cjxJV2ViSGlzdG9yeUl0ZW0+IGl0ZW07Ci0gICAgaWYgKEZBSUxFRChpdGVtRm9yVVJMU3RyaW5n
KHVybFN0cmluZy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAmaXRlbSkpKQotICAgICAgICByZXR1
cm4gMDsKLSAgICByZXR1cm4gaXRlbTsKKyAgICByZXR1cm4gbV9lbnRyaWVzQnlVUkwuZ2V0KHVy
bFN0cmluZyk7CiB9CiAKIEhSRVNVTFQgV2ViSGlzdG9yeTo6YWRkSXRlbVRvRGF0ZUNhY2hlcyhJ
V2ViSGlzdG9yeUl0ZW0qIGVudHJ5KQpAQCAtNzY0LDIzICs3NTIsMTAgQEAgSFJFU1VMVCBXZWJI
aXN0b3J5OjphZ2VMaW1pdERhdGUoQ0ZBYnNvbHV0ZVRpbWUqIHRpbWUpCiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZFZpc2l0ZWRMaW5rVG9QYWdlR3JvdXAoY29uc3Qgdm9p
ZCoga2V5LCBjb25zdCB2b2lkKiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBDRlN0cmluZ1JlZiB1
cmwgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oa2V5KTsKLSAgICBQYWdlR3JvdXAqIGdyb3Vw
ID0gc3RhdGljX2Nhc3Q8UGFnZUdyb3VwKj4oY29udGV4dCk7Ci0KLSAgICBDRkluZGV4IGxlbmd0
aCA9IENGU3RyaW5nR2V0TGVuZ3RoKHVybCk7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMg
PSByZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4oQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJzUHRy
KHVybCkpOwotICAgIGlmIChjaGFyYWN0ZXJzKQotICAgICAgICBncm91cC0+YWRkVmlzaXRlZExp
bmsoY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgVmVjdG9yPFVDaGFy
LCA1MTI+IGJ1ZmZlcihsZW5ndGgpOwotICAgICAgICBDRlN0cmluZ0dldENoYXJhY3RlcnModXJs
LCBDRlJhbmdlTWFrZSgwLCBsZW5ndGgpLCByZWludGVycHJldF9jYXN0PFVuaUNoYXIqPihidWZm
ZXIuZGF0YSgpKSk7Ci0gICAgICAgIGdyb3VwLT5hZGRWaXNpdGVkTGluayhidWZmZXIuZGF0YSgp
LCBsZW5ndGgpOwotICAgIH0KLX0KLQogdm9pZCBXZWJIaXN0b3J5OjphZGRWaXNpdGVkTGlua3NU
b1BhZ2VHcm91cChQYWdlR3JvdXAmIGdyb3VwKQogewotICAgIENGRGljdGlvbmFyeUFwcGx5RnVu
Y3Rpb24obV9lbnRyaWVzQnlVUkwuZ2V0KCksIGFkZFZpc2l0ZWRMaW5rVG9QYWdlR3JvdXAsICZn
cm91cCk7CisgICAgZm9yIChVUkxUb0VudHJpZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9l
bnRyaWVzQnlVUkwuYmVnaW4oKTsgaXQgIT0gbV9lbnRyaWVzQnlVUkwuZW5kKCk7ICsraXQpIHsK
KyAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwgPSBpdC0+a2V5OworICAgICAgICBncm91cC5hZGRW
aXNpdGVkTGluayh1cmwuY2hhcmFjdGVycygpLCB1cmwubGVuZ3RoKCkpOworICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkhpc3RvcnkuaAppbmRleCBhZWZiMmM4Li5hMGQzZGUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSGlz
dG9yeS5oCkBAIC0xMTgsNiArMTE4LDcgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBpbnQ2NF90
IERhdGVLZXk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPERhdGVLZXksIFJldGFpblB0cjxDRk11dGFi
bGVBcnJheVJlZj4gPiBEYXRlVG9FbnRyaWVzTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxXVEY6
OlN0cmluZywgQ09NUHRyPElXZWJIaXN0b3J5SXRlbT4gPiBVUkxUb0VudHJpZXNNYXA7CiAKIHBy
aXZhdGU6CiAKQEAgLTEzNCw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIEhSRVNVTFQgcG9zdE5v
dGlmaWNhdGlvbihOb3RpZmljYXRpb25UeXBlIG5vdGlmeVR5cGUsIElQcm9wZXJ0eUJhZyogdXNl
ckluZm8gPSAwKTsKICAgICBIUkVTVUxUIHJlbW92ZUl0ZW0oSVdlYkhpc3RvcnlJdGVtKiBlbnRy
eSk7CiAgICAgSFJFU1VMVCBhZGRJdGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnksIGJvb2wgZGlz
Y2FyZER1cGxpY2F0ZSwgYm9vbCogYWRkZWQpOwotICAgIEhSRVNVTFQgcmVtb3ZlSXRlbUZvclVS
TFN0cmluZyhDRlN0cmluZ1JlZiB1cmxTdHJpbmcpOworICAgIEhSRVNVTFQgcmVtb3ZlSXRlbUZv
clVSTFN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYgdXJsU3RyaW5nKTsKICAgICBIUkVTVUxUIGFk
ZEl0ZW1Ub0RhdGVDYWNoZXMoSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSk7CiAgICAgSFJFU1VMVCBy
ZW1vdmVJdGVtRnJvbURhdGVDYWNoZXMoSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSk7CiAgICAgSFJF
U1VMVCBpbnNlcnRJdGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnksIERhdGVLZXkpOwpAQCAtMTQy
LDEwICsxNDMsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgZmluZEtleShEYXRlS2V5KiwgQ0ZBYnNv
bHV0ZVRpbWUgZm9yRGF5KTsKICAgICBzdGF0aWMgQ0ZBYnNvbHV0ZVRpbWUgdGltZVRvRGF0ZShD
RkFic29sdXRlVGltZSB0aW1lKTsKICAgICBCU1RSIGdldE5vdGlmaWNhdGlvblN0cmluZyhOb3Rp
ZmljYXRpb25UeXBlIG5vdGlmeVR5cGUpOwotICAgIEhSRVNVTFQgaXRlbUZvclVSTFN0cmluZyhD
RlN0cmluZ1JlZiB1cmxTdHJpbmcsIElXZWJIaXN0b3J5SXRlbSoqIGl0ZW0pIGNvbnN0OwogCiAg
ICAgVUxPTkcgbV9yZWZDb3VudDsKLSAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJl
Zj4gbV9lbnRyaWVzQnlVUkw7CisgICAgVVJMVG9FbnRyaWVzTWFwIG1fZW50cmllc0J5VVJMOwog
ICAgIERhdGVUb0VudHJpZXNNYXAgbV9lbnRyaWVzQnlEYXRlOwogICAgIE93bkFycmF5UHRyPERB
VEU+IG1fb3JkZXJlZExhc3RWaXNpdGVkRGF5czsKICAgICBDT01QdHI8V2ViUHJlZmVyZW5jZXM+
IG1fcHJlZmVyZW5jZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211733</attachid>
            <date>2013-09-15 18:29:44 -0700</date>
            <delta_ts>2013-09-18 10:31:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119389-20130916032941.patch</filename>
            <type>text/plain</type>
            <size>11830</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYzhhZDdhYTk2
NDk0ZmVhZTU5NGJjMDEwMjM2YjFmMGYzODM3YzgwYy4uMzFmN2FkOTkwOGUzMjAzYjBjMWNiNDcw
OGYyMjczYTc5NmNmNTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEz
LTA5LTE1ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCisgICAgICAg
IE1ha2UgV2ViSGlzdG9yeSBtb3JlIHR5cGUgc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5Mzg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGEgV1RGOjpIYXNoTWFwIGluc3RlYWQgb2YgYSBD
Rk11dGFibGVEaWN0aW9uYXJ5IHRvIGF2b2lkCisgICAgICAgIGNhc3RpbmcgZnJvbSB2b2lkKiBh
bGwgdGhlIHRpbWUgd2hlbiBhY2Nlc3NpbmcgdGhlIGVudHJpZXMuCisgICAgICAgIFRoaXMgcmVk
dWNlcyB0aGUgZGVwZW5kZW5jaWVzIG9uIENvcmVGb3VuZGF0aW9uIHRvby4KKworICAgICAgICAq
IFdlYkhpc3RvcnkuY3BwOgorICAgICAgICAoV2ViSGlzdG9yeTo6V2ViSGlzdG9yeSk6CisgICAg
ICAgIChXZWJIaXN0b3J5OjpyZW1vdmVBbGxJdGVtcyk6CisgICAgICAgIChXZWJIaXN0b3J5Ojph
bGxJdGVtcyk6CisgICAgICAgIChXZWJIaXN0b3J5OjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdl
Ykhpc3Rvcnk6OmFkZEl0ZW0pOgorICAgICAgICAoV2ViSGlzdG9yeTo6dmlzaXRlZFVSTCk6Cisg
ICAgICAgIChXZWJIaXN0b3J5OjppdGVtRm9yVVJMKToKKyAgICAgICAgKFdlYkhpc3Rvcnk6OnJl
bW92ZUl0ZW1Gb3JVUkxTdHJpbmcpOgorICAgICAgICAoV2ViSGlzdG9yeTo6aXRlbUZvclVSTFN0
cmluZyk6CisgICAgICAgIChXZWJIaXN0b3J5OjphZGRWaXNpdGVkTGlua3NUb1BhZ2VHcm91cCk6
CisgICAgICAgICogV2ViSGlzdG9yeS5oOgorCisyMDEzLTA5LTE1ICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbW92ZSBkZXBlbmRlbmN5IG9uIENv
cmVGb3VuZGF0aW9uIGZyb20gV2ViSWNvbkRhdGFiYXNlCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzODcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmNw
cAppbmRleCBmZjFjZGYyY2Y3NTM0ZDIzMTFhN2ZmYzA0MWEwNzU3ZmRhODhkNTQ2Li42NTE4MDIz
NGFlMDI2NTFkMGU0OTdhNTg4YWJkNjM3ZjhmZjkxYmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJIaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5
LmNwcApAQCAtODQsOCArODQsNiBAQCBXZWJIaXN0b3J5OjpXZWJIaXN0b3J5KCkKICAgICBnQ2xh
c3NDb3VudCsrOwogICAgIGdDbGFzc05hbWVDb3VudC5hZGQoIldlYkhpc3RvcnkiKTsKIAotICAg
IG1fZW50cmllc0J5VVJMID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKDAsIDAs
ICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJk1hcnNoYWxsaW5nSGVscGVyczo6a0lV
bmtub3duRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0KICAgICBtX3ByZWZlcmVuY2VzID0g
V2ViUHJlZmVyZW5jZXM6OnNoYXJlZFN0YW5kYXJkUHJlZmVyZW5jZXMoKTsKIH0KIApAQCAtMjQ0
LDEyICsyNDIsMTIgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5OjpyZW1v
dmVBbGxJdGVtcyggdm9pZCkKICAgICBtX2VudHJpZXNCeURhdGUuY2xlYXIoKTsKICAgICBtX29y
ZGVyZWRMYXN0VmlzaXRlZERheXMuY2xlYXIoKTsKIAotICAgIENGSW5kZXggaXRlbUNvdW50ID0g
Q0ZEaWN0aW9uYXJ5R2V0Q291bnQobV9lbnRyaWVzQnlVUkwuZ2V0KCkpOwotICAgIFZlY3RvcjxJ
V2ViSGlzdG9yeUl0ZW0qPiBpdGVtc1ZlY3RvcihpdGVtQ291bnQpOwotICAgIENGRGljdGlvbmFy
eUdldEtleXNBbmRWYWx1ZXMobV9lbnRyaWVzQnlVUkwuZ2V0KCksIDAsIChjb25zdCB2b2lkKiop
aXRlbXNWZWN0b3IuZGF0YSgpKTsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gYWxsSXRlbXMg
PSBhZG9wdENGKENGQXJyYXlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQq
KilpdGVtc1ZlY3Rvci5kYXRhKCksIGl0ZW1Db3VudCwgJk1hcnNoYWxsaW5nSGVscGVyczo6a0lV
bmtub3duQXJyYXlDYWxsQmFja3MpKTsKKyAgICBWZWN0b3I8SVdlYkhpc3RvcnlJdGVtKj4gaXRl
bXNWZWN0b3IobV9lbnRyaWVzQnlVUkwuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8gaXQgPSBtX2Vu
dHJpZXNCeVVSTC5iZWdpbigpOyBpdCAhPSBtX2VudHJpZXNCeVVSTC5lbmQoKTsgKytpdCkKKyAg
ICAgICAgaXRlbXNWZWN0b3IuYXBwZW5kKGl0LT52YWx1ZS5nZXQoKSk7CisgICAgUmV0YWluUHRy
PENGQXJyYXlSZWY+IGFsbEl0ZW1zID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChjb25zdCB2b2lkKiopaXRlbXNWZWN0b3IuZGF0YSgpLCBpdGVtc1ZlY3Rvci5z
aXplKCksICZNYXJzaGFsbGluZ0hlbHBlcnM6OmtJVW5rbm93bkFycmF5Q2FsbEJhY2tzKSk7CiAK
LSAgICBDRkRpY3Rpb25hcnlSZW1vdmVBbGxWYWx1ZXMobV9lbnRyaWVzQnlVUkwuZ2V0KCkpOwor
ICAgIG1fZW50cmllc0J5VVJMLmNsZWFyKCk7CiAKICAgICBQYWdlR3JvdXA6OnJlbW92ZUFsbFZp
c2l0ZWRMaW5rcygpOwogCkBAIC0zMzAsNyArMzI4LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJIaXN0b3J5OjphbGxJdGVtcygKICAgICAvKiBbb3V0XVtpbl0gKi8gaW50KiBjb3Vu
dCwKICAgICAvKiBbb3V0XVtyZXR2YWxdICovIElXZWJIaXN0b3J5SXRlbSoqIGl0ZW1zKQogewot
ICAgIGludCBlbnRyaWVzQnlVUkxDb3VudCA9IENGRGljdGlvbmFyeUdldENvdW50KG1fZW50cmll
c0J5VVJMLmdldCgpKTsKKyAgICBpbnQgZW50cmllc0J5VVJMQ291bnQgPSBtX2VudHJpZXNCeVVS
TC5zaXplKCk7CiAKICAgICBpZiAoIWl0ZW1zKSB7CiAgICAgICAgICpjb3VudCA9IGVudHJpZXNC
eVVSTENvdW50OwpAQCAtMzQzLDkgKzM0MSwxMSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkhpc3Rvcnk6OmFsbEl0ZW1zKAogICAgIH0KIAogICAgICpjb3VudCA9IGVudHJpZXNCeVVS
TENvdW50OwotICAgIENGRGljdGlvbmFyeUdldEtleXNBbmRWYWx1ZXMobV9lbnRyaWVzQnlVUkwu
Z2V0KCksIDAsIChjb25zdCB2b2lkKiopaXRlbXMpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
ZW50cmllc0J5VVJMQ291bnQ7IGkrKykKKyAgICBpbnQgaSA9IDA7CisgICAgZm9yIChhdXRvIGl0
ID0gbV9lbnRyaWVzQnlVUkwuYmVnaW4oKTsgaXQgIT0gbV9lbnRyaWVzQnlVUkwuZW5kKCk7ICsr
aSwgKytpdCkgeworICAgICAgICBpdGVtc1tpXSA9IGl0LT52YWx1ZS5nZXQoKTsKICAgICAgICAg
aXRlbXNbaV0tPkFkZFJlZigpOworICAgIH0KIAogICAgIHJldHVybiBTX09LOwogfQpAQCAtNDAz
LDE2ICs0MDMsMTkgQEAgSFJFU1VMVCBXZWJIaXN0b3J5OjpyZW1vdmVJdGVtKElXZWJIaXN0b3J5
SXRlbSogZW50cnkpCiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKIAot
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdXJsU3RyaW5nID0gYWRvcHRDRihNYXJzaGFsbGlu
Z0hlbHBlcnM6OkJTVFJUb0NGU3RyaW5nUmVmKHVybEJTdHIpKTsKKyAgICBTdHJpbmcgdXJsU3Ry
aW5nKHVybEJTdHIsIFN5c1N0cmluZ0xlbih1cmxCU3RyKSk7CisKKyAgICBhdXRvIGl0ID0gbV9l
bnRyaWVzQnlVUkwuZmluZCh1cmxTdHJpbmcpOworICAgIGlmIChpdCA9PSBtX2VudHJpZXNCeVVS
TC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAogICAgIC8vIElmIHRoaXMgZXhhY3Qg
b2JqZWN0IGlzbid0IHN0b3JlZCwgdGhlbiBtYWtlIG5vIGNoYW5nZS4KICAgICAvLyBGSVhNRTog
SXMgdGhpcyB0aGUgcmlnaHQgYmVoYXZpb3IgaWYgdGhpcyBlbnRyeSBpc24ndCBwcmVzZW50LCBi
dXQgYW5vdGhlciBlbnRyeSBmb3IgdGhlIHNhbWUgVVJMIGlzPwogICAgIC8vIE1heWJlIG5lZWQg
dG8gY2hhbmdlIHRoZSBBUEkgdG8gbWFrZSBzb21ldGhpbmcgbGlrZSByZW1vdmVFbnRyeUZvclVS
TFN0cmluZyBwdWJsaWMgaW5zdGVhZC4KLSAgICBJV2ViSGlzdG9yeUl0ZW0gKm1hdGNoaW5nRW50
cnkgPSAoSVdlYkhpc3RvcnlJdGVtKilDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2VudHJpZXNCeVVS
TC5nZXQoKSwgdXJsU3RyaW5nLmdldCgpKTsKLSAgICBpZiAobWF0Y2hpbmdFbnRyeSAhPSBlbnRy
eSkKKyAgICBpZiAoaXQtPnZhbHVlLmdldCgpICE9IGVudHJ5KQogICAgICAgICByZXR1cm4gRV9G
QUlMOwogCi0gICAgaHIgPSByZW1vdmVJdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZy5nZXQoKSk7
CisgICAgaHIgPSByZW1vdmVJdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZyk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKIApAQCAtNDM1LDE5ICs0MzgsMTggQEAgSFJF
U1VMVCBXZWJIaXN0b3J5OjphZGRJdGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnksIGJvb2wgZGlz
Y2FyZER1cGxpY2F0ZSwgYm9vbCoKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJu
IGhyOwogCi0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1cmxTdHJpbmcgPSBhZG9wdENGKE1h
cnNoYWxsaW5nSGVscGVyczo6QlNUUlRvQ0ZTdHJpbmdSZWYodXJsQlN0cikpOworICAgIFN0cmlu
ZyB1cmxTdHJpbmcodXJsQlN0ciwgU3lzU3RyaW5nTGVuKHVybEJTdHIpKTsKKworICAgIENPTVB0
cjxJV2ViSGlzdG9yeUl0ZW0+IG9sZEVudHJ5KG1fZW50cmllc0J5VVJMLmdldCh1cmxTdHJpbmcp
KTsKIAotICAgIENPTVB0cjxJV2ViSGlzdG9yeUl0ZW0+IG9sZEVudHJ5KChJV2ViSGlzdG9yeUl0
ZW0qKSBDRkRpY3Rpb25hcnlHZXRWYWx1ZSgKLSAgICAgICAgbV9lbnRyaWVzQnlVUkwuZ2V0KCks
IHVybFN0cmluZy5nZXQoKSkpOwotICAgIAogICAgIGlmIChvbGRFbnRyeSkgewogICAgICAgICBp
ZiAoZGlzY2FyZER1cGxpY2F0ZSkgewogICAgICAgICAgICAgaWYgKGFkZGVkKQogICAgICAgICAg
ICAgICAgICphZGRlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIFNfT0s7CiAgICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIHJlbW92ZUl0ZW1Gb3JVUkxTdHJpbmcodXJsU3RyaW5nLmdl
dCgpKTsKKworICAgICAgICByZW1vdmVJdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZyk7CiAKICAg
ICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGFuIGl0ZW0gd2l0aCB0aGlzIFVSTCwgd2UgbmVl
ZCB0byBtZXJnZSBpbmZvIHRoYXQgZHJpdmVzIHRoZQogICAgICAgICAvLyBVUkwgYXV0b2NvbXBs
ZXRlIGhldXJpc3RpY3MgZnJvbSB0aGF0IGl0ZW0gaW50byB0aGUgbmV3IG9uZS4KQEAgLTQ2Myw3
ICs0NjUsNyBAQCBIUkVTVUxUIFdlYkhpc3Rvcnk6OmFkZEl0ZW0oSVdlYkhpc3RvcnlJdGVtKiBl
bnRyeSwgYm9vbCBkaXNjYXJkRHVwbGljYXRlLCBib29sKgogICAgIGlmIChGQUlMRUQoaHIpKQog
ICAgICAgICByZXR1cm4gaHI7CiAKLSAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2VudHJpZXNC
eVVSTC5nZXQoKSwgdXJsU3RyaW5nLmdldCgpLCBlbnRyeSk7CisgICAgbV9lbnRyaWVzQnlVUkwu
c2V0KHVybFN0cmluZywgZW50cnkpOwogCiAgICAgQ09NUHRyPENGRGljdGlvbmFyeVByb3BlcnR5
QmFnPiB1c2VySW5mbyA9IGNyZWF0ZVVzZXJJbmZvRnJvbUhpc3RvcnlJdGVtKAogICAgICAgICBn
ZXROb3RpZmljYXRpb25TdHJpbmcoa1dlYkhpc3RvcnlJdGVtc0FkZGVkTm90aWZpY2F0aW9uKSwg
ZW50cnkpOwpAQCAtNDc3LDkgKzQ3OSw3IEBAIEhSRVNVTFQgV2ViSGlzdG9yeTo6YWRkSXRlbShJ
V2ViSGlzdG9yeUl0ZW0qIGVudHJ5LCBib29sIGRpc2NhcmREdXBsaWNhdGUsIGJvb2wqCiAKIHZv
aWQgV2ViSGlzdG9yeTo6dmlzaXRlZFVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCwgYm9vbCB3YXNGYWlsdXJlLCBib29sIGlu
Y3JlYXNlVmlzaXRDb3VudCkKIHsKLSAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVybFN0cmlu
ZyA9IHVybC5zdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpOwotCi0gICAgSVdlYkhpc3RvcnlJdGVt
KiBlbnRyeSA9IChJV2ViSGlzdG9yeUl0ZW0qKUNGRGljdGlvbmFyeUdldFZhbHVlKG1fZW50cmll
c0J5VVJMLmdldCgpLCB1cmxTdHJpbmcuZ2V0KCkpOworICAgIElXZWJIaXN0b3J5SXRlbSogZW50
cnkgPSBtX2VudHJpZXNCeVVSTC5nZXQodXJsLnN0cmluZygpKS5nZXQoKTsKICAgICBpZiAoZW50
cnkpIHsKICAgICAgICAgQ09NUHRyPElXZWJIaXN0b3J5SXRlbVByaXZhdGU+IGVudHJ5UHJpdmF0
ZShRdWVyeSwgZW50cnkpOwogICAgICAgICBpZiAoIWVudHJ5UHJpdmF0ZSkKQEAgLTUwNyw3ICs1
MDcsNyBAQCB2b2lkIFdlYkhpc3Rvcnk6OnZpc2l0ZWRVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIAogICAgICAgICBpdGVtLT5y
ZWNvcmRJbml0aWFsVmlzaXQoKTsKIAotICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShtX2Vu
dHJpZXNCeVVSTC5nZXQoKSwgdXJsU3RyaW5nLmdldCgpLCBlbnRyeSk7CisgICAgICAgIG1fZW50
cmllc0J5VVJMLnNldCh1cmwuc3RyaW5nKCksIGVudHJ5KTsKICAgICB9CiAKICAgICBhZGRJdGVt
VG9EYXRlQ2FjaGVzKGVudHJ5KTsKQEAgLTUyOCw0MSArNTI4LDMwIEBAIHZvaWQgV2ViSGlzdG9y
eTo6dmlzaXRlZFVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYKICAgICBwb3N0Tm90aWZpY2F0aW9uKGtXZWJIaXN0b3J5SXRlbXNBZGRlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8uZ2V0KCkpOwogfQogCi1IUkVTVUxUIFdlYkhpc3Rvcnk6Oml0ZW1G
b3JVUkxTdHJpbmcoCi0gICAgLyogW2luXSAqLyBDRlN0cmluZ1JlZiB1cmxTdHJpbmcsCi0gICAg
LyogW3JldHZhbF1bb3V0XSAqLyBJV2ViSGlzdG9yeUl0ZW0qKiBpdGVtKSBjb25zdAorSFJFU1VM
VCBXZWJIaXN0b3J5OjppdGVtRm9yVVJMKEJTVFIgdXJsLCBJV2ViSGlzdG9yeUl0ZW0qKiBpdGVt
KQogewogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICAqaXRlbSA9
IDA7CiAKLSAgICBJV2ViSGlzdG9yeUl0ZW0qIGZvdW5kSXRlbSA9IChJV2ViSGlzdG9yeUl0ZW0q
KSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2VudHJpZXNCeVVSTC5nZXQoKSwgdXJsU3RyaW5nKTsK
LSAgICBpZiAoIWZvdW5kSXRlbSkKKyAgICBhdXRvIGl0ID0gbV9lbnRyaWVzQnlVUkwuZmluZCh1
cmwpOworICAgIGlmIChpdCA9PSBtX2VudHJpZXNCeVVSTC5lbmQoKSkKICAgICAgICAgcmV0dXJu
IEVfRkFJTDsKIAotICAgIGZvdW5kSXRlbS0+QWRkUmVmKCk7Ci0gICAgKml0ZW0gPSBmb3VuZEl0
ZW07CisgICAgaXQtPnZhbHVlLmNvcHlSZWZUbyhpdGVtKTsKICAgICByZXR1cm4gU19PSzsKIH0K
IAotSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5OjppdGVtRm9yVVJMKCAKLSAg
ICAvKiBbaW5dICovIEJTVFIgdXJsLAotICAgIC8qIFtyZXR2YWxdW291dF0gKi8gSVdlYkhpc3Rv
cnlJdGVtKiogaXRlbSkKK0hSRVNVTFQgV2ViSGlzdG9yeTo6cmVtb3ZlSXRlbUZvclVSTFN0cmlu
Zyhjb25zdCBXVEY6OlN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gdXJsU3RyaW5nID0gYWRvcHRDRihNYXJzaGFsbGluZ0hlbHBlcnM6OkJTVFJUb0NGU3Ry
aW5nUmVmKHVybCkpOwotICAgIHJldHVybiBpdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZy5nZXQo
KSwgaXRlbSk7Ci19Ci0KLUhSRVNVTFQgV2ViSGlzdG9yeTo6cmVtb3ZlSXRlbUZvclVSTFN0cmlu
ZyhDRlN0cmluZ1JlZiB1cmxTdHJpbmcpCi17Ci0gICAgSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSA9
IChJV2ViSGlzdG9yeUl0ZW0qKSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2VudHJpZXNCeVVSTC5n
ZXQoKSwgdXJsU3RyaW5nKTsKLSAgICBpZiAoIWVudHJ5KSAKKyAgICBhdXRvIGl0ID0gbV9lbnRy
aWVzQnlVUkwuZmluZCh1cmxTdHJpbmcpOworICAgIGlmIChpdCA9PSBtX2VudHJpZXNCeVVSTC5l
bmQoKSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIEhSRVNVTFQgaHIgPSByZW1vdmVJ
dGVtRnJvbURhdGVDYWNoZXMoZW50cnkpOwotICAgIENGRGljdGlvbmFyeVJlbW92ZVZhbHVlKG1f
ZW50cmllc0J5VVJMLmdldCgpLCB1cmxTdHJpbmcpOworICAgIEhSRVNVTFQgaHIgPSByZW1vdmVJ
dGVtRnJvbURhdGVDYWNoZXMoaXQtPnZhbHVlLmdldCgpKTsKKyAgICBtX2VudHJpZXNCeVVSTC5y
ZW1vdmUoaXQpOwogCi0gICAgaWYgKCFDRkRpY3Rpb25hcnlHZXRDb3VudChtX2VudHJpZXNCeVVS
TC5nZXQoKSkpCisgICAgaWYgKCFtX2VudHJpZXNCeVVSTC5zaXplKCkpCiAgICAgICAgIFBhZ2VH
cm91cDo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiAKICAgICByZXR1cm4gaHI7CkBAIC01NzIs
MTAgKzU2MSw3IEBAIENPTVB0cjxJV2ViSGlzdG9yeUl0ZW0+IFdlYkhpc3Rvcnk6Oml0ZW1Gb3JV
UkxTdHJpbmcoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvCiB7CiAgICAgaWYgKCF1cmxTdHJp
bmcpCiAgICAgICAgIHJldHVybiAwOwotICAgIENPTVB0cjxJV2ViSGlzdG9yeUl0ZW0+IGl0ZW07
Ci0gICAgaWYgKEZBSUxFRChpdGVtRm9yVVJMU3RyaW5nKHVybFN0cmluZy5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCAmaXRlbSkpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gaXRlbTsK
KyAgICByZXR1cm4gbV9lbnRyaWVzQnlVUkwuZ2V0KHVybFN0cmluZyk7CiB9CiAKIEhSRVNVTFQg
V2ViSGlzdG9yeTo6YWRkSXRlbVRvRGF0ZUNhY2hlcyhJV2ViSGlzdG9yeUl0ZW0qIGVudHJ5KQpA
QCAtNzY0LDIzICs3NTAsMTAgQEAgSFJFU1VMVCBXZWJIaXN0b3J5OjphZ2VMaW1pdERhdGUoQ0ZB
YnNvbHV0ZVRpbWUqIHRpbWUpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLXN0YXRpYyB2b2lkIGFk
ZFZpc2l0ZWRMaW5rVG9QYWdlR3JvdXAoY29uc3Qgdm9pZCoga2V5LCBjb25zdCB2b2lkKiwgdm9p
ZCogY29udGV4dCkKLXsKLSAgICBDRlN0cmluZ1JlZiB1cmwgPSBzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4oa2V5KTsKLSAgICBQYWdlR3JvdXAqIGdyb3VwID0gc3RhdGljX2Nhc3Q8UGFnZUdyb3Vw
Kj4oY29udGV4dCk7Ci0KLSAgICBDRkluZGV4IGxlbmd0aCA9IENGU3RyaW5nR2V0TGVuZ3RoKHVy
bCk7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSByZWludGVycHJldF9jYXN0PGNvbnN0
IFVDaGFyKj4oQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKHVybCkpOwotICAgIGlmIChjaGFyYWN0
ZXJzKQotICAgICAgICBncm91cC0+YWRkVmlzaXRlZExpbmsoY2hhcmFjdGVycywgbGVuZ3RoKTsK
LSAgICBlbHNlIHsKLSAgICAgICAgVmVjdG9yPFVDaGFyLCA1MTI+IGJ1ZmZlcihsZW5ndGgpOwot
ICAgICAgICBDRlN0cmluZ0dldENoYXJhY3RlcnModXJsLCBDRlJhbmdlTWFrZSgwLCBsZW5ndGgp
LCByZWludGVycHJldF9jYXN0PFVuaUNoYXIqPihidWZmZXIuZGF0YSgpKSk7Ci0gICAgICAgIGdy
b3VwLT5hZGRWaXNpdGVkTGluayhidWZmZXIuZGF0YSgpLCBsZW5ndGgpOwotICAgIH0KLX0KLQog
dm9pZCBXZWJIaXN0b3J5OjphZGRWaXNpdGVkTGlua3NUb1BhZ2VHcm91cChQYWdlR3JvdXAmIGdy
b3VwKQogewotICAgIENGRGljdGlvbmFyeUFwcGx5RnVuY3Rpb24obV9lbnRyaWVzQnlVUkwuZ2V0
KCksIGFkZFZpc2l0ZWRMaW5rVG9QYWdlR3JvdXAsICZncm91cCk7CisgICAgZm9yIChhdXRvIGl0
ID0gbV9lbnRyaWVzQnlVUkwuYmVnaW4oKTsgaXQgIT0gbV9lbnRyaWVzQnlVUkwuZW5kKCk7ICsr
aXQpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwgPSBpdC0+a2V5OworICAgICAgICBncm91
cC5hZGRWaXNpdGVkTGluayh1cmwuY2hhcmFjdGVycygpLCB1cmwubGVuZ3RoKCkpOworICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuaCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkhpc3RvcnkuaAppbmRleCBhZWZiMmM4Y2E1YTY0M2JmY2ZjN2VhNmVlM2M4
NDVjOGQ0YmQ1OTYyLi5hMGQzZGUxOWY1MWI1ZjE3MTUwYWJlOWI3ZTk0Mjg1YjEyZmRkMzdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0b3J5LmgKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViSGlzdG9yeS5oCkBAIC0xMTgsNiArMTE4LDcgQEAgcHVibGljOgogCiAgICAg
dHlwZWRlZiBpbnQ2NF90IERhdGVLZXk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPERhdGVLZXksIFJl
dGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gPiBEYXRlVG9FbnRyaWVzTWFwOworICAgIHR5cGVk
ZWYgSGFzaE1hcDxXVEY6OlN0cmluZywgQ09NUHRyPElXZWJIaXN0b3J5SXRlbT4gPiBVUkxUb0Vu
dHJpZXNNYXA7CiAKIHByaXZhdGU6CiAKQEAgLTEzNCw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAg
IEhSRVNVTFQgcG9zdE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25UeXBlIG5vdGlmeVR5cGUsIElQ
cm9wZXJ0eUJhZyogdXNlckluZm8gPSAwKTsKICAgICBIUkVTVUxUIHJlbW92ZUl0ZW0oSVdlYkhp
c3RvcnlJdGVtKiBlbnRyeSk7CiAgICAgSFJFU1VMVCBhZGRJdGVtKElXZWJIaXN0b3J5SXRlbSog
ZW50cnksIGJvb2wgZGlzY2FyZER1cGxpY2F0ZSwgYm9vbCogYWRkZWQpOwotICAgIEhSRVNVTFQg
cmVtb3ZlSXRlbUZvclVSTFN0cmluZyhDRlN0cmluZ1JlZiB1cmxTdHJpbmcpOworICAgIEhSRVNV
TFQgcmVtb3ZlSXRlbUZvclVSTFN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYgdXJsU3RyaW5nKTsK
ICAgICBIUkVTVUxUIGFkZEl0ZW1Ub0RhdGVDYWNoZXMoSVdlYkhpc3RvcnlJdGVtKiBlbnRyeSk7
CiAgICAgSFJFU1VMVCByZW1vdmVJdGVtRnJvbURhdGVDYWNoZXMoSVdlYkhpc3RvcnlJdGVtKiBl
bnRyeSk7CiAgICAgSFJFU1VMVCBpbnNlcnRJdGVtKElXZWJIaXN0b3J5SXRlbSogZW50cnksIERh
dGVLZXkpOwpAQCAtMTQyLDEwICsxNDMsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgZmluZEtleShE
YXRlS2V5KiwgQ0ZBYnNvbHV0ZVRpbWUgZm9yRGF5KTsKICAgICBzdGF0aWMgQ0ZBYnNvbHV0ZVRp
bWUgdGltZVRvRGF0ZShDRkFic29sdXRlVGltZSB0aW1lKTsKICAgICBCU1RSIGdldE5vdGlmaWNh
dGlvblN0cmluZyhOb3RpZmljYXRpb25UeXBlIG5vdGlmeVR5cGUpOwotICAgIEhSRVNVTFQgaXRl
bUZvclVSTFN0cmluZyhDRlN0cmluZ1JlZiB1cmxTdHJpbmcsIElXZWJIaXN0b3J5SXRlbSoqIGl0
ZW0pIGNvbnN0OwogCiAgICAgVUxPTkcgbV9yZWZDb3VudDsKLSAgICBSZXRhaW5QdHI8Q0ZNdXRh
YmxlRGljdGlvbmFyeVJlZj4gbV9lbnRyaWVzQnlVUkw7CisgICAgVVJMVG9FbnRyaWVzTWFwIG1f
ZW50cmllc0J5VVJMOwogICAgIERhdGVUb0VudHJpZXNNYXAgbV9lbnRyaWVzQnlEYXRlOwogICAg
IE93bkFycmF5UHRyPERBVEU+IG1fb3JkZXJlZExhc3RWaXNpdGVkRGF5czsKICAgICBDT01QdHI8
V2ViUHJlZmVyZW5jZXM+IG1fcHJlZmVyZW5jZXM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>