<?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>114451</bug_id>
          
          <creation_ts>2013-04-11 10:05:22 -0700</creation_ts>
          <short_desc>Implement more logic in StorageAreaMap</short_desc>
          <delta_ts>2013-04-11 10:42:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>ap</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>873962</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-11 10:05:22 -0700</bug_when>
    <thetext>Implement more logic in StorageAreaMap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873973</commentid>
    <comment_count>1</comment_count>
      <attachid>197638</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-11 10:23:12 -0700</bug_when>
    <thetext>Created attachment 197638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873977</commentid>
    <comment_count>2</comment_count>
      <attachid>197638</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-04-11 10:35:37 -0700</bug_when>
    <thetext>Comment on attachment 197638
Patch

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

&gt; Source/WebKit2/UIProcess/Storage/StorageManager.cpp:101
&gt; +        // FIXME: If this is sent to another process, the source storage area won&apos;t make sense.

I don&apos;t understand this comment. What another process? Is this for the case when a process is restarted after a crash?

Please elaborate, unless you plan to address this very soon.

&gt; Source/WebKit2/WebProcess/Storage/StorageAreaMap.cpp:133
&gt; +    // FIXME: This should use a special sendSync flag to indicate that we don&apos;t want to process incoming messages while waiting for a reply.
&gt; +    // (This flag does not yet exist).

It&apos;s not very obvious why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873978</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-11 10:42:48 -0700</bug_when>
    <thetext>Committed r148215: &lt;http://trac.webkit.org/changeset/148215&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197638</attachid>
            <date>2013-04-11 10:23:12 -0700</date>
            <delta_ts>2013-04-11 10:35:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114451-20130411102252.patch</filename>
            <type>text/plain</type>
            <size>19775</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWQ5NTc5ZmQ5ODQ4NDY2
YzM4MDQ4NDVhODA2ODFiOTBkOTU4ZjhlYi4uOTRjZjdmN2RhMTc0OTM5ZGVjNjVmYjllNjEyOWYy
MmViZTUzMWMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA0LTExICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IG1v
cmUgbG9naWMgaW4gU3RvcmFnZUFyZWFNYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNDQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmg6Cisg
ICAgICAgIChDb3JlSVBDOjpjYWxsTWVtYmVyRnVuY3Rpb24pOgorICAgICAgICBBZGQgbmV3IG92
ZXJsb2FkLgorCisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6OmFkZExpc3Rl
bmVyKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhOjpyZW1v
dmVMaXN0ZW5lcik6CisgICAgICAgIFRoZXNlIHRha2Ugc3RvcmFnZSBtYXAgSURzLgorCisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6c2V0SXRlbSk6CisgICAg
ICAgIFJlbmFtZSBzdG9yYWdlQXJlYUlEIHRvIHNvdXJjZVN0b3JhZ2VBcmVhSUQuCisKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhOjpkaXNwYXRjaEV2ZW50cyk6
CisgICAgICAgIFJlbW92ZSB0aGUgY29kZSB0aGF0IHdvdWxkIG5vdCBkaXNwYXRjaCB0byB0aGUg
c291cmNlIGNvbm5lY3Rpb24sIHRoZXJlIG1heSBzdGlsbCBiZSBzdG9yYWdlIGFyZWFzIGludGVy
ZXN0ZWQgaW4gdGhvc2UgZXZlbnRzLgorCisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2Vy
OjpzZXRJdGVtKToKKyAgICAgICAgVGhpcyBub3cgdGFrZXMgdGhlIHNvdXJjZSBzdG9yYWdlIGFy
ZWEgSUQuCisKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmZpbmRTdG9yYWdlQXJl
YSk6CisgICAgICAgIFRoaXMgdGFrZXMgYSBzdG9yYWdlIG1hcCBJRC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICBTZXRJ
dGVtIG5vdyB0YWtlcyB0aGUgc291cmNlIHN0b3JhZ2UgYXJlYSBJRCBhcyB3ZWxsLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6c2V0SXRlbSk6CisgICAgICAgIFBhc3MgdGhlIHNvdXJj
ZSBmcmFtZSB0byBTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VB
cmVhTWFwOjpTdG9yYWdlQXJlYU1hcCk6CisgICAgICAgIFNlbmQgQ3JlYXRlU3RvcmFnZU1hcCBh
bmQgYWRkIHRoZSBvYmplY3QgYXMgYSBtZXNzYWdlIHJlY2VpdmVyLgorCisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VBcmVhTWFwOjp+U3RvcmFnZUFyZWFNYXApOgorICAgICAgICBTZW5kIERlc3Ry
b3lTdG9yYWdlTWFwIGFuZCByZW1vdmUgdGhlIG9iamVjdCBhcyBhIG1lc3NhZ2UgcmVjZWl2ZXIu
CisKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6Omxlbmd0aCk6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjprZXkpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6aXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpjb250YWlucyk6
CisgICAgICAgIExvYWQgdmFsdWVzIGFuZCBmb3J3YXJkIGNhbGxzIHRvIHRoZSBzdG9yYWdlIG1h
cC4KKworICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbSk6CisgICAgICAg
IFRoaXMgbm93IHRha2VzIHRoZSBzb3VyY2UgZnJhbWUgYXMgd2VsbC4gVXBkYXRlIHRoZSBsb2Nh
bCBzdG9yYWdlIG1hcCBhbmQgc2VuZCBhIFNldEl0ZW0gbWVzc2FnZS4KKyAgICAgICAgCisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpsb2FkVmFsdWVzSWZOZWVkZWQpOgorICAgICAg
ICBHZXQgdGhlIHZhbHVlcyBmcm9tIHRoZSBzdG9yYWdlIG1hbmFnZXIuCisKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZUFyZWFNYXA6OmRpc3BhdGNoU3RvcmFnZUV2ZW50KToKKyAgICAgICAgVGhp
cyBub3cgdGFrZXMgdGhlIHNvdXJjZSBzdG9yYWdlIGFyZWEgSUQuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW46CisgICAgICAgIERpc3Bh
dGNoU3RvcmFnZUV2ZW50IG5vdyB0YWtlcyB0aGUgc291cmNlIHN0b3JhZ2UgYXJlYSBJRC4KKwog
MjAxMy0wNC0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgU3RvcmFnZUFyZWFJbXBsIGEgd3JhcHBlciBhcm91bmQgU3RvcmFnZUFyZWFNYXAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2Fn
ZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKaW5k
ZXggODJiMDY0MDQzMjQ3NjVjYTkyNjFkNDhlZGFmMWJmZmJlOGQ3OTFhYy4uMTczNTE4ZGVjNzhh
MWUxNzBhNDljNGYxNWU0OTk3YzVkOTU5NGNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKQEAgLTI1Myw2ICsyNTMsMTIgQEAgdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgQXJndW1lbnRz
NDxQMSwgUDIsIFAzLCBQND4KICAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFy
Z3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1l
bnQ0KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAx
LCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNT4KK3Zv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IEFyZ3Vt
ZW50czU8UDEsIFAyLCBQMywgUDQsIFA1PiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
K3sKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFyZ3MuYXJndW1lbnQxLCBh
cmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3Vt
ZW50NSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQ
MSwgdHlwZW5hbWUgUjE+CiB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBjb25zdCBBcmd1bWVudHMxPFAxPiYgYXJncywgQXJndW1lbnRzMTxSMT4mIHJlcGx5
QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBhOTBlN2E5YWNhY2Ji
OTRmMjM4MmU1ZGFlZDlmOTQ0MjU0Yzk2MDU0Li4zNDc1OTM1ZDliMWQyNGJhNGI5YTgzNDhiMmMy
NDRjM2Q1Y2ExMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBjcmVhdGUodW5zaWduZWQgcXVvdGFJbkJ5dGVz
KTsKICAgICB+U3RvcmFnZUFyZWEoKTsKIAotICAgIHZvaWQgYWRkTGlzdGVuZXIoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpOwotICAgIHZvaWQgcmVtb3ZlTGlz
dGVuZXIoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpOworICAg
IHZvaWQgYWRkTGlzdGVuZXIoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VN
YXBJRCk7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWlu
dDY0X3Qgc3RvcmFnZU1hcElEKTsKIAotICAgIHZvaWQgc2V0SXRlbShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBib29sJiBxdW90YUV4Y2VwdGlv
bik7CisgICAgdm9pZCBzZXRJdGVtKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBzb3Vy
Y2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBTdG9yYWdlQXJlYSh1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwogCi0g
ICAgdm9pZCBkaXNwYXRjaEV2ZW50cyhDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Qgc3Rv
cmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdDsKKyAg
ICB2b2lkIGRpc3BhdGNoRXZlbnRzKENvcmVJUEM6OkNvbm5lY3Rpb24qIHNvdXJjZUNvbm5lY3Rp
b24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZykgY29uc3Q7CiAKICAgICBSZWZQdHI8U3RvcmFnZU1hcD4gbV9zdG9yYWdlTWFw
OwogICAgIEhhc2hTZXQ8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWlu
dDY0X3Q+ID4gbV9ldmVudExpc3RlbmVyczsKQEAgLTcyLDE5ICs3MiwxOSBAQCBTdG9yYWdlTWFu
YWdlcjo6U3RvcmFnZUFyZWE6On5TdG9yYWdlQXJlYSgpCiAgICAgQVNTRVJUKG1fZXZlbnRMaXN0
ZW5lcnMuaXNFbXB0eSgpKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6
OmFkZExpc3RlbmVyKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0
b3JhZ2VBcmVhSUQpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6YWRkTGlzdGVu
ZXIoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1hcElE
KQogewotICAgIEFTU0VSVCghbV9ldmVudExpc3RlbmVycy5jb250YWlucyhzdGQ6Om1ha2VfcGFp
cihjb25uZWN0aW9uLCBzdG9yYWdlQXJlYUlEKSkpOwotICAgIG1fZXZlbnRMaXN0ZW5lcnMuYWRk
KHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb24sIHN0b3JhZ2VBcmVhSUQpKTsKKyAgICBBU1NFUlQo
IW1fZXZlbnRMaXN0ZW5lcnMuY29udGFpbnMoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbiwgc3Rv
cmFnZU1hcElEKSkpOworICAgIG1fZXZlbnRMaXN0ZW5lcnMuYWRkKHN0ZDo6bWFrZV9wYWlyKGNv
bm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCkpOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTdG9y
YWdlQXJlYTo6cmVtb3ZlTGlzdGVuZXIoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
dWludDY0X3Qgc3RvcmFnZUFyZWFJRCkKK3ZvaWQgU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVh
OjpyZW1vdmVMaXN0ZW5lcihDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRf
dCBzdG9yYWdlTWFwSUQpCiB7Ci0gICAgQVNTRVJUKG1fZXZlbnRMaXN0ZW5lcnMuY29udGFpbnMo
c3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbiwgc3RvcmFnZUFyZWFJRCkpKTsKLSAgICBtX2V2ZW50
TGlzdGVuZXJzLnJlbW92ZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uLCBzdG9yYWdlQXJlYUlE
KSk7CisgICAgQVNTRVJUKG1fZXZlbnRMaXN0ZW5lcnMuY29udGFpbnMoc3RkOjptYWtlX3BhaXIo
Y29ubmVjdGlvbiwgc3RvcmFnZU1hcElEKSkpOworICAgIG1fZXZlbnRMaXN0ZW5lcnMucmVtb3Zl
KHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCkpOwogfQogCi12b2lkIFN0
b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6c2V0SXRlbShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGJvb2wmIHF1b3RhRXhj
ZXB0aW9uKQordm9pZCBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6OnNldEl0ZW0oQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBib29sJiBxdW90YUV4Y2VwdGlvbikKIHsKICAgICBBU1NFUlQobV9zdG9yYWdlTWFw
LT5oYXNPbmVSZWYoKSk7CiAKQEAgLTkyLDE4ICs5MiwxNCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjpTdG9yYWdlQXJlYTo6c2V0SXRlbShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1
aW50NgogICAgIG1fc3RvcmFnZU1hcC0+c2V0SXRlbShrZXksIHZhbHVlLCBvbGRWYWx1ZSwgcXVv
dGFFeGNlcHRpb24pOwogCiAgICAgaWYgKCFxdW90YUV4Y2VwdGlvbikKLSAgICAgICAgZGlzcGF0
Y2hFdmVudHMoY29ubmVjdGlvbiwgc3RvcmFnZUFyZWFJRCwga2V5LCBvbGRWYWx1ZSwgdmFsdWUs
IHVybFN0cmluZyk7CisgICAgICAgIGRpc3BhdGNoRXZlbnRzKGNvbm5lY3Rpb24sIHNvdXJjZVN0
b3JhZ2VBcmVhSUQsIGtleSwgb2xkVmFsdWUsIHZhbHVlLCB1cmxTdHJpbmcpOwogfQogCi12b2lk
IFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6ZGlzcGF0Y2hFdmVudHMoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdAordm9pZCBTdG9yYWdlTWFuYWdlcjo6U3RvcmFn
ZUFyZWE6OmRpc3BhdGNoRXZlbnRzKENvcmVJUEM6OkNvbm5lY3Rpb24qIHNvdXJjZUNvbm5lY3Rp
b24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZykgY29uc3QKIHsKICAgICBmb3IgKEhhc2hTZXQ8c3RkOjpwYWlyPFJlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiwgdWludDY0X3Q+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9l
dmVudExpc3RlbmVycy5iZWdpbigpLCBlbmQgPSBtX2V2ZW50TGlzdGVuZXJzLmVuZCgpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT5maXJzdCA9PSBjb25uZWN0aW9uICYmIGl0
LT5zZWNvbmQgPT0gc3RvcmFnZUFyZWFJRCkgewotICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2Fu
dCB0byBkaXNwYXRjaCBldmVudHMgdG8gdGhlIHN0b3JhZ2UgYXJlYSB0aGF0IG9yaWdpbmF0ZWQg
dGhlIGV2ZW50LgotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBp
dC0+Zmlyc3QtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaXNwYXRjaFN0b3JhZ2VF
dmVudChrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nKSwgaXQtPnNlY29uZCk7Cisg
ICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIHNlbnQgdG8gYW5vdGhlciBwcm9jZXNzLCB0aGUg
c291cmNlIHN0b3JhZ2UgYXJlYSB3b24ndCBtYWtlIHNlbnNlLgorICAgICAgICBpdC0+Zmlyc3Qt
PnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaXNwYXRjaFN0b3JhZ2VFdmVudChzb3Vy
Y2VTdG9yYWdlQXJlYUlELCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nKSwgaXQt
PnNlY29uZCk7CiAgICAgfQogfQogCkBAIC0yNjQsNyArMjYwLDcgQEAgdm9pZCBTdG9yYWdlTWFu
YWdlcjo6Z2V0VmFsdWVzKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCwgSGFzaE1hcDxT
dHJpbmcsIFMKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CiAKLXZvaWQgU3RvcmFn
ZU1hbmFnZXI6OnNldEl0ZW0oQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0
X3Qgc3RvcmFnZU1hcElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpzZXRJdGVtKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWlu
dDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewogICAgIFN0b3JhZ2VBcmVhKiBz
dG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYShjb25uZWN0aW9uLCBzdG9yYWdlTWFwSUQpOwog
CkBAIC0yNzIsNyArMjY4LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6c2V0SXRlbShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWEKICAgICBBU1NFUlQo
c3RvcmFnZUFyZWEpOwogCiAgICAgYm9vbCBxdW90YUVycm9yOwotICAgIHN0b3JhZ2VBcmVhLT5z
ZXRJdGVtKGNvbm5lY3Rpb24sIHN0b3JhZ2VNYXBJRCwga2V5LCB2YWx1ZSwgdXJsU3RyaW5nLCBx
dW90YUVycm9yKTsKKyAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShjb25uZWN0aW9uLCBzb3VyY2VT
dG9yYWdlQXJlYUlELCBrZXksIHZhbHVlLCB1cmxTdHJpbmcsIHF1b3RhRXJyb3IpOwogICAgIGNv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRTZXRJdGVtKGtleSwg
cXVvdGFFcnJvciksIHN0b3JhZ2VNYXBJRCk7CiB9CiAKQEAgLTMwOCwxMyArMzA0LDEzIEBAIHZv
aWQgU3RvcmFnZU1hbmFnZXI6OmNsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJbnRlcm5hbCh1
aW50NjRfdCBzdG9yYWdlTmFtZXNwCiAgICAgc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UtPmNsb25l
VG8oKm5ld1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlKTsKIH0KIAotU3RvcmFnZU1hbmFnZXI6OlN0
b3JhZ2VBcmVhKiBTdG9yYWdlTWFuYWdlcjo6ZmluZFN0b3JhZ2VBcmVhKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQpIGNvbnN0CitTdG9yYWdl
TWFuYWdlcjo6U3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpmaW5kU3RvcmFnZUFyZWEoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWludDY0X3Qgc3RvcmFnZU1hcElEKSBjb25z
dAogewotICAgIHN0ZDo6cGFpcjxDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Q+IGNvbm5l
Y3Rpb25BbmRTdG9yYWdlQXJlYUlEUGFpcihjb25uZWN0aW9uLCBzdG9yYWdlQXJlYUlEKTsKLSAg
ICBpZiAoIUhhc2hNYXA8c3RkOjpwYWlyPFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgdWlu
dDY0X3Q+LCBSZWZQdHI8U3RvcmFnZUFyZWE+ID46OmlzVmFsaWRLZXkoY29ubmVjdGlvbkFuZFN0
b3JhZ2VBcmVhSURQYWlyKSkKKyAgICBzdGQ6OnBhaXI8Q29yZUlQQzo6Q29ubmVjdGlvbiosIHVp
bnQ2NF90PiBjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcihjb25uZWN0aW9uLCBzdG9yYWdl
TWFwSUQpOworICAgIGlmICghSGFzaE1hcDxzdGQ6OnBhaXI8UmVmUHRyPENvcmVJUEM6OkNvbm5l
Y3Rpb24+LCB1aW50NjRfdD4sIFJlZlB0cjxTdG9yYWdlQXJlYT4gPjo6aXNWYWxpZEtleShjb25u
ZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcikpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIG1fc3RvcmFnZUFyZWFzLmdldChjb25uZWN0aW9uQW5kU3RvcmFnZUFyZWFJRFBhaXIpLmdl
dCgpOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVhcy5nZXQoY29ubmVjdGlvbkFuZFN0b3JhZ2VN
YXBJRFBhaXIpLmdldCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCmluZGV4IDc1ZDli
MmZkYTAwYTkxZGRjMGI4YTdlNTg5Y2Y4NTY4YmU2OTVmOGQuLmNjNzZmNjBmNjc1MDNhZGZjYWNm
N2ZjOWU3Y2MwNWYxNzA5YTY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgY3JlYXRlU3RvcmFnZU1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Qgc3Rv
cmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYpOwogICAgIHZvaWQgZGVzdHJveVN0b3JhZ2VNYXAoQ29yZUlQQzo6Q29ubmVjdGlv
biosIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCk7CiAgICAgdm9pZCBnZXRWYWx1ZXMoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4mIHZhbHVlcyk7Ci0gICAgdm9pZCBzZXRJdGVtKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50
NjRfdCBzdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHZvaWQgc2V0SXRlbShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc291cmNlU3RvcmFn
ZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKTsKIAogICAgIHZvaWQgY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2VJbnRlcm5hbCh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIENvcmVJUEM6OkNvbm5lY3Rp
b24qIGFsbG93ZWRDb25uZWN0aW9uLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwogICAgIHZvaWQg
ZGVzdHJveVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSW50ZXJuYWwodWludDY0X3Qgc3RvcmFnZU5h
bWVzcGFjZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggZjUyMDY5OTc4NjgyMzAxN2U0
MTIyNDQzYjRkZmRhMzExZTI3ZjVmNC4uNDNmMzBmYjk2OGNhMTRjNWIwOTM1OWQ4NzAzNTA1MGE3
ZDkxYzZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI2LDUgKzI2LDUgQEAgbWVzc2Fn
ZXMgLT4gU3RvcmFnZU1hbmFnZXIgewogCiAgICAgR2V0VmFsdWVzKHVpbnQ2NF90IHN0b3JhZ2VN
YXBJRCkgLT4gKFdURjo6SGFzaE1hcDxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+IHZhbHVlcykg
V2FudHNDb25uZWN0aW9uCiAKLSAgICBTZXRJdGVtKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgV1RG
OjpTdHJpbmcga2V5LCBXVEY6OlN0cmluZyB2YWx1ZSwgV1RGOjpTdHJpbmcgdXJsU3RyaW5nKSBX
YW50c0Nvbm5lY3Rpb24KKyAgICBTZXRJdGVtKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0
X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgV1RGOjpTdHJpbmcga2V5LCBXVEY6OlN0cmluZyB2YWx1
ZSwgV1RGOjpTdHJpbmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5k
ZXggNGMzMzEwNGRjMDhiNDBjMThhYWJkNmNmY2UzM2NjNzUxYTc2ZTc0Mi4uYjJmZmM0OTA4YTBl
MjA5MjgyNmM5NDA3NTNhYzlmY2I3YjI3ODRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKQEAgLTEyMSw3ICsxMjEs
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQwogICAgIH0KIAogICAgIGJvb2wgcXVvdGFFeGNl
cHRpb247Ci0gICAgbV9zdG9yYWdlQXJlYU1hcC0+c2V0SXRlbSh0aGlzLCBrZXksIHZhbHVlLCBx
dW90YUV4Y2VwdGlvbik7CisgICAgbV9zdG9yYWdlQXJlYU1hcC0+c2V0SXRlbShzb3VyY2VGcmFt
ZSwgdGhpcywga2V5LCB2YWx1ZSwgcXVvdGFFeGNlcHRpb24pOwogCiAgICAgaWYgKHF1b3RhRXhj
ZXB0aW9uKQogICAgICAgICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4IDIz
MjNmZTliNmNlYTJmM2YyMzk2MzdkOWVhOGQ5Y2FjOWM1NWJlZWMuLjcwYTU5ZWNlNTc3ZTVmYTZj
ODZlYzM0YmNhODRkZmUxM2Y5YmExM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApAQCAtMjYsNyArMjYsMTMgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsLmgiCisj
aW5jbHVkZSAiU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYW5h
Z2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdG9yYWdlTWFwLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAs
MTAgKzU2LDE0IEBAIFN0b3JhZ2VBcmVhTWFwOjpTdG9yYWdlQXJlYU1hcChTdG9yYWdlTmFtZXNw
YWNlSW1wbCogc3RvcmFnZU5hbWVzcGFjZSwgUGFzc1JlZlB0CiAgICAgLCBtX3F1b3RhSW5CeXRl
cyhzdG9yYWdlTmFtZXNwYWNlLT5xdW90YUluQnl0ZXMoKSkKICAgICAsIG1fc2VjdXJpdHlPcmln
aW4oc2VjdXJpdHlPcmlnaW4pCiB7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6Q3JlYXRlU3RvcmFnZU1hcChtX3N0
b3JhZ2VNYXBJRCwgc3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU5hbWVzcGFjZUlEKCksIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkp
KSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpTdG9yYWdlQXJlYU1hcDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3N0b3JhZ2VNYXBJ
RCwgdGhpcyk7CiB9CiAKIFN0b3JhZ2VBcmVhTWFwOjp+U3RvcmFnZUFyZWFNYXAoKQogeworICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZU1hbmFnZXI6OkRlc3Ryb3lTdG9yYWdlTWFwKG1fc3RvcmFnZU1hcElEKSwgMCk7CisgICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTdG9yYWdl
QXJlYU1hcDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3N0b3JhZ2VNYXBJRCk7CiB9CiAKIFN0
b3JhZ2VUeXBlIFN0b3JhZ2VBcmVhTWFwOjpzdG9yYWdlVHlwZSgpIGNvbnN0CkBAIC02NywzMSAr
NzcsNjQgQEAgU3RvcmFnZVR5cGUgU3RvcmFnZUFyZWFNYXA6OnN0b3JhZ2VUeXBlKCkgY29uc3QK
IAogdW5zaWduZWQgU3RvcmFnZUFyZWFNYXA6Omxlbmd0aCgpCiB7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudC4KLSAgICByZXR1cm4gMDsKKyAgICBsb2FkVmFsdWVzSWZOZWVkZWQoKTsKKworICAg
IHJldHVybiBtX3N0b3JhZ2VNYXAtPmxlbmd0aCgpOwogfQogCiBTdHJpbmcgU3RvcmFnZUFyZWFN
YXA6OmtleSh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICBsb2FkVmFsdWVzSWZOZWVkZWQoKTsKKworICAgIHJldHVy
biBtX3N0b3JhZ2VNYXAtPmtleShpbmRleCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJlYU1hcDo6
aXRlbShjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgotICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICBsb2FkVmFsdWVzSWZOZWVkZWQoKTsKKworICAgIHJldHVy
biBtX3N0b3JhZ2VNYXAtPmdldEl0ZW0oa2V5KTsKIH0KIAotdm9pZCBTdG9yYWdlQXJlYU1hcDo6
c2V0SXRlbShTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sJiBxdW90YUV4Y2VwdGlvbikKK3ZvaWQgU3RvcmFnZUFy
ZWFNYXA6OnNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJj
ZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sJiBxdW90
YUV4Y2VwdGlvbikKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIGxvYWRWYWx1ZXNJ
Zk5lZWRlZCgpOworCisgICAgQVNTRVJUKG1fc3RvcmFnZU1hcC0+aGFzT25lUmVmKCkpOworCisg
ICAgU3RyaW5nIG9sZFZhbHVlOworICAgIHF1b3RhRXhjZXB0aW9uID0gZmFsc2U7CisgICAgbV9z
dG9yYWdlTWFwLT5zZXRJdGVtKGtleSwgdmFsdWUsIG9sZFZhbHVlLCBxdW90YUV4Y2VwdGlvbik7
CisgICAgaWYgKHF1b3RhRXhjZXB0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAob2xk
VmFsdWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ1ZhbHVlQ2hh
bmdlcy5hZGQoa2V5KTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OlNldEl0ZW0obV9zdG9yYWdlTWFwSUQsIHNv
dXJjZUFyZWEtPnN0b3JhZ2VBcmVhSUQoKSwga2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIGJvb2wgU3RvcmFnZUFyZWFNYXA6OmNvbnRhaW5zKGNv
bnN0IFN0cmluZyYga2V5KQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIGxvYWRWYWx1ZXNJZk5lZWRlZCgpOworCisgICAgcmV0dXJuIG1fc3RvcmFn
ZU1hcC0+Y29udGFpbnMoa2V5KTsKK30KKwordm9pZCBTdG9yYWdlQXJlYU1hcDo6bG9hZFZhbHVl
c0lmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9zdG9yYWdlTWFwKQorICAgICAgICByZXR1cm47CisK
KyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXM7CisgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIHVzZSBhIHNwZWNpYWwgc2VuZFN5bmMgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHdlIGRv
bid0IHdhbnQgdG8gcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlcyB3aGlsZSB3YWl0aW5nIGZvciBh
IHJlcGx5LgorICAgIC8vIChUaGlzIGZsYWcgZG9lcyBub3QgeWV0IGV4aXN0KS4KKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpTdG9yYWdl
TWFuYWdlcjo6R2V0VmFsdWVzKG1fc3RvcmFnZU1hcElEKSwgTWVzc2FnZXM6OlN0b3JhZ2VNYW5h
Z2VyOjpHZXRWYWx1ZXM6OlJlcGx5KHZhbHVlcyksIDApOworCisgICAgbV9zdG9yYWdlTWFwID0g
U3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJbkJ5dGVzKTsKKyAgICBtX3N0b3JhZ2VNYXAtPmlt
cG9ydEl0ZW1zKHZhbHVlcyk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpZFNldEl0ZW0o
Y29uc3QgU3RyaW5nJiBrZXksIGJvb2wgcXVvdGFFcnJvcikKQEAgLTk5LDcgKzE0Miw3IEBAIHZv
aWQgU3RvcmFnZUFyZWFNYXA6OmRpZFNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgcXVv
dGFFcnJvcikKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCi12b2lkIFN0b3JhZ2VBcmVh
TWFwOjpkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcpCit2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaFN0b3JhZ2VFdmVudCh1aW50NjRfdCBz
b3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKaW5kZXggZmQ2MzAzY2IzYzMwMjI1Y2Fm
NTVlODQ5NTg3NGZiMGZlMDA1M2VkNy4uMjViMTRkMjkzZGU5ZjYyOTNkZWNlYTgzODE2N2E5NjE1
Y2YyMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlQXJlYS5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC01
Myw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKTsKICAgICBTdHJpbmcg
a2V5KHVuc2lnbmVkIGluZGV4KTsKICAgICBTdHJpbmcgaXRlbShjb25zdCBTdHJpbmcmIGtleSk7
Ci0gICAgdm9pZCBzZXRJdGVtKFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKTsKKyAg
ICB2b2lkIHNldEl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUlt
cGwqIHNvdXJjZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBi
b29sJiBxdW90YUV4Y2VwdGlvbik7CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBTdHJpbmcmIGtl
eSk7CiAKIHByaXZhdGU6CkBAIC02Myw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBkaWRTZXRJdGVtKGNvbnN0IFN0cmlu
ZyYga2V5LCBib29sIHF1b3RhRXJyb3IpOwotICAgIHZvaWQgZGlzcGF0Y2hTdG9yYWdlRXZlbnQo
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYg
bmV3VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKKyAgICB2b2lkIGRpc3BhdGNoU3Rv
cmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7CiAKICAgICB2b2lkIGxvYWRWYWx1ZXNJZk5lZWRlZCgpOwogCkBA
IC03Miw4ICs3Myw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5T3JpZ2luOwogCi0K
ICAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZU1hcD4gbV9zdG9yYWdlTWFwOworICAgIEhhc2hD
b3VudGVkU2V0PFN0cmluZz4gbV9wZW5kaW5nVmFsdWVDaGFuZ2VzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4KaW5kZXggMGFjZGU5ZThkMTg1Njc4
M2I5YjMzMzMwZDczMzUxOWM4NWQ1MGY4OC4uMTc4NmExNmFkY2MxNmUyZWI3NTNiNjk5ZTZhNTVj
MDY5YjZlMmE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5pbgpAQCAtMjMsNSArMjMsNSBAQAog
bWVzc2FnZXMgLT4gU3RvcmFnZUFyZWFNYXAgewogICAgIERpZFNldEl0ZW0oV1RGOjpTdHJpbmcg
a2V5LCBib29sIHF1b3RhRXhjZXB0aW9uKQogCi0gICAgRGlzcGF0Y2hTdG9yYWdlRXZlbnQoV1RG
OjpTdHJpbmcga2V5LCBXVEY6OlN0cmluZyBvbGRWYWx1ZSwgV1RGOjpTdHJpbmcgbmV3VmFsdWUs
IFdURjo6U3RyaW5nIHVybFN0cmluZykKKyAgICBEaXNwYXRjaFN0b3JhZ2VFdmVudCh1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCBXVEY6OlN0cmluZyBrZXksIFdURjo6U3RyaW5nIG9sZFZh
bHVlLCBXVEY6OlN0cmluZyBuZXdWYWx1ZSwgV1RGOjpTdHJpbmcgdXJsU3RyaW5nKQogfQo=
</data>
<flag name="review"
          id="219543"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>