<?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>177496</bug_id>
          
          <creation_ts>2017-09-26 11:40:17 -0700</creation_ts>
          <short_desc>[Curl] Introduce CurlResponse to hold response information among threads.</short_desc>
          <delta_ts>2017-09-27 12:16:17 -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>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175148</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>galpeter</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352771</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-09-26 11:40:17 -0700</bug_when>
    <thetext>Improve the safety by putting the response information into a data object and easy to handle among the threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352783</commentid>
    <comment_count>1</comment_count>
      <attachid>321854</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-09-26 12:19:25 -0700</bug_when>
    <thetext>Created attachment 321854
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352818</commentid>
    <comment_count>2</comment_count>
      <attachid>321854</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 13:48:05 -0700</bug_when>
    <thetext>Comment on attachment 321854
patch

Clearing flags on attachment: 321854

Committed r222521: &lt;http://trac.webkit.org/changeset/222521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352819</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 13:48:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353246</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:16:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/34692903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321854</attachid>
            <date>2017-09-26 12:19:25 -0700</date>
            <delta_ts>2017-09-26 13:48:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>177496-1.diff</filename>
            <type>text/plain</type>
            <size>23612</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MzRhODhlMGQ0MC4uYmQyYzQwODA2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOSBAQAogMjAxNy0wOS0yNiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CiAKKyAgICAgICAgW0N1cmxdIEludHJvZHVjZSBDdXJsUmVzcG9uc2UgdG8gaG9sZCBy
ZXNwb25zZSBpbmZvcm1hdGlvbiBhbW9uZyB0aHJlYWRzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJvdGVjdGlvblNwYWNlRnJvbUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxIYW5kbGU6OmdldEh0dHBDb25uZWN0Q29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxSZXNwb25zZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxSZXNwb25zZTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmRpZFJlY2VpdmVBbGxIZWFkZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRSZWNlaXZlQ29u
dGVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6
OmhhbmRsZUxvY2FsUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpkaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVDdXJsRGVsZWdhdGU6OmhhbmRsZURhdGFVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmRpZFJlY2VpdmVIZWFkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6aXNIdHRwSW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6c2V0UmVzcG9uc2VGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlOjpyZXNwb25zZUZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VSZXNwb25zZUN1cmwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjphcHBlbmRIVFRQSGVhZGVyRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6c2V0U3RhdHVzTGluZSk6CisKKzIwMTctMDkt
MjYgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgorCiAgICAgICAgIFtD
dXJsXSBDaGFuZ2UgbWVtYmVyIHZhcmlhYmxlIG9mIEN1cmxIYW5kbGUgdG8gdXNlIHN0ZDo6dW5p
cXVlX3B0cgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3NDkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgKaW5kZXggODY2OGQ2N2E5NGIuLmNh
ODZlM2I4ZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtMzEsNiArMzEsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEN1cmxSZXNwb25zZTsKKwogY2xhc3Mg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZmluYWwgOiBwdWJsaWMgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlIHsKIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCkBAIC00
MiwxMiArNDQsMTIgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSh1aW50MTZfdCwgbG9uZywgdW5zaWduZWQsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBBdXRoZW50aWNhdGlvbkNsaWVudCogPSBudWxscHRyKTsKKyAgICBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShjb25zdCBDdXJsUmVzcG9uc2UmLCB1bnNpZ25lZCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiA9IG51bGxwdHIpOwogICAgIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50KiBhdXRoZW50aWNhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0
aGVudGljYXRpb25DbGllbnQuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlIHByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGVGcm9tVVJJKGNvbnN0IFVSTCYp
OwotICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2VGcm9tSGFuZGxlKHVpbnQxNl90
LCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgUHJvdGVjdGlvblNwYWNlIHBy
b3RlY3Rpb25TcGFjZUZyb21IYW5kbGUoY29uc3QgQ3VybFJlc3BvbnNlJiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgcmVtb3ZlTGVhZGluZ0FuZFRyYWlsaW5nUXVvdGVzKFN0
cmluZyYpOwogCiAgICAgUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBtX2F1dGhlbnRpY2F0
aW9uQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcAppbmRleCBh
YjNmZjVkMGIwMi4uOTAxMWZiMTU5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUN1cmwuY3BwCkBAIC0yOSwxMiArMjksMTMgQEAKICNpZiBVU0UoQ1VSTCkKIAogI2luY2x1ZGUg
IkN1cmxDb250ZXh0LmgiCisjaW5jbHVkZSAiQ3VybFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VFcnJvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50MTZfdCBjb25uZWN0UG9ydCwgbG9u
ZyBhdmFpbGFibGVIdHRwQXV0aCwgdW5zaWduZWQgcHJldmlvdXNGYWlsdXJlQ291bnQsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBBdXRoZW50aWNhdGlvbkNsaWVudCogY2xpZW50
KQotICAgIDogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlKHByb3RlY3Rpb25TcGFjZUZyb21I
YW5kbGUoY29ubmVjdFBvcnQsIGF2YWlsYWJsZUh0dHBBdXRoLCByZXNwb25zZSksIENyZWRlbnRp
YWwoKSwgcHJldmlvdXNGYWlsdXJlQ291bnQsIHJlc3BvbnNlLCBSZXNvdXJjZUVycm9yKCkpCitB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQ3Vy
bFJlc3BvbnNlJiBjdXJsUmVzcG9uc2UsIHVuc2lnbmVkIHByZXZpb3VzRmFpbHVyZUNvdW50LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQXV0aGVudGljYXRpb25DbGllbnQqIGNs
aWVudCkKKyAgICA6IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZShwcm90ZWN0aW9uU3BhY2VG
cm9tSGFuZGxlKGN1cmxSZXNwb25zZSwgcmVzcG9uc2UpLCBDcmVkZW50aWFsKCksIHByZXZpb3Vz
RmFpbHVyZUNvdW50LCByZXNwb25zZSwgUmVzb3VyY2VFcnJvcigpKQogICAgICwgbV9hdXRoZW50
aWNhdGlvbkNsaWVudChjbGllbnQpCiB7CiB9CkBAIC01MCw4ICs1MSwxMSBAQCBQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJUeXBlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlRnJvbQogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOwogfQog
Ci1Qcm90ZWN0aW9uU3BhY2UgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OnByb3RlY3Rpb25TcGFj
ZUZyb21IYW5kbGUodWludDE2X3QgY29ubmVjdFBvcnQsIGxvbmcgYXZhaWxhYmxlSHR0cEF1dGgs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorUHJvdGVjdGlvblNwYWNlIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VGcm9tSGFuZGxlKGNvbnN0IEN1cmxS
ZXNwb25zZSYgY3VybFJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKKyAgICBhdXRvIHBvcnQgPSBjdXJsUmVzcG9uc2UuY29ubmVjdFBvcnQ7CisgICAgYXV0byBh
dmFpbGFibGVIdHRwQXV0aCA9IGN1cmxSZXNwb25zZS5hdmFpbGFibGVIdHRwQXV0aDsKKwogICAg
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZSA9IFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKICAgICBpZiAoYXZhaWxhYmxlSHR0cEF1
dGggJiBDVVJMQVVUSF9CQVNJQykKICAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM7CkBAIC03Miw3ICs3Niw3IEBAIFByb3RlY3Rpb25T
cGFjZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJvdGVjdGlvblNwYWNlRnJvbUhhbmRsZSh1
aW50MTZfdCBjb25uCiAgICAgICAgIHJlbW92ZUxlYWRpbmdBbmRUcmFpbGluZ1F1b3RlcyhyZWFs
bSk7CiAgICAgfQogCi0gICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZShyZXNwb25zZS51cmwoKS5o
b3N0KCksIHN0YXRpY19jYXN0PGludD4oY29ubmVjdFBvcnQpLCBwcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlRnJvbVVSSShyZXNwb25zZS51cmwoKSksIHJlYWxtLCBzY2hlbWUpOworICAgIHJldHVy
biBQcm90ZWN0aW9uU3BhY2UocmVzcG9uc2UudXJsKCkuaG9zdCgpLCBzdGF0aWNfY2FzdDxpbnQ+
KHBvcnQpLCBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShyZXNwb25zZS51cmwoKSks
IHJlYWxtLCBzY2hlbWUpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpyZW1v
dmVMZWFkaW5nQW5kVHJhaWxpbmdRdW90ZXMoU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCmluZGV4IGJm
N2E1OTlhNDBmLi5lZjVjOWRlODBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC01ODAsNiArNTgwLDE5IEBAIHN0
ZDo6b3B0aW9uYWw8bG9uZz4gQ3VybEhhbmRsZTo6Z2V0UmVzcG9uc2VDb2RlKCkKICAgICByZXR1
cm4gcmVzcG9uc2VDb2RlOwogfQogCitzdGQ6Om9wdGlvbmFsPGxvbmc+IEN1cmxIYW5kbGU6Omdl
dEh0dHBDb25uZWN0Q29kZSgpCit7CisgICAgaWYgKCFtX2hhbmRsZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIGxvbmcgaHR0cENvbm5lY3RDb2RlOworICAgIENVUkxjb2Rl
IGVycm9yQ29kZSA9IGN1cmxfZWFzeV9nZXRpbmZvKG1faGFuZGxlLCBDVVJMSU5GT19IVFRQX0NP
Tk5FQ1RDT0RFLCAmaHR0cENvbm5lY3RDb2RlKTsKKyAgICBpZiAoZXJyb3JDb2RlICE9IENVUkxF
X09LKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIGh0dHBDb25u
ZWN0Q29kZTsKK30KKwogc3RkOjpvcHRpb25hbDxsb25nIGxvbmc+IEN1cmxIYW5kbGU6OmdldENv
bnRlbnRMZW5ndGgoKQogewogICAgIGlmICghbV9oYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCmluZGV4IDczMDM0ZTlhYThj
Li5jN2NmN2MwNWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxDb250ZXh0LmgKQEAgLTI3OCw2ICsyNzgsNyBAQCBwdWJsaWM6CiAgICAgVVJM
IGdldEVmZmVjdGl2ZVVSTCgpOwogICAgIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IGdldFByaW1h
cnlQb3J0KCk7CiAgICAgc3RkOjpvcHRpb25hbDxsb25nPiBnZXRSZXNwb25zZUNvZGUoKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPGxvbmc+IGdldEh0dHBDb25uZWN0Q29kZSgpOwogICAgIHN0ZDo6b3B0
aW9uYWw8bG9uZyBsb25nPiBnZXRDb250ZW50TGVuZ3RoKCk7CiAgICAgc3RkOjpvcHRpb25hbDxs
b25nPiBnZXRIdHRwQXV0aEF2YWlsKCk7CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrTG9hZE1l
dHJpY3M+IGdldE5ldHdvcmtMb2FkTWV0cmljcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4wOTVlNjhiMmE0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVzcG9uc2UuaApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0
YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlVSTC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1cmxSZXNwb25zZSB7CitwdWJsaWM6
CisgICAgQ3VybFJlc3BvbnNlKCkgPSBkZWZhdWx0OworCisgICAgQ3VybFJlc3BvbnNlIGlzb2xh
dGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBDdXJsUmVzcG9uc2UgY29weTsKKworICAg
ICAgICBjb3B5LnVybCA9IHVybC5pc29sYXRlZENvcHkoKTsKKyAgICAgICAgY29weS5zdGF0dXND
b2RlID0gc3RhdHVzQ29kZTsKKyAgICAgICAgY29weS5leHBlY3RlZENvbnRlbnRMZW5ndGggPSBl
eHBlY3RlZENvbnRlbnRMZW5ndGg7CisKKyAgICAgICAgZm9yIChhdXRvIGhlYWRlciA6IGhlYWRl
cnMpCisgICAgICAgICAgICBjb3B5LmhlYWRlcnMuYXBwZW5kKGhlYWRlci5pc29sYXRlZENvcHko
KSk7CisKKyAgICAgICAgY29weS5jb25uZWN0UG9ydCA9IGNvbm5lY3RQb3J0OworICAgICAgICBj
b3B5LmF2YWlsYWJsZUh0dHBBdXRoID0gYXZhaWxhYmxlSHR0cEF1dGg7CisKKyAgICAgICAgcmV0
dXJuIGNvcHk7CisgICAgfQorCisgICAgVVJMIHVybDsKKyAgICBsb25nIHN0YXR1c0NvZGUgeyAw
IH07CisgICAgbG9uZyBsb25nIGV4cGVjdGVkQ29udGVudExlbmd0aCB7IDAgfTsKKyAgICBWZWN0
b3I8U3RyaW5nPiBoZWFkZXJzOworCisgICAgdWludDE2X3QgY29ubmVjdFBvcnQgeyAwIH07Cisg
ICAgbG9uZyBhdmFpbGFibGVIdHRwQXV0aCB7IDAgfTsKK307CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxl
Z2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVDdXJsRGVsZWdhdGUuY3BwCmluZGV4IDc3OWQ2ZGMwYzc1Li4wZjAyMGIyMGVkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCkBAIC0zMTcsMjAgKzMxNywxMSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpzZXR1cEF1dGhlbnRpY2F0aW9uKCkK
ICAgICB9CiB9CiAKLWlubGluZSBzdGF0aWMgYm9vbCBpc0h0dHBJbmZvKGludCBzdGF0dXNDb2Rl
KQotewotICAgIHJldHVybiAxMDAgPD0gc3RhdHVzQ29kZSAmJiBzdGF0dXNDb2RlIDwgMjAwOwot
fQotCi12b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRSZWNlaXZlQWxsSGVhZGVy
cyhVUkwgdXJsLCBsb25nIGh0dHBDb2RlLCBsb25nIGxvbmcgY29udGVudExlbmd0aCwgdWludDE2
X3QgY29ubmVjdFBvcnQsIGxvbmcgYXZhaWxhYmxlSHR0cEF1dGgpCit2b2lkIFJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpkaWRSZWNlaXZlQWxsSGVhZGVycyhjb25zdCBDdXJsUmVzcG9uc2Um
IHJlY2VpdmVkUmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAg
IHJlc3BvbnNlKCkuc2V0VVJMKHVybCk7Ci0gICAgcmVzcG9uc2UoKS5zZXRFeHBlY3RlZENvbnRl
bnRMZW5ndGgoY29udGVudExlbmd0aCk7Ci0gICAgcmVzcG9uc2UoKS5zZXRIVFRQU3RhdHVzQ29k
ZShodHRwQ29kZSk7Ci0gICAgcmVzcG9uc2UoKS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKHJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpD
b250ZW50VHlwZSkpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwotICAgIHJlc3BvbnNlKCku
c2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUocmVzcG9uc2Uo
KS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkpOworICAgIG1f
aGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShyZWNl
aXZlZFJlc3BvbnNlKTsKIAogICAgIGlmIChyZXNwb25zZSgpLmlzTXVsdGlwYXJ0KCkpIHsKICAg
ICAgICAgU3RyaW5nIGJvdW5kYXJ5OwpAQCAtMzU2LDEzICszNDcsMTMgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6ZGlkUmVjZWl2ZUFsbEhlYWRlcnMoVVJMIHVybCwgbG9uZyBo
dHRwQ29kZSwgbG8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0gZWxzZSBp
ZiAocmVzcG9uc2UoKS5pc1VuYXV0aG9yaXplZCgpKSB7Ci0gICAgICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlIGNoYWxsZW5nZShjb25uZWN0UG9ydCwgYXZhaWxhYmxlSHR0cEF1dGgsIG1fYXV0
aEZhaWx1cmVDb3VudCwgcmVzcG9uc2UoKSwgbV9oYW5kbGUpOworICAgICAgICBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UocmVjZWl2ZWRSZXNwb25zZSwgbV9hdXRoRmFpbHVyZUNv
dW50LCByZXNwb25zZSgpLCBtX2hhbmRsZSk7CiAgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hhbGxlbmdlKTsKICAgICAgICAgbV9hdXRoRmFpbHVy
ZUNvdW50Kys7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXNwb25zZSgpLnNldFJl
c3BvbnNlRmlyZWQodHJ1ZSk7CisgICAgbV9kaWROb3RpZnlSZXNwb25zZSA9IHRydWU7CiAKICAg
ICBpZiAobV9oYW5kbGUtPmNsaWVudCgpKSB7CiAgICAgICAgIGlmIChyZXNwb25zZSgpLmlzTm90
TW9kaWZpZWQoKSkgewpAQCAtMzgzLDcgKzM3NCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJs
RGVsZWdhdGU6OmRpZFJlY2VpdmVDb250ZW50RGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZl
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICghcmVzcG9uc2UoKS5y
ZXNwb25zZUZpcmVkKCkpCisgICAgaWYgKCFtX2RpZE5vdGlmeVJlc3BvbnNlKQogICAgICAgICBo
YW5kbGVMb2NhbFJlY2VpdmVSZXNwb25zZSgpOwogCiAgICAgaWYgKG1fbXVsdGlwYXJ0SGFuZGxl
KQpAQCAtNDA5LDcgKzQwMCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6Omhh
bmRsZUxvY2FsUmVjZWl2ZVJlc3BvbnNlKCkKIAogICAgIC8vIERldGVybWluZSB0aGUgTUlNRSB0
eXBlIGJhc2VkIG9uIHRoZSBwYXRoLgogICAgIHJlc3BvbnNlKCkuc2V0TWltZVR5cGUoTUlNRVR5
cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKHVybCkpOwotICAgIHJlc3BvbnNlKCkuc2V0
UmVzcG9uc2VGaXJlZCh0cnVlKTsKKworICAgIG1fZGlkTm90aWZ5UmVzcG9uc2UgPSB0cnVlOwor
CiAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgp
LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9oYW5kbGUsIFJlc291cmNlUmVzcG9uc2UocmVzcG9uc2Uo
KSkpOwogfQpAQCAtNDQ1LDcgKzQzOCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdh
dGU6OmRpZEZpbmlzaChOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya0xvYWRNZXRyaWNzCiAgICAg
aWYgKCFtX2hhbmRsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFyZXNwb25zZSgpLnJl
c3BvbnNlRmlyZWQoKSkgeworICAgIGlmICghbV9kaWROb3RpZnlSZXNwb25zZSkgewogICAgICAg
ICBoYW5kbGVMb2NhbFJlY2VpdmVSZXNwb25zZSgpOwogICAgICAgICBpZiAoIW1faGFuZGxlKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDc4LDggKzQ3MSw4IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVDdXJsRGVsZWdhdGU6OmhhbmRsZURhdGFVUkwoKQogCiAgICAgQVNTRVJUKG1faGFuZGxlLT5j
bGllbnQoKSk7CiAKLSAgICBpbnQgaW5kZXggPSB1cmwuZmluZCgnLCcpOwotICAgIGlmIChpbmRl
eCA9PSAtMSkgeworICAgIGF1dG8gaW5kZXggPSB1cmwuZmluZCgnLCcpOworICAgIGlmIChpbmRl
eCA9PSBub3RGb3VuZCkgewogICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmNhbm5vdFNob3dV
UkwobV9oYW5kbGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNjcxLDc1ICs2NjQsNzMg
QEAgQ1VSTGNvZGUgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OndpbGxTZXR1cFNzbEN0eCh2
b2lkKiBzc2xDdHgpCiAqLwogc2l6ZV90IFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpkaWRS
ZWNlaXZlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKIHsKKyAgICBzdGF0aWMgY29uc3QgYXV0byBl
bXB0eUxpbmVDUkxGID0gIlxyXG4iOworICAgIHN0YXRpYyBjb25zdCBhdXRvIGVtcHR5TGluZUxG
ID0gIlxuIjsKKwogICAgIGlmICghbV9oYW5kbGUpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
aWYgKG1fZGVmZXJzTG9hZGluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAvKgotICAgICog
YSkgV2UgY2FuIGZpbmlzaCBhbmQgc2VuZCB0aGUgUmVzb3VyY2VSZXNwb25zZQotICAgICogYikg
V2Ugd2lsbCBhZGQgdGhlIGN1cnJlbnQgaGVhZGVyIHRvIHRoZSBIVFRQSGVhZGVyTWFwIG9mIHRo
ZSBSZXNvdXJjZVJlc3BvbnNlCi0gICAgKgotICAgICogVGhlIEhUVFAgc3RhbmRhcmQgcmVxdWly
ZXMgdG8gdXNlIFxyXG4gYnV0IGZvciBjb21wYXRpYmlsaXR5IGl0IHJlY29tbWVuZHMgdG8KLSAg
ICAqIGFjY2VwdCBhbHNvIFxuLgotICAgICovCi0gICAgaWYgKGhlYWRlciA9PSBBdG9taWNTdHJp
bmcoIlxyXG4iKSB8fCBoZWFkZXIgPT0gQXRvbWljU3RyaW5nKCJcbiIpKSB7Ci0gICAgICAgIGxv
bmcgaHR0cENvZGUgPSAwOwotICAgICAgICBpZiAoYXV0byBjb2RlID0gbV9jdXJsSGFuZGxlLT5n
ZXRSZXNwb25zZUNvZGUoKSkKLSAgICAgICAgICAgIGh0dHBDb2RlID0gKmNvZGU7Ci0KLSAgICAg
ICAgaWYgKCFodHRwQ29kZSkgewotICAgICAgICAgICAgLy8gQ29tZXMgaGVyZSB3aGVuIHJlY2Vp
dmluZyAyMDAgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZC4gSnVzdCByZXR1cm4uCi0gICAgICAgICAg
ICByZXR1cm4gaGVhZGVyLmxlbmd0aCgpOwotICAgICAgICB9CisgICAgc2l6ZV90IHJlY2VpdmVC
eXRlcyA9IGhlYWRlci5sZW5ndGgoKTsKIAotICAgICAgICBpZiAoaXNIdHRwSW5mbyhodHRwQ29k
ZSkpIHsKLSAgICAgICAgICAgIC8vIEp1c3QgcmV0dXJuIHdoZW4gcmVjZWl2aW5nIGh0dHAgaW5m
bywgZS5nLiBIVFRQLzEuMSAxMDAgQ29udGludWUuCi0gICAgICAgICAgICAvLyBJZiBub3QsIHRo
ZSByZXF1ZXN0IG1pZ2h0IGJlIGNhbmNlbGxlZCwgYmVjYXVzZSB0aGUgTUlNRSB0eXBlIHdpbGwg
YmUgZW1wdHkgZm9yIHRoaXMgcmVzcG9uc2UuCi0gICAgICAgICAgICByZXR1cm4gaGVhZGVyLmxl
bmd0aCgpOwotICAgICAgICB9CisgICAgLy8gVGhlIEhUVFAgc3RhbmRhcmQgcmVxdWlyZXMgdG8g
dXNlIFxyXG4gYnV0IGZvciBjb21wYXRpYmlsaXR5IGl0IHJlY29tbWVuZHMgdG8gYWNjZXB0IGFs
c28gXG4uCisgICAgLy8gV2Ugd2lsbCBhZGQgdGhlIGN1cnJlbnQgaGVhZGVyIHRvIHRoZSBDdXJs
UmVzcG9uc2UuaGVhZGVycworICAgIGlmICgoaGVhZGVyICE9IGVtcHR5TGluZUNSTEYpICYmICho
ZWFkZXIgIT0gZW1wdHlMaW5lTEYpKSB7CisgICAgICAgIG1fcmVzcG9uc2UuaGVhZGVycy5hcHBl
bmQoV1RGTW92ZShoZWFkZXIpKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVCeXRlczsKKyAgICB9
CiAKLSAgICAgICAgVVJMIHVybCA9IG1fY3VybEhhbmRsZS0+Z2V0RWZmZWN0aXZlVVJMKCk7Cisg
ICAgLy8gV2UgY2FuIGZpbmlzaCBhbmQgc2VuZCB0aGUgUmVzb3VyY2VSZXNwb25zZQorICAgIGxv
bmcgc3RhdHVzQ29kZSA9IDA7CisgICAgaWYgKGF1dG8gY29kZSA9IG1fY3VybEhhbmRsZS0+Z2V0
UmVzcG9uc2VDb2RlKCkpCisgICAgICAgIHN0YXR1c0NvZGUgPSAqY29kZTsKIAotICAgICAgICBs
b25nIGxvbmcgY29udGVudExlbmd0aCA9IDA7Ci0gICAgICAgIGlmIChhdXRvIGxlbmd0aCA9IG1f
Y3VybEhhbmRsZS0+Z2V0Q29udGVudExlbmd0aCgpKQotICAgICAgICAgICAgY29udGVudExlbmd0
aCA9ICpsZW5ndGg7CisgICAgbG9uZyBodHRwQ29ubmVjdENvZGUgPSAwOworICAgIGlmIChhdXRv
IGNvZGUgPSBtX2N1cmxIYW5kbGUtPmdldEh0dHBDb25uZWN0Q29kZSgpKQorICAgICAgICBodHRw
Q29ubmVjdENvZGUgPSAqY29kZTsKIAotICAgICAgICB1aW50MTZfdCBjb25uZWN0UG9ydCA9IDA7
Ci0gICAgICAgIGlmIChhdXRvIHBvcnQgPSBtX2N1cmxIYW5kbGUtPmdldFByaW1hcnlQb3J0KCkp
Ci0gICAgICAgICAgICBjb25uZWN0UG9ydCA9ICpwb3J0OworICAgIGlmICgoMTAwIDw9IHN0YXR1
c0NvZGUpICYmIChzdGF0dXNDb2RlIDwgMjAwKSkgeworICAgICAgICAvLyBKdXN0IHJldHVybiB3
aGVuIHJlY2VpdmluZyBodHRwIGluZm8sIGUuZy4gSFRUUC8xLjEgMTAwIENvbnRpbnVlLgorICAg
ICAgICAvLyBJZiBub3QsIHRoZSByZXF1ZXN0IG1pZ2h0IGJlIGNhbmNlbGxlZCwgYmVjYXVzZSB0
aGUgTUlNRSB0eXBlIHdpbGwgYmUgZW1wdHkgZm9yIHRoaXMgcmVzcG9uc2UuCisgICAgICAgIG1f
cmVzcG9uc2UgPSBDdXJsUmVzcG9uc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVCeXRlczsK
KyAgICB9CiAKLSAgICAgICAgbG9uZyBhdmFpbGFibGVBdXRoID0gQ1VSTEFVVEhfTk9ORTsKLSAg
ICAgICAgaWYgKGF1dG8gYXV0aCA9IG1fY3VybEhhbmRsZS0+Z2V0SHR0cEF1dGhBdmFpbCgpKQot
ICAgICAgICAgICAgYXZhaWxhYmxlQXV0aCA9ICphdXRoOworICAgIGlmICghc3RhdHVzQ29kZSAm
JiAoaHR0cENvbm5lY3RDb2RlID09IDIwMCkpIHsKKyAgICAgICAgLy8gQ29tZXMgaGVyZSB3aGVu
IHJlY2VpdmluZyAyMDAgQ29ubmVjdGlvbiBFc3RhYmxpc2hlZC4gSnVzdCByZXR1cm4uCisgICAg
ICAgIG1fcmVzcG9uc2UgPSBDdXJsUmVzcG9uc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVC
eXRlczsKKyAgICB9CiAKLSAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICAgICAg
ZGlkUmVjZWl2ZUFsbEhlYWRlcnModXJsLCBodHRwQ29kZSwgY29udGVudExlbmd0aCwgY29ubmVj
dFBvcnQsIGF2YWlsYWJsZUF1dGgpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29weVVybCA9IHVy
bC5pc29sYXRlZENvcHkoKSwgaHR0cENvZGUsIGNvbnRlbnRMZW5ndGgsIGNvbm5lY3RQb3J0LCBh
dmFpbGFibGVBdXRoXSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX2hh
bmRsZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmRpZFJlY2VpdmVBbGxIZWFkZXJzKGNvcHlVcmwsIGh0dHBDb2RlLCBjb250ZW50
TGVuZ3RoLCBjb25uZWN0UG9ydCwgYXZhaWxhYmxlQXV0aCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHRoZSBGT0xMT1dMT0NBVElPTiBv
cHRpb24gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cmwgaGFuZGxlIHRoZW4KLSAgICAgICAgLy8gY3Vy
bCB3aWxsIGZvbGxvdyB0aGUgcmVkaXJlY3Rpb25zIGludGVybmFsbHkuIFRodXMgdGhpcyBoZWFk
ZXIgY2FsbGJhY2sKLSAgICAgICAgLy8gd2lsbCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uZSB0aW1l
IHdpdGggdGhlIGxpbmUgc3RhcnRpbmcgIkhUVFAiIGZvciBvbmUgam9iLgotICAgICAgICBpZiAo
aXNNYWluVGhyZWFkKCkpCi0gICAgICAgICAgICByZXNwb25zZSgpLmFwcGVuZEhUVFBIZWFkZXJG
aWVsZChoZWFkZXIpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29weUhlYWRlciA9IGhlYWRlci5p
c29sYXRlZENvcHkoKSBdIHsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1f
aGFuZGxlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgLy8gSWYgdGhlIEZPTExP
V0xPQ0FUSU9OIG9wdGlvbiBpcyBlbmFibGVkIGZvciB0aGUgY3VybCBoYW5kbGUgdGhlbgorICAg
IC8vIGN1cmwgd2lsbCBmb2xsb3cgdGhlIHJlZGlyZWN0aW9ucyBpbnRlcm5hbGx5LiBUaHVzIHRo
aXMgaGVhZGVyIGNhbGxiYWNrCisgICAgLy8gd2lsbCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uZSB0
aW1lIHdpdGggdGhlIGxpbmUgc3RhcnRpbmcgIkhUVFAiIGZvciBvbmUgam9iLgogCi0gICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVzcG9uc2UoKS5hcHBlbmRIVFRQSGVhZGVyRmllbGQo
Y29weUhlYWRlcik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgIG1fcmVzcG9uc2Uu
dXJsID0gbV9jdXJsSGFuZGxlLT5nZXRFZmZlY3RpdmVVUkwoKTsKKyAgICBtX3Jlc3BvbnNlLnN0
YXR1c0NvZGUgPSBzdGF0dXNDb2RlOworCisgICAgaWYgKGF1dG8gbGVuZ3RoID0gbV9jdXJsSGFu
ZGxlLT5nZXRDb250ZW50TGVuZ3RoKCkpCisgICAgICAgIG1fcmVzcG9uc2UuZXhwZWN0ZWRDb250
ZW50TGVuZ3RoID0gKmxlbmd0aDsKKworICAgIGlmIChhdXRvIHBvcnQgPSBtX2N1cmxIYW5kbGUt
PmdldFByaW1hcnlQb3J0KCkpCisgICAgICAgIG1fcmVzcG9uc2UuY29ubmVjdFBvcnQgPSAqcG9y
dDsKKworICAgIGlmIChhdXRvIGF1dGggPSBtX2N1cmxIYW5kbGUtPmdldEh0dHBBdXRoQXZhaWwo
KSkKKyAgICAgICAgbV9yZXNwb25zZS5hdmFpbGFibGVIdHRwQXV0aCA9ICphdXRoOworCisgICAg
aWYgKGlzTWFpblRocmVhZCgpKQorICAgICAgICBkaWRSZWNlaXZlQWxsSGVhZGVycyhtX3Jlc3Bv
bnNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCByZXNwb25zZSA9IG1fcmVzcG9uc2UuaXNvbGF0ZWRDb3B5KCld
IHsKKyAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkUmVjZWl2ZUFsbEhl
YWRlcnMocmVzcG9uc2UpOworICAgICAgICB9KTsKICAgICB9CiAKLSAgICByZXR1cm4gaGVhZGVy
Lmxlbmd0aCgpOworICAgIHJldHVybiByZWNlaXZlQnl0ZXM7CiB9CiAKIC8vIGNhbGxlZCB3aXRo
IGRhdGEgYWZ0ZXIgYWxsIGhlYWRlcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZCB2aWEgaGVhZGVyQ2Fs
bGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmgKaW5kZXggYzg2NDAwMzM3MGIu
Ljk1NWQxZjU0NjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuaApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgogI2luY2x1ZGUgIkN1cmxKb2JN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3VybFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiQ3VybFNTTFZl
cmlmaWVyLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFTdHJlYW1DdXJsLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNl
dHVwQXV0aGVudGljYXRpb24oKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUFsbEhlYWRlcnMoVVJM
LCBsb25nIGh0dHBDb2RlLCBsb25nIGxvbmcgY29udGVudExlbmd0aCwgdWludDE2X3QgY29ubmVj
dFBvcnQsIGxvbmcgYXZhaWxhYmxlSHR0cEF1dGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUFsbEhl
YWRlcnMoY29uc3QgQ3VybFJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudERh
dGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJik7CiAgICAgdm9pZCBoYW5kbGVMb2NhbFJlY2VpdmVSZXNw
b25zZSgpOwogICAgIHZvaWQgcHJlcGFyZVNlbmREYXRhKGNoYXIqLCBzaXplX3QgYmxvY2tTaXpl
LCBzaXplX3QgbnVtYmVyT2ZCbG9ja3MpOwpAQCAtMTIyLDYgKzEyMyw4IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPGNoYXI+IG1fcG9zdEJ5dGVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXJsSGFu
ZGxlPiBtX2N1cmxIYW5kbGU7CiAgICAgQ3VybFNTTFZlcmlmaWVyIG1fc3NsVmVyaWZpZXI7Cisg
ICAgQ3VybFJlc3BvbnNlIG1fcmVzcG9uc2U7CisgICAgYm9vbCBtX2RpZE5vdGlmeVJlc3BvbnNl
IHsgZmFsc2UgfTsKICAgICAvLyBVc2VkIGJ5IGJvdGggdGhyZWFkcy4KICAgICBib29sIG1faXNT
eW5jUmVxdWVzdCB7IGZhbHNlIH07CiAgICAgQ29uZGl0aW9uIG1fd29ya2VyVGhyZWFkQ29uZGl0
aW9uVmFyaWFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlUmVzcG9uc2UuaAppbmRleCBiNjNkMjhhMGFiNS4uM2FiNzA4MDFlNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZVJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlUmVzcG9uc2UuaApAQCAtMzIsMjEgKzMyLDIxIEBAIHR5cGVkZWYgc3RydWN0IF9DRlVS
TFJlc3BvbnNlKiBDRlVSTFJlc3BvbnNlUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIEN1cmxSZXNwb25zZTsKKwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZSA6IHB1YmxpYyBSZXNv
dXJjZVJlc3BvbnNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUmVzb3VyY2VSZXNwb25zZSgpCi0gICAg
ICAgIDogbV9yZXNwb25zZUZpcmVkKGZhbHNlKQorICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VC
YXNlKCkKICAgICB7CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXNwb25zZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgbG9uZyBsb25nIGV4cGVjdGVkTGVuZ3RoLCBjb25z
dCBTdHJpbmcmIHRleHRFbmNvZGluZ05hbWUpCi0gICAgICAgIDogUmVzb3VyY2VSZXNwb25zZUJh
c2UodXJsLCBtaW1lVHlwZSwgZXhwZWN0ZWRMZW5ndGgsIHRleHRFbmNvZGluZ05hbWUpLAotICAg
ICAgICAgIG1fcmVzcG9uc2VGaXJlZChmYWxzZSkKKyAgICAgICAgOiBSZXNvdXJjZVJlc3BvbnNl
QmFzZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZExlbmd0aCwgdGV4dEVuY29kaW5nTmFtZSkKICAg
ICB7CiAgICAgfQogCi0gICAgdm9pZCBzZXRSZXNwb25zZUZpcmVkKGJvb2wgZmlyZWQpIHsgbV9y
ZXNwb25zZUZpcmVkID0gZmlyZWQ7IH0KLSAgICBib29sIHJlc3BvbnNlRmlyZWQoKSB7IHJldHVy
biBtX3Jlc3BvbnNlRmlyZWQ7IH0KKyAgICBSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEN1cmxSZXNw
b25zZSYpOwogCiAgICAgdm9pZCBhcHBlbmRIVFRQSGVhZGVyRmllbGQoY29uc3QgU3RyaW5nJik7
CiAKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgcGxhdGZvcm1TdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRTdGF0dXNMaW5lKGNvbnN0IFN0cmlu
ZyYpOwotCi0gICAgYm9vbCBtX3Jlc3BvbnNlRmlyZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VSZXNwb25zZUN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlUmVzcG9uc2VDdXJsLmNwcAppbmRleCBlOTNhNWU0ZTg0My4uOWJiM2Nm
ZjUyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZVJlc3BvbnNlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlUmVzcG9uc2VDdXJsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IFVTRShDVVJMKQogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKIAorI2luY2x1ZGUgIkN1
cmxSZXNwb25zZS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTc1LDEyICs3NiwyNCBAQCBib29sIFJlc291cmNlUmVzcG9uc2U6OmlzQXBwZW5k
YWJsZUhlYWRlcihjb25zdCBTdHJpbmcgJmtleSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1Jl
c291cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9uc2UoY29uc3QgQ3VybFJlc3BvbnNlJiByZXNw
b25zZSkKKyAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHJlc3BvbnNlLnVybCwgIiIsIHJlc3Bv
bnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCwgIiIpCit7CisgICAgc2V0SFRUUFN0YXR1c0NvZGUo
cmVzcG9uc2Uuc3RhdHVzQ29kZSk7CisKKyAgICBmb3IgKGF1dG8gaGVhZGVyIDogcmVzcG9uc2Uu
aGVhZGVycykKKyAgICAgICAgYXBwZW5kSFRUUEhlYWRlckZpZWxkKGhlYWRlcik7CisKKyAgICBz
ZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGh0dHBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpKTsK
KyAgICBzZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShodHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkpOworfQorCiB2b2lkIFJl
c291cmNlUmVzcG9uc2U6OmFwcGVuZEhUVFBIZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIGhlYWRl
cikKIHsKLSAgICBpbnQgc3BsaXRQb3Npc3Rpb24gPSBoZWFkZXIuZmluZCgiOiIpOworICAgIGF1
dG8gc3BsaXRQb3Npc3Rpb24gPSBoZWFkZXIuZmluZCgiOiIpOwogICAgIGlmIChzcGxpdFBvc2lz
dGlvbiAhPSBub3RGb3VuZCkgewotICAgICAgICBTdHJpbmcga2V5ID0gaGVhZGVyLmxlZnQoc3Bs
aXRQb3Npc3Rpb24pLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgICAgICBTdHJpbmcgdmFsdWUgPSBo
ZWFkZXIuc3Vic3RyaW5nKHNwbGl0UG9zaXN0aW9uICsgMSkuc3RyaXBXaGl0ZVNwYWNlKCk7Cisg
ICAgICAgIGF1dG8ga2V5ID0gaGVhZGVyLmxlZnQoc3BsaXRQb3Npc3Rpb24pLnN0cmlwV2hpdGVT
cGFjZSgpOworICAgICAgICBhdXRvIHZhbHVlID0gaGVhZGVyLnN1YnN0cmluZyhzcGxpdFBvc2lz
dGlvbiArIDEpLnN0cmlwV2hpdGVTcGFjZSgpOwogCiAgICAgICAgIGlmIChpc0FwcGVuZGFibGVI
ZWFkZXIoa2V5KSkKICAgICAgICAgICAgIGFkZEhUVFBIZWFkZXJGaWVsZChrZXksIHZhbHVlKTsK
QEAgLTk0LDE0ICsxMDcsMTQgQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjphcHBlbmRIVFRQSGVh
ZGVyRmllbGQoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiAKIHZvaWQgUmVzb3VyY2VSZXNwb25zZTo6
c2V0U3RhdHVzTGluZShjb25zdCBTdHJpbmcmIGhlYWRlcikKIHsKLSAgICBTdHJpbmcgc3RhdHVz
TGluZSA9IGhlYWRlci5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICBhdXRvIHN0YXR1c0xpbmUgPSBo
ZWFkZXIuc3RyaXBXaGl0ZVNwYWNlKCk7CiAKLSAgICBpbnQgaHR0cFZlcnNpb25FbmRQb3NpdGlv
biA9IHN0YXR1c0xpbmUuZmluZCgiICIpOwotICAgIGludCBzdGF0dXNDb2RlRW5kUG9zaXRpb24g
PSBub3RGb3VuZDsKKyAgICBhdXRvIGh0dHBWZXJzaW9uRW5kUG9zaXRpb24gPSBzdGF0dXNMaW5l
LmZpbmQoIiAiKTsKKyAgICBhdXRvIHN0YXR1c0NvZGVFbmRQb3NpdGlvbiA9IG5vdEZvdW5kOwog
CiAgICAgLy8gRXh0cmFjdCB0aGUgaHR0cCB2ZXJzaW9uCiAgICAgaWYgKGh0dHBWZXJzaW9uRW5k
UG9zaXRpb24gIT0gbm90Rm91bmQpIHsKLSAgICAgICAgU3RyaW5nIGh0dHBWZXJzaW9uID0gc3Rh
dHVzTGluZS5sZWZ0KGh0dHBWZXJzaW9uRW5kUG9zaXRpb24pOworICAgICAgICBhdXRvIGh0dHBW
ZXJzaW9uID0gc3RhdHVzTGluZS5sZWZ0KGh0dHBWZXJzaW9uRW5kUG9zaXRpb24pOwogICAgICAg
ICBzZXRIVFRQVmVyc2lvbihodHRwVmVyc2lvbi5zdHJpcFdoaXRlU3BhY2UoKSk7CiAKICAgICAg
ICAgc3RhdHVzTGluZSA9IHN0YXR1c0xpbmUuc3Vic3RyaW5nKGh0dHBWZXJzaW9uRW5kUG9zaXRp
b24gKyAxKS5zdHJpcFdoaXRlU3BhY2UoKTsKQEAgLTExMCw3ICsxMjMsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnNldFN0YXR1c0xpbmUoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiAKICAgICAv
LyBFeHRyYWN0IHRoZSBodHRwIHN0YXR1cyB0ZXh0CiAgICAgaWYgKHN0YXR1c0NvZGVFbmRQb3Np
dGlvbiAhPSBub3RGb3VuZCkgewotICAgICAgICBTdHJpbmcgc3RhdHVzVGV4dCA9IHN0YXR1c0xp
bmUuc3Vic3RyaW5nKHN0YXR1c0NvZGVFbmRQb3NpdGlvbiArIDEpOworICAgICAgICBhdXRvIHN0
YXR1c1RleHQgPSBzdGF0dXNMaW5lLnN1YnN0cmluZyhzdGF0dXNDb2RlRW5kUG9zaXRpb24gKyAx
KTsKICAgICAgICAgc2V0SFRUUFN0YXR1c1RleHQoc3RhdHVzVGV4dC5zdHJpcFdoaXRlU3BhY2Uo
KSk7CiAgICAgfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>