<?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>142239</bug_id>
          
          <creation_ts>2015-03-03 15:03:05 -0800</creation_ts>
          <short_desc>Access ApplicationCacheStorage global instance via singleton() static member function</short_desc>
          <delta_ts>2015-03-03 16:10:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1073825</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-03 15:03:05 -0800</bug_when>
    <thetext>Access ApplicationCacheStorage global instance via singleton() static member function, as per coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073834</commentid>
    <comment_count>1</comment_count>
      <attachid>247803</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-03 15:24:13 -0800</bug_when>
    <thetext>Created attachment 247803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073841</commentid>
    <comment_count>2</comment_count>
      <attachid>247803</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-03 16:10:33 -0800</bug_when>
    <thetext>Comment on attachment 247803
Patch

Clearing flags on attachment: 247803

Committed r180963: &lt;http://trac.webkit.org/changeset/180963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073842</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-03 16:10:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247803</attachid>
            <date>2015-03-03 15:24:13 -0800</date>
            <delta_ts>2015-03-03 16:10:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142239-20150303152355.patch</filename>
            <type>text/plain</type>
            <size>28343</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3ODNiMTFmM2Y2OTQ1
OTIxNTYxMTkyMjkyZGQzNWM5ZWMyMjVmYS4uODE2OGY5YTRhNTAyYmYwMGEwZjg1YmRlMWNkODlj
OWY3Y2Y3MGMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAzLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlIGdsb2JhbCBpbnN0YW5jZSB2aWEgc2luZ2xldG9uKCkgc3RhdGljIG1lbWJl
ciBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWNjZXNzIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlIGdsb2JhbCBpbnN0YW5jZSB2aWEgc2lu
Z2xldG9uKCkgc3RhdGljCisgICAgICAgIG1lbWJlciBmdW5jdGlvbiBhcyBwZXIgV2ViS2l0IGNv
ZGluZyBzdHlsZS4KKwogMjAxNS0wMy0wMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGMwNTc0Y2Q5ODc5ODY0YTFmNDgxY2JhNDBkMjdlZGRiMjhlMzc4YTUuLmMyOTYzMzZhMTZh
YTRkNDAzZjNjYTAzNDllMjIzMjFlYWI2Mzc5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNS0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEFjY2VzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBnbG9iYWwgaW5zdGFuY2Ugdmlh
IHNpbmdsZXRvbigpIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjIzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSBnbG9iYWwgaW5zdGFuY2UgdmlhIHNpbmdsZXRvbigpIHN0YXRpYworICAgICAgICBtZW1iZXIg
ZnVuY3Rpb24gYXMgcGVyIFdlYktpdCBjb2Rpbmcgc3R5bGUuCisKIDIwMTUtMDMtMDIgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMV1bV0syXVtNYWNdIEZ1
bGxzY3JlZW4gYW5pbWF0aW9uIGlzIGluY29ycmVjdCB3aGVuIHBhZ2UgaXMgc2NhbGVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IDljNTQ0OTQ0ODUxZjM0NWMwYWFmYzlhZGZhN2YzNjc4YWEyNGMwNTUu
LjhlMTkyMjg0MThhMGE2N2ZkYzIzYmNjNTY4NmM3MmYyYWViMDNiOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEFjY2VzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBnbG9iYWwg
aW5zdGFuY2UgdmlhIHNpbmdsZXRvbigpIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjIzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VzcyBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZSBnbG9iYWwgaW5zdGFuY2UgdmlhIHNpbmdsZXRvbigpIHN0YXRpYworICAg
ICAgICBtZW1iZXIgZnVuY3Rpb24gYXMgcGVyIFdlYktpdCBjb2Rpbmcgc3R5bGUuCisKIDIwMTUt
MDMtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIE5v
dGlmaWNhdGlvbkNlbnRlciAvIE5vdGlmaWNhdGlvbiBzdXNwZW5kYWJsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGQzYTQ0M2VlNTAzMmJmYjViYjk3Y2Q2MzAwZWI1NmU1YTEzOGVjZGQuLmI3ZDhiMDljYTM4NTY3
YmU5YmY1MDE0YmQ4Y2ZiYmE2ZmQ2YWFmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNS0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFj
Y2VzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBnbG9iYWwgaW5zdGFuY2UgdmlhIHNpbmdsZXRv
bigpIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFjY2VzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBnbG9iYWwg
aW5zdGFuY2UgdmlhIHNpbmdsZXRvbigpIHN0YXRpYworICAgICAgICBtZW1iZXIgZnVuY3Rpb24g
YXMgcGVyIFdlYktpdCBjb2Rpbmcgc3R5bGUuCisKIDIwMTUtMDMtMDMgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEluY2x1ZGUga2V5IHRvIE5ldHdvcmtDYWNo
ZVN0b3JhZ2U6OkVudHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZS5jcHAKaW5kZXggYzI4MTA1N2ZhMzc3NjFiZGJkZDFhMzE5ZTI1NDQz
YjA4ZjA1M2QzMS4uZGM0YWRjZWNmNGQyZGNjNmZiZjRkNDRjNGNjNjYwMzJmOWU2YzZhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6OmFkZFJlc291cmNl
KFBhc3NSZWZQdHI8QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiByZXNvdXJjZQogICAgICAgICBB
U1NFUlQocmVzb3VyY2UtPnR5cGUoKSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVy
KTsKICAgICAgICAgCiAgICAgICAgIC8vIEFkZCB0aGUgcmVzb3VyY2UgdG8gdGhlIHN0b3JhZ2Uu
Ci0gICAgICAgIGNhY2hlU3RvcmFnZSgpLnN0b3JlKHJlc291cmNlLmdldCgpLCB0aGlzKTsKKyAg
ICAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpLnN0b3JlKHJlc291cmNl
LmdldCgpLCB0aGlzKTsKICAgICB9CiAKICAgICBtX2VzdGltYXRlZFNpemVJblN0b3JhZ2UgKz0g
cmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKTsKQEAgLTE5Miw4ICsxOTIsMTAgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpjbGVhclN0b3JhZ2VJRCgpCiAgICAgCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGU6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4p
CiB7CisgICAgYXV0byYgY2FjaGVTdG9yYWdlID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNp
bmdsZXRvbigpOworCiAgICAgVmVjdG9yPFVSTD4gdXJsczsKLSAgICBpZiAoIWNhY2hlU3RvcmFn
ZSgpLmdldE1hbmlmZXN0VVJMcygmdXJscykpIHsKKyAgICBpZiAoIWNhY2hlU3RvcmFnZS5nZXRN
YW5pZmVzdFVSTHMoJnVybHMpKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJldHJp
ZXZlIEFwcGxpY2F0aW9uQ2FjaGUgbWFuaWZlc3QgVVJMcyIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMjAzLDExICsyMDUsMTEgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpkZWxldGVD
YWNoZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIHNpemVfdCBjb3VudCA9
IHVybHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewog
ICAgICAgICBpZiAocHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHVybHNbaV0sIG9yaWdpblVS
TCkpIHsKLSAgICAgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAgPSBjYWNoZVN0
b3JhZ2UoKS5maW5kSW5NZW1vcnlDYWNoZUdyb3VwKHVybHNbaV0pOworICAgICAgICAgICAgQXBw
bGljYXRpb25DYWNoZUdyb3VwKiBncm91cCA9IGNhY2hlU3RvcmFnZS5maW5kSW5NZW1vcnlDYWNo
ZUdyb3VwKHVybHNbaV0pOwogICAgICAgICAgICAgaWYgKGdyb3VwKQogICAgICAgICAgICAgICAg
IGdyb3VwLT5tYWtlT2Jzb2xldGUoKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBjYWNoZVN0b3JhZ2UoKS5kZWxldGVDYWNoZUdyb3VwKHVybHNbaV0pOworICAgICAgICAgICAg
ICAgIGNhY2hlU3RvcmFnZS5kZWxldGVDYWNoZUdyb3VwKHVybHNbaV0pOwogICAgICAgICB9CiAg
ICAgfQogfQpAQCAtMjE2LDE3ICsyMTgsMTggQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpkZWxl
dGVBbGxDYWNoZXMoKQogewogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3Jp
Z2luczsKIAotICAgIGNhY2hlU3RvcmFnZSgpLmdldE9yaWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7
CisgICAgYXV0byYgY2FjaGVTdG9yYWdlID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmds
ZXRvbigpOworICAgIGNhY2hlU3RvcmFnZS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOwog
ICAgIGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKICAgICAgICAgZGVsZXRlQ2FjaGVGb3JP
cmlnaW4ob3JpZ2luLmdldCgpKTsKIAotICAgIGNhY2hlU3RvcmFnZSgpLnZhY3V1bURhdGFiYXNl
RmlsZSgpOworICAgIGNhY2hlU3RvcmFnZS52YWN1dW1EYXRhYmFzZUZpbGUoKTsKIH0KIAogaW50
NjRfdCBBcHBsaWNhdGlvbkNhY2hlOjpkaXNrVXNhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbikKIHsKICAgICBpbnQ2NF90IHVzYWdlID0gMDsKLSAgICBjYWNoZVN0b3JhZ2UoKS5j
YWxjdWxhdGVVc2FnZUZvck9yaWdpbihvcmlnaW4sIHVzYWdlKTsKKyAgICBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuY2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4ob3JpZ2luLCB1
c2FnZSk7CiAgICAgcmV0dXJuIHVzYWdlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDUzZTM1
NzQwOWJhZDg3ZWUyNmEwMTE3ZWM5ZTAwMzg2ZmE0OWQ4OWEuLmE1YmUwMWIxNGVmODc1YzVjMjc4
OWY5MzdkMzIyNTZkNGU0MTMzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC04Nyw3ICs4Nyw3IEBA
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6fkFwcGxpY2F0aW9uQ2FjaGVHcm91cCgpCiAgICAgCiAg
ICAgc3RvcExvYWRpbmcoKTsKICAgICAKLSAgICBjYWNoZVN0b3JhZ2UoKS5jYWNoZUdyb3VwRGVz
dHJveWVkKHRoaXMpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5j
YWNoZUdyb3VwRGVzdHJveWVkKHRoaXMpOwogfQogICAgIAogQXBwbGljYXRpb25DYWNoZSogQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZUZvck1haW5SZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQpAQCAtMTAyLDcg
KzEwMiw3IEBAIEFwcGxpY2F0aW9uQ2FjaGUqIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVG
b3JNYWluUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlCiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
LT5mcmFtZSgpICYmIGRvY3VtZW50TG9hZGVyLT5mcmFtZSgpLT5wYWdlKCktPnVzZXNFcGhlbWVy
YWxTZXNzaW9uKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKEFwcGxpY2F0aW9uQ2Fj
aGVHcm91cCogZ3JvdXAgPSBjYWNoZVN0b3JhZ2UoKS5jYWNoZUdyb3VwRm9yVVJMKHVybCkpIHsK
KyAgICBpZiAoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCA9IEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpzaW5nbGV0b24oKS5jYWNoZUdyb3VwRm9yVVJMKHVybCkpIHsKICAgICAgICAgQVNT
RVJUKGdyb3VwLT5uZXdlc3RDYWNoZSgpKTsKICAgICAgICAgQVNTRVJUKCFncm91cC0+aXNPYnNv
bGV0ZSgpKTsKICAgICAgICAgCkBAIC0xMjEsNyArMTIxLDcgQEAgQXBwbGljYXRpb25DYWNoZSog
QXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QoY29uc3Qg
UmVzb3UKICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQogICAgICAgICB1cmwu
cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKLSAgICBpZiAoQXBwbGljYXRpb25DYWNoZUdy
b3VwKiBncm91cCA9IGNhY2hlU3RvcmFnZSgpLmZhbGxiYWNrQ2FjaGVHcm91cEZvclVSTCh1cmwp
KSB7CisgICAgaWYgKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAgPSBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuZmFsbGJhY2tDYWNoZUdyb3VwRm9yVVJMKHVybCkpIHsK
ICAgICAgICAgQVNTRVJUKGdyb3VwLT5uZXdlc3RDYWNoZSgpKTsKICAgICAgICAgQVNTRVJUKCFn
cm91cC0+aXNPYnNvbGV0ZSgpKTsKIApAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjpzZWxlY3RDYWNoZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgcGFzc2Vk
TWFuaWZlc3RVCiAgICAgICAgICAgICBib29sIGluU3RvcmFnZSA9IHJlc291cmNlLT5zdG9yYWdl
SUQoKTsKICAgICAgICAgICAgIHJlc291cmNlLT5hZGRUeXBlKEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6Rm9yZWlnbik7CiAgICAgICAgICAgICBpZiAoaW5TdG9yYWdlKQotICAgICAgICAgICAg
ICAgIGNhY2hlU3RvcmFnZSgpLnN0b3JlVXBkYXRlZFR5cGUocmVzb3VyY2UsIG1haW5SZXNvdXJj
ZUNhY2hlKTsKKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xl
dG9uKCkuc3RvcmVVcGRhdGVkVHlwZShyZXNvdXJjZSwgbWFpblJlc291cmNlQ2FjaGUpOwogCiAg
ICAgICAgICAgICAvLyBSZXN0YXJ0IHRoZSBjdXJyZW50IG5hdmlnYXRpb24gZnJvbSB0aGUgdG9w
IG9mIHRoZSBuYXZpZ2F0aW9uIGFsZ29yaXRobSwgdW5kb2luZyBhbnkgY2hhbmdlcyB0aGF0IHdl
cmUgbWFkZQogICAgICAgICAgICAgLy8gYXMgcGFydCBvZiB0aGUgaW5pdGlhbCBsb2FkLgpAQCAt
MTk2LDcgKzE5Niw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpzZWxlY3RDYWNoZShG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgcGFzc2VkTWFuaWZlc3RVCiAgICAgaWYgKCFwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwobWFuaWZlc3RVUkwsIHJlcXVlc3QudXJsKCkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwID0gY2FjaGVTdG9y
YWdlKCkuZmluZE9yQ3JlYXRlQ2FjaGVHcm91cChtYW5pZmVzdFVSTCk7CisgICAgQXBwbGljYXRp
b25DYWNoZUdyb3VwKiBncm91cCA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24o
KS5maW5kT3JDcmVhdGVDYWNoZUdyb3VwKG1hbmlmZXN0VVJMKTsKIAogICAgIGRvY3VtZW50TG9h
ZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5zZXRDYW5kaWRhdGVBcHBsaWNhdGlvbkNhY2hl
R3JvdXAoZ3JvdXApOwogICAgIGdyb3VwLT5tX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMu
YWRkKGRvY3VtZW50TG9hZGVyKTsKQEAgLTQwOSw3ICs0MDksNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6bWFrZU9ic29sZXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc09i
c29sZXRlID0gdHJ1ZTsKLSAgICBjYWNoZVN0b3JhZ2UoKS5jYWNoZUdyb3VwTWFkZU9ic29sZXRl
KHRoaXMpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5jYWNoZUdy
b3VwTWFkZU9ic29sZXRlKHRoaXMpOwogICAgIEFTU0VSVCghbV9zdG9yYWdlSUQpOwogfQogCkBA
IC03NzMsNyArNzczLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlYWNoTWF4
QXBwQ2FjaGVTaXplKCkKIHsKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fY2Fj
aGVCZWluZ1VwZGF0ZWQpOwotICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
cmVhY2hlZE1heEFwcENhY2hlU2l6ZShjYWNoZVN0b3JhZ2UoKS5zcGFjZU5lZWRlZChtX2NhY2hl
QmVpbmdVcGRhdGVkLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpKTsKKyAgICBtX2ZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpLnNwYWNlTmVlZGVkKG1fY2FjaGVCZWluZ1VwZGF0
ZWQtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkpOwogICAgIG1fY2FsbGVkUmVhY2hlZE1heEFw
cENhY2hlU2l6ZSA9IHRydWU7CiAgICAgY2hlY2tJZkxvYWRJc0NvbXBsZXRlKCk7CiB9CkBAIC03
OTcsNyArNzk3LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNhY2hlVXBkYXRlRmFp
bGVkKCkKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxl
U3BhY2VJblF1b3RhKCkKIHsKLSAgICBpZiAoIWNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFp
bmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShtX29yaWdpbi5nZXQoKSwgbV9uZXdlc3RD
YWNoZS5nZXQoKSwgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEpKSB7CisgICAgaWYgKCFBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9y
aWdpbkV4Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBt
X2F2YWlsYWJsZVNwYWNlSW5RdW90YSkpIHsKICAgICAgICAgLy8gRmFpbGVkIHRvIGRldGVybWlu
ZSB3aGF0IGlzIGxlZnQgaW4gdGhlIHF1b3RhLiBGYWxsYmFjayB0byBhbGxvd2luZyBhbnl0aGlu
Zy4KICAgICAgICAgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPSBBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZTo6bm9RdW90YSgpOwogICAgIH0KQEAgLTg1NCw3ICs4NTQsNyBAQCB2b2lkIEFwcGxpY2F0
aW9uQ2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJc0NvbXBsZXRlKCkKIAogICAgICAgICAvLyBUaGUg
c3RvcmFnZSBjb3VsZCBoYXZlIGJlZW4gbWFudWFsbHkgZW1wdGllZCBieSB0aGUgdXNlci4KICAg
ICAgICAgaWYgKCFtX3N0b3JhZ2VJRCkKLSAgICAgICAgICAgIGNhY2hlU3RvcmFnZSgpLnN0b3Jl
TmV3ZXN0Q2FjaGUodGhpcyk7CisgICAgICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
c2luZ2xldG9uKCkuc3RvcmVOZXdlc3RDYWNoZSh0aGlzKTsKIAogICAgICAgICBwb3N0TGlzdGVu
ZXJUYXNrKEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpOT1VQREFURV9FVkVOVCwgbV9hc3NvY2lhdGVk
RG9jdW1lbnRMb2FkZXJzKTsKICAgICAgICAgYnJlYWs7CkBAIC04NzksNyArODc5LDcgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNoZWNrSWZMb2FkSXNDb21wbGV0ZSgpCiAgICAgICAg
ICAgICAvLyB0aGUgbWF4aW11bSBzaXplLiBJbiBzdWNoIGEgY2FzZSwgbV9tYW5pZmVzdFJlc291
cmNlIG1heSBiZSAwLCBhcwogICAgICAgICAgICAgLy8gdGhlIG1hbmlmZXN0IHdhcyBhbHJlYWR5
IHNldCBvbiB0aGUgbmV3ZXN0IGNhY2hlIG9iamVjdC4KICAgICAgICAgICAgIEFTU0VSVChtX2Nh
Y2hlQmVpbmdVcGRhdGVkLT5tYW5pZmVzdFJlc291cmNlKCkpOwotICAgICAgICAgICAgQVNTRVJU
KGNhY2hlU3RvcmFnZSgpLmlzTWF4aW11bVNpemVSZWFjaGVkKCkpOworICAgICAgICAgICAgQVNT
RVJUKEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5pc01heGltdW1TaXplUmVh
Y2hlZCgpKTsKICAgICAgICAgICAgIEFTU0VSVChtX2NhbGxlZFJlYWNoZWRNYXhBcHBDYWNoZVNp
emUpOwogICAgICAgICB9CiAKQEAgLTg4OCwxNSArODg4LDE2IEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpjaGVja0lmTG9hZElzQ29tcGxldGUoKQogICAgICAgICAvLyBJZiB3ZSBleGNl
ZWRlZCB0aGUgb3JpZ2luIHF1b3RhIHdoaWxlIGRvd25sb2FkaW5nIHdlIGNhbiByZXF1ZXN0IGEg
cXVvdGEKICAgICAgICAgLy8gaW5jcmVhc2Ugbm93LCBiZWZvcmUgd2UgYXR0ZW1wdCB0byBzdG9y
ZSB0aGUgY2FjaGUuCiAgICAgICAgIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZDsKLSAgICAgICAg
aWYgKCFjYWNoZVN0b3JhZ2UoKS5jaGVja09yaWdpblF1b3RhKHRoaXMsIG9sZE5ld2VzdENhY2hl
LmdldCgpLCBtX2NhY2hlQmVpbmdVcGRhdGVkLmdldCgpLCB0b3RhbFNwYWNlTmVlZGVkKSkKKyAg
ICAgICAgYXV0byYgY2FjaGVTdG9yYWdlID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmds
ZXRvbigpOworICAgICAgICBpZiAoIWNhY2hlU3RvcmFnZS5jaGVja09yaWdpblF1b3RhKHRoaXMs
IG9sZE5ld2VzdENhY2hlLmdldCgpLCBtX2NhY2hlQmVpbmdVcGRhdGVkLmdldCgpLCB0b3RhbFNw
YWNlTmVlZGVkKSkKICAgICAgICAgICAgIGRpZFJlYWNoT3JpZ2luUXVvdGEodG90YWxTcGFjZU5l
ZWRlZCk7CiAKICAgICAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OkZhaWx1cmVSZWFzb24g
ZmFpbHVyZVJlYXNvbjsKICAgICAgICAgc2V0TmV3ZXN0Q2FjaGUobV9jYWNoZUJlaW5nVXBkYXRl
ZC5yZWxlYXNlKCkpOwotICAgICAgICBpZiAoY2FjaGVTdG9yYWdlKCkuc3RvcmVOZXdlc3RDYWNo
ZSh0aGlzLCBvbGROZXdlc3RDYWNoZS5nZXQoKSwgZmFpbHVyZVJlYXNvbikpIHsKKyAgICAgICAg
aWYgKGNhY2hlU3RvcmFnZS5zdG9yZU5ld2VzdENhY2hlKHRoaXMsIG9sZE5ld2VzdENhY2hlLmdl
dCgpLCBmYWlsdXJlUmVhc29uKSkgewogICAgICAgICAgICAgLy8gTmV3IGNhY2hlIHN0b3JlZCwg
bm93IHJlbW92ZSB0aGUgb2xkIGNhY2hlLgogICAgICAgICAgICAgaWYgKG9sZE5ld2VzdENhY2hl
KQotICAgICAgICAgICAgICAgIGNhY2hlU3RvcmFnZSgpLnJlbW92ZShvbGROZXdlc3RDYWNoZS5n
ZXQoKSk7CisgICAgICAgICAgICAgICAgY2FjaGVTdG9yYWdlLnJlbW92ZShvbGROZXdlc3RDYWNo
ZS5nZXQoKSk7CiAKICAgICAgICAgICAgIC8vIEZpcmUgdGhlIGZpbmFsIHByb2dyZXNzIGV2ZW50
LgogICAgICAgICAgICAgQVNTRVJUKG1fcHJvZ3Jlc3NEb25lID09IG1fcHJvZ3Jlc3NUb3RhbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCAwNjE3MmQ2NTdhNWUwYmVlYjUwNGViMjc5OTU3ZjBi
OTA3YmEzYjM4Li42NDE5MmQxNmI5ZWRmOGY2NjljY2U1NmUxOGZlNzM5YmU0N2VhNzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5jcHAKQEAgLTE1ODQsNyArMTU4NCw3IEBAIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpCiB7CiB9CiAKLUFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlJiBjYWNoZVN0b3JhZ2UoKQorQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gc3RvcmFnZTsKICAgICByZXR1cm4gc3RvcmFn
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmgKaW5kZXggMmU0NDBjZmFhNTE0OWJkZmI5Mzg3NDJkOGE3NTI1ZTBj
ZDZhYTEwNS4uM2M3NTc2NWVjZDViZjE0YjM4N2QxMDYyNzdiOWZhMTY5NDM4YzQ2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogICAgICAgICBEaXNrT3JPcGVy
YXRpb25GYWlsdXJlCiAgICAgfTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZSYgc2luZ2xldG9uKCk7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENhY2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwogICAgIGNvbnN0IFN0cmluZyYgY2Fj
aGVEaXJlY3RvcnkoKSBjb25zdDsKICAgICAKQEAgLTEwMSw2ICsxMDMsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGludDY0X3Qgbm9RdW90YSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8
aW50NjRfdD46Om1heCgpOyB9CiBwcml2YXRlOgogICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
KCk7CisKICAgICBQYXNzUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGU+IGxvYWRDYWNoZSh1bnNpZ25l
ZCBzdG9yYWdlSUQpOwogICAgIEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogbG9hZENhY2hlR3JvdXAo
Y29uc3QgVVJMJiBtYW5pZmVzdFVSTCk7CiAgICAgCkBAIC0xNTAsOCArMTUzLDYgQEAgcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZT47CiB9OwogCi1XRUJDT1JFX0VYUE9SVCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSYg
Y2FjaGVTdG9yYWdlKCk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApp
bmRleCBkYTZlNzA5MGM2MjRmMTU1NGIzODdmMjAxYzhlYTU3NWY3NGE4N2UwLi42Yjk1MDA2OGQw
OThiNDgyMjAzZTMxNWYyZTliODBkNTkyZWY1MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25z
aXN0ZW50U3RhdGUoUGFnZSogcGFnZSkKICAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkuZWRpdG9y
KCkudG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAgICBpZiAocGFnZS0+bWFpbkZy
YW1lKCkuZWRpdG9yKCkuaXNPdmVyd3JpdGVNb2RlRW5hYmxlZCgpKQogICAgICAgICBwYWdlLT5t
YWluRnJhbWUoKS5lZGl0b3IoKS50b2dnbGVPdmVyd3JpdGVNb2RlRW5hYmxlZCgpOwotICAgIGNh
Y2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6bm9RdW90YSgpKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCku
c2V0RGVmYXVsdE9yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCkp
OwogI2lmIEVOQUJMRShWSURFTykKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkucmVzZXRSZXN0cmljdGlvbnMoKTsKICNlbmRpZgpAQCAtMTkyOCw3ICsxOTI4LDcgQEAg
dm9pZCBJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBs
b25nIGxvbmcgcXVvdGEpCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50
KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGNhY2hlU3RvcmFn
ZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
LCBxdW90YSk7CisgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpLnN0b3Jl
VXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBxdW90YSk7
CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpyZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVu
dFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
Q2FjaGUubW0KaW5kZXggYjQxNDhhYzFlOThiZGJiZTZhMGI3N2M5ZTZjODcwZWQ3MjQyOThkMS4u
MThkMzE0MmViNTIxYWZkMmI4ZjQyYTVkNTczN2FkNzZlMjkyOTc0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYkNhY2hlLm1tCkBAIC0xMTksNyArMTE5LDcgQEAgKyAodm9pZCllbXB0eQogICAgIFtX
ZWJWaWV3IF9zZXRDYWNoZU1vZGVsOmNhY2hlTW9kZWxdOwogCiAgICAgLy8gRW1wdHkgdGhlIGFw
cGxpY2F0aW9uIGNhY2hlLgotICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7Cisg
ICAgV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpLmVtcHR5KCk7
CiAKICAgICAvLyBFbXB0eSB0aGUgQ3Jvc3MtT3JpZ2luIFByZWZsaWdodCBjYWNoZQogICAgIFdl
YkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmVtcHR5
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBs
aWNhdGlvbkNhY2hlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBw
bGljYXRpb25DYWNoZS5tbQppbmRleCBlMmZkODY4ZDg2YTMxYmFjNGIwZjNlY2MwNTFjZWE5N2M5
MjgxMmQ0Li40OWZmYjA4Yjk3YWIxODZlZGIwOTEzYzE2ZmU5ZDQ4ZjE0MmMyM2RmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9u
Q2FjaGUubW0KQEAgLTUzLDcgKzUzLDcgQEAgKyAodm9pZClpbml0aWFsaXplV2l0aEJ1bmRsZUlk
ZW50aWZpZXI6KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcgogICAgIAogICAgIFNRTGl0ZURh
dGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudDo6
c2hhcmVkV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50KCkpOwogCi0gICAgY2FjaGVTdG9y
YWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkoW05TU3RyaW5nIF93ZWJraXRfbG9jYWxDYWNoZURpcmVj
dG9yeVdpdGhCdW5kbGVJZGVudGlmaWVyOmJ1bmRsZUlkZW50aWZpZXJdKTsKKyAgICBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuc2V0Q2FjaGVEaXJlY3RvcnkoW05TU3RyaW5n
IF93ZWJraXRfbG9jYWxDYWNoZURpcmVjdG9yeVdpdGhCdW5kbGVJZGVudGlmaWVyOmJ1bmRsZUlk
ZW50aWZpZXJdKTsKICAgICAKICAgICBpbml0aWFsaXplZCA9IFlFUzsKIH0KQEAgLTYxLDIzICs2
MSwyNCBAQCArICh2b2lkKWluaXRpYWxpemVXaXRoQnVuZGxlSWRlbnRpZmllcjooTlNTdHJpbmcg
KilidW5kbGVJZGVudGlmaWVyCiAKICsgKGxvbmcgbG9uZyltYXhpbXVtU2l6ZQogewotICAgIHJl
dHVybiBjYWNoZVN0b3JhZ2UoKS5tYXhpbXVtU2l6ZSgpOworICAgIHJldHVybiBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkubWF4aW11bVNpemUoKTsKIH0KIAogKyAodm9pZClz
ZXRNYXhpbXVtU2l6ZToobG9uZyBsb25nKXNpemUKIHsKLSAgICBjYWNoZVN0b3JhZ2UoKS5kZWxl
dGVBbGxFbnRyaWVzKCk7Ci0gICAgY2FjaGVTdG9yYWdlKCkuc2V0TWF4aW11bVNpemUoc2l6ZSk7
CisgICAgYXV0byYgY2FjaGVTdG9yYWdlID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmds
ZXRvbigpOworICAgIGNhY2hlU3RvcmFnZS5kZWxldGVBbGxFbnRyaWVzKCk7CisgICAgY2FjaGVT
dG9yYWdlLnNldE1heGltdW1TaXplKHNpemUpOwogfQogCiArIChsb25nIGxvbmcpZGVmYXVsdE9y
aWdpblF1b3RhCiB7Ci0gICAgcmV0dXJuIGNhY2hlU3RvcmFnZSgpLmRlZmF1bHRPcmlnaW5RdW90
YSgpOworICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuZGVm
YXVsdE9yaWdpblF1b3RhKCk7CiB9CiAKICsgKHZvaWQpc2V0RGVmYXVsdE9yaWdpblF1b3RhOihs
b25nIGxvbmcpc2l6ZQogewotICAgIGNhY2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90
YShzaXplKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuc2V0RGVm
YXVsdE9yaWdpblF1b3RhKHNpemUpOwogfQogCiArIChsb25nIGxvbmcpZGlza1VzYWdlRm9yT3Jp
Z2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbgpAQCAtOTgsNyArOTksNyBAQCArICh2b2lk
KWRlbGV0ZUNhY2hlRm9yT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbgogKyAoTlNB
cnJheSAqKW9yaWdpbnNXaXRoQ2FjaGUKIHsKICAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4+IGNvcmVPcmlnaW5zOwotICAgIGNhY2hlU3RvcmFnZSgpLmdldE9yaWdpbnNXaXRoQ2Fj
aGUoY29yZU9yaWdpbnMpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24o
KS5nZXRPcmlnaW5zV2l0aENhY2hlKGNvcmVPcmlnaW5zKTsKICAgICAKICAgICBOU011dGFibGVB
cnJheSAqd2ViT3JpZ2lucyA9IFtbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OmNvcmVPcmlnaW5zLnNpemUoKV0gYXV0b3JlbGVhc2VdOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3Rh
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KaW5kZXggYzRkNTJmZDFiZDBlNTg2ZDM3MTE3NGFmZGIy
NTkxZGU4MWNmOWEyNC4uZjk3OTUyOGIyNzk4MzUxMGE0YmRjZjExMjY0YzMwMTBkZDlmMTM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCkBAIC01MCw3ICs1MCw3IEBA
IC0gKFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNh
Z2UKIHsKICAgICBsb25nIGxvbmcgdXNhZ2U7Ci0gICAgaWYgKGNhY2hlU3RvcmFnZSgpLmNhbGN1
bGF0ZVVzYWdlRm9yT3JpZ2luKFtfb3JpZ2luIF9jb3JlXSwgdXNhZ2UpKQorICAgIGlmIChBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuY2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4o
W19vcmlnaW4gX2NvcmVdLCB1c2FnZSkpCiAgICAgICAgIHJldHVybiB1c2FnZTsKICAgICByZXR1
cm4gMDsKIH0KQEAgLTU4LDE0ICs1OCwxNCBAQCAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UK
IC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90YQogewogICAgIGxvbmcgbG9uZyBxdW90YTsKLSAg
ICBpZiAoY2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oW19vcmlnaW4gX2Nv
cmVdLCBxdW90YSkpCisgICAgaWYgKEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24o
KS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKICAgICAg
ICAgcmV0dXJuIHF1b3RhOwogICAgIHJldHVybiAwOwogfQogCiAtICh2b2lkKXNldFF1b3RhOih1
bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsKLSAgICBjYWNoZVN0b3JhZ2UoKS5zdG9yZVVwZGF0
ZWRRdW90YUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1b3RhKTsKKyAgICBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oW19v
cmlnaW4gX2NvcmVdLCBxdW90YSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA4NjhlNmE5MjBhYTg0YWMxNzIyMDRmMGZkYzU4NmQ3Yzg3MTExMDQxLi5k
YWZiMzgxZmZjMDNhYmVkN2Q0ZDcxNmYxMWM1ZTAzNGY0MzdhZjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NDAsNyArNzQwLDcgQEAgc3RhdGljIHZvaWQgV2ViS2l0
SW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKQogCiAgICAgTlNTdHJp
bmcqIGNhY2hlRGlyID0gW05TU3RyaW5nIF93ZWJraXRfbG9jYWxDYWNoZURpcmVjdG9yeVdpdGhC
dW5kbGVJZGVudGlmaWVyOmFwcE5hbWVdOwogCi0gICAgY2FjaGVTdG9yYWdlKCkuc2V0Q2FjaGVE
aXJlY3RvcnkoY2FjaGVEaXIpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0
b24oKS5zZXRDYWNoZURpcmVjdG9yeShjYWNoZURpcik7CiAgICAgaW5pdGlhbGl6ZWQgPSBZRVM7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkFwcGxpY2F0aW9uQ2FjaGUu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGljYXRpb25DYWNoZS5jcHAKaW5kZXggNjM1
NjcyNmNiZWU5ZWQ2ZWQyMmRjMGIyZGU3NDlhNWY5YzFiMjI3MS4uMGZiZGUxZTExMjk0MjQ3M2E2
MmIzN2UzOWEyY2FiYzU5MzUyOTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
QXBwbGljYXRpb25DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQXBwbGljYXRp
b25DYWNoZS5jcHAKQEAgLTk1LDE0ICs5NSwxNSBAQCBIUkVTVUxUIFdlYkFwcGxpY2F0aW9uQ2Fj
aGU6Om1heGltdW1TaXplKGxvbmcgbG9uZyogc2l6ZSkKICAgICBpZiAoIXNpemUpCiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CiAKLSAgICAqc2l6ZSA9IFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgp
Lm1heGltdW1TaXplKCk7CisgICAgKnNpemUgPSBXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZTo6c2luZ2xldG9uKCkubWF4aW11bVNpemUoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAog
SFJFU1VMVCBXZWJBcHBsaWNhdGlvbkNhY2hlOjpzZXRNYXhpbXVtU2l6ZShsb25nIGxvbmcgc2l6
ZSkKIHsKLSAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5kZWxldGVBbGxFbnRyaWVzKCk7Ci0g
ICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0TWF4aW11bVNpemUoc2l6ZSk7CisgICAgYXV0
byYgY2FjaGVTdG9yYWdlID0gV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmds
ZXRvbigpOworICAgIGNhY2hlU3RvcmFnZS5kZWxldGVBbGxFbnRyaWVzKCk7CisgICAgY2FjaGVT
dG9yYWdlLnNldE1heGltdW1TaXplKHNpemUpOwogICAgIHJldHVybiBTX09LOwogfQogCkBAIC0x
MTEsMTMgKzExMiwxMyBAQCBIUkVTVUxUIFdlYkFwcGxpY2F0aW9uQ2FjaGU6OmRlZmF1bHRPcmln
aW5RdW90YShsb25nIGxvbmcqIHF1b3RhKQogICAgIGlmICghcXVvdGEpCiAgICAgICAgIHJldHVy
biBFX1BPSU5URVI7CiAKLSAgICAqcXVvdGEgPSBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5kZWZh
dWx0T3JpZ2luUXVvdGEoKTsKKyAgICAqcXVvdGEgPSBXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c2luZ2xldG9uKCkuZGVmYXVsdE9yaWdpblF1b3RhKCk7CiAgICAgcmV0dXJuIFNf
T0s7CiB9CiAKIEhSRVNVTFQgV2ViQXBwbGljYXRpb25DYWNoZTo6c2V0RGVmYXVsdE9yaWdpblF1
b3RhKGxvbmcgbG9uZyBxdW90YSkKIHsKLSAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRE
ZWZhdWx0T3JpZ2luUXVvdGEocXVvdGEpOworICAgIFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpzaW5nbGV0b24oKS5zZXREZWZhdWx0T3JpZ2luUXVvdGEocXVvdGEpOwogICAgIHJl
dHVybiBTX09LOwogfQogCkBAIC0xNjAsNyArMTYxLDcgQEAgSFJFU1VMVCBXZWJBcHBsaWNhdGlv
bkNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKElQcm9wZXJ0eUJhZyoqIG9yaWdpbnMpCiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CiAKICAgICBIYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4+IGNvcmVPcmlnaW5zOwotICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmdldE9y
aWdpbnNXaXRoQ2FjaGUoY29yZU9yaWdpbnMpOworICAgIFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpzaW5nbGV0b24oKS5nZXRPcmlnaW5zV2l0aENhY2hlKGNvcmVPcmlnaW5zKTsK
IAogICAgIFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gYXJyYXlJdGVtID0gYWRvcHRDRihD
RkFycmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb3JlT3JpZ2lucy5zaXpl
KCksICZNYXJzaGFsbGluZ0hlbHBlcnM6OmtJVW5rbm93bkFycmF5Q2FsbEJhY2tzKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNhY2hlLmNwcAppbmRleCA0YWU1MDBjMWVkYzA5OWFmMTQ4ZWIwYjNjMWY4YzJhMTk5
MzFkMWZjLi5lYWVlNTAzODkxZjBkNGVmMzc2YTU5YjdmNGYzZGZkMTJkYWMzM2JiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ2FjaGUuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJDYWNoZTo6ZW1wdHkoIHZvaWQpCiAgICAgbWVtb3J5Q2FjaGUuc2V0RGlzYWJsZWQo
ZmFsc2UpOwogCiAgICAgLy8gRW1wdHkgdGhlIGFwcGxpY2F0aW9uIGNhY2hlLgotICAgIFdlYkNv
cmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7CisgICAgV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OnNpbmdsZXRvbigpLmVtcHR5KCk7CiAKICAgICAvLyBFbXB0eSB0aGUgQ3Jvc3Mt
T3JpZ2luIFByZWZsaWdodCBjYWNoZQogICAgIFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmVtcHR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4
IDMzM2Y0NjdiMDdhMDlmNzE0ZmJhMGM1N2FkODM2MjVmZjk2MWQyMGYuLjM1ODE4NDk3YmZhYTVh
NzRmYTk2OGIyMzAzY2E4ZTEyYmZmNTRjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0yNzAy
LDcgKzI3MDIsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRTZXRBcHBsaWNhdGlvbkNhY2hlUGF0aElm
TmVjZXNzYXJ5KCkKICNlbmRpZgogCiAgICAgaWYgKCFwYXRoLmlzTnVsbCgpKQotICAgICAgICBj
YWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURpcmVjdG9yeShwYXRoKTsKKyAgICAgICAgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpLnNldENhY2hlRGlyZWN0b3J5KHBhdGgpOwogCiAg
ICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggMDNlN2EwNjY3ZmU2M2U4ZGRiYTg3Yzg1NGZhODU4NGIyMzJl
M2MwZC4uOGYzZjkxODk0YWQwNDQyOGUyZWM5M2RmOGNlMDdhMzc1Y2EzZTdkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MDEsNyArNzAxLDcg
QEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcygp
CiAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0UU9TKHdlYlByb2Nl
c3NMYXRlbmN5UU9TKCksIHdlYlByb2Nlc3NUaHJvdWdocHV0UU9TKCkpLCAwKTsKICNlbmRpZgog
I2lmIFBMQVRGT1JNKElPUykKLSAgICBjYWNoZVN0b3JhZ2UoKS5zZXREZWZhdWx0T3JpZ2luUXVv
dGEoMjVVTEwgKiAxMDI0ICogMTAyNCk7CisgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNp
bmdsZXRvbigpLnNldERlZmF1bHRPcmlnaW5RdW90YSgyNVVMTCAqIDEwMjQgKiAxMDI0KTsKICNl
bmRpZgogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdlc0FyZVVzaW5nUHJpdmF0ZUJy
b3dzaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cAppbmRleCAyMTY2YWJkMWE4YzdmMTQwZjU5MTkzMWExZDY2MzA1NTM5NmQ4OWNkLi4xOTFkMDRk
YWFhZjFiNjFjOTM0YTIzOTI5ZjhkOTNhOWMyMWVkZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnModWludDY0
X3QgY2FsbGJhY2tJRCkKIHsKICAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9y
aWdpbnM7CiAKLSAgICBjYWNoZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMp
OworICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5nZXRPcmlnaW5zV2l0
aENhY2hlKG9yaWdpbnMpOwogCiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRp
ZmllcnM7CiAgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsK
QEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRl
QWxsRW50cmllcygpCiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNldEFwcENh
Y2hlTWF4aW11bVNpemUodWludDY0X3Qgc2l6ZSkKIHsKLSAgICBjYWNoZVN0b3JhZ2UoKS5zZXRN
YXhpbXVtU2l6ZShzaXplKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9u
KCkuc2V0TWF4aW11bVNpemUoc2l6ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAppbmRleCBlZjFmMjI0ZDU5NDMzNzczNTcxMDE3N2VkMmJiYWViN2Ni
NzE5ZTk1Li4wZjk0MDZjN2U1ODUwZWZkMWM0NjAyYmUzYTliMzNkM2M4MTg3YTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtMzc0LDE5ICszNzQsMjAgQEAgdWludDY0X3QgSW5qZWN0ZWRC
dW5kbGU6OmFwcENhY2hlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcp
CiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IGJ5dGVzKQogewogICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
b3JpZ2luU3RyaW5nKTsKLSAgICBjYWNoZVN0b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9y
aWdpbihvcmlnaW4uZ2V0KCksIGJ5dGVzKTsKKyAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
c2luZ2xldG9uKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4ob3JpZ2luLmdldCgpLCBieXRl
cyk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlc2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2lu
U3RyaW5nKTsKLSAgICBjYWNoZVN0b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihv
cmlnaW4uZ2V0KCksIGNhY2hlU3RvcmFnZSgpLmRlZmF1bHRPcmlnaW5RdW90YSgpKTsKKyAgICBh
dXRvJiBjYWNoZVN0b3JhZ2UgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCk7
CisgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbi5nZXQo
KSwgY2FjaGVTdG9yYWdlLmRlZmF1bHRPcmlnaW5RdW90YSgpKTsKIH0KIAogUGFzc1JlZlB0cjxB
UEk6OkFycmF5PiBJbmplY3RlZEJ1bmRsZTo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKCkK
IHsKICAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7Ci0gICAgY2Fj
aGVTdG9yYWdlKCkuZ2V0T3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsKKyAgICBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuZ2V0T3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBvcmlnaW5JZGVudGlmaWVyczsKICAg
ICBvcmlnaW5JZGVudGlmaWVycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG9yaWdpbnMuc2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzMjQ4MjFmNTkzMTc0Nzc1MWI3MzQzMDc2
M2MzNTMxMzc2ZmE1NjA0Li43OWZiMjk2NDE4MTIyNjFiOGMzYzVkZWNkM2UwMGNhZDBkNjliMWVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03MjQsOCArNzI0LDkgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiwKICAgICBpZiAoV2ViUGFnZTo6c3luY2hyb25vdXNNZXNzYWdlc1Nob3Vs
ZFNwaW5SdW5Mb29wKCkpCiAgICAgICAgIHN5bmNTZW5kRmxhZ3MgfD0gSVBDOjpTcGluUnVuTG9v
cFdoaWxlV2FpdGluZ0ZvclJlcGx5OwogCisgICAgYXV0byYgY2FjaGVTdG9yYWdlID0gQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRvbigpOwogICAgIGludDY0X3QgY3VycmVudFF1b3Rh
ID0gMDsKLSAgICBpZiAoIWNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKG9y
aWdpbiwgY3VycmVudFF1b3RhKSkKKyAgICBpZiAoIWNhY2hlU3RvcmFnZS5jYWxjdWxhdGVRdW90
YUZvck9yaWdpbihvcmlnaW4sIGN1cnJlbnRRdW90YSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IHVpbnQ2NF90IG5ld1F1b3RhID0gMDsKQEAgLTczMyw3ICs3MzQsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biogb3JpZ2luLAogICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKG9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJl
bnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCksCiAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6OlJlcGx5KG5ld1F1b3RhKSwg
bV9wYWdlLT5wYWdlSUQoKSwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6bWF4KCksIHN5bmNT
ZW5kRmxhZ3MpOwogCi0gICAgY2FjaGVTdG9yYWdlKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmln
aW4ob3JpZ2luLCBuZXdRdW90YSk7CisgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3Rh
Rm9yT3JpZ2luKG9yaWdpbiwgbmV3UXVvdGEpOwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9T
VVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggY2Q1
MmQ5MGM1NmU3ODJjMWM5NGFjNWJmMWM2Nzc2YThjMjJlZWYyMS4uZjE4MGM5YTVmMjk1ZmI5Yjdi
ZjNhYTkxNzZkZTNlZjg4M2EyYWRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNl
bmRpZgogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkuaXNF
bXB0eSgpKQotICAgICAgICBjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURpcmVjdG9yeShwYXJhbWV0
ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOworICAgICAgICBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c2luZ2xldG9uKCkuc2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5hcHBsaWNh
dGlvbkNhY2hlRGlyZWN0b3J5KTsKIAogICAgIG1fZGlza0NhY2hlSXNEaXNhYmxlZEZvclRlc3Rp
bmcgPSBwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBzZXRD
YWNoZU1vZGVsKHN0YXRpY19jYXN0PHVpbnQzMl90PihwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpKTsK
QEAgLTcyOSw3ICs3MjksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMo
UmVzb3VyY2VDYWNoZXNUb0NsZWFyIHJlc291cmNlQ2FjaGVzVG9DbGVhcgogdm9pZCBXZWJQcm9j
ZXNzOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIC8vIEVtcHR5IHRoZSBhcHBsaWNh
dGlvbiBjYWNoZS4KLSAgICBjYWNoZVN0b3JhZ2UoKS5lbXB0eSgpOworICAgIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5lbXB0eSgpOwogfQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgYWRkQ2FzZUZvbGRlZENoYXJhY3RlcnMoU3RyaW5nSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>