<?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>76793</bug_id>
          
          <creation_ts>2012-01-21 16:49:22 -0800</creation_ts>
          <short_desc>[Qt] Implement SSL error handling QML API.</short_desc>
          <delta_ts>2019-05-02 16:23:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Færøy">ahf</reporter>
          <assigned_to name="Alexander Færøy">ahf</assigned_to>
          <cc>hausmann</cc>
    
    <cc>pikachu17997</cc>
    
    <cc>sra1sandela</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540188</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-21 16:49:22 -0800</bug_when>
    <thetext>We need a way of handling insecure/invalid certificates instead of just dropping the connection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540190</commentid>
    <comment_count>1</comment_count>
      <attachid>123462</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-21 16:52:52 -0800</bug_when>
    <thetext>Created attachment 123462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540478</commentid>
    <comment_count>2</comment_count>
      <attachid>123462</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 04:26:57 -0800</bug_when>
    <thetext>Comment on attachment 123462
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:500
&gt; +bool QQuickWebViewPrivate::handleCertificateVerificationRequest(const QString&amp; hostname)
&gt; +{
&gt; +    if (!certificateVerificationDialog)
&gt; +        return false;
&gt; +
&gt; +    Q_Q(QQuickWebView);
&gt; +    QtDialogRunner dialogRunner;
&gt; +    if (!dialogRunner.initForCertificateVerification(certificateVerificationDialog, q, hostname))
&gt; +        return false;
&gt; +
&gt; +    setViewInAttachedProperties(dialogRunner.dialog());
&gt; +
&gt; +    disableMouseEvents();
&gt; +    dialogRunner.exec();
&gt; +    enableMouseEvents();
&gt; +
&gt; +    return dialogRunner.wasAccepted();
&gt; +}

Just a thought, but is this boiler-plate code something that can be centralized, either via a template or perhaps a macro?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541037</commentid>
    <comment_count>3</comment_count>
      <attachid>123462</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-23 17:54:52 -0800</bug_when>
    <thetext>Comment on attachment 123462
Patch

Clearing flags on attachment: 123462

Committed r105670: &lt;http://trac.webkit.org/changeset/105670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541038</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-23 17:54:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689278</commentid>
    <comment_count>5</comment_count>
    <who name="Sravan">sra1sandela</who>
    <bug_when>2012-08-07 12:30:05 -0700</bug_when>
    <thetext>HI Alex,

Is there a test(.qml) implemented some where that tests this API?( I was expecting it to be in WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_javaScriptDialogs.qml, but its not there ).

I am trying to use this API, in a .qml file but i don&apos;t see my qml changes on browser. I have built Qt5 webkit2 almost a week ago and i think that version is good enough to use your changes.

I am just trying to use this API in following ways in a main.qml as

import QtQuick 2.0
import QtWebKit 3.0
import QtWebKit.experimental 1.0

Rectangle {
id: root
.
.
.
.
.
.

                                                             experimental.certificateVerificationDialog: CertificateVerificationDialog{ }
.
.
.
.
.

}

and my CertificateVerificationDialog.qml is as follows


  import QtQuick 2.0

  Rectangle {
    id: cvdPage
    width:600; height:400
    color: &quot;Black&quot;

    Text {
      id: message
      x: 10; y: 10
      wrapMode : Text.WordWrap
      text: &quot;Certificate Verification Failed, what do u want to do?&quot;
      color: &quot;white&quot;
      font.bold: true; font.pixelSize: 18;
    }

    Rectangle {
      id: backButton
      width: cvdPage.width/3 ; height: cvdPage.height/5
      color: &quot;Green&quot;
      anchors.top: message.bottom
      x: 10;
      Text {
          id: backButtonText
          anchors.verticalCenter : parent.verticalCenter
          anchors.horizontalCenter : parent.horizontalCenter
          text: &quot;Back to Safety&quot;; color: &quot;white&quot;
          font.bold: true; font.pixelSize: 16;
      }

      MouseArea {
          id: backButtonMouseArea
          anchors.fill: parent
          onClicked: console.log(backButtonText.text + &quot; clicked&quot; )
      }
    }
    Rectangle {
      id: proceedButton
      width: cvdPage.width/3 ; height: cvdPage.height/5
      color: &quot;Red&quot;
      anchors.top: message.bottom
      anchors.left: backButton.right
      anchors.leftMargin: 15

      Text {
          id: proceedButtonText
          anchors.verticalCenter : parent.verticalCenter
          anchors.horizontalCenter : parent.horizontalCenter
          text: &quot;Proceed anyway&quot;; color: &quot;white&quot;
          font.bold: true; font.pixelSize: 16;
      }

      MouseArea {
            id: backButtonMouseArea
          anchors.fill: parent
          onClicked: console.log(backButtonText.text + &quot; clicked&quot; )
      }
    }
    Rectangle {
      id: proceedButton
      width: cvdPage.width/3 ; height: cvdPage.height/5
      color: &quot;Red&quot;
      anchors.top: message.bottom
      anchors.left: backButton.right
      anchors.leftMargin: 15

      Text {
          id: proceedButtonText
          anchors.verticalCenter : parent.verticalCenter
          anchors.horizontalCenter : parent.horizontalCenter
          text: &quot;Proceed anyway&quot;; color: &quot;white&quot;
          font.bold: true; font.pixelSize: 16;
      }

      MouseArea {
          id: proceedButtonMouseArea
          anchors.fill: parent
          onClicked: console.log(proceedButtonText.text + &quot; clicked&quot; )
      }
    }
  }

P.S: Please neglect the onClicked handlers, i just have to implement webView.goBack and webView.load functions once i see basic connection up and running.

Please let me know if i am missing something in order to make use of certificateVerificationDialog API that you have implemented for QML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690924</commentid>
    <comment_count>6</comment_count>
    <who name="Sravan">sra1sandela</who>
    <bug_when>2012-08-08 16:49:49 -0700</bug_when>
    <thetext>Hi Alex,

Can you please confirm if this API is working on Qt5 WebKit2?.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123462</attachid>
            <date>2012-01-21 16:52:52 -0800</date>
            <delta_ts>2012-01-23 17:54:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76793-20120122015250.patch</filename>
            <type>text/plain</type>
            <size>17895</size>
            <attacher name="Alexander Færøy">ahf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjExY2ZmY2UyNDBhODU0
ZTNmNWEzMDM1MmU1NDVmNmZkZTRjOGE2My4uYjZlYmZmMTJkNjBkNDgxZTM3ZTI0MWQ5ODg1ZGY4
ZTg0MmEwMzNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAxLTIxICBBbGV4
YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gSW1wbGVtZW50IFNTTCBlcnJvciBoYW5kbGluZyBRTUwgQVBJLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3OTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3Vw
cG9ydCBmb3IgYWNjZXB0aW5nIG9yIHJlamVjdGluZyBpbnZhbGlkIFNTTAorICAgICAgICBjZXJ0
aWZpY2F0ZXMgZnJvbSB0aGUgUU1MIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNr
V2ViVmlld1ByaXZhdGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZUNl
cnRpZmljYXRlVmVyaWZpY2F0aW9uUmVxdWVzdCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhw
ZXJpbWVudGFsOjpjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyk6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJl
cXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9RdERpYWxvZ1J1bm5lci5jcHA6CisgICAgICAgIChDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRp
YWxvZ0NvbnRleHRPYmplY3Q6OkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nQ29udGV4dE9i
amVjdCk6CisgICAgICAgIChDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZ0NvbnRleHRPYmpl
Y3Q6Omhvc3RuYW1lKToKKyAgICAgICAgKENlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nQ29u
dGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKENlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlh
bG9nQ29udGV4dE9iamVjdDo6cmVqZWN0KToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjppbml0
Rm9yQ2VydGlmaWNhdGVWZXJpZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdERp
YWxvZ1J1bm5lci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgor
ICAgICAgICAoUXRQYWdlQ2xpZW50OjpoYW5kbGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVl
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6UXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6b25Tc2xFcnJvcnMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oOgorCiAyMDEyLTAxLTIx
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFdl
YktpdDIgcmVtZW1iZXIgdGhlIGhlaWdodCBvZiB0aGUgV2ViIEluc3BlY3RvciB3aGVuIGl0IGlz
IGRvY2tlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCmluZGV4IDk0YjUyNTU0NTU2YThjYzcxN2RkNzg1ZThiYzI4MDdiNWFmOWE3N2Eu
LmFhZjYzMzQyMzUyMDQ4MGM3MjY2ZWE5ZWRmYTMxMThjYmMzMmMwN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNjAsNiAr
NjAsNyBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNr
V2ViVmlldyogdmlld3BvcnQpCiAgICAgLCBjb25maXJtRGlhbG9nKDApCiAgICAgLCBwcm9tcHRE
aWFsb2coMCkKICAgICAsIGF1dGhlbnRpY2F0aW9uRGlhbG9nKDApCisgICAgLCBjZXJ0aWZpY2F0
ZVZlcmlmaWNhdGlvbkRpYWxvZygwKQogICAgICwgaXRlbVNlbGVjdG9yKDApCiAgICAgLCBwb3N0
VHJhbnNpdGlvblN0YXRlKGFkb3B0UHRyKG5ldyBQb3N0VHJhbnNpdGlvblN0YXRlKHRoaXMpKSkK
ICAgICAsIGlzVHJhbnNpdGlvbmluZ1RvTmV3UGFnZShmYWxzZSkKQEAgLTQ3OSw2ICs0ODAsMjUg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlQXV0aGVudGljYXRpb25SZXF1aXJl
ZFJlcXVlc3QoY29uc3QgUVN0cmluZyYgaG8KICAgICBwYXNzd29yZCA9IGRpYWxvZ1J1bm5lci5w
YXNzd29yZCgpOwogfQogCitib29sIFFRdWlja1dlYlZpZXdQcml2YXRlOjpoYW5kbGVDZXJ0aWZp
Y2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgUVN0cmluZyYgaG9zdG5hbWUpCit7CisgICAg
aWYgKCFjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgUV9RKFFRdWlja1dlYlZpZXcpOworICAgIFF0RGlhbG9nUnVubmVyIGRpYWxvZ1J1
bm5lcjsKKyAgICBpZiAoIWRpYWxvZ1J1bm5lci5pbml0Rm9yQ2VydGlmaWNhdGVWZXJpZmljYXRp
b24oY2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2csIHEsIGhvc3RuYW1lKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgc2V0Vmlld0luQXR0YWNoZWRQcm9wZXJ0aWVzKGRpYWxvZ1J1
bm5lci5kaWFsb2coKSk7CisKKyAgICBkaXNhYmxlTW91c2VFdmVudHMoKTsKKyAgICBkaWFsb2dS
dW5uZXIuZXhlYygpOworICAgIGVuYWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICByZXR1cm4gZGlh
bG9nUnVubmVyLndhc0FjY2VwdGVkKCk7Cit9CisKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6
OmNob29zZUZpbGVzKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXJSZWYsIGNv
bnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgUXRXZWJQYWdlVUlDbGllbnQ6OkZp
bGVDaG9vc2VyVHlwZSB0eXBlKQogewogI2lmbmRlZiBRVF9OT19GSUxFRElBTE9HCkBAIC03MjUs
NiArNzQ1LDIxIEBAIHZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0QXV0aGVudGlj
YXRpb25EaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50KiBhCiAgICAgZW1pdCBhdXRoZW50aWNh
dGlvbkRpYWxvZ0NoYW5nZWQoKTsKIH0KIAorUURlY2xhcmF0aXZlQ29tcG9uZW50KiBRUXVpY2tX
ZWJWaWV3RXhwZXJpbWVudGFsOjpjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZygpIGNvbnN0
Cit7CisgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIHJldHVybiBkLT5jZXJ0aWZp
Y2F0ZVZlcmlmaWNhdGlvbkRpYWxvZzsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsOjpzZXRDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25l
bnQqIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nKQoreworICAgIFFfRChRUXVpY2tXZWJW
aWV3KTsKKyAgICBpZiAoZC0+Y2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2cgPT0gY2VydGlm
aWNhdGVWZXJpZmljYXRpb25EaWFsb2cpCisgICAgICAgIHJldHVybjsKKyAgICBkLT5jZXJ0aWZp
Y2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyA9IGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nOwor
ICAgIGVtaXQgY2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2dDaGFuZ2VkKCk7Cit9CisKIFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6aXRlbVNlbGVj
dG9yKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCAxNTVl
OTYwOTc5ZTMzZjlmMjE4Mjk1OWVkNjViYjUyZDMyNmIzNDcwLi44ZTg4YzYwOWIzNzM3NjI5ZDYy
ZDI4YTBkNDdiMjI2NWIwNTExMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBjbGFzcyBRV0VC
S0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3Qgewog
ICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb25maXJtRGlhbG9nIFJFQUQg
Y29uZmlybURpYWxvZyBXUklURSBzZXRDb25maXJtRGlhbG9nIE5PVElGWSBjb25maXJtRGlhbG9n
Q2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJvbXB0RGlh
bG9nIFJFQUQgcHJvbXB0RGlhbG9nIFdSSVRFIHNldFByb21wdERpYWxvZyBOT1RJRlkgcHJvbXB0
RGlhbG9nQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYXV0
aGVudGljYXRpb25EaWFsb2cgUkVBRCBhdXRoZW50aWNhdGlvbkRpYWxvZyBXUklURSBzZXRBdXRo
ZW50aWNhdGlvbkRpYWxvZyBOT1RJRlkgYXV0aGVudGljYXRpb25EaWFsb2dDaGFuZ2VkKQorICAg
IFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlv
bkRpYWxvZyBSRUFEIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIFdSSVRFIHNldENlcnRp
ZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIE5PVElGWSBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRp
YWxvZ0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGl0ZW1T
ZWxlY3RvciBSRUFEIGl0ZW1TZWxlY3RvciBXUklURSBzZXRJdGVtU2VsZWN0b3IgTk9USUZZIGl0
ZW1TZWxlY3RvckNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRV2ViUHJlZmVyZW5jZXMqIHByZWZl
cmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShi
b29sIHVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91ciBSRUFEIHVzZVRyYWRpdGlvbmFsRGVz
a3RvcEJlaGF2aW91ciBXUklURSBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIpCkBA
IC0yMzIsNiArMjMzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJvbXB0RGlhbG9nKFFEZWNs
YXJhdGl2ZUNvbXBvbmVudCopOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYXV0aGVudGlj
YXRpb25EaWFsb2coKSBjb25zdDsKICAgICB2b2lkIHNldEF1dGhlbnRpY2F0aW9uRGlhbG9nKFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCopOworICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY2VydGlm
aWNhdGVWZXJpZmljYXRpb25EaWFsb2coKSBjb25zdDsKKyAgICB2b2lkIHNldENlcnRpZmljYXRl
VmVyaWZpY2F0aW9uRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwogICAgIFFEZWNsYXJh
dGl2ZUNvbXBvbmVudCogaXRlbVNlbGVjdG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRJdGVtU2Vs
ZWN0b3IoUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAgICAgCkBAIC0yNjEsNiArMjY0LDcgQEAg
UV9TSUdOQUxTOgogICAgIHZvaWQgY29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHBy
b21wdERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdl
ZCgpOworICAgIHZvaWQgY2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2dDaGFuZ2VkKCk7CiAg
ICAgdm9pZCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CiAgICAgdm9pZCBkb3dubG9hZFJlcXVlc3Rl
ZChRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pOwogICAgIHZvaWQgcGVybWlzc2lvblJl
cXVlc3RlZChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGIx
NDA2NjliOGUxNzY5YWMyYmU2MWExZTY5MDlhN2RlNTYxNDZjODYuLmRjODIzMDFmMmY3NTFjYjQ1
NDIzZmJhYjRjMGU1ZjQ4MmZkM2I0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGlj
OgogICAgIFFTdHJpbmcgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBRU3RyaW5nJiwgY29uc3Qg
UVN0cmluZyYgZGVmYXVsdFZhbHVlLCBib29sJiBvayk7CiAKICAgICB2b2lkIGhhbmRsZUF1dGhl
bnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBR
U3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFFTdHJpbmcm
IHVzZXJuYW1lLCBRU3RyaW5nJiBwYXNzd29yZCk7CisgICAgYm9vbCBoYW5kbGVDZXJ0aWZpY2F0
ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgUVN0cmluZyYgaG9zdG5hbWUpOwogCiAgICAgdm9p
ZCBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpOwogICAgIHZv
aWQgc2V0Vmlld0luQXR0YWNoZWRQcm9wZXJ0aWVzKFFPYmplY3QqKTsKQEAgLTE1NCw2ICsxNTUs
NyBAQCBwcml2YXRlOgogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29uZmlybURpYWxvZzsK
ICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21wdERpYWxvZzsKICAgICBRRGVjbGFyYXRp
dmVDb21wb25lbnQqIGF1dGhlbnRpY2F0aW9uRGlhbG9nOworICAgIFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCogY2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2c7CiAgICAgUURlY2xhcmF0aXZlQ29t
cG9uZW50KiBpdGVtU2VsZWN0b3I7CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2
aWV3cG9ydEFyZ3VtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4
IDFjOTcxNGJiMGUxOGViMzJhMzE3YjhkODc1ODZlOGFjZGQ1Njc5MTMuLmJkNjA5NmM5MzMyNTE5
NzQzZDg1ZDQ3ZGI0OWZiNzUwMDc5ZjU0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtMTEwLDcgKzExMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVRleHRJbnB1dFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBdXRo
ZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBT
dHJpbmcmIHJlYWxtLCBjb25zdCBTdHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lLCBTdHJpbmcmIHVz
ZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKSA9IDA7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlQ2VydGlmaWNhdGVWZXJpZmljYXRpb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5h
bWUsIGJvb2wmIGlnbm9yZUVycm9ycykgPSAwOworI2VuZGlmIC8vIFBMQVRGT1JNKFFUKS4KIAog
I2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0
RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBkcmFnSW1hZ2UpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMzdmMDNlMzZhZjBiNTNkYmJkNGZiN2JiYmZhZjEzMWFmNTIxOGM5MS4uYWM1ZDRh
ZTlmNGY4MWJiYzQwYmFjMGVmYmU0MDk3ZDBhZjdlNTkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIzNjcsNiArMjM2NywxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6YXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0
bmFtZSwgY29uc3QgUwogewogICAgIG1fcGFnZUNsaWVudC0+aGFuZGxlQXV0aGVudGljYXRpb25S
ZXF1aXJlZFJlcXVlc3QoaG9zdG5hbWUsIHJlYWxtLCBwcmVmaWxsZWRVc2VybmFtZSwgdXNlcm5h
bWUsIHBhc3N3b3JkKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OmNlcnRpZmljYXRlVmVyaWZp
Y2F0aW9uUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBib29sJiBpZ25vcmVFcnJvcnMp
Cit7CisgICAgbV9wYWdlQ2xpZW50LT5oYW5kbGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVl
c3QoaG9zdG5hbWUsIGlnbm9yZUVycm9ycyk7Cit9CiAjZW5kaWYgLy8gUExBVEZPUk0oUVQpLgog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA2OWNlOThiZTI5OGNhMDcxODg1MzBjZjljNjZjNTU1ZWVlZTRlMDQ5Li4y
MWM3YTkyNGYxNmU0ZGI5ZjE3MDUwOTdiYzlhZjAwNDUyNDQ0YmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjEsNyArMzIxLDggQEAgcHVibGljOgogICAg
IHZvaWQgcmVzb2x2ZUFwcGxpY2F0aW9uU2NoZW1lUmVxdWVzdChRdE5ldHdvcmtSZXF1ZXN0RGF0
YSk7CiAgICAgdm9pZCBzZW5kQXBwbGljYXRpb25TY2hlbWVSZXBseShjb25zdCBRUXVpY2tOZXR3
b3JrUmVwbHkqKTsKICAgICB2b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgaG9zdG5hbWUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJl
ZmlsbGVkVXNlcm5hbWUsIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOwotI2Vu
ZGlmCisgICAgdm9pZCBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgU3RyaW5n
JiBob3N0bmFtZSwgYm9vbCYgaWdub3JlRXJyb3JzKTsKKyNlbmRpZiAvLyBQTEFURk9STShRVCku
CiAKICNpZiBQTEFURk9STShRVCkKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVz
LCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRf
dCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZTBkOTBjMTdmY2QxNjFhOTk5YmQ4NTlmYmIxNjI3NTAwZWI3YWY5Ni4uZGVkOGUxZDY1
NDZkNWQ3ZmZlY2ZmYTM3MDIzZjNiODA2ODk2MzZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC03NSw2ICs3NSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hhbmdlQ29udGVudHNTaXplKFdlYkNv
cmU6OkludFNpemUgbmV3U2l6ZSkKICAgICBEaWRGaW5kWm9vbWFibGVBcmVhKFdlYkNvcmU6Oklu
dFBvaW50IHRhcmdldCwgV2ViQ29yZTo6SW50UmVjdCBhcmVhKQogICAgIEF1dGhlbnRpY2F0aW9u
UmVxdWlyZWRSZXF1ZXN0KFdURjo6U3RyaW5nIGhvc3RuYW1lLCBXVEY6OlN0cmluZyByZWFsbSwg
V1RGOjpTdHJpbmcgcHJlZmlsbGVkVXNlcm5hbWUpIC0+IChXVEY6OlN0cmluZyB1c2VybmFtZSwg
V1RGOjpTdHJpbmcgcGFzc3dvcmQpCisgICAgQ2VydGlmaWNhdGVWZXJpZmljYXRpb25SZXF1ZXN0
KFdURjo6U3RyaW5nIGhvc3RuYW1lKSAtPiAoYm9vbCBpZ25vcmVFcnJvcnMpCiAjZW5kaWYKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIE5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3Vj
aEV2ZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxv
Z1J1bm5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIu
Y3BwCmluZGV4IGY3MzFjYTRiNGU4NjlkM2IyNmY5N2M1ZTA4MzI4MThiYzA0MDJjYjguLmY3ZTJi
ODUxNDJiYmY3YmFhYzI0MzZjMDQwNzEyMTFlMjM2NjYxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcApAQCAtMTAyLDYgKzEwMiwzMSBAQCBw
cml2YXRlOgogICAgIFFTdHJpbmcgbV9wcmVmaWxsZWRVc2VybmFtZTsKIH07CiAKK2NsYXNzIENl
cnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdCA6IHB1YmxpYyBRT2JqZWN0
IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0bmFtZSBSRUFEIGhv
c3RuYW1lIENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgQ2VydGlmaWNhdGVWZXJpZmljYXRpb25E
aWFsb2dDb250ZXh0T2JqZWN0KGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lKQorICAgICAgICA6IFFP
YmplY3QoKQorICAgICAgICAsIG1faG9zdG5hbWUoaG9zdG5hbWUpCisgICAgeworICAgIH0KKwor
ICAgIFFTdHJpbmcgaG9zdG5hbWUoKSBjb25zdCB7IHJldHVybiBtX2hvc3RuYW1lOyB9CisKK3B1
YmxpYyBzbG90czoKKyAgICB2b2lkIGFjY2VwdCgpIHsgZW1pdCBhY2NlcHRlZCgpOyB9CisgICAg
dm9pZCByZWplY3QoKSB7IGVtaXQgcmVqZWN0ZWQoKTsgfQorCitzaWduYWxzOgorICAgIHZvaWQg
YWNjZXB0ZWQoKTsKKyAgICB2b2lkIHJlamVjdGVkKCk7CisKK3ByaXZhdGU6CisgICAgUVN0cmlu
ZyBtX2hvc3RuYW1lOworfTsKKwogYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckFsZXJ0KFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQs
IGNvbnN0IFFTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgRGlhbG9nQ29udGV4dE9iamVjdCogY29u
dGV4dE9iamVjdCA9IG5ldyBEaWFsb2dDb250ZXh0T2JqZWN0KG1lc3NhZ2UpOwpAQCAtMTQ5LDYg
KzE3NCwxOSBAQCBib29sIFF0RGlhbG9nUnVubmVyOjppbml0Rm9yQXV0aGVudGljYXRpb24oUURl
Y2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdQogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIFF0RGlhbG9nUnVubmVyOjppbml0Rm9yQ2VydGlmaWNhdGVWZXJpZmljYXRpb24oUURl
Y2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwg
Y29uc3QgUVN0cmluZyYgaG9zdG5hbWUpCit7CisgICAgQ2VydGlmaWNhdGVWZXJpZmljYXRpb25E
aWFsb2dDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IENlcnRpZmljYXRlVmVyaWZp
Y2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdChob3N0bmFtZSk7CisgICAgaWYgKCFjcmVhdGVEaWFs
b2coY29tcG9uZW50LCBkaWFsb2dQYXJlbnQsIGNvbnRleHRPYmplY3QpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChhY2NlcHRlZCgp
KSwgU0xPVChvbkFjY2VwdGVkKCkpKTsKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05B
TChhY2NlcHRlZCgpKSwgU0xPVChxdWl0KCkpKTsKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3Qs
IFNJR05BTChyZWplY3RlZCgpKSwgU0xPVChxdWl0KCkpKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCiBib29sIFF0RGlhbG9nUnVubmVyOjpjcmVhdGVEaWFsb2coUURlY2xhcmF0aXZlQ29tcG9u
ZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgUU9iamVjdCogY29udGV4
dE9iamVjdCkKIHsKICAgICBRRGVjbGFyYXRpdmVDb250ZXh0KiBiYXNlQ29udGV4dCA9IGNvbXBv
bmVudC0+Y3JlYXRpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dERpYWxvZ1J1bm5lci5oCmluZGV4IGViNDEwNzAyZDVjYjNlNTJjYzk0NDFmYzBhYzgwYjI2MjAy
YjFlNzcuLjk2ZGNlYTI3Zjc1N2M5ZTYzMDA3M2UyN2M4NjdkOTlmYjlkM2E5OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCkBAIC0zOSw2ICszOSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGluaXRGb3JDb25maXJtKFFEZWNsYXJhdGl2ZUNvbXBvbmVu
dCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSk7CiAg
ICAgYm9vbCBpbml0Rm9yUHJvbXB0KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0q
IGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSwgY29uc3QgUVN0cmluZyYgZGVm
YXVsdFZhbHVlKTsKICAgICBib29sIGluaXRGb3JBdXRoZW50aWNhdGlvbihRRGVjbGFyYXRpdmVD
b21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcmIGhvc3Ru
YW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYgcHJlZmlsbGVkVXNlcm5h
bWUpOworICAgIGJvb2wgaW5pdEZvckNlcnRpZmljYXRlVmVyaWZpY2F0aW9uKFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qLCBjb25zdCBRU3RyaW5nJiBob3N0bmFtZSk7CiAKICAg
ICBRUXVpY2tJdGVtKiBkaWFsb2coKSBjb25zdCB7IHJldHVybiBtX2RpYWxvZy5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCmluZGV4IDBh
ZDE1MmRmZDU4MzlmODVkNGMxNzdmNTQwY2M4YjE1Y2M0ZTIzZDAuLjlmZGExMzVmNTMyNjg5NDA0
NDcwMzE3NTM2NTUyMzRlM2Y1NjM3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFBhZ2VDbGllbnQuY3BwCkBAIC0xMTgsNiArMTE4LDExIEBAIHZvaWQgUXRQYWdlQ2xpZW50
OjpoYW5kbGVBdXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChjb25zdCBTdHJpbmcmIGhvc3Ru
YW1lLCBjCiAgICAgcGFzc3dvcmQgPSBxUGFzc3dvcmQ7CiB9CiAKK3ZvaWQgUXRQYWdlQ2xpZW50
OjpoYW5kbGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0
bmFtZSwgYm9vbCYgaWdub3JlRXJyb3JzKQoreworICAgIGlnbm9yZUVycm9ycyA9IFFRdWlja1dl
YlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+aGFuZGxlQ2VydGlmaWNhdGVWZXJpZmljYXRp
b25SZXF1ZXN0KGhvc3RuYW1lKTsKK30KKwogdm9pZCBRdFBhZ2VDbGllbnQ6OnNldEN1cnNvcihj
b25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBh
IHRlbXBvcmFyeSBmaXggdW50aWwgd2UgZ2V0IGN1cnNvciBzdXBwb3J0IGluIFFNTCBpdGVtcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaAppbmRleCAxNTc1MThh
M2NmMGUxMDBmYWI2MjlhYTUxOGVhMDVjZDY0YTBjZDUwLi4zYTg1ODU5YzhkNDRlNzBhY2EzNTVm
ODlkYzFhMGZhZWNlNWI1MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRQYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFn
ZUNsaWVudC5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlQXBwbGljYXRpb25TY2hlbWVSZXF1ZXN0KFBhc3NSZWZQdHI8UXROZXR3b3JrUmVxdWVzdERh
dGE+KTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVl
c3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3Ry
aW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29y
ZCk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uUmVxdWVz
dChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBib29sJiBpZ25vcmVFcnJvcnMpOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BsYXlWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
c2Nyb2xsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQv
UXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuY3BwCmluZGV4IGJiODVkOWE2Zjg1NDg3ZmViZDE0MjFl
ZmIyOGJiNDIxYWZkOTFjZjIuLmFhNDg3NTYzZGU4Mzk3MjdhOGU0M2QxYTc0MDk2Yjc2NWEwYWY5
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNj
ZXNzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdv
cmtBY2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDMsNiArNDMsNyBAQCBRdE5ldHdvcmtBY2Nlc3NNYW5h
Z2VyOjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKFdlYlByb2Nlc3MqIHdlYlByb2Nlc3MpCiAgICAg
LCBtX3dlYlByb2Nlc3Mod2ViUHJvY2VzcykKIHsKICAgICBjb25uZWN0KHRoaXMsIFNJR05BTChh
dXRoZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3JrUmVwbHkqLCBRQXV0aGVudGljYXRvciopKSwg
U0xPVChvbkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtSZXBseSosIFFBdXRoZW50aWNh
dG9yKikpKTsKKyAgICBjb25uZWN0KHRoaXMsIFNJR05BTChzc2xFcnJvcnMoUU5ldHdvcmtSZXBs
eSosIFFMaXN0PFFTc2xFcnJvcj4pKSwgU0xPVChvblNzbEVycm9ycyhRTmV0d29ya1JlcGx5Kiwg
UUxpc3Q8UVNzbEVycm9yPikpKTsKIH0KIAogV2ViUGFnZSogUXROZXR3b3JrQWNjZXNzTWFuYWdl
cjo6b2J0YWluT3JpZ2luYXRpbmdXZWJQYWdlKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYgcmVxdWVz
dCkKQEAgLTk2LDYgKzk3LDI1IEBAIHZvaWQgUXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6b25BdXRo
ZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3JrUmVwbHkqIHJlcGx5LCBRQXV0CiAgICAgfQogfQog
Cit2b2lkIFF0TmV0d29ya0FjY2Vzc01hbmFnZXI6Om9uU3NsRXJyb3JzKFFOZXR3b3JrUmVwbHkq
IHJlcGx5LCBjb25zdCBRTGlzdDxRU3NsRXJyb3I+JiBxU3NsRXJyb3JzKQoreworICAgIFdlYlBh
Z2UqIHdlYlBhZ2UgPSBvYnRhaW5PcmlnaW5hdGluZ1dlYlBhZ2UocmVwbHktPnJlcXVlc3QoKSk7
CisKKyAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBjYW4gZ28gYXdheSBvbmNlIG91ciBRdCB2ZXJz
aW9uIGlzIHVwLXRvLWRhdGUuIFNlZTogUVRCVUctMjM1MTIuCisgICAgaWYgKCF3ZWJQYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgaG9zdG5hbWUgPSByZXBseS0+dXJsKCkuaG9z
dCgpOworICAgIGJvb2wgaWdub3JlRXJyb3JzID0gZmFsc2U7CisKKyAgICBpZiAod2ViUGFnZS0+
c2VuZFN5bmMoCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNlcnRpZmljYXRlVmVy
aWZpY2F0aW9uUmVxdWVzdChob3N0bmFtZSksCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uUmVxdWVzdDo6UmVwbHkoaWdub3JlRXJyb3JzKSkp
IHsKKyAgICAgICAgaWYgKGlnbm9yZUVycm9ycykKKyAgICAgICAgICAgIHJlcGx5LT5pZ25vcmVT
c2xFcnJvcnMocVNzbEVycm9ycyk7CisgICAgfQorfQorCiB9CiAKICNpbmNsdWRlICJtb2NfUXRO
ZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oCmluZGV4IGIyMjRjMTNjOTBhY2VhNjVm
MmU1ZmUyMGM4N2VjODU5NjZhOGVlNzIuLjg0NjIyMWViN2Y1ZWI5YzBiNTllOTRmMzdmYTJmYTE1
MjE2NGM1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3
b3JrQWNjZXNzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRO
ZXR3b3JrQWNjZXNzTWFuYWdlci5oCkBAIC00Nyw2ICs0Nyw3IEBAIHByb3RlY3RlZDoKIAogcHJp
dmF0ZSBRX1NMT1RTOgogICAgIHZvaWQgb25BdXRoZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3Jr
UmVwbHkgKiwgUUF1dGhlbnRpY2F0b3IgKik7CisgICAgdm9pZCBvblNzbEVycm9ycyhRTmV0d29y
a1JlcGx5KiwgY29uc3QgUUxpc3Q8UVNzbEVycm9yPiYpOwogCiBwcml2YXRlOgogICAgIFdlYlBh
Z2UqIG9idGFpbk9yaWdpbmF0aW5nV2ViUGFnZShjb25zdCBRTmV0d29ya1JlcXVlc3QmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>