<?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>143668</bug_id>
          
          <creation_ts>2015-04-13 08:11:11 -0700</creation_ts>
          <short_desc>Network Cache: Add thread-safe accessors for storage paths</short_desc>
          <delta_ts>2015-04-15 04:21:04 -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>Page Loading</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1084804</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-04-13 08:11:11 -0700</bug_when>
    <thetext>Less need for clunky StringCaptures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084805</commentid>
    <comment_count>1</comment_count>
      <attachid>250639</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-04-13 08:37:54 -0700</bug_when>
    <thetext>Created attachment 250639
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084841</commentid>
    <comment_count>2</comment_count>
      <attachid>250639</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-13 09:55:09 -0700</bug_when>
    <thetext>Comment on attachment 250639
patch

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

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h:83
&gt; +    const String baseDirectoryPath() const;
&gt; +    const String directoryPath() const;

I don’t understand the value of returning const String rather than String. These should just return String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084888</commentid>
    <comment_count>3</comment_count>
      <attachid>250639</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 11:29:43 -0700</bug_when>
    <thetext>Comment on attachment 250639
patch

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

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp:79
&gt; +    // This is safe from any thread.
&gt; +    return StringView(m_baseDirectoryPath).toString();

I think this could just call m_baseDirectoryPath.isolatedCopy() (if m_baseDirectoryPath was kept a String)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085443</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-04-15 04:21:04 -0700</bug_when>
    <thetext>https://trac.webkit.org/r182841</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250639</attachid>
            <date>2015-04-13 08:37:54 -0700</date>
            <delta_ts>2015-04-13 09:55:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>disk-cache-path-thread-safe.patch</filename>
            <type>text/plain</type>
            <size>10701</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjczMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA0LTEzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBOZXR3b3JrIENhY2hlOiBBZGQg
dGhyZWFkLXNhZmUgYWNjZXNzb3JzIGZvciBzdG9yYWdlIHBhdGhzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM2NjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIGNsdW5reSBTdHJpbmdDYXB0
dXJlcyB3aXRoIHRocmVhZCBzYWZlIGFjY2Vzc29ycyB3aGVuIGFjY2Vzc2luZyBwYXRocyBmcm9t
IGxhbWJkYXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdG9yYWdlOjpiYXNl
RGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6
ZGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6
c3luY2hyb25pemUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OnJl
bW92ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6ZGlzcGF0Y2hS
ZWFkT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdG9yYWdlOjp0
cmF2ZXJzZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6ZGlzcGF0
Y2hGdWxsV3JpdGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
b3JhZ2U6OmRpc3BhdGNoSGVhZGVyV3JpdGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpTdG9yYWdlOjpzaHJpbmspOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
b3JhZ2U6OmRlbGV0ZU9sZFZlcnNpb25zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
U3RvcmFnZTo6YmFzZURpcmVjdG9yeVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OmRpcmVjdG9yeVBhdGgpOiBEZWxldGVkLgorCiAyMDE1LTA0
LTEyICBTdW5nbWFubiBDaG8gIDxzdW5nbWFubi5jaG9AbmF2ZXJjb3JwLmNvbT4KIAogICAgICAg
ICBGaXggdHJpdmFsIHR5cG9zIHJlbGF0ZWQgdG8gdGhlIHdvcmQgImNvb3JkaW5hdGUiLgpJbmRl
eDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3RvcmFnZS5jcHAJKHJldmlzaW9uIDE4MjY4NykKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw4ICs2Myw4IEBAIHN0YXRpYyBTdHJpbmcgbWFrZVZlcnNpb25lZERpcmVj
dG9yeVBhdGgKIH0KIAogU3RvcmFnZTo6U3RvcmFnZShjb25zdCBTdHJpbmcmIGJhc2VEaXJlY3Rv
cnlQYXRoKQotICAgIDogbV9iYXNlRGlyZWN0b3J5UGF0aChiYXNlRGlyZWN0b3J5UGF0aCkKLSAg
ICAsIG1fZGlyZWN0b3J5UGF0aChtYWtlVmVyc2lvbmVkRGlyZWN0b3J5UGF0aChiYXNlRGlyZWN0
b3J5UGF0aCkpCisgICAgOiBtX2Jhc2VEaXJlY3RvcnlQYXRoKCpiYXNlRGlyZWN0b3J5UGF0aC5p
bXBsKCkpCisgICAgLCBtX2RpcmVjdG9yeVBhdGgoKm1ha2VWZXJzaW9uZWREaXJlY3RvcnlQYXRo
KGJhc2VEaXJlY3RvcnlQYXRoKS5pbXBsKCkpCiAgICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZSIsIFdvcmtRdWV1ZTo6VHlwZTo6
Q29uY3VycmVudCkpCiAgICAgLCBtX2JhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UuYmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6
VHlwZTo6Q29uY3VycmVudCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV9z
ZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5DYWNoZS5TdG9yYWdlLnNlcmlhbEJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQpAQCAtNzMsNiArNzMsMTcgQEAgU3RvcmFn
ZTo6U3RvcmFnZShjb25zdCBTdHJpbmcmIGJhc2VEaXJlYwogICAgIHN5bmNocm9uaXplKCk7CiB9
CiAKK2NvbnN0IFN0cmluZyBTdG9yYWdlOjpiYXNlRGlyZWN0b3J5UGF0aCgpIGNvbnN0Cit7Cisg
ICAgLy8gVGhpcyBpcyBzYWZlIGZyb20gYW55IHRocmVhZC4KKyAgICByZXR1cm4gU3RyaW5nVmll
dyhtX2Jhc2VEaXJlY3RvcnlQYXRoKS50b1N0cmluZygpOworfQorCitjb25zdCBTdHJpbmcgU3Rv
cmFnZTo6ZGlyZWN0b3J5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZ1ZpZXcobV9k
aXJlY3RvcnlQYXRoKS50b1N0cmluZygpOworfQorCiB2b2lkIFN0b3JhZ2U6OnN5bmNocm9uaXpl
KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtODMsMTQgKzk0LDExIEBA
IHZvaWQgU3RvcmFnZTo6c3luY2hyb25pemUoKQogCiAgICAgTE9HKE5ldHdvcmtDYWNoZVN0b3Jh
Z2UsICIoTmV0d29ya1Byb2Nlc3MpIHN5bmNocm9uaXppbmcgY2FjaGUiKTsKIAotICAgIFN0cmlu
Z0NhcHR1cmUgY2FjaGVQYXRoQ2FwdHVyZShtX2RpcmVjdG9yeVBhdGgpOwotICAgIGJhY2tncm91
bmRJT1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIGNhY2hlUGF0aENhcHR1cmVdIHsKLSAgICAgICAg
U3RyaW5nIGNhY2hlUGF0aCA9IGNhY2hlUGF0aENhcHR1cmUuc3RyaW5nKCk7Ci0KKyAgICBiYWNr
Z3JvdW5kSU9RdWV1ZSgpLmRpc3BhdGNoKFt0aGlzXSB7CiAgICAgICAgIGF1dG8gZmlsdGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxDb250ZW50c0ZpbHRlcj4oKTsKICAgICAgICAgc2l6ZV90IHNpemUg
PSAwOwogICAgICAgICB1bnNpZ25lZCBjb3VudCA9IDA7Ci0gICAgICAgIHRyYXZlcnNlQ2FjaGVG
aWxlcyhjYWNoZVBhdGgsIFsmZmlsdGVyLCAmc2l6ZSwgJmNvdW50XShjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvblBhdGgpIHsKKyAgICAgICAgdHJhdmVyc2VD
YWNoZUZpbGVzKGRpcmVjdG9yeVBhdGgoKSwgWyZmaWx0ZXIsICZzaXplLCAmY291bnRdKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uUGF0aCkgewogICAgICAg
ICAgICAgS2V5OjpIYXNoVHlwZSBoYXNoOwogICAgICAgICAgICAgaWYgKCFLZXk6OnN0cmluZ1Rv
SGFzaChmaWxlTmFtZSwgaGFzaCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzMzLDkg
KzM0MSw4IEBAIHZvaWQgU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IEtleSYga2V5KQogICAgIC8vIEZv
ciBzaW1wbGljaXR5IHdlIGFsc28gZG9uJ3QgcmVkdWNlIG1fYXBwcm94aW1hdGVTaXplIG9uIHJl
bW92YWxzLgogICAgIC8vIFRoZSBuZXh0IHN5bmNocm9uaXphdGlvbiB3aWxsIHVwZGF0ZSBldmVy
eXRoaW5nLgogCi0gICAgU3RyaW5nQ2FwdHVyZSBmaWxlUGF0aENhcHR1cmUoZmlsZVBhdGhGb3JL
ZXkoa2V5LCBtX2RpcmVjdG9yeVBhdGgpKTsKLSAgICBzZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZSgp
LmRpc3BhdGNoKFt0aGlzLCBmaWxlUGF0aENhcHR1cmVdIHsKLSAgICAgICAgV2ViQ29yZTo6ZGVs
ZXRlRmlsZShmaWxlUGF0aENhcHR1cmUuc3RyaW5nKCkpOworICAgIHNlcmlhbEJhY2tncm91bmRJ
T1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIGtleV0geworICAgICAgICBXZWJDb3JlOjpkZWxldGVG
aWxlKGZpbGVQYXRoRm9yS2V5KGtleSwgZGlyZWN0b3J5UGF0aCgpKSk7CiAgICAgfSk7CiB9CiAK
QEAgLTM1Miw5ICszNTksOCBAQCB2b2lkIFN0b3JhZ2U6OmRpc3BhdGNoUmVhZE9wZXJhdGlvbihj
b25zCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9hY3RpdmVS
ZWFkT3BlcmF0aW9ucy5jb250YWlucygmcmVhZCkpOwogCi0gICAgU3RyaW5nQ2FwdHVyZSBjYWNo
ZVBhdGhDYXB0dXJlKG1fZGlyZWN0b3J5UGF0aCk7Ci0gICAgaW9RdWV1ZSgpLmRpc3BhdGNoKFt0
aGlzLCAmcmVhZCwgY2FjaGVQYXRoQ2FwdHVyZV0gewotICAgICAgICBSZWZQdHI8SU9DaGFubmVs
PiBjaGFubmVsID0gb3BlbkZpbGVGb3JLZXkocmVhZC5rZXksIElPQ2hhbm5lbDo6VHlwZTo6UmVh
ZCwgY2FjaGVQYXRoQ2FwdHVyZS5zdHJpbmcoKSk7CisgICAgaW9RdWV1ZSgpLmRpc3BhdGNoKFt0
aGlzLCAmcmVhZF0geworICAgICAgICBSZWZQdHI8SU9DaGFubmVsPiBjaGFubmVsID0gb3BlbkZp
bGVGb3JLZXkocmVhZC5rZXksIElPQ2hhbm5lbDo6VHlwZTo6UmVhZCwgZGlyZWN0b3J5UGF0aCgp
KTsKICAgICAgICAgY2hhbm5lbC0+cmVhZCgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46
Om1heCgpLCBbdGhpcywgY2hhbm5lbCwgJnJlYWRdKERhdGEmIGZpbGVEYXRhLCBpbnQgZXJyb3Ip
IHsKICAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgICAgIHJlbW92ZShyZWFk
LmtleSk7CkBAIC00NzQsMTAgKzQ4MCw4IEBAIHZvaWQgU3RvcmFnZTo6dXBkYXRlKGNvbnN0IFJl
Y29yZCYgdXBkYXQKIAogdm9pZCBTdG9yYWdlOjp0cmF2ZXJzZShUcmF2ZXJzZUZsYWdzIGZsYWdz
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFJlY29yZCosIGNvbnN0IFJlY29yZEluZm8mKT4m
JiB0cmF2ZXJzZUhhbmRsZXIpCiB7Ci0gICAgU3RyaW5nQ2FwdHVyZSBjYWNoZVBhdGhDYXB0dXJl
KG1fZGlyZWN0b3J5UGF0aCk7Ci0gICAgaW9RdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBmbGFncywg
Y2FjaGVQYXRoQ2FwdHVyZSwgdHJhdmVyc2VIYW5kbGVyXSB7Ci0gICAgICAgIFN0cmluZyBjYWNo
ZVBhdGggPSBjYWNoZVBhdGhDYXB0dXJlLnN0cmluZygpOwotICAgICAgICB0cmF2ZXJzZUNhY2hl
RmlsZXMoY2FjaGVQYXRoLCBbdGhpcywgZmxhZ3MsICZ0cmF2ZXJzZUhhbmRsZXJdKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uUGF0aCkgeworICAgIGlvUXVl
dWUoKS5kaXNwYXRjaChbdGhpcywgZmxhZ3MsIHRyYXZlcnNlSGFuZGxlcl0geworICAgICAgICB0
cmF2ZXJzZUNhY2hlRmlsZXMoZGlyZWN0b3J5UGF0aCgpLCBbdGhpcywgZmxhZ3MsICZ0cmF2ZXJz
ZUhhbmRsZXJdKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9u
UGF0aCkgewogICAgICAgICAgICAgYXV0byBmaWxlUGF0aCA9IFdlYkNvcmU6OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChwYXJ0aXRpb25QYXRoLCBmaWxlTmFtZSk7CiAKICAgICAgICAgICAgIFJl
Y29yZEluZm8gaW5mbzsKQEAgLTUzNCwxMiArNTM4LDExIEBAIHZvaWQgU3RvcmFnZTo6ZGlzcGF0
Y2hGdWxsV3JpdGVPcGVyYXRpb24KICAgICAvLyBUaGlzIHdhcyBhZGRlZCBhbHJlYWR5IHdoZW4g
c3RhcnRpbmcgdGhlIHN0b3JlIGJ1dCBmaWx0ZXIgbWlnaHQgaGF2ZSBiZWVuIHdpcGVkLgogICAg
IGFkZFRvQ29udGVudHNGaWx0ZXIod3JpdGUucmVjb3JkLmtleSk7CiAKLSAgICBTdHJpbmdDYXB0
dXJlIGNhY2hlUGF0aENhcHR1cmUobV9kaXJlY3RvcnlQYXRoKTsKLSAgICBiYWNrZ3JvdW5kSU9R
dWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCAmd3JpdGUsIGNhY2hlUGF0aENhcHR1cmVdIHsKKyAgICBi
YWNrZ3JvdW5kSU9RdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCAmd3JpdGVdIHsKICAgICAgICAgYXV0
byBlbmNvZGVkSGVhZGVyID0gZW5jb2RlUmVjb3JkSGVhZGVyKHdyaXRlLnJlY29yZCk7CiAgICAg
ICAgIGF1dG8gaGVhZGVyQW5kQm9keURhdGEgPSBjb25jYXRlbmF0ZShlbmNvZGVkSGVhZGVyLCB3
cml0ZS5yZWNvcmQuYm9keSk7CiAKLSAgICAgICAgYXV0byBjaGFubmVsID0gb3BlbkZpbGVGb3JL
ZXkod3JpdGUucmVjb3JkLmtleSwgSU9DaGFubmVsOjpUeXBlOjpDcmVhdGUsIGNhY2hlUGF0aENh
cHR1cmUuc3RyaW5nKCkpOworICAgICAgICBhdXRvIGNoYW5uZWwgPSBvcGVuRmlsZUZvcktleSh3
cml0ZS5yZWNvcmQua2V5LCBJT0NoYW5uZWw6OlR5cGU6OkNyZWF0ZSwgZGlyZWN0b3J5UGF0aCgp
KTsKICAgICAgICAgaW50IGZkID0gY2hhbm5lbC0+ZmlsZURlc2NyaXB0b3IoKTsKICAgICAgICAg
c2l6ZV90IGJvZHlPZmZzZXQgPSBlbmNvZGVkSGVhZGVyLnNpemUoKTsKIApAQCAtNTc0LDggKzU3
Nyw3IEBAIHZvaWQgU3RvcmFnZTo6ZGlzcGF0Y2hIZWFkZXJXcml0ZU9wZXJhdGkKICAgICBBU1NF
UlQobWF5Q29udGFpbih3cml0ZS5yZWNvcmQua2V5KSk7CiAKICAgICAvLyBUcnkgdG8gdXBkYXRl
IHRoZSBoZWFkZXIgb2YgYW4gZXhpc3RpbmcgZW50cnkuCi0gICAgU3RyaW5nQ2FwdHVyZSBjYWNo
ZVBhdGhDYXB0dXJlKG1fZGlyZWN0b3J5UGF0aCk7Ci0gICAgYmFja2dyb3VuZElPUXVldWUoKS5k
aXNwYXRjaChbdGhpcywgJndyaXRlLCBjYWNoZVBhdGhDYXB0dXJlXSB7CisgICAgYmFja2dyb3Vu
ZElPUXVldWUoKS5kaXNwYXRjaChbdGhpcywgJndyaXRlXSB7CiAgICAgICAgIGF1dG8gaGVhZGVy
RGF0YSA9IGVuY29kZVJlY29yZEhlYWRlcih3cml0ZS5yZWNvcmQpOwogICAgICAgICBhdXRvIGV4
aXN0aW5nSGVhZGVyRGF0YSA9IGVuY29kZVJlY29yZEhlYWRlcih3cml0ZS5leGlzdGluZ1JlY29y
ZC52YWx1ZSgpKTsKIApAQCAtNTg4LDcgKzU5MCw3IEBAIHZvaWQgU3RvcmFnZTo6ZGlzcGF0Y2hI
ZWFkZXJXcml0ZU9wZXJhdGkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGF1dG8gY2hhbm5lbCA9IG9wZW5GaWxlRm9yS2V5KHdyaXRlLnJlY29yZC5rZXksIElPQ2hh
bm5lbDo6VHlwZTo6V3JpdGUsIGNhY2hlUGF0aENhcHR1cmUuc3RyaW5nKCkpOworICAgICAgICBh
dXRvIGNoYW5uZWwgPSBvcGVuRmlsZUZvcktleSh3cml0ZS5yZWNvcmQua2V5LCBJT0NoYW5uZWw6
OlR5cGU6OldyaXRlLCBkaXJlY3RvcnlQYXRoKCkpOwogICAgICAgICBjaGFubmVsLT53cml0ZSgw
LCBoZWFkZXJEYXRhLCBbdGhpcywgJndyaXRlXShpbnQgZXJyb3IpIHsKICAgICAgICAgICAgIExP
RyhOZXR3b3JrQ2FjaGVTdG9yYWdlLCAiKE5ldHdvcmtQcm9jZXNzKSB1cGRhdGUgY29tcGxldGUg
ZXJyb3I9JWQiLCBlcnJvcik7CiAKQEAgLTYzMSwxMiArNjMzLDEwIEBAIHZvaWQgU3RvcmFnZTo6
Y2xlYXIoKQogICAgICAgICBtX2NvbnRlbnRzRmlsdGVyLT5jbGVhcigpOwogICAgIG1fYXBwcm94
aW1hdGVTaXplID0gMDsKIAotICAgIFN0cmluZ0NhcHR1cmUgZGlyZWN0b3J5UGF0aENhcHR1cmUo
bV9kaXJlY3RvcnlQYXRoKTsKLQotICAgIGlvUXVldWUoKS5kaXNwYXRjaChbZGlyZWN0b3J5UGF0
aENhcHR1cmVdIHsKLSAgICAgICAgU3RyaW5nIGRpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRo
Q2FwdHVyZS5zdHJpbmcoKTsKLSAgICAgICAgdHJhdmVyc2VEaXJlY3RvcnkoZGlyZWN0b3J5UGF0
aCwgRFRfRElSLCBbJmRpcmVjdG9yeVBhdGhdKGNvbnN0IFN0cmluZyYgc3ViZGlyTmFtZSkgewot
ICAgICAgICAgICAgU3RyaW5nIHN1YmRpclBhdGggPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoZGlyZWN0b3J5UGF0aCwgc3ViZGlyTmFtZSk7CisgICAgaW9RdWV1ZSgpLmRpc3Bh
dGNoKFt0aGlzXSB7CisgICAgICAgIGF1dG8gY2FjaGVQYXRoID0gZGlyZWN0b3J5UGF0aCgpOwor
ICAgICAgICB0cmF2ZXJzZURpcmVjdG9yeShjYWNoZVBhdGgsIERUX0RJUiwgWyZjYWNoZVBhdGhd
KGNvbnN0IFN0cmluZyYgc3ViZGlyTmFtZSkgeworICAgICAgICAgICAgU3RyaW5nIHN1YmRpclBh
dGggPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVQYXRoLCBzdWJkaXJO
YW1lKTsKICAgICAgICAgICAgIHRyYXZlcnNlRGlyZWN0b3J5KHN1YmRpclBhdGgsIERUX1JFRywg
WyZzdWJkaXJQYXRoXShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKSB7CiAgICAgICAgICAgICAgICAg
V2ViQ29yZTo6ZGVsZXRlRmlsZShXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3Vi
ZGlyUGF0aCwgZmlsZU5hbWUpKTsKICAgICAgICAgICAgIH0pOwpAQCAtNjkxLDkgKzY5MSw4IEBA
IHZvaWQgU3RvcmFnZTo6c2hyaW5rKCkKIAogICAgIExPRyhOZXR3b3JrQ2FjaGVTdG9yYWdlLCAi
KE5ldHdvcmtQcm9jZXNzKSBzaHJpbmtpbmcgY2FjaGUgYXBwcm94aW1hdGVTaXplPSV6dSBjYXBh
Y2l0eT0lenUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fYXBwcm94aW1hdGVTaXplKSwgbV9jYXBh
Y2l0eSk7CiAKLSAgICBTdHJpbmdDYXB0dXJlIGNhY2hlUGF0aENhcHR1cmUobV9kaXJlY3RvcnlQ
YXRoKTsKLSAgICBiYWNrZ3JvdW5kSU9RdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCBjYWNoZVBhdGhD
YXB0dXJlXSB7Ci0gICAgICAgIFN0cmluZyBjYWNoZVBhdGggPSBjYWNoZVBhdGhDYXB0dXJlLnN0
cmluZygpOworICAgIGJhY2tncm91bmRJT1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAg
ICAgYXV0byBjYWNoZVBhdGggPSBkaXJlY3RvcnlQYXRoKCk7CiAgICAgICAgIHRyYXZlcnNlQ2Fj
aGVGaWxlcyhjYWNoZVBhdGgsIFtdKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgcGFydGl0aW9uUGF0aCkgewogICAgICAgICAgICAgYXV0byBmaWxlUGF0aCA9IFdlYkNvcmU6
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXJ0aXRpb25QYXRoLCBmaWxlTmFtZSk7CiAKQEAg
LTcyNiw5ICs3MjUsOCBAQCB2b2lkIFN0b3JhZ2U6OnNocmluaygpCiB2b2lkIFN0b3JhZ2U6OmRl
bGV0ZU9sZFZlcnNpb25zKCkKIHsKICAgICAvLyBEZWxldGUgVjEgY2FjaGUuCi0gICAgU3RyaW5n
Q2FwdHVyZSBjYWNoZVBhdGhDYXB0dXJlKG1fYmFzZURpcmVjdG9yeVBhdGgpOwotICAgIGJhY2tn
cm91bmRJT1F1ZXVlKCkuZGlzcGF0Y2goW2NhY2hlUGF0aENhcHR1cmVdIHsKLSAgICAgICAgU3Ry
aW5nIGNhY2hlUGF0aCA9IGNhY2hlUGF0aENhcHR1cmUuc3RyaW5nKCk7CisgICAgYmFja2dyb3Vu
ZElPUXVldWUoKS5kaXNwYXRjaChbdGhpc10geworICAgICAgICBhdXRvIGNhY2hlUGF0aCA9IGRp
cmVjdG9yeVBhdGgoKTsKICAgICAgICAgdHJhdmVyc2VEaXJlY3RvcnkoY2FjaGVQYXRoLCBEVF9E
SVIsIFsmY2FjaGVQYXRoXShjb25zdCBTdHJpbmcmIHN1YmRpck5hbWUpIHsKICAgICAgICAgICAg
IGlmIChzdWJkaXJOYW1lLnN0YXJ0c1dpdGgodmVyc2lvbkRpcmVjdG9yeVByZWZpeCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gMTgy
Njg3KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RvcmFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw4ICs3OSw4IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2ZXJzaW9uID0gMjsKIAotICAgIGNvbnN0IFN0cmluZyYg
YmFzZURpcmVjdG9yeVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VEaXJlY3RvcnlQYXRoOyB9
Ci0gICAgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9kaXJl
Y3RvcnlQYXRoOyB9CisgICAgY29uc3QgU3RyaW5nIGJhc2VEaXJlY3RvcnlQYXRoKCkgY29uc3Q7
CisgICAgY29uc3QgU3RyaW5nIGRpcmVjdG9yeVBhdGgoKSBjb25zdDsKIAogcHJpdmF0ZToKICAg
ICBTdG9yYWdlKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5UGF0aCk7CkBAIC0xMTYsOCArMTE2LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWRkVG9Db250ZW50c0ZpbHRlcihjb25zdCBLZXkmKTsK
IAotICAgIGNvbnN0IFN0cmluZyBtX2Jhc2VEaXJlY3RvcnlQYXRoOwotICAgIGNvbnN0IFN0cmlu
ZyBtX2RpcmVjdG9yeVBhdGg7CisgICAgY29uc3QgUmVmPFN0cmluZ0ltcGw+IG1fYmFzZURpcmVj
dG9yeVBhdGg7CisgICAgY29uc3QgUmVmPFN0cmluZ0ltcGw+IG1fZGlyZWN0b3J5UGF0aDsKIAog
ICAgIHNpemVfdCBtX2NhcGFjaXR5IHsgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSB9OwogICAgIHNpemVfdCBtX2FwcHJveGltYXRlU2l6ZSB7IDAgfTsK
</data>
<flag name="review"
          id="275431"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>