<?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>193847</bug_id>
          
          <creation_ts>2019-01-25 14:40:47 -0800</creation_ts>
          <short_desc>Move parentProcessConnection from ChildProcess to {NetworkProcess, WebProcess, PluginProcess}</short_desc>
          <delta_ts>2019-03-14 14:37:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aestes</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1498485</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 14:40:47 -0800</bug_when>
    <thetext>Move parentProcessConnection from ChildProcess to {NetworkProcess, WebProcess, PluginProcess}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498487</commentid>
    <comment_count>1</comment_count>
      <attachid>360168</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 14:42:07 -0800</bug_when>
    <thetext>Created attachment 360168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498529</commentid>
    <comment_count>2</comment_count>
      <attachid>360168</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 15:47:28 -0800</bug_when>
    <thetext>Comment on attachment 360168
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:161
&gt;      initialize(WTFMove(parameters));
&gt; +
&gt; +    m_connection = IPC::Connection::createClientConnection(parameters.connectionIdentifier, *this);

This uses parameters after it has been moved from.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498532</commentid>
    <comment_count>3</comment_count>
      <attachid>360179</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 15:53:19 -0800</bug_when>
    <thetext>Created attachment 360179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498746</commentid>
    <comment_count>4</comment_count>
      <attachid>360179</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-26 12:28:16 -0800</bug_when>
    <thetext>Comment on attachment 360179
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        This is paving the way for the NetworkProcess to be split into a NetworkProcess and set of NetworkConnectionToUIProcess containing the connections.

Can you tell me more about the future here?  Is the idea that NetworkProcess in the future will be system wide and will be able to communicate with multiple UIProcesses? If so, it seems like a better direction would be to make it so that NetworkProcess no longer derives from ChildProcess, since it&apos;s not a &quot;child process&quot; anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498794</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-26 19:35:57 -0800</bug_when>
    <thetext>Sam, this is a step towards exactly that, except we plan to have a system-wide NetworkProcess for only certain SPI users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498907</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-27 15:04:10 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #5)
&gt; Sam, this is a step towards exactly that, except we plan to have a
&gt; system-wide NetworkProcess for only certain SPI users.

Ok, I then I think it makes sense to not make this change to ChildProcess, and just make this new &quot;SystemWideNetworkService&quot; not derive from ChildProcess, since it isn&apos;t a &quot;child process&quot; anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499187</commentid>
    <comment_count>7</comment_count>
      <attachid>360179</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-01-28 14:30:45 -0800</bug_when>
    <thetext>Comment on attachment 360179
Patch

What are some of the behaviors of ChildProcess that NetworkProcess will still want after it has multiple UI process clients? And what behaviors would remain unique to ChildProcess, and unsupported by NetworkProcess?

Could the shared behaviors meaningfully move into a shared base class named &quot;AuxiliaryProcess&quot;?

Answering these questions might help us understand the class relationships.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360168</attachid>
            <date>2019-01-25 14:42:07 -0800</date>
            <delta_ts>2019-01-25 15:53:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193847-20190125144205.patch</filename>
            <type>text/plain</type>
            <size>18032</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDA1MTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTAxLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbiBmcm9tIENoaWxkUHJvY2VzcyB0byB7TmV0d29ya1Byb2Nlc3MsIFdl
YlByb2Nlc3MsIFBsdWdpblByb2Nlc3N9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM4NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIHBhdmluZyB0aGUgd2F5IGZvciB0aGUgTmV0d29ya1By
b2Nlc3MgdG8gYmUgc3BsaXQgaW50byBhIE5ldHdvcmtQcm9jZXNzIGFuZCBzZXQgb2YgTmV0d29y
a0Nvbm5lY3Rpb25Ub1VJUHJvY2VzcyBjb250YWluaW5nIHRoZSBjb25uZWN0aW9ucy4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlU2VuZGVyLmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzOjpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAg
ICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2Vy
KToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
Lmg6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vz
czo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9D
aGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAg
ICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAgICAgICAqIFNoYXJlZC9tYWMv
U2VjSXRlbVNoaW0uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uIGNvbnN0KToKKwogMjAxOS0wMS0yNSAgS2VpdGggUm9sbGlu
ICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdlYktpdEFkZGl0aW9ucy54
Y2NvbmZpZyB3aXRoIGNvcnJlY3Qgb3JkZXIgb2YgdmFyaWFibGUgZGVmaW5pdGlvbnMKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCShy
ZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDYgKzE1NywxMCBAQCBOZXR3b3JrUHJv
Y2Vzczo6TmV0d29ya1Byb2Nlc3MoQ2hpbGRQcm9jCiAgICAgfSk7CiAKICAgICBpbml0aWFsaXpl
KFdURk1vdmUocGFyYW1ldGVycykpOworCisgICAgbV9jb25uZWN0aW9uID0gSVBDOjpDb25uZWN0
aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKHBhcmFtZXRlcnMuY29ubmVjdGlvbklkZW50aWZp
ZXIsICp0aGlzKTsKKyAgICBpbml0aWFsaXplQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCkp
OworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQogCiBOZXR3b3JrUHJvY2Vzczo6fk5ldHdv
cmtQcm9jZXNzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgJKHJldmlzaW9uIDI0MDQ4OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDExICsxMDAsMTAg
QEAgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiBjbGFzcyBDYWNoZTsKIH0KIAotY2xhc3MgTmV0
d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzLCBwcml2YXRlIERvd25sb2FkTWFuYWdl
cjo6Q2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3M+Citj
bGFzcyBOZXR3b3JrUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MsIHByaXZhdGUgRG93bmxv
YWRNYW5hZ2VyOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxOZXR3b3JrUHJv
Y2Vzcz4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrUHJvY2Vzcz4sIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VTZW5kZXIKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIHB1Ymxp
YyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVy
CiAjZW5kaWYKLSAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrUHJvY2Vzcz4KIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOZXR3b3JrUHJvY2Vzcyk7CiBwdWJsaWM6CkBAIC0x
MjYsNiArMTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwogCisgICAgSVBD
OjpDb25uZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5nZXQoKTsgfQorCiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50
aWNhdGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigp
OwogI2lmIEVOQUJMRShQUk9YSU1JVFlfTkVUV09SS0lORykKQEAgLTI5MSw2ICsyOTIsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3Rv
cmFnZVNlc3Npb24oKSBjb25zdDsKIAorICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKwogICAgIHZvaWQgdGVybWluYXRlKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOwogCkBAIC00MjIsNiArNDI3
LDkgQEAgcHJpdmF0ZToKICAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQcm9jZXNzZXMuCiAgICAg
VmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zOwogCisgICAgLy8gQ29ubmVjdGlvbiB0byBVSVByb2Nlc3MuCisgICAgUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCiAgICAgU3RyaW5nIG1fZGlza0Nh
Y2hlRGlyZWN0b3J5OwogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKICAg
ICBDYWNoZU1vZGVsIG1fY2FjaGVNb2RlbCB7IENhY2hlTW9kZWw6OkRvY3VtZW50Vmlld2VyIH07
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oCShyZXZp
c2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIE9wdGlvblNldDxTZW5k
T3B0aW9uPik7CiAKIHByaXZhdGU6CisgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBjb25z
dC4KICAgICB2aXJ0dWFsIENvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgPSAw
OwogICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSA9IDA7
CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcAkocmV2aXNpb24gMjQwNDg5KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwxMCBAQCB2b2lkIFBs
dWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvCiAgICAgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpwZXJtaXRQcm9jZXNzVG9Vc2VDb29raWVBUEkodHJ1ZSk7CiAgICAgbV9w
bHVnaW5QYXRoID0gcGFyYW1ldGVycy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoInBsdWdp
bi1wYXRoIik7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJzKTsKKyAg
ICAKKyAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5l
Y3Rpb24ocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOworICAgIGluaXRp
YWxpemVDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5v
cGVuKCk7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0
L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNyAr
NDIsMTcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Nb2R1bGU7CiBjbGFzcyBXZWJQcm9jZXNzQ29u
bmVjdGlvbjsKIHN0cnVjdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogICAgICAg
ICAKLWNsYXNzIFBsdWdpblByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzCi17CitjbGFzcyBQ
bHVnaW5Qcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcywgcHVibGljIElQQzo6TWVzc2FnZVNl
bmRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGx1Z2luUHJvY2Vzcyk7CiAgICAgZnJp
ZW5kIE5ldmVyRGVzdHJveWVkPFBsdWdpblByb2Nlc3M+OwotCiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBsdWdpblByb2Nlc3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vz
c1R5cGUgcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6UGx1Z2luOwogCiAgICAgdm9pZCByZW1v
dmVXZWJQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzQ29ubmVjdGlvbiopOwogCisgICAgSVBD
OjpDb25uZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5nZXQoKTsgfQorCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG5ldHNjYXBl
UGx1Z2luTW9kdWxlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgoKSBjb25zdCB7
IHJldHVybiBtX3BsdWdpblBhdGg7IH0KQEAgLTc1LDYgKzc1LDEwIEBAIHByaXZhdGU6CiAgICAg
UGx1Z2luUHJvY2VzcygpOwogICAgIH5QbHVnaW5Qcm9jZXNzKCk7CiAKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgdWludDY0X3Qg
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBzaG91bGRPdmVycmlkZVF1YXJhbnRpbmUoKSBmaW5h
bDsKICNlbmRpZgpAQCAtMTA3LDYgKzExMSw5IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBz
ZXRNaW5pbXVtTGlmZXRpbWUoU2Vjb25kcyk7CiAgICAgdm9pZCBtaW5pbXVtTGlmZXRpbWVUaW1l
ckZpcmVkKCk7CisgICAgCisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OworCiAgICAgLy8gT3VyIHdlYiBwcm9jZXNzIGNvbm5lY3Rpb25zLgogICAgIFZlY3RvcjxSZWZQ
dHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKIApJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNDA0ODkpCisr
KyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03NywxMCArNzcsNiBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZShjb25zdCBDaGls
CiAKICAgICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJl
IGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSURzLgogICAgIFBBTDo6U2Vzc2lv
bklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOwotCi0gICAgbV9jb25uZWN0aW9uID0g
SVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKHBhcmFtZXRlcnMuY29ubmVj
dGlvbklkZW50aWZpZXIsICp0aGlzKTsKLSAgICBpbml0aWFsaXplQ29ubmVjdGlvbihtX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwotICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQogCiB2b2lkIENoaWxk
UHJvY2Vzczo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCkBAIC0x
NTAsMTYgKzE0Niw2IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjplbmFibGVUZXJtaW5hdGlvbigpCiAg
ICAgbV90ZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChtX3Rlcm1pbmF0aW9uVGltZW91dCk7
CiB9CiAKLUlQQzo6Q29ubmVjdGlvbiogQ2hpbGRQcm9jZXNzOjptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpCi17Ci0gICAgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsKLX0KLQotdWludDY0X3Qg
Q2hpbGRQcm9jZXNzOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpCi17Ci0gICAgcmV0dXJu
IDA7Ci19Ci0KIHZvaWQgQ2hpbGRQcm9jZXNzOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKQogewog
ICAgIGlmICghc2hvdWxkVGVybWluYXRlKCkpCkBAIC0xODIsOCArMTY4LDYgQEAgdm9pZCBDaGls
ZFByb2Nlc3M6OnBsYXRmb3JtU3RvcFJ1bkxvb3AoKQogCiB2b2lkIENoaWxkUHJvY2Vzczo6dGVy
bWluYXRlKCkKIHsKLSAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKLQogICAgIHN0b3BS
dW5Mb29wKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCShyZXZp
c2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBDaGlsZFByb2Nlc3MgOiBwcm90ZWN0ZWQgSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworY2xhc3Mg
Q2hpbGRQcm9jZXNzIDogcHJvdGVjdGVkIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShDaGlsZFByb2Nlc3MpOwogCiBwdWJsaWM6CkBAIC03Miw4ICs3
Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91
Z2hwdXRRT1MpOwogI2VuZGlmCiAKLSAgICBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0KICAgICBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJlY2VpdmVyTWFwKCkgeyByZXR1cm4gbV9t
ZXNzYWdlUmVjZWl2ZXJNYXA7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTExNCwxMCArMTEy
LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVRdWFyYW50aW5lKCkgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgLy8gSVBDOjpNZXNzYWdlU2Vu
ZGVyCi0gICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJy
aWRlOwotICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7
Ci0KICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudC4KICAgICB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7
CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKQEAgLTEzOSw3
ICsxMzMsNiBAQCBwcml2YXRlOgogCiAgICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBt
X3Rlcm1pbmF0aW9uVGltZXI7CiAKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7
CiAKICAgICBVc2VyQWN0aXZpdHkgbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNw
cAkocmV2aXNpb24gMjQwNDg5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDYgQEAgV2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyOjpXZWJTUUxpdGVEYXRhYgogICAgIFNRTGl0ZURhdGFiYXNlVHJh
Y2tlcjo6c2V0Q2xpZW50KHRoaXMpOwogfQogCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6Oldl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQotICAgIDogbV9wcm9j
ZXNzKHByb2Nlc3MpCi0gICAgLCBtX2h5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0
YXRlIHN0YXRlKSB7IGh5c3RlcmVzaXNVcGRhdGVkKHN0YXRlKTsgfSkKLSAgICAsIG1fY2hpbGRQ
cm9jZXNzVHlwZShDaGlsZFByb2Nlc3NUeXBlOjpXZWJDb250ZW50KQotewotICAgIFNRTGl0ZURh
dGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KHRoaXMpOwotfQotCiB2b2lkIFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlcjo6d2lsbEJlZ2luRmlyc3RUcmFuc2FjdGlvbigpCiB7CiAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpc10gewpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyLmgJKHJldmlzaW9uIDI0MDQ4OSkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
bmRlZiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJfaAotI2RlZmluZSBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPHBhbC9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4K
QEAgLTQwLDcgKzM5LDYgQEAgY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIDogcHVibGlj
IAogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcikKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoTmV0d29ya1Byb2Nl
c3MmKTsKLSAgICBleHBsaWNpdCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoV2ViUHJvY2VzcyYp
OwogCiAgICAgLy8gV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50CiAgICAgdm9p
ZCB3aWxsQmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkgb3ZlcnJpZGU7CkBAIC00OSwxMiArNDcsMTAg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGh5c3RlcmVzaXNVcGRhdGVkKFBBTDo6SHlz
dGVyZXNpc1N0YXRlKTsKIAotICAgIENoaWxkUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIE5ldHdv
cmtQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgUEFMOjpIeXN0ZXJlc2lzQWN0aXZpdHkgbV9oeXN0
ZXJlc2lzOwogICAgIGVudW0gY2xhc3MgQ2hpbGRQcm9jZXNzVHlwZSB7IE5ldHdvcmssIFdlYkNv
bnRlbnQgfTsKICAgICBDaGlsZFByb2Nlc3NUeXBlIG1fY2hpbGRQcm9jZXNzVHlwZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gMjQwNDg5KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCIKLSNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJEb3dubG9hZC5o
IgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUGVuZGluZ0Rvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCkBAIC02MCw3ICs2MCw3IEBAIGNvbnN0IGNoYXIqIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
c3VwcGwKICAgICByZXR1cm4gIkF1dGhlbnRpY2F0aW9uTWFuYWdlciI7CiB9CiAKLUF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKENoaWxkUHJvY2VzcyYgcHJvY2Vz
cykKK0F1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKE5ldHdvcmtQ
cm9jZXNzJiBwcm9jZXNzKQogICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCiB7CiAgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CShyZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBA
QCBjbGFzcyBDcmVkZW50aWFsOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQ2hpbGRQ
cm9jZXNzOwogY2xhc3MgRG93bmxvYWQ7CiBjbGFzcyBEb3dubG9hZElEOworY2xhc3MgTmV0d29y
a1Byb2Nlc3M7CiBjbGFzcyBXZWJGcmFtZTsKIAogZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uIDogdWludDhfdDsKQEAgLTU3LDcgKzU3LDcgQEAgdXNpbmcgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXIgPSBDb21wbAogY2xhc3MgQXV0aGVudGljYXRpb25NYW5h
Z2VyIDogcHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QXV0aGVudGljYXRpb25NYW5hZ2VyPiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRpb25NYW5hZ2VyKTsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBBdXRoZW50aWNhdGlvbk1hbmFnZXIoQ2hpbGRQcm9jZXNzJik7Cisg
ICAgZXhwbGljaXQgQXV0aGVudGljYXRpb25NYW5hZ2VyKE5ldHdvcmtQcm9jZXNzJik7CiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIApAQCAtODgsNyArODgsNyBA
QCBwcml2YXRlOgogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiBjb2FsZXNjZUNoYWxsZW5nZXNNYXRj
aGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJRCkgY29uc3Q7CiAKLSAgICBDaGlsZFByb2Nlc3MmIG1f
cHJvY2VzczsKKyAgICBOZXR3b3JrUHJvY2VzcyYgbV9wcm9jZXNzOwogCiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgQ2hhbGxlbmdlPiBtX2NoYWxsZW5nZXM7CiB9OwpJbmRleDogU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCShyZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCiAKICNpbmNsdWRlICJCbG9ja2lu
Z1Jlc3BvbnNlTWFwLmgiCi0jaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKICNpbmNsdWRl
ICJTZWNJdGVtUmVzcG9uc2VEYXRhLmgiCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1MaWJyYXJ5Lmgi
CkBAIC01OCw3ICs1OCw3IEBAIGV4dGVybiAiQyIgdm9pZCBfQ0ZVUkxDb25uZWN0aW9uU2V0RnJh
bWUKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBDaGlsZFByb2Nlc3MqIHNoYXJlZFBy
b2Nlc3M7CitzdGF0aWMgTmV0d29ya1Byb2Nlc3MqIHNoYXJlZFByb2Nlc3M7CiAKIHN0YXRpYyBX
b3JrUXVldWUmIHdvcmtRdWV1ZSgpCiB7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIE9TU3Rh
dHVzIHdlYlNlY0l0ZW1EZWxldGUoQ0ZEaWN0aQogICAgIHJldHVybiByZXNwb25zZS0+cmVzdWx0
Q29kZSgpOwogfQogCi12b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShDaGlsZFByb2Nlc3MmIHBy
b2Nlc3MpCit2b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShOZXR3b3JrUHJvY2VzcyYgcHJvY2Vz
cykKIHsKICAgICBzaGFyZWRQcm9jZXNzID0gJnByb2Nlc3M7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oCShyZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcs
OSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQ2hpbGRQcm9jZXNzOworY2xhc3Mg
TmV0d29ya1Byb2Nlc3M7CiAKLXZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKENoaWxkUHJvY2Vz
cyYpOwordm9pZCBpbml0aWFsaXplU2VjSXRlbVNoaW0oTmV0d29ya1Byb2Nlc3MmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAJKHJldmlzaW9uIDI0MDQ4OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCwxMCBAQCB2b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0CiAgICAgTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6OnNldFNoYXJlZFByb3ZpZGVyKFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
OjpzaW5nbGV0b24oKSk7CiAgICAgCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJh
bWV0ZXJzKTsKKyAgICAKKyAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0
ZUNsaWVudENvbm5lY3Rpb24ocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMp
OworICAgIGluaXRpYWxpemVDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgbV9j
b25uZWN0aW9uLT5vcGVuKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDA0ODkpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDcgQEAg
c3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7
CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNzIFdlYlByb2Nlc3Mg
OiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKK2NsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQ
cm9jZXNzLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
V2ViUHJvY2VzcyYgc2luZ2xldG9uKCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlw
ZSBwcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpXZWJDb250ZW50OwpAQCAtMTI0LDYgKzEyNCw4
IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyogd2ViQ29ubmVjdGlv
blRvVUlQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV93ZWJDb25uZWN0aW9uLmdldCgpOyB9CiAK
KyAgICBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKICAgICBXZWJQYWdlKiB3ZWJQYWdlKHVpbnQ2
NF90IHBhZ2VJRCkgY29uc3Q7CiAgICAgdm9pZCBjcmVhdGVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHJlbW92ZVdlYlBhZ2Uo
dWludDY0X3QgcGFnZUlEKTsKQEAgLTI0Nyw2ICsyNDksMTAgQEAgcHJpdmF0ZToKICAgICBXZWJQ
cm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKIAorICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
cgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlk
ZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICAKICAgICB2b2lk
IGluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmJik7CiAKQEAgLTM5Niw2ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
bGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpOwogCisgICAgUmVmUHRyPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxX
ZWJQYWdlPj4gbV9wYWdlTWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360179</attachid>
            <date>2019-01-25 15:53:19 -0800</date>
            <delta_ts>2019-03-14 14:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193847-20190125155318.patch</filename>
            <type>text/plain</type>
            <size>18083</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTAxLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbiBmcm9tIENoaWxkUHJvY2VzcyB0byB7TmV0d29ya1Byb2Nlc3MsIFdl
YlByb2Nlc3MsIFBsdWdpblByb2Nlc3N9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM4NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIHBhdmluZyB0aGUgd2F5IGZvciB0aGUgTmV0d29ya1By
b2Nlc3MgdG8gYmUgc3BsaXQgaW50byBhIE5ldHdvcmtQcm9jZXNzIGFuZCBzZXQgb2YgTmV0d29y
a0Nvbm5lY3Rpb25Ub1VJUHJvY2VzcyBjb250YWluaW5nIHRoZSBjb25uZWN0aW9ucy4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlU2VuZGVyLmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzOjpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAg
ICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2Vy
KToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
Lmg6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vz
czo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6
bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9D
aGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAg
ICAoV2ViS2l0Ojppbml0aWFsaXplU2VjSXRlbVNoaW0pOgorICAgICAgICAqIFNoYXJlZC9tYWMv
U2VjSXRlbVNoaW0uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uIGNvbnN0KToKKwogMjAxOS0wMS0yNSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgbG9naWMgZnJv
bSBDaGlsZFByb2Nlc3M6OnNldEFwcGxpY2F0aW9uSXNEYWVtb24gdG8gTmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMjQwNTIxKQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
Niw2ICsxNTYsMTAgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKENoaWxkUHJvYwog
ICAgICAgICAgICAgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNldE9uTGluZVN0YXRlKGlzT25MaW5l
KTsKICAgICB9KTsKIAorICAgIG1fY29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRl
Q2xpZW50Q29ubmVjdGlvbihwYXJhbWV0ZXJzLmNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcyk7
CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb24obV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICBtX2Nv
bm5lY3Rpb24tPm9wZW4oKTsKKwogICAgIGluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0ZXJzKSk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgJKHJldmlzaW9uIDI0MDUyMSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDExICsxMDAsMTAgQEAgbmFt
ZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiBjbGFzcyBDYWNoZTsKIH0KIAotY2xhc3MgTmV0d29ya1By
b2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzLCBwcml2YXRlIERvd25sb2FkTWFuYWdlcjo6Q2xp
ZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3M+CitjbGFzcyBO
ZXR3b3JrUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MsIHByaXZhdGUgRG93bmxvYWRNYW5h
Z2VyOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxOZXR3b3JrUHJvY2Vzcz4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrUHJvY2Vzcz4sIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAsIHB1YmxpYyBXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyCiAjZW5k
aWYKLSAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrUHJvY2Vzcz4KIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShOZXR3b3JrUHJvY2Vzcyk7CiBwdWJsaWM6CkBAIC0xMjYsNiAr
MTI1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwogCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5nZXQoKTsgfQorCiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50aWNhdGlv
bk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOwogI2lm
IEVOQUJMRShQUk9YSU1JVFlfTkVUV09SS0lORykKQEAgLTI5NCw2ICsyOTUsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFnZVNl
c3Npb24oKSBjb25zdDsKIAorICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nv
bm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKwogICAgIHZvaWQgdGVybWluYXRlKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOwogCkBAIC00MjUsNiArNDMwLDkgQEAg
cHJpdmF0ZToKICAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQcm9jZXNzZXMuCiAgICAgVmVjdG9y
PFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25zOwogCisgICAgLy8gQ29ubmVjdGlvbiB0byBVSVByb2Nlc3MuCisgICAgUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCiAgICAgU3RyaW5nIG1fZGlza0NhY2hlRGly
ZWN0b3J5OwogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKICAgICBDYWNo
ZU1vZGVsIG1fY2FjaGVNb2RlbCB7IENhY2hlTW9kZWw6OkRvY3VtZW50Vmlld2VyIH07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oCShyZXZpc2lvbiAy
NDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
ZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIE9wdGlvblNldDxTZW5kT3B0aW9u
Pik7CiAKIHByaXZhdGU6CisgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBjb25zdC4KICAg
ICB2aXJ0dWFsIENvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgPSAwOwogICAg
IHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSA9IDA7CiB9OwpJ
bmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAko
cmV2aXNpb24gMjQwNTIxKQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4MiwxMCBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvCiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpwZXJtaXRQcm9jZXNzVG9Vc2VDb29raWVBUEkodHJ1ZSk7CiAgICAgbV9wbHVnaW5Q
YXRoID0gcGFyYW1ldGVycy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoInBsdWdpbi1wYXRo
Iik7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJzKTsKKyAgICAKKyAg
ICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24o
cGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOworICAgIGluaXRpYWxpemVD
b25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uKQpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNyArNDIsMTcg
QEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Nb2R1bGU7CiBjbGFzcyBXZWJQcm9jZXNzQ29ubmVjdGlv
bjsKIHN0cnVjdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogICAgICAgICAKLWNs
YXNzIFBsdWdpblByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzCi17CitjbGFzcyBQbHVnaW5Q
cm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcywgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGx1Z2luUHJvY2Vzcyk7CiAgICAgZnJpZW5kIE5l
dmVyRGVzdHJveWVkPFBsdWdpblByb2Nlc3M+OwotCiBwdWJsaWM6CiAgICAgc3RhdGljIFBsdWdp
blByb2Nlc3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUg
cHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6UGx1Z2luOwogCiAgICAgdm9pZCByZW1vdmVXZWJQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzQ29ubmVjdGlvbiopOwogCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5nZXQoKTsgfQorCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG5ldHNjYXBlUGx1Z2lu
TW9kdWxlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgoKSBjb25zdCB7IHJldHVy
biBtX3BsdWdpblBhdGg7IH0KQEAgLTc1LDYgKzc1LDEwIEBAIHByaXZhdGU6CiAgICAgUGx1Z2lu
UHJvY2VzcygpOwogICAgIH5QbHVnaW5Qcm9jZXNzKCk7CiAKKyAgICAvLyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIKKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgdWludDY0X3QgbWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgYm9vbCBzaG91bGRPdmVycmlkZVF1YXJhbnRpbmUoKSBmaW5hbDsKICNl
bmRpZgpAQCAtMTA3LDYgKzExMSw5IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzZXRNaW5p
bXVtTGlmZXRpbWUoU2Vjb25kcyk7CiAgICAgdm9pZCBtaW5pbXVtTGlmZXRpbWVUaW1lckZpcmVk
KCk7CisgICAgCisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCiAg
ICAgLy8gT3VyIHdlYiBwcm9jZXNzIGNvbm5lY3Rpb25zLgogICAgIFZlY3RvcjxSZWZQdHI8V2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKIApJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nywx
MCArNzcsNiBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZShjb25zdCBDaGlsCiAKICAg
ICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVy
YXRpbmcgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSURzLgogICAgIFBBTDo6U2Vzc2lvbklEOjpl
bmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOwotCi0gICAgbV9jb25uZWN0aW9uID0gSVBDOjpD
b25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKHBhcmFtZXRlcnMuY29ubmVjdGlvbklk
ZW50aWZpZXIsICp0aGlzKTsKLSAgICBpbml0aWFsaXplQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24u
Z2V0KCkpOwotICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogfQogCiB2b2lkIENoaWxkUHJvY2Vz
czo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCkBAIC0xNTAsMTYg
KzE0Niw2IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjplbmFibGVUZXJtaW5hdGlvbigpCiAgICAgbV90
ZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChtX3Rlcm1pbmF0aW9uVGltZW91dCk7CiB9CiAK
LUlQQzo6Q29ubmVjdGlvbiogQ2hpbGRQcm9jZXNzOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
Ci17Ci0gICAgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsKLX0KLQotdWludDY0X3QgQ2hpbGRQ
cm9jZXNzOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19
Ci0KIHZvaWQgQ2hpbGRQcm9jZXNzOjp0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKQogewogICAgIGlm
ICghc2hvdWxkVGVybWluYXRlKCkpCkBAIC0xODIsOCArMTY4LDYgQEAgdm9pZCBDaGlsZFByb2Nl
c3M6OnBsYXRmb3JtU3RvcFJ1bkxvb3AoKQogCiB2b2lkIENoaWxkUHJvY2Vzczo6dGVybWluYXRl
KCkKIHsKLSAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKLQogICAgIHN0b3BSdW5Mb29w
KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCShyZXZpc2lvbiAy
NDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzOwogCi1jbGFzcyBDaGlsZFByb2Nlc3MgOiBwcm90ZWN0ZWQgSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworY2xhc3MgQ2hpbGRQ
cm9jZXNzIDogcHJvdGVjdGVkIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDaGlsZFByb2Nlc3MpOwogCiBwdWJsaWM6CkBAIC03Miw4ICs3Miw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFFPUyhpbnQgbGF0ZW5jeVFPUywgaW50IHRocm91Z2hwdXRR
T1MpOwogI2VuZGlmCiAKLSAgICBJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0KICAgICBJUEM6Ok1l
c3NhZ2VSZWNlaXZlck1hcCYgbWVzc2FnZVJlY2VpdmVyTWFwKCkgeyByZXR1cm4gbV9tZXNzYWdl
UmVjZWl2ZXJNYXA7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTExNCwxMCArMTEyLDYgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkT3ZlcnJpZGVRdWFy
YW50aW5lKCkgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0g
ICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOwot
ICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7Ci0KICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudC4KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7CiAgICAg
dm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKQEAgLTEzOSw3ICsxMzMs
NiBAQCBwcml2YXRlOgogCiAgICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9jZXNzPiBtX3Rlcm1p
bmF0aW9uVGltZXI7CiAKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAKICAg
ICBVc2VyQWN0aXZpdHkgbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcAkocmV2
aXNpb24gMjQwNTIxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDYgQEAgV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyOjpXZWJTUUxpdGVEYXRhYgogICAgIFNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6
c2V0Q2xpZW50KHRoaXMpOwogfQogCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OldlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQotICAgIDogbV9wcm9jZXNzKHBy
b2Nlc3MpCi0gICAgLCBtX2h5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0
YXRlKSB7IGh5c3RlcmVzaXNVcGRhdGVkKHN0YXRlKTsgfSkKLSAgICAsIG1fY2hpbGRQcm9jZXNz
VHlwZShDaGlsZFByb2Nlc3NUeXBlOjpXZWJDb250ZW50KQotewotICAgIFNRTGl0ZURhdGFiYXNl
VHJhY2tlcjo6c2V0Q2xpZW50KHRoaXMpOwotfQotCiB2b2lkIFdlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcjo6d2lsbEJlZ2luRmlyc3RUcmFuc2FjdGlvbigpCiB7CiAgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpc10gewpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmgJKHJldmlzaW9uIDI0MDUyMSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBX
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJfaAotI2RlZmluZSBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFiYXNlVHJh
Y2tlckNsaWVudC5oPgogI2luY2x1ZGUgPHBhbC9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KQEAgLTQw
LDcgKzM5LDYgQEAgY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIDogcHVibGljIAogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcikKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoTmV0d29ya1Byb2Nlc3MmKTsK
LSAgICBleHBsaWNpdCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoV2ViUHJvY2VzcyYpOwogCiAg
ICAgLy8gV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50CiAgICAgdm9pZCB3aWxs
QmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkgb3ZlcnJpZGU7CkBAIC00OSwxMiArNDcsMTAgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICB2b2lkIGh5c3RlcmVzaXNVcGRhdGVkKFBBTDo6SHlzdGVyZXNp
c1N0YXRlKTsKIAotICAgIENoaWxkUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIE5ldHdvcmtQcm9j
ZXNzJiBtX3Byb2Nlc3M7CiAgICAgUEFMOjpIeXN0ZXJlc2lzQWN0aXZpdHkgbV9oeXN0ZXJlc2lz
OwogICAgIGVudW0gY2xhc3MgQ2hpbGRQcm9jZXNzVHlwZSB7IE5ldHdvcmssIFdlYkNvbnRlbnQg
fTsKICAgICBDaGlsZFByb2Nlc3NUeXBlIG1fY2hpbGRQcm9jZXNzVHlwZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyX2gK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gMjQwNTIxKQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0
aW9uTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJEb3dubG9hZC5oIgogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UGVuZGluZ0Rvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBA
IC02MCw3ICs2MCw3IEBAIGNvbnN0IGNoYXIqIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c3VwcGwK
ICAgICByZXR1cm4gIkF1dGhlbnRpY2F0aW9uTWFuYWdlciI7CiB9CiAKLUF1dGhlbnRpY2F0aW9u
TWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKENoaWxkUHJvY2VzcyYgcHJvY2VzcykKK0F1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKE5ldHdvcmtQcm9jZXNz
JiBwcm9jZXNzKQogICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCiB7CiAgICAgbV9wcm9jZXNzLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCShyZXZp
c2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBjbGFz
cyBDcmVkZW50aWFsOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQ2hpbGRQcm9jZXNz
OwogY2xhc3MgRG93bmxvYWQ7CiBjbGFzcyBEb3dubG9hZElEOworY2xhc3MgTmV0d29ya1Byb2Nl
c3M7CiBjbGFzcyBXZWJGcmFtZTsKIAogZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uIDogdWludDhfdDsKQEAgLTU3LDcgKzU3LDcgQEAgdXNpbmcgQ2hhbGxlbmdl
Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbAogY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2VyIDog
cHVibGljIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QXV0aGVudGljYXRpb25NYW5hZ2VyPiB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRpb25NYW5hZ2VyKTsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBBdXRoZW50aWNhdGlvbk1hbmFnZXIoQ2hpbGRQcm9jZXNzJik7CisgICAgZXhw
bGljaXQgQXV0aGVudGljYXRpb25NYW5hZ2VyKE5ldHdvcmtQcm9jZXNzJik7CiAKICAgICBzdGF0
aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIApAQCAtODgsNyArODgsNyBAQCBwcml2
YXRlOgogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiBjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGluZyh1
aW50NjRfdCBjaGFsbGVuZ2VJRCkgY29uc3Q7CiAKLSAgICBDaGlsZFByb2Nlc3MmIG1fcHJvY2Vz
czsKKyAgICBOZXR3b3JrUHJvY2VzcyYgbV9wcm9jZXNzOwogCiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgQ2hhbGxlbmdlPiBtX2NoYWxsZW5nZXM7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvU2VjSXRlbVNoaW0uY3BwCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBACiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCiAKICNpbmNsdWRlICJCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmgiCi0jaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3MuaCIKICNpbmNsdWRlICJTZWNJdGVtUmVxdWVzdERhdGEuaCIKICNpbmNsdWRlICJTZWNJ
dGVtUmVzcG9uc2VEYXRhLmgiCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1MaWJyYXJ5LmgiCkBAIC01
OCw3ICs1OCw3IEBAIGV4dGVybiAiQyIgdm9pZCBfQ0ZVUkxDb25uZWN0aW9uU2V0RnJhbWUKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBDaGlsZFByb2Nlc3MqIHNoYXJlZFByb2Nlc3M7
CitzdGF0aWMgTmV0d29ya1Byb2Nlc3MqIHNoYXJlZFByb2Nlc3M7CiAKIHN0YXRpYyBXb3JrUXVl
dWUmIHdvcmtRdWV1ZSgpCiB7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIE9TU3RhdHVzIHdl
YlNlY0l0ZW1EZWxldGUoQ0ZEaWN0aQogICAgIHJldHVybiByZXNwb25zZS0+cmVzdWx0Q29kZSgp
OwogfQogCi12b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShDaGlsZFByb2Nlc3MmIHByb2Nlc3Mp
Cit2b2lkIGluaXRpYWxpemVTZWNJdGVtU2hpbShOZXR3b3JrUHJvY2VzcyYgcHJvY2VzcykKIHsK
ICAgICBzaGFyZWRQcm9jZXNzID0gJnByb2Nlc3M7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9TZWNJdGVtU2hpbS5oCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvU2VjSXRlbVNoaW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQ2hpbGRQcm9jZXNzOworY2xhc3MgTmV0d29y
a1Byb2Nlc3M7CiAKLXZvaWQgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKENoaWxkUHJvY2VzcyYpOwor
dm9pZCBpbml0aWFsaXplU2VjSXRlbVNoaW0oTmV0d29ya1Byb2Nlc3MmKTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAJKHJldmlzaW9uIDI0MDUyMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDYgKzIzMCwxMCBAQCB2b2lkIFdlYlByb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0CiAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXI6OnNldFNoYXJlZFByb3ZpZGVyKFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5n
bGV0b24oKSk7CiAgICAgCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJz
KTsKKyAgICAKKyAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24ocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOworICAg
IGluaXRpYWxpemVDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgbV9jb25uZWN0
aW9uLT5vcGVuKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDA1MjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1
Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNzIFdlYlByb2Nlc3MgOiBwdWJs
aWMgQ2hpbGRQcm9jZXNzIHsKK2NsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNz
LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJv
Y2VzcyYgc2luZ2xldG9uKCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpXZWJDb250ZW50OwpAQCAtMTI0LDYgKzEyNCw4IEBAIHB1
YmxpYzoKIAogICAgIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyogd2ViQ29ubmVjdGlvblRvVUlQ
cm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV93ZWJDb25uZWN0aW9uLmdldCgpOyB9CiAKKyAgICBJ
UEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOyB9CisKICAgICBXZWJQYWdlKiB3ZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCkgY29uc3Q7CiAgICAgdm9pZCBjcmVhdGVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHJlbW92ZVdlYlBhZ2UodWludDY0
X3QgcGFnZUlEKTsKQEAgLTI0Nyw2ICsyNDksMTAgQEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNz
KCk7CiAgICAgfldlYlByb2Nlc3MoKTsKIAorICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgorICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJl
dHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICAKICAgICB2b2lkIGluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmJik7CiAKQEAgLTM5Niw2ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGVhckN1
cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpOwogCisgICAgUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+
IG1fd2ViQ29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdl
Pj4gbV9wYWdlTWFwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>