<?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>140902</bug_id>
          
          <creation_ts>2015-01-26 14:09:58 -0800</creation_ts>
          <short_desc>Rename Document::body() to Document::bodyOrFrameset() for clarity</short_desc>
          <delta_ts>2015-01-26 16:26:30 -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>DOM</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>http://www.w3.org/TR/html5/dom.html#dom-tree-accessors</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>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064257</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-26 14:09:58 -0800</bug_when>
    <thetext>Rename Document::body() to Document::bodyOrFrameset() for clarity. This method does not necessarily return an HTMLBodyElement, it can also return a frameset as per the specification:
http://www.w3.org/TR/html5/dom.html#dom-tree-accessors

This method is often misused internally (the caller is only interested in the &lt;body&gt; element). I will fix these instances in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064272</commentid>
    <comment_count>1</comment_count>
      <attachid>245377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-26 14:45:31 -0800</bug_when>
    <thetext>Created attachment 245377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064280</commentid>
    <comment_count>2</comment_count>
      <attachid>245380</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-26 15:13:21 -0800</bug_when>
    <thetext>Created attachment 245380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064283</commentid>
    <comment_count>3</comment_count>
      <attachid>245380</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-01-26 15:38:38 -0800</bug_when>
    <thetext>Comment on attachment 245380
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064293</commentid>
    <comment_count>4</comment_count>
      <attachid>245380</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-26 16:26:24 -0800</bug_when>
    <thetext>Comment on attachment 245380
Patch

Clearing flags on attachment: 245380

Committed r179157: &lt;http://trac.webkit.org/changeset/179157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064294</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-26 16:26:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245377</attachid>
            <date>2015-01-26 14:45:31 -0800</date>
            <delta_ts>2015-01-26 15:13:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140902-20150126144534.patch</filename>
            <type>text/plain</type>
            <size>39726</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA1NTJkYzhjZWJlMDdk
NTg3ODNlMWM1ZjVmZGM0N2U4N2EwMzFhNS4uNGUxNWU4ZmMxZDA3ZDMzNTU5NzczN2U2NGEzOTBm
MGFhNTIzMWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IGxldCB0aGUgQ1NTVmFsdWVQb29sJ3MgZm9udCBmYW1pbHkgY2FjaGUg
Z3JvdyB1bmJvdW5kZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzlkZTcxZTExNmY4ZjRmZjQ2MDYw
ZWE5ODhmM2EyZDNhY2UwMjI0Zi4uODRhNWYzNTI4NmIzNmQ5MTc5YzhmNGU4YzNjZjg5YTJlM2Vi
NGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBbU1ZHIC0+IE9URiBDb252ZXJ0ZXJdIEZsaXAgdGhlIHN3
aXRjaCBvZmYgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmM2MDcxZWEwNGRmMzNjMjI1YmRl
MDQwZTdiZTVhOTNjOTY2NDk5Ny4uZjU0YjMzMDI1YWIxZjM3ZTFiMmJiMDdiNzZmYTA4NzM5MzI5
YmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjUgIHBlYXZvQG91dGxvb2suY29tICA8cGVhdm9Ab3V0bG9vay5j
b20+CiAKICAgICAgICAgW1dpbl0gQWRkIFdlYktpdCBtZXNzYWdlIGxvb3AgaW50ZXJmYWNlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDQyNmRlNjZkMTJmNTY1NTA4M2M3NzczOTZlMzJjOGM4NjhkMjg0ZGEuLmM5
NTdjY2UwMDkzMWM5YTg5YjIxYjcyOWI3NDk0ZGU1YzdkMDJlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wMS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFt
ZXNldCgpIGZvciBjbGFyaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDA5MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgRG9jdW1lbnQ6OmJvZHkoKSB0byBEb2N1bWVudDo6Ym9keU9yRnJh
bWVzZXQoKSBmb3IgY2xhcml0eS4gVGhpcworICAgICAgICBtZXRob2QgZG9lcyBub3QgbmVjZXNz
YXJpbHkgcmV0dXJuIGFuIEhUTUxCb2R5RWxlbWVudCwgaXQgY2FuIGFsc28KKyAgICAgICAgcmV0
dXJuIGEgZnJhbWVzZXQgYXMgcGVyIHRoZSBzcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCNkb20tdHJlZS1hY2Nlc3NvcnMKKworICAgICAg
ICBUaGlzIG1ldGhvZCBpcyBvZnRlbiBtaXN1c2VkIGludGVybmFsbHkgKHRoZSBjYWxsZXIgaXMg
b25seSBpbnRlcmVzdGVkCisgICAgICAgIGluIHRoZSA8Ym9keT4gZWxlbWVudCkuIEkgd2lsbCBm
aXggdGhlc2UgaW5zdGFuY2VzIGluIGEgZm9sbG93LXVwIHBhdGNoLAorICAgICAgICB0aGlzIHBh
dGNoIGlzIG9ubHkgcmVuYW1pbmcgbWVjaGFuaWNhbGx5LgorCiAyMDE1LTAxLTI2ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBCbGFja2xpc3QgaUJvb2tzIGZvciBX
ZWJLaXQncyBkZWZhdWx0IGltbWVkaWF0ZSBhY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDA4YmUzZTlhYmEzYjFhNjRhYTU5MTRlN2RjNmZmOTVkMDFiOThmZGMuLjAwMjQ3YTc4YmZkNDkx
M2RmZjQ0OWNjYjViNWI0NDAwYTRjMTU0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yMTAx
LDggKzIxMDEsOCBAQCBfX1pOSzdXZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5L
N1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21w
bGV0ZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0
Q2FjaGVFdgorX19aTks3V2ViQ29yZThEb2N1bWVudDE0Ym9keU9yRnJhbWVzZXRFdgogX19aTks3
V2ViQ29yZThEb2N1bWVudDMxZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZ0VSS04zV1RG
NlN0cmluZ0UKLV9fWk5LN1dlYkNvcmU4RG9jdW1lbnQ0Ym9keUV2CiBfX1pOSzdXZWJDb3JlOERv
Y3VtZW50NHBhZ2VFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXYKIF9fWk5LN1dlYkNv
cmU4RG9jdW1lbnQ2ZG9tYWluRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggNWNmOWYyZGQxNjMyY2Zi
ODdlMGRiOWI2YTM2YzIwNjExODIxY2RjOC4uYWYyMDI5MTZlNGVlNzhjZDlhMjgxMDkyNjU5NzFk
MjZkNWZhNjc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTE0NjgsNyArMTQ2OCw3IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWx0ZXJuYXRpdmVUZXh0Rm9yV2ViQXJlYSgpIGNv
bnN0CiAgICAgaWYgKCFkb2N1bWVudFRpdGxlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGRv
Y3VtZW50VGl0bGU7CiAgICAgCi0gICAgaWYgKGF1dG8qIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgp
KQorICAgIGlmIChhdXRvKiBib2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCkpCiAgICAg
ICAgIHJldHVybiBib2R5LT5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgCiAgICAgcmV0dXJuIFN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggN2NhZTdmOTZjZmJmZmQ5ZWFhMDdmYjYz
OWFhMmE1MWFkMGE0MDQ3Yi4uZDMxZWVjM2FmYjg1YzhkOTgzNzBiNDA0MTA5YWNkMzJiMzU2NDYy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC01MjcsNyArNTI3LDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKICAgICBBU1NFUlQobV9yZW5k
ZXJlcik7CiAgICAgCiAgICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIGlmIChIVE1MRWxl
bWVudCogYm9keSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCkuYm9keSgpKSB7CisgICAgICAgIGlm
IChIVE1MRWxlbWVudCogYm9keSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCkuYm9keU9yRnJhbWVz
ZXQoKSkgewogICAgICAgICAgICAgaWYgKGJvZHktPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGFhNzEyMjYwZTBlYTA5N2QwNjE0YTk1ZWFjYmIwODMzZDY0Y2FhMmQuLjI4MzFhODA5
MDk5YTdhNDAyMThmMTBhN2IzYThiZTkyNDMxMmQ4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTg1OSw3ICsxODU5LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAg
Ly8gbW9tZW50LiAgSWYgaXQgd2VyZSBtb3JlIHJlZmluZWQsIHdlIG1pZ2h0IGJlIGFibGUgdG8g
ZG8gc29tZXRoaW5nIGJldHRlci4pCiAgICAgICAgIC8vIEl0J3Mgd29ydGggbm90aW5nIHRob3Vn
aCB0aGF0IHRoaXMgZW50aXJlIG1ldGhvZCBpcyBhIGhhY2ssIHNpbmNlIHdoYXQgd2UgcmVhbGx5
IHdhbnQgdG8gZG8gaXMKICAgICAgICAgLy8gc3VzcGVuZCBKUyBpbnN0ZWFkIG9mIGRvaW5nIGEg
bGF5b3V0IHdpdGggaW5hY2N1cmF0ZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgSFRNTEVsZW1lbnQq
IGJvZHlFbGVtZW50ID0gYm9keSgpOworICAgICAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQg
PSBib2R5T3JGcmFtZXNldCgpOwogICAgICAgICBpZiAoYm9keUVsZW1lbnQgJiYgIWJvZHlFbGVt
ZW50LT5yZW5kZXJlcigpICYmIG1fcGVuZGluZ1NoZWV0TGF5b3V0ID09IE5vTGF5b3V0V2l0aFBl
bmRpbmdTaGVldHMpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ1NoZWV0TGF5b3V0ID0gRGlkTGF5
b3V0V2l0aFBlbmRpbmdTaGVldHM7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyQ2hhbmdlZChS
ZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKQEAgLTIzMjQsNyArMjMyNCw3IEBAIHZvaWQgRG9jdW1l
bnQ6OmltcGxpY2l0T3BlbigpCiAgICAgc2V0UmVhZHlTdGF0ZShMb2FkaW5nKTsKIH0KIAotSFRN
TEVsZW1lbnQqIERvY3VtZW50Ojpib2R5KCkgY29uc3QKK0hUTUxFbGVtZW50KiBEb2N1bWVudDo6
Ym9keU9yRnJhbWVzZXQoKSBjb25zdAogewogICAgIC8vIElmIHRoZSBkb2N1bWVudCBlbGVtZW50
IGNvbnRhaW5zIGJvdGggYSBmcmFtZXNldCBhbmQgYSBib2R5LCB0aGUgZnJhbWVzZXQgd2lucy4K
ICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudEVsZW1lbnQoKTsKQEAgLTIzMzUsNyArMjMzNSw3
IEBAIEhUTUxFbGVtZW50KiBEb2N1bWVudDo6Ym9keSgpIGNvbnN0CiAgICAgcmV0dXJuIGNoaWxk
cmVuT2ZUeXBlPEhUTUxCb2R5RWxlbWVudD4oKmVsZW1lbnQpLmZpcnN0KCk7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OnNldEJvZHkoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIERvY3VtZW50OjpzZXRCb2R5T3JGcmFtZXNldChQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBwcnBOZXdCb2R5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IG5ld0JvZHkgPSBwcnBOZXdCb2R5OwogCkBAIC0yMzUzLDcgKzIz
NTMsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRCb2R5KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
cE5ld0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBuZXdCb2R5ID0gZG93bmNhc3Q8
SFRNTEVsZW1lbnQ+KG5vZGUuZ2V0KCkpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50KiBiID0g
Ym9keSgpOworICAgIEhUTUxFbGVtZW50KiBiID0gYm9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAo
IWIpCiAgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVh
c2UoKSwgZWMpOwogICAgIGVsc2UKQEAgLTI1NDEsNyArMjU0MSw3IEBAIGJvb2wgRG9jdW1lbnQ6
OnNob3VsZFNjaGVkdWxlTGF5b3V0KCkKICAgICAvLyAgICAoYSkgT25seSBzY2hlZHVsZSBhIGxh
eW91dCBvbmNlIHRoZSBzdHlsZXNoZWV0cyBhcmUgbG9hZGVkLgogICAgIC8vICAgIChiKSBPbmx5
IHNjaGVkdWxlIGxheW91dCBvbmNlIHdlIGhhdmUgYSBib2R5IGVsZW1lbnQuCiAKLSAgICByZXR1
cm4gKGhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpICYmIGJvZHkoKSkKKyAgICByZXR1cm4gKGhhdmVT
dHlsZXNoZWV0c0xvYWRlZCgpICYmIGJvZHlPckZyYW1lc2V0KCkpCiAgICAgICAgIHx8IChkb2N1
bWVudEVsZW1lbnQoKSAmJiAhZG9jdW1lbnRFbGVtZW50KCktPmhhc1RhZ05hbWUoaHRtbFRhZykp
OwogfQogICAgIApAQCAtNTk2Miw3ICs1OTYyLDcgQEAgRWxlbWVudCogZXZlbnRUYXJnZXRFbGVt
ZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIGlmICghZWxlbWVudCAmJiBp
czxQbHVnaW5Eb2N1bWVudD4oKmRvY3VtZW50KSkKICAgICAgICAgZWxlbWVudCA9IGRvd25jYXN0
PFBsdWdpbkRvY3VtZW50PigqZG9jdW1lbnQpLnBsdWdpbkVsZW1lbnQoKTsKICAgICBpZiAoIWVs
ZW1lbnQgJiYgaXM8SFRNTERvY3VtZW50PigqZG9jdW1lbnQpKQotICAgICAgICBlbGVtZW50ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKKyAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LT5ib2R5T3JGcmFt
ZXNldCgpOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKTsKICAgICByZXR1cm4gZWxlbWVudDsKQEAgLTYyOTQsNyArNjI5NCw3
IEBAIEVsZW1lbnQqIERvY3VtZW50OjphY3RpdmVFbGVtZW50KCkKIHsKICAgICBpZiAoRWxlbWVu
dCogZWxlbWVudCA9IHRyZWVTY29wZSgpLmZvY3VzZWRFbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biBlbGVtZW50OwotICAgIHJldHVybiBib2R5KCk7CisgICAgcmV0dXJuIGJvZHlPckZyYW1lc2V0
KCk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Omhhc0ZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggMGYzZjlhZGJhNGMwMmI4MTBhMDRkMzRjMWQzYmZkN2VjYzI3YzBkYi4uOTU3OGI0
MjgzZDA5MzBhNzhkY2ZlM2UwNmJhNGEwNDdlMzE5NjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTkzNyw4ICs5MzcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaGFzVmFsaWROYW1l
c3BhY2VGb3JFbGVtZW50cyhjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgc3RhdGljIGJvb2wg
aGFzVmFsaWROYW1lc3BhY2VGb3JBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxFbGVtZW50KiBib2R5KCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRCb2R5KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgSFRNTEVsZW1lbnQqIGJvZHlPckZyYW1lc2V0KCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRCb2R5T3JGcmFtZXNldChQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSFRNTEhlYWRFbGVtZW50KiBoZWFkKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGZjOWUyYWFjMDkxZGJlOTA2MDc0MjU0ZmZhODFhZWNk
NTBjMDIwYTYuLmU4ZjQ4YTQ4NjM1YTFiZTg4Y2NjZDVmZGEyYTBjZGY1NTQ3NmU5MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMTQ5LDcgKzE0OSw3IEBACiAKICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZywgR2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTZXR0ZXJSYWlzZXNFeGNlcHRp
b25dIGF0dHJpYnV0ZSBET01TdHJpbmcgY29va2llOwogCi0gICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbl0gYXR0cmlidXRlIEhUTUxFbGVtZW50IGJvZHk7CisgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbiwgSW1wbGVtZW50ZWRBcz1ib2R5T3JGcmFtZXNldF0gYXR0cmlidXRlIEhUTUxFbGVtZW50
IGJvZHk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEhlYWRFbGVtZW50IGhlYWQ7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGltYWdlczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCA0
MTAwZDQ5NTExYzNlMjhiM2E3Y2UwNGU5N2JlYzYzMzNiMzU3NzMwLi44YWUzMWU5NjMxNGUyYjk4
OTc4M2M3ZmZiYTY1ZmY5OTkyMzQzZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9p
ZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZShOb2RlJiBub2RlLCBib29sIGMKICAgICAvLyBzaW5jZSBzdHlsZXMgb3V0c2lkZSBvZiB0aGUg
Ym9keSBhbmQgaGVhZCBjb250aW51ZSB0byBiZSBzaHVudGVkIGludG8gdGhlIGhlYWQKICAgICAv
LyAoYW5kIHRodXMgY2FuIHNoaWZ0IHRvIGVuZCB1cCBiZWZvcmUgZHluYW1pY2FsbHkgYWRkZWQg
RE9NIGNvbnRlbnQgdGhhdCBpcyBhbHNvCiAgICAgLy8gb3V0c2lkZSB0aGUgYm9keSkuCi0gICAg
aWYgKChjcmVhdGVkQnlQYXJzZXIgJiYgbV9kb2N1bWVudC5ib2R5KCkpIHx8IG1fc3R5bGVTaGVl
dENhbmRpZGF0ZU5vZGVzLmlzRW1wdHkoKSkgeworICAgIGlmICgoY3JlYXRlZEJ5UGFyc2VyICYm
IG1fZG9jdW1lbnQuYm9keU9yRnJhbWVzZXQoKSkgfHwgbV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fc3R5bGVTaGVldENhbmRpZGF0ZU5vZGVzLmFkZCgm
bm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBE
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZShVcGRh
dGVGbGFnIHVwZGF0ZUZsYWcKICAgICBzdHlsZVJlc29sdmVyVXBkYXRlVHlwZSA9IGhhc0luc2Vy
dGlvbnMgPyBSZXNldCA6IEFkZGl0aXZlOwogCiAgICAgLy8gSWYgd2UgYXJlIGFscmVhZHkgcGFy
c2luZyB0aGUgYm9keSBhbmQgc28gbWF5IGhhdmUgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGVsZW1l
bnRzLCBwdXQgc29tZSBlZmZvcnQgaW50byB0cnlpbmcgdG8gYXZvaWQgc3R5bGUgcmVjYWxjcy4K
LSAgICBpZiAoIW1fZG9jdW1lbnQuYm9keSgpIHx8IG1fZG9jdW1lbnQuaGFzTm9kZXNXaXRoUGxh
Y2Vob2xkZXJTdHlsZSgpKQorICAgIGlmICghbV9kb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpIHx8
IG1fZG9jdW1lbnQuaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpKQogICAgICAgICByZXR1
cm47CiAgICAgU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcyBpbnZhbGlkYXRpb25BbmFseXNpcyhh
ZGRlZFNoZWV0cywgc3R5bGVSZXNvbHZlci5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCkpOwogICAgIGlm
IChpbnZhbGlkYXRpb25BbmFseXNpcy5kaXJ0aWVzQWxsU3R5bGUoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCA1MWEwNzg1MzJhZjVlZTI0ODQ1YjU0MTY5ZTIyNzg0ODk2MTJmOTNhLi42ZWVl
NmUwODg0M2MxM2RkYmZmOGIwOTQzZTRjMjA4NWM3Y2M5M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC03NzEsNyArNzcxLDcgQEAgZG91YmxlIEVsZW1lbnQ6OmNsaWVudFdpZHRoKCkKICAg
ICAvLyBXaGVuIGluIHN0cmljdCBtb2RlLCBjbGllbnRXaWR0aCBmb3IgdGhlIGRvY3VtZW50IGVs
ZW1lbnQgc2hvdWxkIHJldHVybiB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWUuCiAg
ICAgLy8gV2hlbiBpbiBxdWlya3MgbW9kZSwgY2xpZW50V2lkdGggZm9yIHRoZSBib2R5IGVsZW1l
bnQgc2hvdWxkIHJldHVybiB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWUuCiAgICAg
Ym9vbCBpblF1aXJrc01vZGUgPSBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpOwotICAgIGlmICgo
IWluUXVpcmtzTW9kZSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMpIHx8
IChpblF1aXJrc01vZGUgJiYgaXNIVE1MRWxlbWVudCgpICYmIGRvY3VtZW50KCkuYm9keSgpID09
IHRoaXMpKQorICAgIGlmICgoIWluUXVpcmtzTW9kZSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxl
bWVudCgpID09IHRoaXMpIHx8IChpblF1aXJrc01vZGUgJiYgaXNIVE1MRWxlbWVudCgpICYmIGRv
Y3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSA9PSB0aGlzKSkKICAgICAgICAgcmV0dXJuIGFkanVz
dEZvckFic29sdXRlWm9vbShyZW5kZXJWaWV3LmZyYW1lVmlldygpLmxheW91dFdpZHRoKCksIHJl
bmRlclZpZXcpOwogICAgIAogICAgIGlmIChSZW5kZXJCb3gqIHJlbmRlcmVyID0gcmVuZGVyQm94
KCkpIHsKQEAgLTc5Miw3ICs3OTIsNyBAQCBkb3VibGUgRWxlbWVudDo6Y2xpZW50SGVpZ2h0KCkK
ICAgICAvLyBXaGVuIGluIHN0cmljdCBtb2RlLCBjbGllbnRIZWlnaHQgZm9yIHRoZSBkb2N1bWVu
dCBlbGVtZW50IHNob3VsZCByZXR1cm4gdGhlIGhlaWdodCBvZiB0aGUgY29udGFpbmluZyBmcmFt
ZS4KICAgICAvLyBXaGVuIGluIHF1aXJrcyBtb2RlLCBjbGllbnRIZWlnaHQgZm9yIHRoZSBib2R5
IGVsZW1lbnQgc2hvdWxkIHJldHVybiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGZyYW1l
LgogICAgIGJvb2wgaW5RdWlya3NNb2RlID0gZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKTsKLSAg
ICBpZiAoKCFpblF1aXJrc01vZGUgJiYgZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSA9PSB0
aGlzKSB8fCAoaW5RdWlya3NNb2RlICYmIGlzSFRNTEVsZW1lbnQoKSAmJiBkb2N1bWVudCgpLmJv
ZHkoKSA9PSB0aGlzKSkKKyAgICBpZiAoKCFpblF1aXJrc01vZGUgJiYgZG9jdW1lbnQoKS5kb2N1
bWVudEVsZW1lbnQoKSA9PSB0aGlzKSB8fCAoaW5RdWlya3NNb2RlICYmIGlzSFRNTEVsZW1lbnQo
KSAmJiBkb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCkgPT0gdGhpcykpCiAgICAgICAgIHJldHVy
biBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyVmlldy5mcmFtZVZpZXcoKS5sYXlvdXRIZWln
aHQoKSwgcmVuZGVyVmlldyk7CiAKICAgICBpZiAoUmVuZGVyQm94KiByZW5kZXJlciA9IHJlbmRl
ckJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZmFmNzcwZGFkNTI5MTFm
MDhkZGZjZjViYjVhOTgxN2YyNjVjOWU1OS4uN2E1OTgyMzg0NTA0ZThiMDY3NDA4NWU2YjQ3ZGNi
OGM5NzBjMTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY3LDcgKzI2Nyw3
IEBAIHN0YXRpYyBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1bWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgaWYgKCFkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgSFRNTEVsZW1lbnQqIGJvZHkg
PSBkb2N1bWVudC5ib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC5ib2R5
T3JGcmFtZXNldCgpOwogICAgIGlmICghYm9keSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCkBAIC04NzEsOSArODcxLDkgQEAgTm9kZSogRWRpdG9yOjpmaW5kRXZlbnRUYXJnZXRGcm9t
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikgY29uc3QKIHsKICAgICBOb2RlKiB0
YXJnZXQgPSBzZWxlY3Rpb24uc3RhcnQoKS5lbGVtZW50KCk7CiAgICAgaWYgKCF0YXJnZXQpCi0g
ICAgICAgIHRhcmdldCA9IGRvY3VtZW50KCkuYm9keSgpOworICAgICAgICB0YXJnZXQgPSBkb2N1
bWVudCgpLmJvZHlPckZyYW1lc2V0KCk7CiAgICAgaWYgKCF0YXJnZXQpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiB0YXJnZXQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGFmNGJkMTc4YmRk
ZjI0NmZlNzc4NWUxOGE4NzA5OThmYzI1MDJjNmUuLjNlMGU4OTk1M2M4YmM2ODNiZjY2NTczNWEy
NDEwNzViZmQ3ZmVkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0xNjk2LDcgKzE2OTYsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwo
KQogICAgICAgICAgICAgc2VsZWN0U3RhcnRUYXJnZXQgPSByb290LT5zaGFkb3dIb3N0KCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1l
bnQoKTsKLSAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFyZ2V0ID0gZG9jdW1lbnQtPmJvZHkoKTsK
KyAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFyZ2V0ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0
KCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFyb290KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCmluZGV4IDU1ZjRmZWZlYmQzYjE3MGJiZTYyNTY4ZDky
NGNmNmY2MWQwYmMxNTMuLmZmYWZmYzQwYzIyZWU2MjAxZWZkOThhZmY2MDgxYmZiYzE3ZTMzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKQEAgLTUzNiw3
ICs1MzYsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OmNhbm9uaWNhbFBvc2l0aW9uKGNv
bnN0IFBvc2l0aW9uJiBwYXNzZWRQb3NpdGlvbikKIAogICAgIC8vIFRoZSBuZXcgcG9zaXRpb24g
bXVzdCBiZSBpbiB0aGUgc2FtZSBlZGl0YWJsZSBlbGVtZW50LiBFbmZvcmNlIHRoYXQgZmlyc3Qu
CiAgICAgLy8gVW5sZXNzIHRoZSBkZXNjZW50IGlzIGZyb20gYSBub24tZWRpdGFibGUgaHRtbCBl
bGVtZW50IHRvIGFuIGVkaXRhYmxlIGJvZHkuCi0gICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFn
TmFtZShodG1sVGFnKSAmJiAhbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG5vZGUtPmRvY3Vt
ZW50KCkuYm9keSgpICYmIG5vZGUtPmRvY3VtZW50KCkuYm9keSgpLT5oYXNFZGl0YWJsZVN0eWxl
KCkpCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiAhbm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpICYmIG5vZGUtPmRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSAm
JiBub2RlLT5kb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCktPmhhc0VkaXRhYmxlU3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuIG5leHQuaXNOb3ROdWxsKCkgPyBuZXh0IDogcHJldjsKIAogICAgIE5v
ZGUqIGVkaXRpbmdSb290ID0gZWRpdGFibGVSb290Rm9yUG9zaXRpb24ocG9zaXRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IGYxZWUyOTk5Y2JkMjM1ODhl
MzU0YzZhYzgwYzkwZWM1ODY5MTc2ZTYuLjZlOWZlMzFhZTkxZTk2NTA4ODA3ZTYxOTM5YTVjOTFl
MWZjMjgxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTI4
MCw3ICsyODAsNyBAQCB2b2lkIEVkaXRvcjo6cmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCkKIHsK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgc3R5bGVzIHRoYXQgdGhlIHVzZXIgY2Fubm90
IG1vZGlmeSBieSBhcHBseWluZyB0aGVpciBkZWZhdWx0IHZhbHVlcy4KICAgICAKLSAgICBSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBlZGl0aW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShtX2Zy
YW1lLmRvY3VtZW50KCktPmJvZHkoKSk7CisgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gZWRpdGlu
Z1N0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5ib2R5T3JG
cmFtZXNldCgpKTsKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gZGVmYXVsdFN0
eWxlID0gZWRpdGluZ1N0eWxlLmdldCgpLT5zdHlsZSgpLT5tdXRhYmxlQ29weSgpOwogICAgIAog
ICAgIC8vIFRleHQgd2lkZ2V0cyBpbXBsZW1lbnQgYmFja2dyb3VuZCBjb2xvciB2aWEgdGhlIFVJ
VmlldyBwcm9wZXJ0eS4gVGhlaXIgYm9keSBlbGVtZW50IHdpbGwgbm90IGhhdmUgb25lLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCAyN2I3Mjlm
MTdjNTllNGFlZjE1MzBjNjI2MjY5OGZiN2U0YmUyNmJlLi5lNzU1M2Q3NDMwM2RkOTRkYjI2MTBk
Y2RkMmExODBmNGY4ZWIyMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERp
cmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9jdW1l
bnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkKICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmlu
ZCB0aGUgdGFibGUgZWxlbWVudCwgbGV0cyB0cnkgdG8gYXBwZW5kIG91ciBvd24gdG8gdGhlIGJv
ZHkKICAgICAvLyBJZiB0aGF0IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0aGUg
ZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBhIGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKLSAgICBp
ZiAoRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCktPmJvZHkoKSkKKyAgICBpZiAoYXV0byogYm9k
eSA9IGRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCkpCiAgICAgICAgIGJvZHktPmFwcGVuZENo
aWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbHNlCiAgICAgICAg
IGRvY3VtZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9O
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCA4OGI5YjI5OTI3MjBkMjg3
YzM4NTA2MjdjMGM2ODhhZDNkZmU5ZWRiLi5hM2QwNTIxYmM1M2VkNjVmYWM4MGU0MWQwYzlkYTUy
YTEyZWU4YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0xMDcsMTYg
KzEwNywxNSBAQCBpbnQgSFRNTERvY3VtZW50OjpoZWlnaHQoKQogCiBTdHJpbmcgSFRNTERvY3Vt
ZW50OjpkaXIoKQogewotICAgIGlmIChhdXRvKiBib2R5ID0gdGhpcy0+Ym9keSgpKQorICAgIGlm
IChhdXRvKiBib2R5ID0gYm9keU9yRnJhbWVzZXQoKSkKICAgICAgICAgcmV0dXJuIGJvZHktPmZh
c3RHZXRBdHRyaWJ1dGUoZGlyQXR0cik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiB2b2lk
IEhUTUxEb2N1bWVudDo6c2V0RGlyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgSFRNTEVs
ZW1lbnQqIGIgPSBib2R5KCk7Ci0gICAgaWYgKGIpCi0gICAgICAgIGItPnNldEF0dHJpYnV0ZShk
aXJBdHRyLCB2YWx1ZSk7CisgICAgaWYgKGF1dG8qIGJvZHkgPSBib2R5T3JGcmFtZXNldCgpKQor
ICAgICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoZGlyQXR0ciwgdmFsdWUpOwogfQogCiBTdHJpbmcg
SFRNTERvY3VtZW50OjpkZXNpZ25Nb2RlKCkgY29uc3QKQEAgLTEzOCw3ICsxMzcsNyBAQCB2b2lk
IEhUTUxEb2N1bWVudDo6c2V0RGVzaWduTW9kZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxEb2N1bWVudDo6YmdDb2xvcigpIGNvbnN0CiB7Ci0gICAgSFRN
TEVsZW1lbnQqIGJvZHlFbGVtZW50ID0gYm9keSgpOworICAgIEhUTUxFbGVtZW50KiBib2R5RWxl
bWVudCA9IGJvZHlPckZyYW1lc2V0KCk7CiAgICAgaWYgKCFpczxIVE1MQm9keUVsZW1lbnQ+KGJv
ZHlFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKICAgICByZXR1cm4gYm9keUVs
ZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoYmdjb2xvckF0dHIpOwpAQCAtMTQ2LDcgKzE0NSw3IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIAogdm9p
ZCBIVE1MRG9jdW1lbnQ6OnNldEJnQ29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBI
VE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHlF
bGVtZW50ID0gYm9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWlzPEhUTUxCb2R5RWxlbWVudD4o
Ym9keUVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAgICAgYm9keUVsZW1lbnQtPnNldEF0dHJp
YnV0ZShiZ2NvbG9yQXR0ciwgdmFsdWUpOwpAQCAtMTU0LDcgKzE1Myw3IEBAIHZvaWQgSFRNTERv
Y3VtZW50OjpzZXRCZ0NvbG9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSFRNTERvY3VtZW50OjpmZ0NvbG9yKCkgY29uc3QKIHsKLSAgICBIVE1MRWxlbWVudCog
Ym9keUVsZW1lbnQgPSBib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHlFbGVtZW50ID0gYm9k
eU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWlzPEhUTUxCb2R5RWxlbWVudD4oYm9keUVsZW1lbnQp
KQogICAgICAgICByZXR1cm4gZW1wdHlBdG9tOwogICAgIHJldHVybiBib2R5RWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZSh0ZXh0QXR0cik7CkBAIC0xNjIsNyArMTYxLDcgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MRG9jdW1lbnQ6OmZnQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVu
dDo6c2V0RmdDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBi
b2R5RWxlbWVudCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5
T3JGcmFtZXNldCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkp
CiAgICAgICAgIHJldHVybjsKICAgICBib2R5RWxlbWVudC0+c2V0QXR0cmlidXRlKHRleHRBdHRy
LCB2YWx1ZSk7CkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OnNldEZnQ29s
b3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9jdW1l
bnQ6OmFsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9
IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgp
OwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJl
dHVybiBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGFsaW5rQXR0cik7CkBAIC0xNzgsNyArMTc3LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1M
RG9jdW1lbnQ6OmFsaW5rQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVudDo6c2V0QWxp
bmtDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxl
bWVudCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFt
ZXNldCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBib2R5RWxlbWVudC0+c2V0QXR0cmlidXRlKGFsaW5rQXR0ciwgdmFs
dWUpOwpAQCAtMTg2LDcgKzE4NSw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRBbGlua0NvbG9y
KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTERvY3VtZW50
OjpsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9IGJv
ZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgpOwog
ICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJldHVy
biBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGxp
bmtBdHRyKTsKQEAgLTE5NCw3ICsxOTMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxEb2N1
bWVudDo6bGlua0NvbG9yKCkgY29uc3QKIAogdm9pZCBIVE1MRG9jdW1lbnQ6OnNldExpbmtDb2xv
cihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9
IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgp
OwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJl
dHVybjsKICAgICByZXR1cm4gYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZShsaW5rQXR0ciwgdmFs
dWUpOwpAQCAtMjAyLDcgKzIwMSw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRMaW5rQ29sb3Io
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9jdW1lbnQ6
OnZsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9IGJv
ZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgpOwog
ICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJldHVy
biBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHZs
aW5rQXR0cik7CkBAIC0yMTAsNyArMjA5LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9j
dW1lbnQ6OnZsaW5rQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVudDo6c2V0VmxpbmtD
b2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVu
dCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNl
dCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAg
IHJldHVybjsKICAgICByZXR1cm4gYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZSh2bGlua0F0dHIs
IHZhbHVlKTsKQEAgLTMzOSw3ICszMzgsNyBAQCB2b2lkIEhUTUxEb2N1bWVudDo6Y2xlYXIoKQog
CiBib29sIEhUTUxEb2N1bWVudDo6aXNGcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlz
PEhUTUxGcmFtZVNldEVsZW1lbnQ+KGJvZHkoKSk7CisgICAgcmV0dXJuIGlzPEhUTUxGcmFtZVNl
dEVsZW1lbnQ+KGJvZHlPckZyYW1lc2V0KCkpOwogfQogCiBSZWY8RG9jdW1lbnQ+IEhUTUxEb2N1
bWVudDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcAppbmRleCA4OTJiODdmNTU2YzM2YmQ0NDhiYTk3ZGI1YjFiMjM1
NTk1MWZmZDMxLi5lZmUxYjFmZTM1MjliMDczOWZiNTgwMTUzZDFmODA2YzhjMjE2YmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lk
IE1lZGlhRG9jdW1lbnQ6Om1lZGlhRWxlbWVudFNhd1Vuc3VwcG9ydGVkVHJhY2tzKCkKIAogdm9p
ZCBNZWRpYURvY3VtZW50OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCgpCiB7Ci0gICAg
SFRNTEVsZW1lbnQqIGh0bWxCb2R5ID0gYm9keSgpOworICAgIGF1dG8qIGh0bWxCb2R5ID0gYm9k
eU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWh0bWxCb2R5KQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDYw
YTM1ODFmNmRjMTUzMGJhOWI1ZjQ5ZGU5MDNjZjc0MTI0YTNhZDIuLjQ3OTE4ZDMyMjkxNzQ0NGIy
NTIwNzVjNDc5YWU1YmVkMmQ5YmMxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtOTYwLDggKzk2MCw4IEBAIEluc3BlY3RvclN0eWxl
U2hlZXQqIEluc3BlY3RvckNTU0FnZW50Ojp2aWFJbnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50
KiBkb2N1bWVuCiAgICAgICAgIC8vIEhFQUQgaXMgYWJzZW50IGluIEltYWdlRG9jdW1lbnRzLCBm
b3IgZXhhbXBsZS4KICAgICAgICAgaWYgKGRvY3VtZW50LT5oZWFkKCkpCiAgICAgICAgICAgICB0
YXJnZXROb2RlID0gZG9jdW1lbnQtPmhlYWQoKTsKLSAgICAgICAgZWxzZSBpZiAoZG9jdW1lbnQt
PmJvZHkoKSkKLSAgICAgICAgICAgIHRhcmdldE5vZGUgPSBkb2N1bWVudC0+Ym9keSgpOworICAg
ICAgICBlbHNlIGlmIChkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKSkKKyAgICAgICAgICAgIHRh
cmdldE5vZGUgPSBkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDBiMTc4ZTQzYzEyZGQxMWM2N2Q0MGEyOTE3YWI0MjFkYzZkMjY3ZjIuLjcyM2Vh
YzJlMTg0YjA1MjVjYmFiMmZjZDQ1OTVlMjQ0NmM4NTNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMjgyOSw3ICsyODI5LDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6
aGFuZGxlQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFt
ZUxvYWQKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQtPmJvZHkoKSkKKyAg
ICBpZiAoIWRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAKICAgICBSZWZQdHI8QmVmb3JlVW5sb2FkRXZlbnQ+IGJlZm9yZVVubG9hZEV2ZW50ID0g
QmVmb3JlVW5sb2FkRXZlbnQ6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNWEyYWJkMmVkNzU4YmQ1
YzViMzY4ZjY1YmRmZTU2NWMwMjZlZmIwNS4uOTAyZmIxODRlMjEwYjE5M2RhZWVhMTIzNDhlZjY0
OTAxNGRhYTRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNv
dXJjZVJlcXUKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBhIHNldHRp
bmcgdG8gdG9nZ2xlIGFnZ3Jlc3NpdmUgcHJlbG9hZGluZyBiZWhhdmlvciBhcyBvcHBvc2VkCiAg
ICAgLy8gdG8gbWFraW5nIHRoaXMgYmVoYXZpb3Igc3BlY2lmaWMgdG8gaU9TLgogI2lmICFQTEFU
Rk9STShJT1MpCi0gICAgYm9vbCBoYXNSZW5kZXJpbmcgPSBtX2RvY3VtZW50LT5ib2R5KCkgJiYg
bV9kb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGJvb2wgaGFzUmVuZGVyaW5nID0gbV9kb2N1
bWVudC0+Ym9keU9yRnJhbWVzZXQoKSAmJiBtX2RvY3VtZW50LT5yZW5kZXJWaWV3KCk7CiAgICAg
Ym9vbCBjYW5CbG9ja1BhcnNlciA9IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OwogICAgIGlmICghaGFzUmVuZGVy
aW5nICYmICFjYW5CbG9ja1BhcnNlcikgewogICAgICAgICAvLyBEb24ndCBwcmVsb2FkIHN1YnJl
c291cmNlcyB0aGF0IGNhbid0IGJsb2NrIHRoZSBwYXJzZXIgYmVmb3JlIHdlIGhhdmUgc29tZXRo
aW5nIHRvIGRyYXcuCkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXUK
IAogdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKSAK
IHsKLSAgICBpZiAobV9wZW5kaW5nUHJlbG9hZHMuaXNFbXB0eSgpIHx8ICFtX2RvY3VtZW50LT5i
b2R5KCkgfHwgIW1fZG9jdW1lbnQtPmJvZHkoKS0+cmVuZGVyZXIoKSkKKyAgICBpZiAobV9wZW5k
aW5nUHJlbG9hZHMuaXNFbXB0eSgpIHx8ICFtX2RvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpIHx8
ICFtX2RvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1
cm47CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFdlIGFsd2F5cyBwcmVsb2FkIHJlc291cmNl
cyBvbiBpT1MuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkx
Mjc2Pi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3NjhhOGFkM2VmNzAxYTY1NDc0
Zjg4ZjEyZDlhZDA4OWE3MGNhNzE2Li45ODU0OTE2MzRlOTAwYTI5ZmY5Y2ZjMDkzN2VjNDAwNWRm
NTI0YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01MzksNyArNTM5LDcgQEAg
UGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW8KICAgICBEb2N1bWVudCogZG9jID0gZnJhbWUoKS5kb2N1
bWVudCgpOwogCiAgICAgLy8gVHJ5IHRoZSA8Ym9keT4gZWxlbWVudCBmaXJzdCBhcyBhIHNjcm9s
bGJhciBzb3VyY2UuCi0gICAgRWxlbWVudCogYm9keSA9IGRvYyA/IGRvYy0+Ym9keSgpIDogMDsK
KyAgICBFbGVtZW50KiBib2R5ID0gZG9jID8gZG9jLT5ib2R5T3JGcmFtZXNldCgpIDogMDsKICAg
ICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpICYmIGJvZHktPnJlbmRlcmVyKCktPnN0eWxl
KCkuaGFzUHNldWRvU3R5bGUoU0NST0xMQkFSKSkKICAgICAgICAgcmV0dXJuIFJlbmRlclNjcm9s
bGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBib2R5KTsKICAg
ICAKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIEZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9W
aWV3cG9ydCgpCiAgICAgYXV0byBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRF
bGVtZW50KCk7CiAgICAgUmVuZGVyRWxlbWVudCogZG9jdW1lbnRSZW5kZXJlciA9IGRvY3VtZW50
RWxlbWVudCA/IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CiAgICAgUmVu
ZGVyRWxlbWVudCogZG9jdW1lbnRPckJvZHlSZW5kZXJlciA9IGRvY3VtZW50UmVuZGVyZXI7Ci0g
ICAgYXV0byBib2R5ID0gZG9jdW1lbnQtPmJvZHkoKTsKKyAgICBhdXRvIGJvZHkgPSBkb2N1bWVu
dC0+Ym9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpKSB7
CiAgICAgICAgIGlmIChib2R5LT5oYXNUYWdOYW1lKGJvZHlUYWcpKQogICAgICAgICAgICAgZG9j
dW1lbnRPckJvZHlSZW5kZXJlciA9IGRvY3VtZW50UmVuZGVyZXItPnN0eWxlKCkub3ZlcmZsb3dY
KCkgPT0gT1ZJU0lCTEUgJiYgZG9jdW1lbnRFbGVtZW50LT5oYXNUYWdOYW1lKGh0bWxUYWcpID8g
Ym9keS0+cmVuZGVyZXIoKSA6IGRvY3VtZW50UmVuZGVyZXI7CkBAIC03MTUsNyArNzE1LDcgQEAg
dm9pZCBGcmFtZVZpZXc6OmNhbGN1bGF0ZVNjcm9sbGJhck1vZGVzRm9yTGF5b3V0KFNjcm9sbGJh
ck1vZGUmIGhNb2RlLCBTY3JvbGxiYXIKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpOwogICAgICAgICBhdXRvIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50
LT5kb2N1bWVudEVsZW1lbnQoKTsKICAgICAgICAgUmVuZGVyRWxlbWVudCogcm9vdFJlbmRlcmVy
ID0gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0
cjsKLSAgICAgICAgYXV0byBib2R5ID0gZG9jdW1lbnQtPmJvZHkoKTsKKyAgICAgICAgYXV0byBi
b2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCk7CiAgICAgICAgIGlmIChib2R5ICYmIGJv
ZHktPnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChib2R5LT5oYXNUYWdOYW1lKGZyYW1l
c2V0VGFnKSAmJiAhZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICAgICAg
dk1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CkBAIC04ODQsNyArODg0LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklY
TUU6IFNob3VsZCB3ZSBhbGxvdyBzcGVjaWZ5aW5nIHNuYXAgcG9pbnRzIHRocm91Z2ggPGh0bWw+
IHRhZ3MgdG9vPwotICAgIEhUTUxFbGVtZW50KiBib2R5ID0gZnJhbWUoKS5kb2N1bWVudCgpLT5i
b2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBmcmFtZSgpLmRvY3VtZW50KCktPmJvZHlP
ckZyYW1lc2V0KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KCkgfHwgIWJvZHkgfHwgIWJvZHktPnJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTEyMjksNyArMTIyOSw3IEBAIHZv
aWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgIFRlbXBvcmFy
eUNoYW5nZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxlZChtX2xheW91dFNjaGVkdWxpbmdF
bmFibGVkLCBmYWxzZSk7CiAKICAgICAgICAgaWYgKCFtX2xheW91dFJvb3QpIHsKLSAgICAgICAg
ICAgIEhUTUxFbGVtZW50KiBib2R5ID0gZG9jdW1lbnQuYm9keSgpOworICAgICAgICAgICAgSFRN
TEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpOwogICAgICAgICAgICAg
aWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIGlmIChib2R5
LT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSAmJiAhZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGJvZHktPnJlbmRlcmVyKCktPnNldENoaWxkTmVlZHNMYXlv
dXQoKTsKQEAgLTEyODQsNyArMTI4NCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBh
bGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAgICAgbV9uZWVkc0Z1bGxSZXBhaW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICBpZiAoIW1fZmlyc3RMYXlvdXQpIHsKICAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyQm94KiByb290UmVuZGVyZXIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSA/
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJCb3goKSA6IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIFJlbmRlckJveCogYm9keVJlbmRlcmVyID0gcm9vdFJlbmRlcmVyICYmIGRvY3Vt
ZW50LmJvZHkoKSA/IGRvY3VtZW50LmJvZHkoKS0+cmVuZGVyQm94KCkgOiAwOworICAgICAgICAg
ICAgICAgICAgICBSZW5kZXJCb3gqIGJvZHlSZW5kZXJlciA9IHJvb3RSZW5kZXJlciAmJiBkb2N1
bWVudC5ib2R5T3JGcmFtZXNldCgpID8gZG9jdW1lbnQuYm9keU9yRnJhbWVzZXQoKS0+cmVuZGVy
Qm94KCkgOiAwOwogICAgICAgICAgICAgICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmIGJvZHlS
ZW5kZXJlci0+c3RyZXRjaGVzVG9WaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICAgICAg
Ym9keVJlbmRlcmVyLT5zZXRDaGlsZE5lZWRzTGF5b3V0KCk7CiAgICAgICAgICAgICAgICAgICAg
IGVsc2UgaWYgKHJvb3RSZW5kZXJlciAmJiByb290UmVuZGVyZXItPnN0cmV0Y2hlc1RvVmlld3Bv
cnQoKSkKQEAgLTM1MjEsNyArMzUyMSw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVTY3JvbGxD
b3JuZXIoKQogICAgIGlmICghY29ybmVyUmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVHJ5
IHRoZSA8Ym9keT4gZWxlbWVudCBmaXJzdCBhcyBhIHNjcm9sbCBjb3JuZXIgc291cmNlLgogICAg
ICAgICBEb2N1bWVudCogZG9jID0gZnJhbWUoKS5kb2N1bWVudCgpOwotICAgICAgICBFbGVtZW50
KiBib2R5ID0gZG9jID8gZG9jLT5ib2R5KCkgOiAwOworICAgICAgICBFbGVtZW50KiBib2R5ID0g
ZG9jID8gZG9jLT5ib2R5T3JGcmFtZXNldCgpIDogMDsKICAgICAgICAgaWYgKGJvZHkgJiYgYm9k
eS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgcmVuZGVyZXIgPSBib2R5LT5yZW5kZXJlcigp
OwogICAgICAgICAgICAgY29ybmVyU3R5bGUgPSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9T
dHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NST0xMQkFSX0NPUk5FUiksICZyZW5kZXJlci0+c3R5
bGUoKSk7CkBAIC0zNTk2LDcgKzM1OTYsNyBAQCBDb2xvciBGcmFtZVZpZXc6OmRvY3VtZW50QmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAKICAgICBFbGVt
ZW50KiBodG1sRWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7
Ci0gICAgRWxlbWVudCogYm9keUVsZW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCktPmJvZHkoKTsK
KyAgICBFbGVtZW50KiBib2R5RWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+Ym9keU9yRnJh
bWVzZXQoKTsKIAogICAgIC8vIFN0YXJ0IHdpdGggaW52YWxpZCBjb2xvcnMuCiAgICAgQ29sb3Ig
aHRtbEJhY2tncm91bmRDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KaW5kZXgg
ZmNlZjdlYWUzYzJiOWQwMmE5NzBkNWNiNDczZmI2YTM2Nzk1OTg5Ni4uZTZlZTRhZGE0ZmVjYzc0
ZTNjOTdkMzAxOTRiNTcwNDI3N2QzZGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1Mu
bW0KQEAgLTU0Nyw3ICs1NDcsNyBAQCBpbnQgRnJhbWU6OnByZWZlcnJlZEhlaWdodCgpIGNvbnN0
CiAKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CiAKLSAgICBOb2RlKiBib2R5ID0gZG9j
dW1lbnQtPmJvZHkoKTsKKyAgICBhdXRvKiBib2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0
KCk7CiAgICAgaWYgKCFib2R5KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzQ0LDcgKzc0NCw3
IEBAIE5TQXJyYXkgKkZyYW1lOjppbnRlcnByZXRhdGlvbnNGb3JDdXJyZW50Um9vdCgpIGNvbnN0
CiAgICAgaWYgKCFkb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgRWxlbWVu
dCogcm9vdCA9IHNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnNlbGVjdGlvblR5cGUoKSA9PSBWaXNp
YmxlU2VsZWN0aW9uOjpOb1NlbGVjdGlvbiA/IGRvY3VtZW50KCktPmJvZHkoKSA6IHNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBhdXRvKiByb290ID0g
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uVHlwZSgpID09IFZpc2libGVTZWxlY3Rp
b246Ok5vU2VsZWN0aW9uID8gZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSA6IHNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKICAgICB1bnNpZ25lZCByb290
Q2hpbGRDb3VudCA9IHJvb3QtPmNvdW50Q2hpbGROb2RlcygpOwogICAgIFJlZlB0cjxSYW5nZT4g
cmFuZ2VPZlJvb3RDb250ZW50cyA9IFJhbmdlOjpjcmVhdGUoKmRvY3VtZW50KCksIGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihyb290LCAwKSwgY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9u
KHJvb3QsIHJvb3RDaGlsZENvdW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggOGJmMDc5ZjA4MTZmOWQ4N2Y1YWU4YmZjN2UwMGYyZmY2MDMxNmUwZC4uZGI2
MjUwMTMyYjhlNTU1MjdjZDUyNjIyMWViN2M4YWQ2OGFjNzg5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJlbmRlckJveDo6
dXBkYXRlRnJvbVN0eWxlKCkKICAgICAgICAgICAgIC8vICgyKSBXZSBhcmUgdGhlIHByaW1hcnkg
PGJvZHk+IChjYW4gYmUgY2hlY2tlZCBieSBsb29raW5nIGF0IGRvY3VtZW50LmJvZHkpLgogICAg
ICAgICAgICAgLy8gKDMpIFRoZSByb290IGVsZW1lbnQgaGFzIHZpc2libGUgb3ZlcmZsb3cuCiAg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZSho
dG1sVGFnKQotICAgICAgICAgICAgICAgICYmIGRvY3VtZW50KCkuYm9keSgpID09IGVsZW1lbnQo
KQorICAgICAgICAgICAgICAgICYmIGRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSA9PSBlbGVt
ZW50KCkKICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5y
ZW5kZXJlcigpLT5zdHlsZSgpLm92ZXJmbG93WCgpID09IE9WSVNJQkxFKSB7CiAgICAgICAgICAg
ICAgICAgYm94SGFzT3ZlcmZsb3dDbGlwID0gZmFsc2U7CiAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCAy
MWI5ZDk1NWMxZGI1YTAxZDlmOWE1MjFjZGUyN2E2MWQ4NWM4ZWI4Li45ZDVkYWVjMTY5Yjg5Yzkx
MGJmMjAxZjRmODNjODMyNDE1MjE0YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTc5MCw3ICs3OTAsNyBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjbwogICAgICAgICAgICAgICAgICAgICAvLyB0byBjcmF3bCBhcm91bmQg
YSByZW5kZXIgdHJlZSB3aXRoIHBvdGVudGlhbCA6YmVmb3JlLzphZnRlciBjb250ZW50IGFuZAog
ICAgICAgICAgICAgICAgICAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIGNyZWF0ZWQgYnkgaW5saW5l
IDxib2R5PiB0YWdzIGV0Yy4gIFdlIGNhbiBsb2NhdGUgdGhlIDxib2R5PgogICAgICAgICAgICAg
ICAgICAgICAvLyByZW5kZXIgb2JqZWN0IHZlcnkgZWFzaWx5IHZpYSB0aGUgRE9NLgotICAgICAg
ICAgICAgICAgICAgICBIVE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCkuYm9keSgpOworICAg
ICAgICAgICAgICAgICAgICBIVE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCkuYm9keU9yRnJh
bWVzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIENhbid0IHNjcm9sbCBhIGZyYW1lc2V0IGRvY3VtZW50IGFueXdheS4KICAg
ICAgICAgICAgICAgICAgICAgICAgIGlzT3BhcXVlUm9vdCA9IGJvZHktPmhhc1RhZ05hbWUoZnJh
bWVzZXRUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAppbmRleCBlZDJhY2M4ZGYzNGYxOTE0MWI2YTY0OTNlOWExZjhkZDQzMmM4Yjk5Li41
YjQyMDliNzgwZTIxZWM2ZGU0ZDlmNjNjYjA1ZTdlMWIzMThlMDAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTc5OSw3ICsxNzk5
LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmlzU2ltcGxlQ29udGFpbmVyQ29tcG9zaXRp
bmdMYXllcigpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAg
ICAgICAvLyBOb3cgbG9vayBhdCB0aGUgYm9keSdzIHJlbmRlcmVyLgotICAgICAgICBIVE1MRWxl
bWVudCogYm9keSA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5ib2R5KCk7CisgICAgICAgIEhUTUxF
bGVtZW50KiBib2R5ID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCk7CiAg
ICAgICAgIFJlbmRlck9iamVjdCogYm9keU9iamVjdCA9IChib2R5ICYmIGJvZHktPmhhc1RhZ05h
bWUoYm9keVRhZykpID8gYm9keS0+cmVuZGVyZXIoKSA6IDA7CiAgICAgICAgIGlmICghYm9keU9i
amVjdCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggMzJmOTY5YTk4NmMxNTcyMzEzMzg2Y2M2YzQ4ZTZkNDIw
NTBkYzUzNi4uMDQ1NDMzYzI0YTQxODVlMjA1YjczNGU5ZTA4YjNmODI0MWQ1OWYwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIyOTYsNyArMjI5Niw3
IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJPYmplY3Q6Om9mZnNldFBhcmVudCgpIGNv
bnN0CiAgICAgCiAgICAgLy8gQ1NTIHJlZ2lvbnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgcmVn
aW9uIGZsb3dzIHNob3VsZCByZXR1cm4gdGhlIGJvZHkgZWxlbWVudCBhcyB0aGVpciBvZmZzZXRQ
YXJlbnQuCiAgICAgaWYgKGlzPFJlbmRlck5hbWVkRmxvd1RocmVhZD4oY3VycmVudCkpCi0gICAg
ICAgIGN1cnJlbnQgPSBkb2N1bWVudCgpLmJvZHkoKSA/IGRvY3VtZW50KCkuYm9keSgpLT5yZW5k
ZXJlcigpIDogbnVsbHB0cjsKKyAgICAgICAgY3VycmVudCA9IGRvY3VtZW50KCkuYm9keU9yRnJh
bWVzZXQoKSA/IGRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKS0+cmVuZGVyZXIoKSA6IG51bGxw
dHI7CiAgICAgCiAgICAgcmV0dXJuIGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihjdXJyZW50KSA/
IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihjdXJyZW50KSA6IG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNGFk
NWY3YTUwNmMxMjhmODNmZGQ0MmIxMmUzZmU0Yzg1MjM0YTY1YS4uNzRmOWZlODZiZWFiMDU0ZWJj
NTI1ZTUxMDg0NGFlMTQ1YWIwMzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtODEwLDcgKzgxMCw3IEBAIHN0YXRpYyBTdHJpbmcgbm9k
ZVBvc2l0aW9uKE5vZGUqIG5vZGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKLSAg
ICBFbGVtZW50KiBib2R5ID0gbm9kZS0+ZG9jdW1lbnQoKS5ib2R5KCk7CisgICAgRWxlbWVudCog
Ym9keSA9IG5vZGUtPmRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKTsKICAgICBOb2RlKiBwYXJl
bnQ7CiAgICAgZm9yIChOb2RlKiBuID0gbm9kZTsgbjsgbiA9IHBhcmVudCkgewogICAgICAgICBw
YXJlbnQgPSBuLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggOTczZmViNDhmZjZjYjIz
NWYwZDEyZmE2NWQwOWQwOWQyY2U4YTAzMS4uYTM3MmQyY2Q2MGQzOTMyYTgyMWYwMDI3Nzc4MWJm
NzRiNjk5ZDAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
Rm9yRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCBSZWY8UmVuZGVyU3R5bGU+IHJlc29sdmVG
b3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIC8vIFVzZSB0aGUg
ZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQogICAgICAg
ICAvLyB2aWV3cG9ydCdzIGRpcmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJv
cGVydHkgaXMgc2V0IG9uIHRoZSBkb2N1bWVudCBlbGVtZW50LgogICAgICAgICAvLyBJZiB0aGVy
ZSBpcyBubyBib2R5LCB0aGVuIHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAgICAgUmVu
ZGVyT2JqZWN0KiBib2R5UmVuZGVyZXIgPSBkb2N1bWVudC5ib2R5KCkgPyBkb2N1bWVudC5ib2R5
KCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9
IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCkgPyBkb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpLT5y
ZW5kZXJlcigpIDogMDsKICAgICAgICAgaWYgKGJvZHlSZW5kZXJlciAmJiAhZG9jdW1lbnQud3Jp
dGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnRTdHls
ZS5nZXQoKS5zZXRXcml0aW5nTW9kZShib2R5UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUo
KSk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDkxN2I4NTQ0MmMyNGQ0M2Y1OWNkOGJiMDFmZTFmYmM4YjkwOTU2M2YuLjA5MjYzMTEzOTY0NmIx
OTljOTBmNGUzYWViZjA2M2QyMmZlZjZkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgLSAoQ0dDb2xvclJlZilfYm9keUJhY2tncm91
bmRDb2xvcgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPmRv
Y3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBI
VE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50LT5ib2R5KCk7CisgICAgYXV0byogYm9keSA9IGRv
Y3VtZW50LT5ib2R5T3JGcmFtZXNldCgpOwogICAgIGlmICghYm9keSkKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9IGJvZHktPnJlbmRlcmVyKCk7
CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCAtIChCT09MKWZvY3VzZWROb2RlSGFzQ29udGVudAogICAg
IEVsZW1lbnQqIHJvb3Q7CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0g
Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uLmlz
Tm9uZSgpIHx8ICFzZWxlY3Rpb24uaXNDb250ZW50RWRpdGFibGUoKSkKLSAgICAgICAgcm9vdCA9
IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+Ym9keSgpOworICAgICAgICByb290ID0gY29yZUZyYW1l
LT5kb2N1bWVudCgpLT5ib2R5T3JGcmFtZXNldCgpOwogICAgIGVsc2UgewogICAgICAgICAvLyBD
YW4ndCB1c2UgdGhlIGZvY3VzZWROb2RlIGhlcmUgYmVjYXVzZSB3ZSB3YW50IHRoZSByb290IG9m
IHRoZSBzaGFkb3cgdHJlZSBmb3IgZm9ybSBlbGVtZW50cy4KICAgICAgICAgcm9vdCA9IHNlbGVj
dGlvbi5yb290RWRpdGFibGVFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9ET01IVE1MQ2xhc3Nlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5j
cHAKaW5kZXggOWQ1ODAzNWQ0N2QxNmJhZjQzYjczOWM4NTE2NGQ3NDJhNjdhMmY3ZC4uZDlhZjlh
MDE1MTEyNzlkZGRlNjk0YWI3ZjhhMjhjYzMzOGUxNGNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vRE9NSFRNTENsYXNzZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0RPTUhU
TUxDbGFzc2VzLmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgRE9NSFRNTERvY3VtZW50Ojpib2R5KAogCiAgICAgSFRNTERvY3VtZW50JiBodG1sRG9jID0g
ZG93bmNhc3Q8SFRNTERvY3VtZW50PigqbV9kb2N1bWVudCk7CiAgICAgQ09NUHRyPElET01FbGVt
ZW50PiBkb21FbGVtZW50OwotICAgIGRvbUVsZW1lbnQuYWRvcHRSZWYoRE9NSFRNTEVsZW1lbnQ6
OmNyZWF0ZUluc3RhbmNlKGh0bWxEb2MuYm9keSgpKSk7CisgICAgZG9tRWxlbWVudC5hZG9wdFJl
ZihET01IVE1MRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoaHRtbERvYy5ib2R5T3JGcmFtZXNldCgp
KSk7CiAgICAgaWYgKGRvbUVsZW1lbnQpCiAgICAgICAgIHJldHVybiBkb21FbGVtZW50LT5RdWVy
eUludGVyZmFjZShJSURfSURPTUhUTUxFbGVtZW50LCAodm9pZCoqKSBib2R5RWxlbWVudCk7CiAg
ICAgcmV0dXJuIEVfRkFJTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KaW5kZXgg
NTEzY2NiZmZiOGM4OWViMWNmNmEwYTRhNGVmZjdhNzFlMzM3MGM0OS4uMTUwNzA5MTEwMmFkMDQz
YzllZDQ0YzkwMmYwNDgzZDFhNWNiMzgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1l
bnQubW0KQEAgLTQ5LDcgKzQ5LDcgQEAgLSAoV0tET01UZXh0ICopY3JlYXRlVGV4dE5vZGU6KE5T
U3RyaW5nICopZGF0YQogCiAtIChXS0RPTUVsZW1lbnQgKilib2R5CiB7Ci0gICAgcmV0dXJuIFdl
YktpdDo6dG9XS0RPTUVsZW1lbnQoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1wbCku
Ym9keSgpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudChkb3duY2FzdDxXZWJD
b3JlOjpEb2N1bWVudD4oKl9pbXBsKS5ib2R5T3JGcmFtZXNldCgpKTsKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpp
bmRleCBlNTA4ZGQ3OWY5NGY4NGU1OGUzNTEyZmYxNGNjNmQwM2UxZjgxOTc2Li44MGY0NDM2Yjg5
MDQwY2M5YTE2MWFiZDQ4ZTAxNmM2NTdiZTE4OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNTE5LDcgKzUxOSw3IEBA
IFBERlBsdWdpbjo6UERGUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9hbm5vdGF0
aW9uU3R5bGUtPnNldFRleHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CiAKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fu
bm90YXRpb25TdHlsZS5nZXQoKSk7Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5KCktPmFwcGVuZENo
aWxkKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CisgICAgICAgIGRvY3VtZW50LT5ib2R5
T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOwog
ICAgIH0KIAogICAgIG1fYWNjZXNzaWJpbGl0eU9iamVjdCA9IGFkb3B0TlMoW1tXS1BERlBsdWdp
bkFjY2Vzc2liaWxpdHlPYmplY3QgYWxsb2NdIGluaXRXaXRoUERGUGx1Z2luOnRoaXNdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245380</attachid>
            <date>2015-01-26 15:13:21 -0800</date>
            <delta_ts>2015-01-26 16:26:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140902-20150126151323.patch</filename>
            <type>text/plain</type>
            <size>40550</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA1NTJkYzhjZWJlMDdk
NTg3ODNlMWM1ZjVmZGM0N2U4N2EwMzFhNS4uNGUxNWU4ZmMxZDA3ZDMzNTU5NzczN2U2NGEzOTBm
MGFhNTIzMWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IGxldCB0aGUgQ1NTVmFsdWVQb29sJ3MgZm9udCBmYW1pbHkgY2FjaGUg
Z3JvdyB1bmJvdW5kZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzlkZTcxZTExNmY4ZjRmZjQ2MDYw
ZWE5ODhmM2EyZDNhY2UwMjI0Zi4uODRhNWYzNTI4NmIzNmQ5MTc5YzhmNGU4YzNjZjg5YTJlM2Vi
NGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBbU1ZHIC0+IE9URiBDb252ZXJ0ZXJdIEZsaXAgdGhlIHN3
aXRjaCBvZmYgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZmM2MDcxZWEwNGRmMzNjMjI1YmRl
MDQwZTdiZTVhOTNjOTY2NDk5Ny4uZjU0YjMzMDI1YWIxZjM3ZTFiMmJiMDdiNzZmYTA4NzM5MzI5
YmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50Ojpi
b2R5KCkgdG8gRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgZm9yIGNsYXJpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDkwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6
Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGZvciBjbGFyaXR5LiBUaGlzCisg
ICAgICAgIG1ldGhvZCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4gSFRNTEJvZHlFbGVt
ZW50LCBpdCBjYW4gYWxzbworICAgICAgICByZXR1cm4gYSBmcmFtZXNldCBhcyBwZXIgdGhlIHNw
ZWNpZmljYXRpb246CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1s
I2RvbS10cmVlLWFjY2Vzc29ycworCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG9mdGVuIG1pc3Vz
ZWQgaW50ZXJuYWxseSAodGhlIGNhbGxlciBpcyBvbmx5IGludGVyZXN0ZWQKKyAgICAgICAgaW4g
dGhlIDxib2R5PiBlbGVtZW50KS4gSSB3aWxsIGZpeCB0aGVzZSBpbnN0YW5jZXMgaW4gYSBmb2xs
b3ctdXAgcGF0Y2gsCisgICAgICAgIHRoaXMgcGF0Y2ggaXMgb25seSByZW5hbWluZyBtZWNoYW5p
Y2FsbHkuCisKIDIwMTUtMDEtMjUgIHBlYXZvQG91dGxvb2suY29tICA8cGVhdm9Ab3V0bG9vay5j
b20+CiAKICAgICAgICAgW1dpbl0gQWRkIFdlYktpdCBtZXNzYWdlIGxvb3AgaW50ZXJmYWNlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDQyNmRlNjZkMTJmNTY1NTA4M2M3NzczOTZlMzJjOGM4NjhkMjg0ZGEuLmM5
NTdjY2UwMDkzMWM5YTg5YjIxYjcyOWI3NDk0ZGU1YzdkMDJlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wMS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBEb2N1bWVudDo6Ym9keSgpIHRvIERvY3VtZW50Ojpib2R5T3JGcmFt
ZXNldCgpIGZvciBjbGFyaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDA5MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgRG9jdW1lbnQ6OmJvZHkoKSB0byBEb2N1bWVudDo6Ym9keU9yRnJh
bWVzZXQoKSBmb3IgY2xhcml0eS4gVGhpcworICAgICAgICBtZXRob2QgZG9lcyBub3QgbmVjZXNz
YXJpbHkgcmV0dXJuIGFuIEhUTUxCb2R5RWxlbWVudCwgaXQgY2FuIGFsc28KKyAgICAgICAgcmV0
dXJuIGEgZnJhbWVzZXQgYXMgcGVyIHRoZSBzcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCNkb20tdHJlZS1hY2Nlc3NvcnMKKworICAgICAg
ICBUaGlzIG1ldGhvZCBpcyBvZnRlbiBtaXN1c2VkIGludGVybmFsbHkgKHRoZSBjYWxsZXIgaXMg
b25seSBpbnRlcmVzdGVkCisgICAgICAgIGluIHRoZSA8Ym9keT4gZWxlbWVudCkuIEkgd2lsbCBm
aXggdGhlc2UgaW5zdGFuY2VzIGluIGEgZm9sbG93LXVwIHBhdGNoLAorICAgICAgICB0aGlzIHBh
dGNoIGlzIG9ubHkgcmVuYW1pbmcgbWVjaGFuaWNhbGx5LgorCiAyMDE1LTAxLTI2ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBCbGFja2xpc3QgaUJvb2tzIGZvciBX
ZWJLaXQncyBkZWZhdWx0IGltbWVkaWF0ZSBhY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDA4YmUzZTlhYmEzYjFhNjRhYTU5MTRlN2RjNmZmOTVkMDFiOThmZGMuLjAwMjQ3YTc4YmZkNDkx
M2RmZjQ0OWNjYjViNWI0NDAwYTRjMTU0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yMTAx
LDggKzIxMDEsOCBAQCBfX1pOSzdXZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5L
N1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21w
bGV0ZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0
Q2FjaGVFdgorX19aTks3V2ViQ29yZThEb2N1bWVudDE0Ym9keU9yRnJhbWVzZXRFdgogX19aTks3
V2ViQ29yZThEb2N1bWVudDMxZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZ0VSS04zV1RG
NlN0cmluZ0UKLV9fWk5LN1dlYkNvcmU4RG9jdW1lbnQ0Ym9keUV2CiBfX1pOSzdXZWJDb3JlOERv
Y3VtZW50NHBhZ2VFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXYKIF9fWk5LN1dlYkNv
cmU4RG9jdW1lbnQ2ZG9tYWluRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggNWNmOWYyZGQxNjMyY2Zi
ODdlMGRiOWI2YTM2YzIwNjExODIxY2RjOC4uYWYyMDI5MTZlNGVlNzhjZDlhMjgxMDkyNjU5NzFk
MjZkNWZhNjc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTE0NjgsNyArMTQ2OCw3IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6YWx0ZXJuYXRpdmVUZXh0Rm9yV2ViQXJlYSgpIGNv
bnN0CiAgICAgaWYgKCFkb2N1bWVudFRpdGxlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGRv
Y3VtZW50VGl0bGU7CiAgICAgCi0gICAgaWYgKGF1dG8qIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgp
KQorICAgIGlmIChhdXRvKiBib2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCkpCiAgICAg
ICAgIHJldHVybiBib2R5LT5nZXROYW1lQXR0cmlidXRlKCk7CiAgICAgCiAgICAgcmV0dXJuIFN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggN2NhZTdmOTZjZmJmZmQ5ZWFhMDdmYjYz
OWFhMmE1MWFkMGE0MDQ3Yi4uZDMxZWVjM2FmYjg1YzhkOTgzNzBiNDA0MTA5YWNkMzJiMzU2NDYy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC01MjcsNyArNTI3LDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKICAgICBBU1NFUlQobV9yZW5k
ZXJlcik7CiAgICAgCiAgICAgaWYgKGlzV2ViQXJlYSgpKSB7Ci0gICAgICAgIGlmIChIVE1MRWxl
bWVudCogYm9keSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCkuYm9keSgpKSB7CisgICAgICAgIGlm
IChIVE1MRWxlbWVudCogYm9keSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCkuYm9keU9yRnJhbWVz
ZXQoKSkgewogICAgICAgICAgICAgaWYgKGJvZHktPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGFhNzEyMjYwZTBlYTA5N2QwNjE0YTk1ZWFjYmIwODMzZDY0Y2FhMmQuLjI4MzFhODA5
MDk5YTdhNDAyMThmMTBhN2IzYThiZTkyNDMxMmQ4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTg1OSw3ICsxODU5LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAg
Ly8gbW9tZW50LiAgSWYgaXQgd2VyZSBtb3JlIHJlZmluZWQsIHdlIG1pZ2h0IGJlIGFibGUgdG8g
ZG8gc29tZXRoaW5nIGJldHRlci4pCiAgICAgICAgIC8vIEl0J3Mgd29ydGggbm90aW5nIHRob3Vn
aCB0aGF0IHRoaXMgZW50aXJlIG1ldGhvZCBpcyBhIGhhY2ssIHNpbmNlIHdoYXQgd2UgcmVhbGx5
IHdhbnQgdG8gZG8gaXMKICAgICAgICAgLy8gc3VzcGVuZCBKUyBpbnN0ZWFkIG9mIGRvaW5nIGEg
bGF5b3V0IHdpdGggaW5hY2N1cmF0ZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgSFRNTEVsZW1lbnQq
IGJvZHlFbGVtZW50ID0gYm9keSgpOworICAgICAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQg
PSBib2R5T3JGcmFtZXNldCgpOwogICAgICAgICBpZiAoYm9keUVsZW1lbnQgJiYgIWJvZHlFbGVt
ZW50LT5yZW5kZXJlcigpICYmIG1fcGVuZGluZ1NoZWV0TGF5b3V0ID09IE5vTGF5b3V0V2l0aFBl
bmRpbmdTaGVldHMpIHsKICAgICAgICAgICAgIG1fcGVuZGluZ1NoZWV0TGF5b3V0ID0gRGlkTGF5
b3V0V2l0aFBlbmRpbmdTaGVldHM7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyQ2hhbmdlZChS
ZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKQEAgLTIzMjQsNyArMjMyNCw3IEBAIHZvaWQgRG9jdW1l
bnQ6OmltcGxpY2l0T3BlbigpCiAgICAgc2V0UmVhZHlTdGF0ZShMb2FkaW5nKTsKIH0KIAotSFRN
TEVsZW1lbnQqIERvY3VtZW50Ojpib2R5KCkgY29uc3QKK0hUTUxFbGVtZW50KiBEb2N1bWVudDo6
Ym9keU9yRnJhbWVzZXQoKSBjb25zdAogewogICAgIC8vIElmIHRoZSBkb2N1bWVudCBlbGVtZW50
IGNvbnRhaW5zIGJvdGggYSBmcmFtZXNldCBhbmQgYSBib2R5LCB0aGUgZnJhbWVzZXQgd2lucy4K
ICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudEVsZW1lbnQoKTsKQEAgLTIzMzUsNyArMjMzNSw3
IEBAIEhUTUxFbGVtZW50KiBEb2N1bWVudDo6Ym9keSgpIGNvbnN0CiAgICAgcmV0dXJuIGNoaWxk
cmVuT2ZUeXBlPEhUTUxCb2R5RWxlbWVudD4oKmVsZW1lbnQpLmZpcnN0KCk7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OnNldEJvZHkoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit2b2lkIERvY3VtZW50OjpzZXRCb2R5T3JGcmFtZXNldChQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBwcnBOZXdCb2R5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IG5ld0JvZHkgPSBwcnBOZXdCb2R5OwogCkBAIC0yMzUzLDcgKzIz
NTMsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRCb2R5KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
cE5ld0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBuZXdCb2R5ID0gZG93bmNhc3Q8
SFRNTEVsZW1lbnQ+KG5vZGUuZ2V0KCkpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50KiBiID0g
Ym9keSgpOworICAgIEhUTUxFbGVtZW50KiBiID0gYm9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAo
IWIpCiAgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVh
c2UoKSwgZWMpOwogICAgIGVsc2UKQEAgLTI1NDEsNyArMjU0MSw3IEBAIGJvb2wgRG9jdW1lbnQ6
OnNob3VsZFNjaGVkdWxlTGF5b3V0KCkKICAgICAvLyAgICAoYSkgT25seSBzY2hlZHVsZSBhIGxh
eW91dCBvbmNlIHRoZSBzdHlsZXNoZWV0cyBhcmUgbG9hZGVkLgogICAgIC8vICAgIChiKSBPbmx5
IHNjaGVkdWxlIGxheW91dCBvbmNlIHdlIGhhdmUgYSBib2R5IGVsZW1lbnQuCiAKLSAgICByZXR1
cm4gKGhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpICYmIGJvZHkoKSkKKyAgICByZXR1cm4gKGhhdmVT
dHlsZXNoZWV0c0xvYWRlZCgpICYmIGJvZHlPckZyYW1lc2V0KCkpCiAgICAgICAgIHx8IChkb2N1
bWVudEVsZW1lbnQoKSAmJiAhZG9jdW1lbnRFbGVtZW50KCktPmhhc1RhZ05hbWUoaHRtbFRhZykp
OwogfQogICAgIApAQCAtNTk2Miw3ICs1OTYyLDcgQEAgRWxlbWVudCogZXZlbnRUYXJnZXRFbGVt
ZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIGlmICghZWxlbWVudCAmJiBp
czxQbHVnaW5Eb2N1bWVudD4oKmRvY3VtZW50KSkKICAgICAgICAgZWxlbWVudCA9IGRvd25jYXN0
PFBsdWdpbkRvY3VtZW50PigqZG9jdW1lbnQpLnBsdWdpbkVsZW1lbnQoKTsKICAgICBpZiAoIWVs
ZW1lbnQgJiYgaXM8SFRNTERvY3VtZW50PigqZG9jdW1lbnQpKQotICAgICAgICBlbGVtZW50ID0g
ZG9jdW1lbnQtPmJvZHkoKTsKKyAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LT5ib2R5T3JGcmFt
ZXNldCgpOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKTsKICAgICByZXR1cm4gZWxlbWVudDsKQEAgLTYyOTQsNyArNjI5NCw3
IEBAIEVsZW1lbnQqIERvY3VtZW50OjphY3RpdmVFbGVtZW50KCkKIHsKICAgICBpZiAoRWxlbWVu
dCogZWxlbWVudCA9IHRyZWVTY29wZSgpLmZvY3VzZWRFbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biBlbGVtZW50OwotICAgIHJldHVybiBib2R5KCk7CisgICAgcmV0dXJuIGJvZHlPckZyYW1lc2V0
KCk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Omhhc0ZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggMGYzZjlhZGJhNGMwMmI4MTBhMDRkMzRjMWQzYmZkN2VjYzI3YzBkYi4uOTU3OGI0
MjgzZDA5MzBhNzhkY2ZlM2UwNmJhNGEwNDdlMzE5NjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTkzNyw4ICs5MzcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaGFzVmFsaWROYW1l
c3BhY2VGb3JFbGVtZW50cyhjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgc3RhdGljIGJvb2wg
aGFzVmFsaWROYW1lc3BhY2VGb3JBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxFbGVtZW50KiBib2R5KCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRCb2R5KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+LCBFeGNlcHRpb25Db2RlJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgSFRNTEVsZW1lbnQqIGJvZHlPckZyYW1lc2V0KCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRCb2R5T3JGcmFtZXNldChQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSFRNTEhlYWRFbGVtZW50KiBoZWFkKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGZjOWUyYWFjMDkxZGJlOTA2MDc0MjU0ZmZhODFhZWNk
NTBjMDIwYTYuLmU4ZjQ4YTQ4NjM1YTFiZTg4Y2NjZDVmZGEyYTBjZGY1NTQ3NmU5MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMTQ5LDcgKzE0OSw3IEBACiAKICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZywgR2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTZXR0ZXJSYWlzZXNFeGNlcHRp
b25dIGF0dHJpYnV0ZSBET01TdHJpbmcgY29va2llOwogCi0gICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbl0gYXR0cmlidXRlIEhUTUxFbGVtZW50IGJvZHk7CisgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbiwgSW1wbGVtZW50ZWRBcz1ib2R5T3JGcmFtZXNldF0gYXR0cmlidXRlIEhUTUxFbGVtZW50
IGJvZHk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEhlYWRFbGVtZW50IGhlYWQ7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGltYWdlczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCA0
MTAwZDQ5NTExYzNlMjhiM2E3Y2UwNGU5N2JlYzYzMzNiMzU3NzMwLi44YWUzMWU5NjMxNGUyYjk4
OTc4M2M3ZmZiYTY1ZmY5OTkyMzQzZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9p
ZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphZGRTdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZShOb2RlJiBub2RlLCBib29sIGMKICAgICAvLyBzaW5jZSBzdHlsZXMgb3V0c2lkZSBvZiB0aGUg
Ym9keSBhbmQgaGVhZCBjb250aW51ZSB0byBiZSBzaHVudGVkIGludG8gdGhlIGhlYWQKICAgICAv
LyAoYW5kIHRodXMgY2FuIHNoaWZ0IHRvIGVuZCB1cCBiZWZvcmUgZHluYW1pY2FsbHkgYWRkZWQg
RE9NIGNvbnRlbnQgdGhhdCBpcyBhbHNvCiAgICAgLy8gb3V0c2lkZSB0aGUgYm9keSkuCi0gICAg
aWYgKChjcmVhdGVkQnlQYXJzZXIgJiYgbV9kb2N1bWVudC5ib2R5KCkpIHx8IG1fc3R5bGVTaGVl
dENhbmRpZGF0ZU5vZGVzLmlzRW1wdHkoKSkgeworICAgIGlmICgoY3JlYXRlZEJ5UGFyc2VyICYm
IG1fZG9jdW1lbnQuYm9keU9yRnJhbWVzZXQoKSkgfHwgbV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fc3R5bGVTaGVldENhbmRpZGF0ZU5vZGVzLmFkZCgm
bm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBE
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZShVcGRh
dGVGbGFnIHVwZGF0ZUZsYWcKICAgICBzdHlsZVJlc29sdmVyVXBkYXRlVHlwZSA9IGhhc0luc2Vy
dGlvbnMgPyBSZXNldCA6IEFkZGl0aXZlOwogCiAgICAgLy8gSWYgd2UgYXJlIGFscmVhZHkgcGFy
c2luZyB0aGUgYm9keSBhbmQgc28gbWF5IGhhdmUgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGVsZW1l
bnRzLCBwdXQgc29tZSBlZmZvcnQgaW50byB0cnlpbmcgdG8gYXZvaWQgc3R5bGUgcmVjYWxjcy4K
LSAgICBpZiAoIW1fZG9jdW1lbnQuYm9keSgpIHx8IG1fZG9jdW1lbnQuaGFzTm9kZXNXaXRoUGxh
Y2Vob2xkZXJTdHlsZSgpKQorICAgIGlmICghbV9kb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpIHx8
IG1fZG9jdW1lbnQuaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpKQogICAgICAgICByZXR1
cm47CiAgICAgU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcyBpbnZhbGlkYXRpb25BbmFseXNpcyhh
ZGRlZFNoZWV0cywgc3R5bGVSZXNvbHZlci5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCkpOwogICAgIGlm
IChpbnZhbGlkYXRpb25BbmFseXNpcy5kaXJ0aWVzQWxsU3R5bGUoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCA1MWEwNzg1MzJhZjVlZTI0ODQ1YjU0MTY5ZTIyNzg0ODk2MTJmOTNhLi42ZWVl
NmUwODg0M2MxM2RkYmZmOGIwOTQzZTRjMjA4NWM3Y2M5M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC03NzEsNyArNzcxLDcgQEAgZG91YmxlIEVsZW1lbnQ6OmNsaWVudFdpZHRoKCkKICAg
ICAvLyBXaGVuIGluIHN0cmljdCBtb2RlLCBjbGllbnRXaWR0aCBmb3IgdGhlIGRvY3VtZW50IGVs
ZW1lbnQgc2hvdWxkIHJldHVybiB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWUuCiAg
ICAgLy8gV2hlbiBpbiBxdWlya3MgbW9kZSwgY2xpZW50V2lkdGggZm9yIHRoZSBib2R5IGVsZW1l
bnQgc2hvdWxkIHJldHVybiB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWUuCiAgICAg
Ym9vbCBpblF1aXJrc01vZGUgPSBkb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpOwotICAgIGlmICgo
IWluUXVpcmtzTW9kZSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMpIHx8
IChpblF1aXJrc01vZGUgJiYgaXNIVE1MRWxlbWVudCgpICYmIGRvY3VtZW50KCkuYm9keSgpID09
IHRoaXMpKQorICAgIGlmICgoIWluUXVpcmtzTW9kZSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxl
bWVudCgpID09IHRoaXMpIHx8IChpblF1aXJrc01vZGUgJiYgaXNIVE1MRWxlbWVudCgpICYmIGRv
Y3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSA9PSB0aGlzKSkKICAgICAgICAgcmV0dXJuIGFkanVz
dEZvckFic29sdXRlWm9vbShyZW5kZXJWaWV3LmZyYW1lVmlldygpLmxheW91dFdpZHRoKCksIHJl
bmRlclZpZXcpOwogICAgIAogICAgIGlmIChSZW5kZXJCb3gqIHJlbmRlcmVyID0gcmVuZGVyQm94
KCkpIHsKQEAgLTc5Miw3ICs3OTIsNyBAQCBkb3VibGUgRWxlbWVudDo6Y2xpZW50SGVpZ2h0KCkK
ICAgICAvLyBXaGVuIGluIHN0cmljdCBtb2RlLCBjbGllbnRIZWlnaHQgZm9yIHRoZSBkb2N1bWVu
dCBlbGVtZW50IHNob3VsZCByZXR1cm4gdGhlIGhlaWdodCBvZiB0aGUgY29udGFpbmluZyBmcmFt
ZS4KICAgICAvLyBXaGVuIGluIHF1aXJrcyBtb2RlLCBjbGllbnRIZWlnaHQgZm9yIHRoZSBib2R5
IGVsZW1lbnQgc2hvdWxkIHJldHVybiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGZyYW1l
LgogICAgIGJvb2wgaW5RdWlya3NNb2RlID0gZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKTsKLSAg
ICBpZiAoKCFpblF1aXJrc01vZGUgJiYgZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSA9PSB0
aGlzKSB8fCAoaW5RdWlya3NNb2RlICYmIGlzSFRNTEVsZW1lbnQoKSAmJiBkb2N1bWVudCgpLmJv
ZHkoKSA9PSB0aGlzKSkKKyAgICBpZiAoKCFpblF1aXJrc01vZGUgJiYgZG9jdW1lbnQoKS5kb2N1
bWVudEVsZW1lbnQoKSA9PSB0aGlzKSB8fCAoaW5RdWlya3NNb2RlICYmIGlzSFRNTEVsZW1lbnQo
KSAmJiBkb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCkgPT0gdGhpcykpCiAgICAgICAgIHJldHVy
biBhZGp1c3RGb3JBYnNvbHV0ZVpvb20ocmVuZGVyVmlldy5mcmFtZVZpZXcoKS5sYXlvdXRIZWln
aHQoKSwgcmVuZGVyVmlldyk7CiAKICAgICBpZiAoUmVuZGVyQm94KiByZW5kZXJlciA9IHJlbmRl
ckJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZmFmNzcwZGFkNTI5MTFm
MDhkZGZjZjViYjVhOTgxN2YyNjVjOWU1OS4uN2E1OTgyMzg0NTA0ZThiMDY3NDA4NWU2YjQ3ZGNi
OGM5NzBjMTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjY3LDcgKzI2Nyw3
IEBAIHN0YXRpYyBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1bWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgaWYgKCFkb2N1bWVudC5pc0ltYWdlRG9jdW1lbnQo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgSFRNTEVsZW1lbnQqIGJvZHkg
PSBkb2N1bWVudC5ib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC5ib2R5
T3JGcmFtZXNldCgpOwogICAgIGlmICghYm9keSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCkBAIC04NzEsOSArODcxLDkgQEAgTm9kZSogRWRpdG9yOjpmaW5kRXZlbnRUYXJnZXRGcm9t
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikgY29uc3QKIHsKICAgICBOb2RlKiB0
YXJnZXQgPSBzZWxlY3Rpb24uc3RhcnQoKS5lbGVtZW50KCk7CiAgICAgaWYgKCF0YXJnZXQpCi0g
ICAgICAgIHRhcmdldCA9IGRvY3VtZW50KCkuYm9keSgpOworICAgICAgICB0YXJnZXQgPSBkb2N1
bWVudCgpLmJvZHlPckZyYW1lc2V0KCk7CiAgICAgaWYgKCF0YXJnZXQpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiB0YXJnZXQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGFmNGJkMTc4YmRk
ZjI0NmZlNzc4NWUxOGE4NzA5OThmYzI1MDJjNmUuLjNlMGU4OTk1M2M4YmM2ODNiZjY2NTczNWEy
NDEwNzViZmQ3ZmVkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0xNjk2LDcgKzE2OTYsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwo
KQogICAgICAgICAgICAgc2VsZWN0U3RhcnRUYXJnZXQgPSByb290LT5zaGFkb3dIb3N0KCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1l
bnQoKTsKLSAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFyZ2V0ID0gZG9jdW1lbnQtPmJvZHkoKTsK
KyAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFyZ2V0ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0
KCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFyb290KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCmluZGV4IDU1ZjRmZWZlYmQzYjE3MGJiZTYyNTY4ZDky
NGNmNmY2MWQwYmMxNTMuLmZmYWZmYzQwYzIyZWU2MjAxZWZkOThhZmY2MDgxYmZiYzE3ZTMzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKQEAgLTUzNiw3
ICs1MzYsNyBAQCBQb3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OmNhbm9uaWNhbFBvc2l0aW9uKGNv
bnN0IFBvc2l0aW9uJiBwYXNzZWRQb3NpdGlvbikKIAogICAgIC8vIFRoZSBuZXcgcG9zaXRpb24g
bXVzdCBiZSBpbiB0aGUgc2FtZSBlZGl0YWJsZSBlbGVtZW50LiBFbmZvcmNlIHRoYXQgZmlyc3Qu
CiAgICAgLy8gVW5sZXNzIHRoZSBkZXNjZW50IGlzIGZyb20gYSBub24tZWRpdGFibGUgaHRtbCBl
bGVtZW50IHRvIGFuIGVkaXRhYmxlIGJvZHkuCi0gICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFn
TmFtZShodG1sVGFnKSAmJiAhbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG5vZGUtPmRvY3Vt
ZW50KCkuYm9keSgpICYmIG5vZGUtPmRvY3VtZW50KCkuYm9keSgpLT5oYXNFZGl0YWJsZVN0eWxl
KCkpCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiAhbm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpICYmIG5vZGUtPmRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSAm
JiBub2RlLT5kb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCktPmhhc0VkaXRhYmxlU3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuIG5leHQuaXNOb3ROdWxsKCkgPyBuZXh0IDogcHJldjsKIAogICAgIE5v
ZGUqIGVkaXRpbmdSb290ID0gZWRpdGFibGVSb290Rm9yUG9zaXRpb24ocG9zaXRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IGYxZWUyOTk5Y2JkMjM1ODhl
MzU0YzZhYzgwYzkwZWM1ODY5MTc2ZTYuLjZlOWZlMzFhZTkxZTk2NTA4ODA3ZTYxOTM5YTVjOTFl
MWZjMjgxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTI4
MCw3ICsyODAsNyBAQCB2b2lkIEVkaXRvcjo6cmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCkKIHsK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgc3R5bGVzIHRoYXQgdGhlIHVzZXIgY2Fubm90
IG1vZGlmeSBieSBhcHBseWluZyB0aGVpciBkZWZhdWx0IHZhbHVlcy4KICAgICAKLSAgICBSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBlZGl0aW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShtX2Zy
YW1lLmRvY3VtZW50KCktPmJvZHkoKSk7CisgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gZWRpdGlu
Z1N0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5ib2R5T3JG
cmFtZXNldCgpKTsKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gZGVmYXVsdFN0
eWxlID0gZWRpdGluZ1N0eWxlLmdldCgpLT5zdHlsZSgpLT5tdXRhYmxlQ29weSgpOwogICAgIAog
ICAgIC8vIFRleHQgd2lkZ2V0cyBpbXBsZW1lbnQgYmFja2dyb3VuZCBjb2xvciB2aWEgdGhlIFVJ
VmlldyBwcm9wZXJ0eS4gVGhlaXIgYm9keSBlbGVtZW50IHdpbGwgbm90IGhhdmUgb25lLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCAyN2I3Mjlm
MTdjNTllNGFlZjE1MzBjNjI2MjY5OGZiN2U0YmUyNmJlLi5lNzU1M2Q3NDMwM2RkOTRkYjI2MTBk
Y2RkMmExODBmNGY4ZWIyMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERp
cmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9jdW1l
bnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkKICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmlu
ZCB0aGUgdGFibGUgZWxlbWVudCwgbGV0cyB0cnkgdG8gYXBwZW5kIG91ciBvd24gdG8gdGhlIGJv
ZHkKICAgICAvLyBJZiB0aGF0IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0aGUg
ZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBhIGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKLSAgICBp
ZiAoRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCktPmJvZHkoKSkKKyAgICBpZiAoYXV0byogYm9k
eSA9IGRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCkpCiAgICAgICAgIGJvZHktPmFwcGVuZENo
aWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbHNlCiAgICAgICAg
IGRvY3VtZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9O
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCA4OGI5YjI5OTI3MjBkMjg3
YzM4NTA2MjdjMGM2ODhhZDNkZmU5ZWRiLi5hM2QwNTIxYmM1M2VkNjVmYWM4MGU0MWQwYzlkYTUy
YTEyZWU4YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0xMDcsMTYg
KzEwNywxNSBAQCBpbnQgSFRNTERvY3VtZW50OjpoZWlnaHQoKQogCiBTdHJpbmcgSFRNTERvY3Vt
ZW50OjpkaXIoKQogewotICAgIGlmIChhdXRvKiBib2R5ID0gdGhpcy0+Ym9keSgpKQorICAgIGlm
IChhdXRvKiBib2R5ID0gYm9keU9yRnJhbWVzZXQoKSkKICAgICAgICAgcmV0dXJuIGJvZHktPmZh
c3RHZXRBdHRyaWJ1dGUoZGlyQXR0cik7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiB2b2lk
IEhUTUxEb2N1bWVudDo6c2V0RGlyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgSFRNTEVs
ZW1lbnQqIGIgPSBib2R5KCk7Ci0gICAgaWYgKGIpCi0gICAgICAgIGItPnNldEF0dHJpYnV0ZShk
aXJBdHRyLCB2YWx1ZSk7CisgICAgaWYgKGF1dG8qIGJvZHkgPSBib2R5T3JGcmFtZXNldCgpKQor
ICAgICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoZGlyQXR0ciwgdmFsdWUpOwogfQogCiBTdHJpbmcg
SFRNTERvY3VtZW50OjpkZXNpZ25Nb2RlKCkgY29uc3QKQEAgLTEzOCw3ICsxMzcsNyBAQCB2b2lk
IEhUTUxEb2N1bWVudDo6c2V0RGVzaWduTW9kZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxEb2N1bWVudDo6YmdDb2xvcigpIGNvbnN0CiB7Ci0gICAgSFRN
TEVsZW1lbnQqIGJvZHlFbGVtZW50ID0gYm9keSgpOworICAgIEhUTUxFbGVtZW50KiBib2R5RWxl
bWVudCA9IGJvZHlPckZyYW1lc2V0KCk7CiAgICAgaWYgKCFpczxIVE1MQm9keUVsZW1lbnQ+KGJv
ZHlFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKICAgICByZXR1cm4gYm9keUVs
ZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoYmdjb2xvckF0dHIpOwpAQCAtMTQ2LDcgKzE0NSw3IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTERvY3VtZW50OjpiZ0NvbG9yKCkgY29uc3QKIAogdm9p
ZCBIVE1MRG9jdW1lbnQ6OnNldEJnQ29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBI
VE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHlF
bGVtZW50ID0gYm9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWlzPEhUTUxCb2R5RWxlbWVudD4o
Ym9keUVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAgICAgYm9keUVsZW1lbnQtPnNldEF0dHJp
YnV0ZShiZ2NvbG9yQXR0ciwgdmFsdWUpOwpAQCAtMTU0LDcgKzE1Myw3IEBAIHZvaWQgSFRNTERv
Y3VtZW50OjpzZXRCZ0NvbG9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSFRNTERvY3VtZW50OjpmZ0NvbG9yKCkgY29uc3QKIHsKLSAgICBIVE1MRWxlbWVudCog
Ym9keUVsZW1lbnQgPSBib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHlFbGVtZW50ID0gYm9k
eU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWlzPEhUTUxCb2R5RWxlbWVudD4oYm9keUVsZW1lbnQp
KQogICAgICAgICByZXR1cm4gZW1wdHlBdG9tOwogICAgIHJldHVybiBib2R5RWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZSh0ZXh0QXR0cik7CkBAIC0xNjIsNyArMTYxLDcgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MRG9jdW1lbnQ6OmZnQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVu
dDo6c2V0RmdDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBi
b2R5RWxlbWVudCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5
T3JGcmFtZXNldCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkp
CiAgICAgICAgIHJldHVybjsKICAgICBib2R5RWxlbWVudC0+c2V0QXR0cmlidXRlKHRleHRBdHRy
LCB2YWx1ZSk7CkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OnNldEZnQ29s
b3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9jdW1l
bnQ6OmFsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9
IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgp
OwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJl
dHVybiBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGFsaW5rQXR0cik7CkBAIC0xNzgsNyArMTc3LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1M
RG9jdW1lbnQ6OmFsaW5rQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVudDo6c2V0QWxp
bmtDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxl
bWVudCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFt
ZXNldCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBib2R5RWxlbWVudC0+c2V0QXR0cmlidXRlKGFsaW5rQXR0ciwgdmFs
dWUpOwpAQCAtMTg2LDcgKzE4NSw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRBbGlua0NvbG9y
KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTERvY3VtZW50
OjpsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9IGJv
ZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgpOwog
ICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJldHVy
biBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGxp
bmtBdHRyKTsKQEAgLTE5NCw3ICsxOTMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxEb2N1
bWVudDo6bGlua0NvbG9yKCkgY29uc3QKIAogdm9pZCBIVE1MRG9jdW1lbnQ6OnNldExpbmtDb2xv
cihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9
IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgp
OwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJl
dHVybjsKICAgICByZXR1cm4gYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZShsaW5rQXR0ciwgdmFs
dWUpOwpAQCAtMjAyLDcgKzIwMSw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRMaW5rQ29sb3Io
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9jdW1lbnQ6
OnZsaW5rQ29sb3IoKSBjb25zdAogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVudCA9IGJv
ZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNldCgpOwog
ICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAgIHJldHVy
biBlbXB0eUF0b207CiAgICAgcmV0dXJuIGJvZHlFbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHZs
aW5rQXR0cik7CkBAIC0yMTAsNyArMjA5LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRG9j
dW1lbnQ6OnZsaW5rQ29sb3IoKSBjb25zdAogCiB2b2lkIEhUTUxEb2N1bWVudDo6c2V0VmxpbmtD
b2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEhUTUxFbGVtZW50KiBib2R5RWxlbWVu
dCA9IGJvZHkoKTsKKyAgICBIVE1MRWxlbWVudCogYm9keUVsZW1lbnQgPSBib2R5T3JGcmFtZXNl
dCgpOwogICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50Pihib2R5RWxlbWVudCkpCiAgICAgICAg
IHJldHVybjsKICAgICByZXR1cm4gYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZSh2bGlua0F0dHIs
IHZhbHVlKTsKQEAgLTMzOSw3ICszMzgsNyBAQCB2b2lkIEhUTUxEb2N1bWVudDo6Y2xlYXIoKQog
CiBib29sIEhUTUxEb2N1bWVudDo6aXNGcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlz
PEhUTUxGcmFtZVNldEVsZW1lbnQ+KGJvZHkoKSk7CisgICAgcmV0dXJuIGlzPEhUTUxGcmFtZVNl
dEVsZW1lbnQ+KGJvZHlPckZyYW1lc2V0KCkpOwogfQogCiBSZWY8RG9jdW1lbnQ+IEhUTUxEb2N1
bWVudDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcAppbmRleCA4OTJiODdmNTU2YzM2YmQ0NDhiYTk3ZGI1YjFiMjM1
NTk1MWZmZDMxLi5lZmUxYjFmZTM1MjliMDczOWZiNTgwMTUzZDFmODA2YzhjMjE2YmZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lk
IE1lZGlhRG9jdW1lbnQ6Om1lZGlhRWxlbWVudFNhd1Vuc3VwcG9ydGVkVHJhY2tzKCkKIAogdm9p
ZCBNZWRpYURvY3VtZW50OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCgpCiB7Ci0gICAg
SFRNTEVsZW1lbnQqIGh0bWxCb2R5ID0gYm9keSgpOworICAgIGF1dG8qIGh0bWxCb2R5ID0gYm9k
eU9yRnJhbWVzZXQoKTsKICAgICBpZiAoIWh0bWxCb2R5KQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDYw
YTM1ODFmNmRjMTUzMGJhOWI1ZjQ5ZGU5MDNjZjc0MTI0YTNhZDIuLjQ3OTE4ZDMyMjkxNzQ0NGIy
NTIwNzVjNDc5YWU1YmVkMmQ5YmMxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtOTYwLDggKzk2MCw4IEBAIEluc3BlY3RvclN0eWxl
U2hlZXQqIEluc3BlY3RvckNTU0FnZW50Ojp2aWFJbnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50
KiBkb2N1bWVuCiAgICAgICAgIC8vIEhFQUQgaXMgYWJzZW50IGluIEltYWdlRG9jdW1lbnRzLCBm
b3IgZXhhbXBsZS4KICAgICAgICAgaWYgKGRvY3VtZW50LT5oZWFkKCkpCiAgICAgICAgICAgICB0
YXJnZXROb2RlID0gZG9jdW1lbnQtPmhlYWQoKTsKLSAgICAgICAgZWxzZSBpZiAoZG9jdW1lbnQt
PmJvZHkoKSkKLSAgICAgICAgICAgIHRhcmdldE5vZGUgPSBkb2N1bWVudC0+Ym9keSgpOworICAg
ICAgICBlbHNlIGlmIChkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKSkKKyAgICAgICAgICAgIHRh
cmdldE5vZGUgPSBkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDBiMTc4ZTQzYzEyZGQxMWM2N2Q0MGEyOTE3YWI0MjFkYzZkMjY3ZjIuLjcyM2Vh
YzJlMTg0YjA1MjVjYmFiMmZjZDQ1OTVlMjQ0NmM4NTNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMjgyOSw3ICsyODI5LDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6
aGFuZGxlQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFt
ZUxvYWQKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQtPmJvZHkoKSkKKyAg
ICBpZiAoIWRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAKICAgICBSZWZQdHI8QmVmb3JlVW5sb2FkRXZlbnQ+IGJlZm9yZVVubG9hZEV2ZW50ID0g
QmVmb3JlVW5sb2FkRXZlbnQ6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNWEyYWJkMmVkNzU4YmQ1
YzViMzY4ZjY1YmRmZTU2NWMwMjZlZmIwNS4uOTAyZmIxODRlMjEwYjE5M2RhZWVhMTIzNDhlZjY0
OTAxNGRhYTRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNv
dXJjZVJlcXUKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBhIHNldHRp
bmcgdG8gdG9nZ2xlIGFnZ3Jlc3NpdmUgcHJlbG9hZGluZyBiZWhhdmlvciBhcyBvcHBvc2VkCiAg
ICAgLy8gdG8gbWFraW5nIHRoaXMgYmVoYXZpb3Igc3BlY2lmaWMgdG8gaU9TLgogI2lmICFQTEFU
Rk9STShJT1MpCi0gICAgYm9vbCBoYXNSZW5kZXJpbmcgPSBtX2RvY3VtZW50LT5ib2R5KCkgJiYg
bV9kb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGJvb2wgaGFzUmVuZGVyaW5nID0gbV9kb2N1
bWVudC0+Ym9keU9yRnJhbWVzZXQoKSAmJiBtX2RvY3VtZW50LT5yZW5kZXJWaWV3KCk7CiAgICAg
Ym9vbCBjYW5CbG9ja1BhcnNlciA9IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OwogICAgIGlmICghaGFzUmVuZGVy
aW5nICYmICFjYW5CbG9ja1BhcnNlcikgewogICAgICAgICAvLyBEb24ndCBwcmVsb2FkIHN1YnJl
c291cmNlcyB0aGF0IGNhbid0IGJsb2NrIHRoZSBwYXJzZXIgYmVmb3JlIHdlIGhhdmUgc29tZXRo
aW5nIHRvIGRyYXcuCkBAIC05MTIsNyArOTEyLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXUK
IAogdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKSAK
IHsKLSAgICBpZiAobV9wZW5kaW5nUHJlbG9hZHMuaXNFbXB0eSgpIHx8ICFtX2RvY3VtZW50LT5i
b2R5KCkgfHwgIW1fZG9jdW1lbnQtPmJvZHkoKS0+cmVuZGVyZXIoKSkKKyAgICBpZiAobV9wZW5k
aW5nUHJlbG9hZHMuaXNFbXB0eSgpIHx8ICFtX2RvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpIHx8
ICFtX2RvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1
cm47CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFdlIGFsd2F5cyBwcmVsb2FkIHJlc291cmNl
cyBvbiBpT1MuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkx
Mjc2Pi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3NjhhOGFkM2VmNzAxYTY1NDc0
Zjg4ZjEyZDlhZDA4OWE3MGNhNzE2Li45ODU0OTE2MzRlOTAwYTI5ZmY5Y2ZjMDkzN2VjNDAwNWRm
NTI0YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01MzksNyArNTM5LDcgQEAg
UGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW8KICAgICBEb2N1bWVudCogZG9jID0gZnJhbWUoKS5kb2N1
bWVudCgpOwogCiAgICAgLy8gVHJ5IHRoZSA8Ym9keT4gZWxlbWVudCBmaXJzdCBhcyBhIHNjcm9s
bGJhciBzb3VyY2UuCi0gICAgRWxlbWVudCogYm9keSA9IGRvYyA/IGRvYy0+Ym9keSgpIDogMDsK
KyAgICBFbGVtZW50KiBib2R5ID0gZG9jID8gZG9jLT5ib2R5T3JGcmFtZXNldCgpIDogMDsKICAg
ICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpICYmIGJvZHktPnJlbmRlcmVyKCktPnN0eWxl
KCkuaGFzUHNldWRvU3R5bGUoU0NST0xMQkFSKSkKICAgICAgICAgcmV0dXJuIFJlbmRlclNjcm9s
bGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBib2R5KTsKICAg
ICAKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIEZyYW1lVmlldzo6YXBwbHlQYWdpbmF0aW9uVG9W
aWV3cG9ydCgpCiAgICAgYXV0byBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRF
bGVtZW50KCk7CiAgICAgUmVuZGVyRWxlbWVudCogZG9jdW1lbnRSZW5kZXJlciA9IGRvY3VtZW50
RWxlbWVudCA/IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CiAgICAgUmVu
ZGVyRWxlbWVudCogZG9jdW1lbnRPckJvZHlSZW5kZXJlciA9IGRvY3VtZW50UmVuZGVyZXI7Ci0g
ICAgYXV0byBib2R5ID0gZG9jdW1lbnQtPmJvZHkoKTsKKyAgICBhdXRvIGJvZHkgPSBkb2N1bWVu
dC0+Ym9keU9yRnJhbWVzZXQoKTsKICAgICBpZiAoYm9keSAmJiBib2R5LT5yZW5kZXJlcigpKSB7
CiAgICAgICAgIGlmIChib2R5LT5oYXNUYWdOYW1lKGJvZHlUYWcpKQogICAgICAgICAgICAgZG9j
dW1lbnRPckJvZHlSZW5kZXJlciA9IGRvY3VtZW50UmVuZGVyZXItPnN0eWxlKCkub3ZlcmZsb3dY
KCkgPT0gT1ZJU0lCTEUgJiYgZG9jdW1lbnRFbGVtZW50LT5oYXNUYWdOYW1lKGh0bWxUYWcpID8g
Ym9keS0+cmVuZGVyZXIoKSA6IGRvY3VtZW50UmVuZGVyZXI7CkBAIC03MTUsNyArNzE1LDcgQEAg
dm9pZCBGcmFtZVZpZXc6OmNhbGN1bGF0ZVNjcm9sbGJhck1vZGVzRm9yTGF5b3V0KFNjcm9sbGJh
ck1vZGUmIGhNb2RlLCBTY3JvbGxiYXIKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpOwogICAgICAgICBhdXRvIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50
LT5kb2N1bWVudEVsZW1lbnQoKTsKICAgICAgICAgUmVuZGVyRWxlbWVudCogcm9vdFJlbmRlcmVy
ID0gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0
cjsKLSAgICAgICAgYXV0byBib2R5ID0gZG9jdW1lbnQtPmJvZHkoKTsKKyAgICAgICAgYXV0byBi
b2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCk7CiAgICAgICAgIGlmIChib2R5ICYmIGJv
ZHktPnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChib2R5LT5oYXNUYWdOYW1lKGZyYW1l
c2V0VGFnKSAmJiAhZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICAgICAg
dk1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CkBAIC04ODQsNyArODg0LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklY
TUU6IFNob3VsZCB3ZSBhbGxvdyBzcGVjaWZ5aW5nIHNuYXAgcG9pbnRzIHRocm91Z2ggPGh0bWw+
IHRhZ3MgdG9vPwotICAgIEhUTUxFbGVtZW50KiBib2R5ID0gZnJhbWUoKS5kb2N1bWVudCgpLT5i
b2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBmcmFtZSgpLmRvY3VtZW50KCktPmJvZHlP
ckZyYW1lc2V0KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KCkgfHwgIWJvZHkgfHwgIWJvZHktPnJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTEyMjksNyArMTIyOSw3IEBAIHZv
aWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgIFRlbXBvcmFy
eUNoYW5nZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxlZChtX2xheW91dFNjaGVkdWxpbmdF
bmFibGVkLCBmYWxzZSk7CiAKICAgICAgICAgaWYgKCFtX2xheW91dFJvb3QpIHsKLSAgICAgICAg
ICAgIEhUTUxFbGVtZW50KiBib2R5ID0gZG9jdW1lbnQuYm9keSgpOworICAgICAgICAgICAgSFRN
TEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpOwogICAgICAgICAgICAg
aWYgKGJvZHkgJiYgYm9keS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIGlmIChib2R5
LT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSAmJiAhZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGJvZHktPnJlbmRlcmVyKCktPnNldENoaWxkTmVlZHNMYXlv
dXQoKTsKQEAgLTEyODQsNyArMTI4NCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBh
bGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAgICAgbV9uZWVkc0Z1bGxSZXBhaW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICBpZiAoIW1fZmlyc3RMYXlvdXQpIHsKICAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyQm94KiByb290UmVuZGVyZXIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSA/
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJCb3goKSA6IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIFJlbmRlckJveCogYm9keVJlbmRlcmVyID0gcm9vdFJlbmRlcmVyICYmIGRvY3Vt
ZW50LmJvZHkoKSA/IGRvY3VtZW50LmJvZHkoKS0+cmVuZGVyQm94KCkgOiAwOworICAgICAgICAg
ICAgICAgICAgICBSZW5kZXJCb3gqIGJvZHlSZW5kZXJlciA9IHJvb3RSZW5kZXJlciAmJiBkb2N1
bWVudC5ib2R5T3JGcmFtZXNldCgpID8gZG9jdW1lbnQuYm9keU9yRnJhbWVzZXQoKS0+cmVuZGVy
Qm94KCkgOiAwOwogICAgICAgICAgICAgICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmIGJvZHlS
ZW5kZXJlci0+c3RyZXRjaGVzVG9WaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICAgICAg
Ym9keVJlbmRlcmVyLT5zZXRDaGlsZE5lZWRzTGF5b3V0KCk7CiAgICAgICAgICAgICAgICAgICAg
IGVsc2UgaWYgKHJvb3RSZW5kZXJlciAmJiByb290UmVuZGVyZXItPnN0cmV0Y2hlc1RvVmlld3Bv
cnQoKSkKQEAgLTM1MjEsNyArMzUyMSw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVTY3JvbGxD
b3JuZXIoKQogICAgIGlmICghY29ybmVyUmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVHJ5
IHRoZSA8Ym9keT4gZWxlbWVudCBmaXJzdCBhcyBhIHNjcm9sbCBjb3JuZXIgc291cmNlLgogICAg
ICAgICBEb2N1bWVudCogZG9jID0gZnJhbWUoKS5kb2N1bWVudCgpOwotICAgICAgICBFbGVtZW50
KiBib2R5ID0gZG9jID8gZG9jLT5ib2R5KCkgOiAwOworICAgICAgICBFbGVtZW50KiBib2R5ID0g
ZG9jID8gZG9jLT5ib2R5T3JGcmFtZXNldCgpIDogMDsKICAgICAgICAgaWYgKGJvZHkgJiYgYm9k
eS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgcmVuZGVyZXIgPSBib2R5LT5yZW5kZXJlcigp
OwogICAgICAgICAgICAgY29ybmVyU3R5bGUgPSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9T
dHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NST0xMQkFSX0NPUk5FUiksICZyZW5kZXJlci0+c3R5
bGUoKSk7CkBAIC0zNTk2LDcgKzM1OTYsNyBAQCBDb2xvciBGcmFtZVZpZXc6OmRvY3VtZW50QmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAKICAgICBFbGVt
ZW50KiBodG1sRWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7
Ci0gICAgRWxlbWVudCogYm9keUVsZW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCktPmJvZHkoKTsK
KyAgICBFbGVtZW50KiBib2R5RWxlbWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKS0+Ym9keU9yRnJh
bWVzZXQoKTsKIAogICAgIC8vIFN0YXJ0IHdpdGggaW52YWxpZCBjb2xvcnMuCiAgICAgQ29sb3Ig
aHRtbEJhY2tncm91bmRDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KaW5kZXgg
ZmNlZjdlYWUzYzJiOWQwMmE5NzBkNWNiNDczZmI2YTM2Nzk1OTg5Ni4uZTZlZTRhZGE0ZmVjYzc0
ZTNjOTdkMzAxOTRiNTcwNDI3N2QzZGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1Mu
bW0KQEAgLTU0Nyw3ICs1NDcsNyBAQCBpbnQgRnJhbWU6OnByZWZlcnJlZEhlaWdodCgpIGNvbnN0
CiAKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7CiAKLSAgICBOb2RlKiBib2R5ID0gZG9j
dW1lbnQtPmJvZHkoKTsKKyAgICBhdXRvKiBib2R5ID0gZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0
KCk7CiAgICAgaWYgKCFib2R5KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzQ0LDcgKzc0NCw3
IEBAIE5TQXJyYXkgKkZyYW1lOjppbnRlcnByZXRhdGlvbnNGb3JDdXJyZW50Um9vdCgpIGNvbnN0
CiAgICAgaWYgKCFkb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgRWxlbWVu
dCogcm9vdCA9IHNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnNlbGVjdGlvblR5cGUoKSA9PSBWaXNp
YmxlU2VsZWN0aW9uOjpOb1NlbGVjdGlvbiA/IGRvY3VtZW50KCktPmJvZHkoKSA6IHNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBhdXRvKiByb290ID0g
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uVHlwZSgpID09IFZpc2libGVTZWxlY3Rp
b246Ok5vU2VsZWN0aW9uID8gZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSA6IHNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKICAgICB1bnNpZ25lZCByb290
Q2hpbGRDb3VudCA9IHJvb3QtPmNvdW50Q2hpbGROb2RlcygpOwogICAgIFJlZlB0cjxSYW5nZT4g
cmFuZ2VPZlJvb3RDb250ZW50cyA9IFJhbmdlOjpjcmVhdGUoKmRvY3VtZW50KCksIGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihyb290LCAwKSwgY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9u
KHJvb3QsIHJvb3RDaGlsZENvdW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggOGJmMDc5ZjA4MTZmOWQ4N2Y1YWU4YmZjN2UwMGYyZmY2MDMxNmUwZC4uZGI2
MjUwMTMyYjhlNTU1MjdjZDUyNjIyMWViN2M4YWQ2OGFjNzg5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFJlbmRlckJveDo6
dXBkYXRlRnJvbVN0eWxlKCkKICAgICAgICAgICAgIC8vICgyKSBXZSBhcmUgdGhlIHByaW1hcnkg
PGJvZHk+IChjYW4gYmUgY2hlY2tlZCBieSBsb29raW5nIGF0IGRvY3VtZW50LmJvZHkpLgogICAg
ICAgICAgICAgLy8gKDMpIFRoZSByb290IGVsZW1lbnQgaGFzIHZpc2libGUgb3ZlcmZsb3cuCiAg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZSho
dG1sVGFnKQotICAgICAgICAgICAgICAgICYmIGRvY3VtZW50KCkuYm9keSgpID09IGVsZW1lbnQo
KQorICAgICAgICAgICAgICAgICYmIGRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKSA9PSBlbGVt
ZW50KCkKICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5y
ZW5kZXJlcigpLT5zdHlsZSgpLm92ZXJmbG93WCgpID09IE9WSVNJQkxFKSB7CiAgICAgICAgICAg
ICAgICAgYm94SGFzT3ZlcmZsb3dDbGlwID0gZmFsc2U7CiAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCAy
MWI5ZDk1NWMxZGI1YTAxZDlmOWE1MjFjZGUyN2E2MWQ4NWM4ZWI4Li45ZDVkYWVjMTY5Yjg5Yzkx
MGJmMjAxZjRmODNjODMyNDE1MjE0YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTc5MCw3ICs3OTAsNyBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjbwogICAgICAgICAgICAgICAgICAgICAvLyB0byBjcmF3bCBhcm91bmQg
YSByZW5kZXIgdHJlZSB3aXRoIHBvdGVudGlhbCA6YmVmb3JlLzphZnRlciBjb250ZW50IGFuZAog
ICAgICAgICAgICAgICAgICAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIGNyZWF0ZWQgYnkgaW5saW5l
IDxib2R5PiB0YWdzIGV0Yy4gIFdlIGNhbiBsb2NhdGUgdGhlIDxib2R5PgogICAgICAgICAgICAg
ICAgICAgICAvLyByZW5kZXIgb2JqZWN0IHZlcnkgZWFzaWx5IHZpYSB0aGUgRE9NLgotICAgICAg
ICAgICAgICAgICAgICBIVE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCkuYm9keSgpOworICAg
ICAgICAgICAgICAgICAgICBIVE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50KCkuYm9keU9yRnJh
bWVzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIENhbid0IHNjcm9sbCBhIGZyYW1lc2V0IGRvY3VtZW50IGFueXdheS4KICAg
ICAgICAgICAgICAgICAgICAgICAgIGlzT3BhcXVlUm9vdCA9IGJvZHktPmhhc1RhZ05hbWUoZnJh
bWVzZXRUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAppbmRleCBlZDJhY2M4ZGYzNGYxOTE0MWI2YTY0OTNlOWExZjhkZDQzMmM4Yjk5Li41
YjQyMDliNzgwZTIxZWM2ZGU0ZDlmNjNjYjA1ZTdlMWIzMThlMDAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTc5OSw3ICsxNzk5
LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmlzU2ltcGxlQ29udGFpbmVyQ29tcG9zaXRp
bmdMYXllcigpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAg
ICAgICAvLyBOb3cgbG9vayBhdCB0aGUgYm9keSdzIHJlbmRlcmVyLgotICAgICAgICBIVE1MRWxl
bWVudCogYm9keSA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5ib2R5KCk7CisgICAgICAgIEhUTUxF
bGVtZW50KiBib2R5ID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmJvZHlPckZyYW1lc2V0KCk7CiAg
ICAgICAgIFJlbmRlck9iamVjdCogYm9keU9iamVjdCA9IChib2R5ICYmIGJvZHktPmhhc1RhZ05h
bWUoYm9keVRhZykpID8gYm9keS0+cmVuZGVyZXIoKSA6IDA7CiAgICAgICAgIGlmICghYm9keU9i
amVjdCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggMzJmOTY5YTk4NmMxNTcyMzEzMzg2Y2M2YzQ4ZTZkNDIw
NTBkYzUzNi4uMDQ1NDMzYzI0YTQxODVlMjA1YjczNGU5ZTA4YjNmODI0MWQ1OWYwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIyOTYsNyArMjI5Niw3
IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJPYmplY3Q6Om9mZnNldFBhcmVudCgpIGNv
bnN0CiAgICAgCiAgICAgLy8gQ1NTIHJlZ2lvbnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgcmVn
aW9uIGZsb3dzIHNob3VsZCByZXR1cm4gdGhlIGJvZHkgZWxlbWVudCBhcyB0aGVpciBvZmZzZXRQ
YXJlbnQuCiAgICAgaWYgKGlzPFJlbmRlck5hbWVkRmxvd1RocmVhZD4oY3VycmVudCkpCi0gICAg
ICAgIGN1cnJlbnQgPSBkb2N1bWVudCgpLmJvZHkoKSA/IGRvY3VtZW50KCkuYm9keSgpLT5yZW5k
ZXJlcigpIDogbnVsbHB0cjsKKyAgICAgICAgY3VycmVudCA9IGRvY3VtZW50KCkuYm9keU9yRnJh
bWVzZXQoKSA/IGRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKS0+cmVuZGVyZXIoKSA6IG51bGxw
dHI7CiAgICAgCiAgICAgcmV0dXJuIGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihjdXJyZW50KSA/
IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihjdXJyZW50KSA6IG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNGFk
NWY3YTUwNmMxMjhmODNmZGQ0MmIxMmUzZmU0Yzg1MjM0YTY1YS4uNzRmOWZlODZiZWFiMDU0ZWJj
NTI1ZTUxMDg0NGFlMTQ1YWIwMzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtODEwLDcgKzgxMCw3IEBAIHN0YXRpYyBTdHJpbmcgbm9k
ZVBvc2l0aW9uKE5vZGUqIG5vZGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKLSAg
ICBFbGVtZW50KiBib2R5ID0gbm9kZS0+ZG9jdW1lbnQoKS5ib2R5KCk7CisgICAgRWxlbWVudCog
Ym9keSA9IG5vZGUtPmRvY3VtZW50KCkuYm9keU9yRnJhbWVzZXQoKTsKICAgICBOb2RlKiBwYXJl
bnQ7CiAgICAgZm9yIChOb2RlKiBuID0gbm9kZTsgbjsgbiA9IHBhcmVudCkgewogICAgICAgICBw
YXJlbnQgPSBuLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggOTczZmViNDhmZjZjYjIz
NWYwZDEyZmE2NWQwOWQwOWQyY2U4YTAzMS4uYTM3MmQyY2Q2MGQzOTMyYTgyMWYwMDI3Nzc4MWJm
NzRiNjk5ZDAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
Rm9yRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCBSZWY8UmVuZGVyU3R5bGU+IHJlc29sdmVG
b3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIC8vIFVzZSB0aGUg
ZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQogICAgICAg
ICAvLyB2aWV3cG9ydCdzIGRpcmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJv
cGVydHkgaXMgc2V0IG9uIHRoZSBkb2N1bWVudCBlbGVtZW50LgogICAgICAgICAvLyBJZiB0aGVy
ZSBpcyBubyBib2R5LCB0aGVuIHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAgICAgUmVu
ZGVyT2JqZWN0KiBib2R5UmVuZGVyZXIgPSBkb2N1bWVudC5ib2R5KCkgPyBkb2N1bWVudC5ib2R5
KCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9
IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCkgPyBkb2N1bWVudC5ib2R5T3JGcmFtZXNldCgpLT5y
ZW5kZXJlcigpIDogMDsKICAgICAgICAgaWYgKGJvZHlSZW5kZXJlciAmJiAhZG9jdW1lbnQud3Jp
dGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnRTdHls
ZS5nZXQoKS5zZXRXcml0aW5nTW9kZShib2R5UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUo
KSk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDkxN2I4NTQ0MmMyNGQ0M2Y1OWNkOGJiMDFmZTFmYmM4YjkwOTU2M2YuLjQyY2JjZWIxODRkZGZh
OTc0OTQyZDM3MmI4Yzc1NGRjMWRiNTE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgLSAoQ0dDb2xvclJlZilfYm9keUJhY2tncm91
bmRDb2xvcgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPmRv
Y3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBI
VE1MRWxlbWVudCogYm9keSA9IGRvY3VtZW50LT5ib2R5KCk7CisgICAgYXV0byogYm9keSA9IGRv
Y3VtZW50LT5ib2R5T3JGcmFtZXNldCgpOwogICAgIGlmICghYm9keSkKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9IGJvZHktPnJlbmRlcmVyKCk7
CkBAIC0xNzU0LDExICsxNzU0LDExIEBAIC0gKHZvaWQpZ2V0RGljdGF0aW9uUmVzdWx0UmFuZ2Vz
OihOU0FycmF5ICoqKW91dFJhbmdlcyBhbmRNZXRhZGF0YXM6KE5TQXJyYXkgKiopCiAgICAgTlNN
dXRhYmxlQXJyYXkgKnJhbmdlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CiAgICAgTlNNdXRh
YmxlQXJyYXkgKm1ldGFkYXRhcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CiAgICAgCi0gICAg
RnJhbWUgKmZyYW1lID0gY29yZShzZWxmKTsKLSAgICBEb2N1bWVudCAqZG9jdW1lbnQgPSBmcmFt
ZS0+ZG9jdW1lbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHNlbGYpOworICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwotICAg
IEVsZW1lbnQgKnJvb3QgPSBzZWxlY3Rpb24uc2VsZWN0aW9uVHlwZSgpID09IFZpc2libGVTZWxl
Y3Rpb246Ok5vU2VsZWN0aW9uID8gZnJhbWUtPmRvY3VtZW50KCktPmJvZHkoKSA6IHNlbGVjdGlv
bi5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgRWxlbWVudCogcm9vdCA9IHNlbGVjdGlvbi5z
ZWxlY3Rpb25UeXBlKCkgPT0gVmlzaWJsZVNlbGVjdGlvbjo6Tm9TZWxlY3Rpb24gPyBmcmFtZS0+
ZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSA6IHNlbGVjdGlvbi5yb290RWRpdGFibGVFbGVt
ZW50KCk7CiAgICAgCiAgICAgRE9NUmFuZ2UgKnByZXZpb3VzRE9NUmFuZ2UgPSBuaWw7CiAgICAg
aWQgcHJldmlvdXNNZXRhZGF0YSA9IG5pbDsKQEAgLTIzMzMsNyArMjMzMyw3IEBAIC0gKEJPT0wp
Zm9jdXNlZE5vZGVIYXNDb250ZW50CiAgICAgRWxlbWVudCogcm9vdDsKICAgICBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpOwogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRF
ZGl0YWJsZSgpKQotICAgICAgICByb290ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5ib2R5KCk7
CisgICAgICAgIHJvb3QgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIENhbid0IHVzZSB0aGUgZm9jdXNlZE5vZGUgaGVyZSBi
ZWNhdXNlIHdlIHdhbnQgdGhlIHJvb3Qgb2YgdGhlIHNoYWRvdyB0cmVlIGZvciBmb3JtIGVsZW1l
bnRzLgogICAgICAgICByb290ID0gc2VsZWN0aW9uLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL0RPTUhUTUxDbGFzc2VzLmNwcAppbmRleCA5ZDU4MDM1ZDQ3ZDE2YmFmNDNiNzM5
Yzg1MTY0ZDc0MmE2N2EyZjdkLi5kOWFmOWEwMTUxMTI3OWRkZGU2OTRhYjdmOGEyOGNjMzM4ZTE0
Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vRE9NSFRNTENsYXNzZXMuY3BwCkBAIC0yNjIsNyArMjYyLDcg
QEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01IVE1MRG9jdW1lbnQ6OmJvZHkoCiAKICAg
ICBIVE1MRG9jdW1lbnQmIGh0bWxEb2MgPSBkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KCptX2RvY3Vt
ZW50KTsKICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQ7Ci0gICAgZG9tRWxlbWVu
dC5hZG9wdFJlZihET01IVE1MRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoaHRtbERvYy5ib2R5KCkp
KTsKKyAgICBkb21FbGVtZW50LmFkb3B0UmVmKERPTUhUTUxFbGVtZW50OjpjcmVhdGVJbnN0YW5j
ZShodG1sRG9jLmJvZHlPckZyYW1lc2V0KCkpKTsKICAgICBpZiAoZG9tRWxlbWVudCkKICAgICAg
ICAgcmV0dXJuIGRvbUVsZW1lbnQtPlF1ZXJ5SW50ZXJmYWNlKElJRF9JRE9NSFRNTEVsZW1lbnQs
ICh2b2lkKiopIGJvZHlFbGVtZW50KTsKICAgICByZXR1cm4gRV9GQUlMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9j
dW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tET01Eb2N1bWVudC5tbQppbmRleCA1MTNjY2JmZmI4Yzg5ZWIxY2Y2YTBhNGE0ZWZmN2E3
MWUzMzcwYzQ5Li4xNTA3MDkxMTAyYWQwNDNjOWVkNDRjOTAyZjA0ODNkMWE1Y2IzODE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtNDksNyArNDksNyBAQCAtIChXS0RP
TVRleHQgKiljcmVhdGVUZXh0Tm9kZTooTlNTdHJpbmcgKilkYXRhCiAKIC0gKFdLRE9NRWxlbWVu
dCAqKWJvZHkKIHsKLSAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NRWxlbWVudChkb3duY2FzdDxX
ZWJDb3JlOjpEb2N1bWVudD4oKl9pbXBsKS5ib2R5KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRv
V0tET01FbGVtZW50KGRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50PigqX2ltcGwpLmJvZHlPckZy
YW1lc2V0KCkpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGU1MDhkZDc5Zjk0Zjg0ZTU4ZTM1MTJmZjE0
Y2M2ZDAzZTFmODE5NzYuLjgwZjQ0MzZiODkwNDBjYzlhMTYxYWJkNDhlMDE2YzY1N2JlMTg5ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCkBAIC01MTksNyArNTE5LDcgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUq
IGZyYW1lKQogICAgICAgICBtX2Fubm90YXRpb25TdHlsZS0+c2V0VGV4dENvbnRlbnQoYW5ub3Rh
dGlvblN0eWxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBtX2Fubm90YXRpb25D
b250YWluZXItPmFwcGVuZENoaWxkKG1fYW5ub3RhdGlvblN0eWxlLmdldCgpKTsKLSAgICAgICAg
ZG9jdW1lbnQtPmJvZHkoKS0+YXBwZW5kQ2hpbGQobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgp
KTsKKyAgICAgICAgZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCktPmFwcGVuZENoaWxkKG1fYW5u
b3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CiAgICAgfQogCiAgICAgbV9hY2Nlc3NpYmlsaXR5T2Jq
ZWN0ID0gYWRvcHROUyhbW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhbGxvY10gaW5p
dFdpdGhQREZQbHVnaW46dGhpc10pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>