<?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>43087</bug_id>
          
          <creation_ts>2010-07-27 15:39:26 -0700</creation_ts>
          <short_desc>Clean up handling of strings at the WebKit2 API layer</short_desc>
          <delta_ts>2010-07-27 15:48:53 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256898</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-27 15:39:26 -0700</bug_when>
    <thetext>Clean up handling of strings at the WebKit2 API layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256901</commentid>
    <comment_count>1</comment_count>
      <attachid>62758</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-27 15:42:03 -0700</bug_when>
    <thetext>Created attachment 62758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256904</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-27 15:48:53 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/64172.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62758</attachid>
            <date>2010-07-27 15:42:03 -0700</date>
            <delta_ts>2010-07-27 15:45:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>strings.diff</filename>
            <type>text/plain</type>
            <size>19693</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDE2OCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTAtMDctMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDg3CisgICAgICAg
IENsZWFuIHVwIGhhbmRsaW5nIG9mIHN0cmluZ3MgYXQgdGhlIFdlYktpdDIgQVBJIGxheWVyLgor
CisgICAgICAgIC0gQWx3YXlzIHVzZSB0aGUgImNvcHkiIHJ1bGUgZm9yIGZ1bmN0aW9ucyB0aGF0
IHJldHVybiBXS1N0cmluZ1JlZnMgb3IgV0tVUkxSZWZzLgorICAgICAgICAtIE5ldmVyIHJldHVy
biBhIG51bGwgV0tTdHJpbmdSZWYgb3IgV0tVUkxSZWYuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICh0b1JlZik6CisgICAgICAgICh0b1VSTFJlZik6
CisgICAgICAgICh0b0NvcGllZFJlZik6CisgICAgICAgICh0b0NvcGllZFVSTFJlZik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5jcHA6CisgICAgICAg
IChXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwpOgorICAgICAgICAoV0tCYWNr
Rm9yd2FyZExpc3RJdGVtQ29weVVSTCk6CisgICAgICAgIChXS0JhY2tGb3J3YXJkTGlzdEl0ZW1D
b3B5VGl0bGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0
ZW0uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHA6CisgICAgICAgIChX
S0ZyYW1lSXNNYWluRnJhbWUpOgorICAgICAgICAoV0tGcmFtZUNvcHlQcm92aXNpb25hbFVSTCk6
CisgICAgICAgIChXS0ZyYW1lQ29weVVSTCk6CisgICAgICAgIChXS0ZyYW1lR2V0UGFnZSk6Cisg
ICAgICAgIChXS0ZyYW1lUmV0YWluKToKKyAgICAgICAgKFdLRnJhbWVSZWxlYXNlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRpb25EYXRhLmNwcDoKKyAgICAgICAgKFdLTmF2aWdhdGlvbkRhdGFDb3B5VGl0
bGUpOgorICAgICAgICAoV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VDb3B5VGl0bGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlVUkwp
OgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlOYW1lKToKKyAgICAgICAgKFdLQnVuZGxlRnJh
bWVDb3B5Q291bnRlclZhbHVlKToKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVDb3B5TWFya2VyVGV4
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZy
YW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZU5vZGUuY3BwOgorICAgICAgICAoV0tCdW5kbGVOb2RlQ29weU5vZGVOYW1lKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAg
ICAgIChXS0J1bmRsZVBhZ2VDb3B5UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24pOgor
CiAyMDEwLTA3LTI3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggUGFnZUNsaWVudCBvd25lcnNoaXAgaW4gV2ViUGFnZVByb3h5CkluZGV4OiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTUgKzI5LDEyIEBACiAj
aW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5o
PgogCiAjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiAjaW5jbHVkZSAiV0tB
UElDYXN0V2luLmgiCiAjZW5kaWYKIAotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFN0
cmluZ0ltcGw7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbW11dGFibGVBcnJh
eTsKQEAgLTk0LDExICs5MSwzMiBAQCBpbmxpbmUgdHlwZW5hbWUgV2ViS2l0OjpJbXBsVHlwZUlu
Zm88VD46CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dHlwZW5hbWUgV2ViS2l0OjpJbXBs
VHlwZUluZm88VD46OkFQSVR5cGU+KHQpOwogfQogCi0vKiBTcGVjaWFsIGNhc2UgZm9yIFdLVVJM
UmVmIHdoaWNoIGFsc28gdXNlcyBTdHJpbmdJbXBsIGFzIGFuIGltcGxlbWVudGF0aW9uLiAqLwor
LyogU3BlY2lhbCBjYXNlcy4gKi8KKworaW5saW5lIFdLU3RyaW5nUmVmIHRvUmVmKFdlYkNvcmU6
OlN0cmluZ0ltcGwqIHN0cmluZykKK3sKKyAgICBXZWJDb3JlOjpTdHJpbmdJbXBsKiBpbXBsID0g
c3RyaW5nID8gc3RyaW5nIDogV2ViQ29yZTo6U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4oaW1wbCk7Cit9CisKK2lubGluZSBXS1VS
TFJlZiB0b1VSTFJlZihXZWJDb3JlOjpTdHJpbmdJbXBsKiBzdHJpbmcpCit7CisgICAgV2ViQ29y
ZTo6U3RyaW5nSW1wbCogaW1wbCA9IHN0cmluZyA/IHN0cmluZyA6IFdlYkNvcmU6OlN0cmluZ0lt
cGw6OmVtcHR5KCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V0tVUkxSZWY+KGltcGwp
OworfQorCitpbmxpbmUgV0tTdHJpbmdSZWYgdG9Db3BpZWRSZWYoY29uc3QgV2ViQ29yZTo6U3Ry
aW5nJiBzdHJpbmcpCit7CisgICAgV2ViQ29yZTo6U3RyaW5nSW1wbCogaW1wbCA9IHN0cmluZy5p
bXBsKCkgPyBzdHJpbmcuaW1wbCgpIDogV2ViQ29yZTo6U3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAg
ICBpbXBsLT5yZWYoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXS1N0cmluZ1JlZj4o
aW1wbCk7Cit9CiAKLWlubGluZSBXS1VSTFJlZiB0b1VSTFJlZihXZWJDb3JlOjpTdHJpbmdJbXBs
KiBzKQoraW5saW5lIFdLVVJMUmVmIHRvQ29waWVkVVJMUmVmKGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYgc3RyaW5nKQogewotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdLVVJMUmVmPihzKTsK
KyAgICBXZWJDb3JlOjpTdHJpbmdJbXBsKiBpbXBsID0gc3RyaW5nLmltcGwoKSA/IHN0cmluZy5p
bXBsKCkgOiBXZWJDb3JlOjpTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIGltcGwtPnJlZigpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdLVVJMUmVmPihpbXBsKTsKIH0KIAogaW5saW5l
IFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB0b1dLKFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIHR5cGUp
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5jcHAJKHJldmlzaW9uIDY0MTQ3KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTkgKzMwLDE5IEBA
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLVdLVVJMUmVmIFdLQmFja0ZvcndhcmRMaXN0
SXRlbUdldE9yaWdpbmFsVVJMKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQorV0tV
UkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weU9yaWdpbmFsVVJMKFdLQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtUmVmKQogewotICAgIHJldHVybiB0b1VSTFJlZih0b1dLKGl0ZW1SZWYp
LT5vcmlnaW5hbFVSTCgpLmltcGwoKSk7CisgICAgcmV0dXJuIHRvQ29waWVkVVJMUmVmKHRvV0so
aXRlbVJlZiktPm9yaWdpbmFsVVJMKCkpOwogfQogCi1XS1VSTFJlZiBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1HZXRVUkwoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCitXS1VSTFJlZiBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVt
UmVmKQogewotICAgIHJldHVybiB0b1VSTFJlZih0b1dLKGl0ZW1SZWYpLT51cmwoKS5pbXBsKCkp
OworICAgIHJldHVybiB0b0NvcGllZFVSTFJlZih0b1dLKGl0ZW1SZWYpLT51cmwoKSk7CiB9CiAK
LVdLU3RyaW5nUmVmIFdLQmFja0ZvcndhcmRMaXN0SXRlbUdldFRpdGxlKFdLQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtUmVmKQorV0tTdHJpbmdSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29w
eVRpdGxlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogewotICAgIHJldHVybiB0
b1JlZih0b1dLKGl0ZW1SZWYpLT50aXRsZSgpLmltcGwoKSk7CisgICAgcmV0dXJuIHRvQ29waWVk
UmVmKHRvV0soaXRlbVJlZiktPnRpdGxlKCkpOwogfQogCiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmV0YWluKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBp
dGVtUmVmKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtLmgJKHJldmlzaW9uIDY0MTQ3KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDkgQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS1VSTFJlZiBXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1HZXRPcmlnaW5hbFVSTChXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7Ci1X
S19FWFBPUlQgV0tVUkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtR2V0VVJMKFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZiBpdGVtKTsKLVdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1HZXRUaXRsZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CitXS19FWFBP
UlQgV0tVUkxSZWYgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weU9yaWdpbmFsVVJMKFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKK1dLX0VYUE9SVCBXS1VSTFJlZiBXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1Db3B5VVJMKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKK1dLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmIGl0ZW0pOwogCiBXS19FWFBPUlQgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IFdLQmFja0ZvcndhcmRMaXN0SXRlbVJldGFpbihXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRl
bSk7CiBXS19FWFBPUlQgdm9pZCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWxlYXNlKFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
RnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUu
Y3BwCShyZXZpc2lvbiA2NDE0NykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIGJvb2wgV0tGcmFtZUlzTWFpbkZyYW1lKFdLRnJhbWVSZWYgZnJhbWVSZWYpCiB7Ci0g
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSB0b1dLKGZyYW1lUmVmKTsKLSAgICByZXR1cm4gZnJh
bWUtPmlzTWFpbkZyYW1lKCk7CisgICAgcmV0dXJuIHRvV0soZnJhbWVSZWYpLT5pc01haW5GcmFt
ZSgpOwogfQogCiBXS0ZyYW1lTG9hZFN0YXRlIFdLRnJhbWVHZXRGcmFtZUxvYWRTdGF0ZShXS0Zy
YW1lUmVmIGZyYW1lUmVmKQpAQCAtNTIsMzMgKzUxLDI4IEBAIFdLRnJhbWVMb2FkU3RhdGUgV0tG
cmFtZUdldEZyYW1lTG9hZFN0YXQKICAgICByZXR1cm4ga1dLRnJhbWVMb2FkU3RhdGVGaW5pc2hl
ZDsKIH0KIAotV0tVUkxSZWYgV0tGcmFtZUdldFByb3Zpc2lvbmFsVVJMKFdLRnJhbWVSZWYgZnJh
bWVSZWYpCitXS1VSTFJlZiBXS0ZyYW1lQ29weVByb3Zpc2lvbmFsVVJMKFdLRnJhbWVSZWYgZnJh
bWVSZWYpCiB7Ci0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSB0b1dLKGZyYW1lUmVmKTsKLSAg
ICByZXR1cm4gdG9VUkxSZWYoZnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkuaW1wbCgpKTsKKyAgICBy
ZXR1cm4gdG9Db3BpZWRVUkxSZWYodG9XSyhmcmFtZVJlZiktPnByb3Zpc2lvbmFsVVJMKCkpOwog
fQogCi1XS1VSTFJlZiBXS0ZyYW1lR2V0VVJMKFdLRnJhbWVSZWYgZnJhbWVSZWYpCitXS1VSTFJl
ZiBXS0ZyYW1lQ29weVVSTChXS0ZyYW1lUmVmIGZyYW1lUmVmKQogewotICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gdG9XSyhmcmFtZVJlZik7Ci0gICAgcmV0dXJuIHRvVVJMUmVmKGZyYW1lLT51
cmwoKS5pbXBsKCkpOworICAgIHJldHVybiB0b0NvcGllZFVSTFJlZih0b1dLKGZyYW1lUmVmKS0+
dXJsKCkpOwogfQogCiBXS1BhZ2VSZWYgV0tGcmFtZUdldFBhZ2UoV0tGcmFtZVJlZiBmcmFtZVJl
ZikKIHsKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHRvV0soZnJhbWVSZWYpOwotICAgIHJl
dHVybiB0b1JlZihmcmFtZS0+cGFnZSgpKTsKKyAgICByZXR1cm4gdG9SZWYodG9XSyhmcmFtZVJl
ZiktPnBhZ2UoKSk7CiB9CiAKIFdLRnJhbWVSZWYgV0tGcmFtZVJldGFpbihXS0ZyYW1lUmVmIGZy
YW1lUmVmKQogewotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gdG9XSyhmcmFtZVJlZik7Ci0g
ICAgZnJhbWUtPnJlZigpOworICAgIHRvV0soZnJhbWVSZWYpLT5yZWYoKTsKICAgICByZXR1cm4g
ZnJhbWVSZWY7CiB9CiAKIHZvaWQgV0tGcmFtZVJlbGVhc2UoV0tGcmFtZVJlZiBmcmFtZVJlZikK
IHsKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHRvV0soZnJhbWVSZWYpOwotICAgIGZyYW1l
LT5kZXJlZigpOworICAgIHRvV0soZnJhbWVSZWYpLT5kZXJlZigpOwogfQpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWUuaAkocmV2aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDggQEAgdHlwZWRl
ZiBlbnVtIFdLRnJhbWVMb2FkU3RhdGUgV0tGcmFtZUxvYQogCiBXS19FWFBPUlQgYm9vbCBXS0Zy
YW1lSXNNYWluRnJhbWUoV0tGcmFtZVJlZiBmcmFtZSk7CiBXS19FWFBPUlQgV0tGcmFtZUxvYWRT
dGF0ZSBXS0ZyYW1lR2V0RnJhbWVMb2FkU3RhdGUoV0tGcmFtZVJlZiBmcmFtZSk7Ci1XS19FWFBP
UlQgV0tVUkxSZWYgV0tGcmFtZUdldFByb3Zpc2lvbmFsVVJMKFdLRnJhbWVSZWYgZnJhbWUpOwot
V0tfRVhQT1JUIFdLVVJMUmVmIFdLRnJhbWVHZXRVUkwoV0tGcmFtZVJlZiBmcmFtZSk7CitXS19F
WFBPUlQgV0tVUkxSZWYgV0tGcmFtZUNvcHlQcm92aXNpb25hbFVSTChXS0ZyYW1lUmVmIGZyYW1l
KTsKK1dLX0VYUE9SVCBXS1VSTFJlZiBXS0ZyYW1lQ29weVVSTChXS0ZyYW1lUmVmIGZyYW1lKTsK
IAogV0tfRVhQT1JUIFdLUGFnZVJlZiBXS0ZyYW1lR2V0UGFnZShXS0ZyYW1lUmVmIGZyYW1lKTsK
IApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5jcHAJ
KHJldmlzaW9uIDY0MTQ3KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwxNCBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCi1XS1N0cmluZ1JlZiBXS05hdmlnYXRpb25EYXRhR2V0VGl0bGUoV0tO
YXZpZ2F0aW9uRGF0YVJlZiBuYXZpZ2F0aW9uRGF0YVJlZikKK1dLU3RyaW5nUmVmIFdLTmF2aWdh
dGlvbkRhdGFDb3B5VGl0bGUoV0tOYXZpZ2F0aW9uRGF0YVJlZiBuYXZpZ2F0aW9uRGF0YVJlZikK
IHsKLSAgICByZXR1cm4gdG9SZWYodG9XSyhuYXZpZ2F0aW9uRGF0YVJlZiktPnRpdGxlKCkuaW1w
bCgpKTsKKyAgICByZXR1cm4gdG9Db3BpZWRSZWYodG9XSyhuYXZpZ2F0aW9uRGF0YVJlZiktPnRp
dGxlKCkpOwogfQogCi1XS1VSTFJlZiBXS05hdmlnYXRpb25EYXRhR2V0VVJMKFdLTmF2aWdhdGlv
bkRhdGFSZWYgbmF2aWdhdGlvbkRhdGFSZWYpCitXS1VSTFJlZiBXS05hdmlnYXRpb25EYXRhQ29w
eVVSTChXS05hdmlnYXRpb25EYXRhUmVmIG5hdmlnYXRpb25EYXRhUmVmKQogewotICAgIHJldHVy
biB0b1VSTFJlZih0b1dLKG5hdmlnYXRpb25EYXRhUmVmKS0+dXJsKCkuaW1wbCgpKTsKKyAgICBy
ZXR1cm4gdG9Db3BpZWRVUkxSZWYodG9XSyhuYXZpZ2F0aW9uRGF0YVJlZiktPnVybCgpKTsKIH0K
IAogV0tOYXZpZ2F0aW9uRGF0YVJlZiBXS05hdmlnYXRpb25EYXRhUmV0YWluKFdLTmF2aWdhdGlv
bkRhdGFSZWYgbmF2aWdhdGlvbkRhdGFSZWYpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRpb25EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0aW9uRGF0YS5oCShyZXZpc2lvbiA2NDE0NykKKysrIFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIs
OCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLTmF2
aWdhdGlvbkRhdGFHZXRUaXRsZShXS05hdmlnYXRpb25EYXRhUmVmIG5hdmlnYXRpb25EYXRhKTsK
LVdLX0VYUE9SVCBXS1VSTFJlZiBXS05hdmlnYXRpb25EYXRhR2V0VVJMKFdLTmF2aWdhdGlvbkRh
dGFSZWYgbmF2aWdhdGlvbkRhdGEpOworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLTmF2aWdhdGlv
bkRhdGFDb3B5VGl0bGUoV0tOYXZpZ2F0aW9uRGF0YVJlZiBuYXZpZ2F0aW9uRGF0YSk7CitXS19F
WFBPUlQgV0tVUkxSZWYgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoV0tOYXZpZ2F0aW9uRGF0YVJl
ZiBuYXZpZ2F0aW9uRGF0YSk7CiAKIFdLX0VYUE9SVCBXS05hdmlnYXRpb25EYXRhUmVmIFdLTmF2
aWdhdGlvbkRhdGFSZXRhaW4oV0tOYXZpZ2F0aW9uRGF0YVJlZiBuYXZpZ2F0aW9uRGF0YSk7CiBX
S19FWFBPUlQgdm9pZCBXS05hdmlnYXRpb25EYXRhUmVsZWFzZShXS05hdmlnYXRpb25EYXRhUmVm
IG5hdmlnYXRpb25EYXRhKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2
aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsOSArMTA2LDkgQEAgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tQYWdl
R2V0QmFja0ZvcndhcgogICAgIHJldHVybiB0b1JlZih0b1dLKHBhZ2VSZWYpLT5iYWNrRm9yd2Fy
ZExpc3QoKSk7CiB9CiAKLVdLU3RyaW5nUmVmIFdLUGFnZUdldFRpdGxlKFdLUGFnZVJlZiBwYWdl
UmVmKQorV0tTdHJpbmdSZWYgV0tQYWdlQ29weVRpdGxlKFdLUGFnZVJlZiBwYWdlUmVmKQogewot
ICAgIHJldHVybiB0b1JlZih0b1dLKHBhZ2VSZWYpLT5wYWdlVGl0bGUoKS5pbXBsKCkpOworICAg
IHJldHVybiB0b0NvcGllZFJlZih0b1dLKHBhZ2VSZWYpLT5wYWdlVGl0bGUoKSk7CiB9CiAKIFdL
RnJhbWVSZWYgV0tQYWdlR2V0TWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmKQpJbmRleDogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHJldmlzaW9uIDY0MTQ3KQorKysgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBXS19F
WFBPUlQgYm9vbCBXS1BhZ2VDYW5Hb0JhY2soV0tQYWdlUmVmCiBXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmIGl0ZW0pOwogV0tfRVhQT1JUIFdLQmFja0ZvcndhcmRMaXN0UmVmIFdLUGFnZUdl
dEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSk7CiAKLVdLX0VYUE9SVCBXS1N0cmluZ1Jl
ZiBXS1BhZ2VHZXRUaXRsZShXS1BhZ2VSZWYgcGFnZSk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYg
V0tQYWdlQ29weVRpdGxlKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdLRnJhbWVSZWYg
V0tQYWdlR2V0TWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBkb3VibGUgV0tQ
YWdlR2V0RXN0aW1hdGVkUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UpOwpJbmRleDogV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZy
YW1lLmNwcAkocmV2aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDIxICsz
NCwxNCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi1zdGF0aWMgV0tTdHJpbmdSZWYgY29waWVkU3RyaW5nKGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYgc3RyaW5nKQotewotICAgIFN0cmluZ0ltcGwqIGltcGwgPSBzdHJpbmcuaW1wbCgpID8gc3Ry
aW5nLmltcGwoKSA6IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgaW1wbC0+cmVmKCk7Ci0gICAg
cmV0dXJuIHRvUmVmKGltcGwpOwotfQotCiBib29sIFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmKQogewogICAgIHJldHVybiB0b1dLKGZyYW1lUmVmKS0+
aXNNYWluRnJhbWUoKTsKIH0KIAotV0tVUkxSZWYgV0tCdW5kbGVGcmFtZUdldFVSTChXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lUmVmKQorV0tVUkxSZWYgV0tCdW5kbGVGcmFtZUNvcHlVUkwoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZVJlZikKIHsKLSAgICByZXR1cm4gdG9VUkxSZWYodG9XSyhmcmFtZVJl
ZiktPnVybCgpLmltcGwoKSk7CisgICAgcmV0dXJuIHRvQ29waWVkVVJMUmVmKHRvV0soZnJhbWVS
ZWYpLT51cmwoKSk7CiB9CiAKIFdLQXJyYXlSZWYgV0tCdW5kbGVGcmFtZUNvcHlDaGlsZEZyYW1l
cyhXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmKQpAQCAtNzMsNyArNjYsNyBAQCBKU0dsb2JhbENv
bnRleHRSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTCiAKIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJh
bWVDb3B5TmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmKQogewotICAgIHJldHVybiBjb3Bp
ZWRTdHJpbmcodG9XSyhmcmFtZVJlZiktPm5hbWUoKSk7CisgICAgcmV0dXJuIHRvQ29waWVkUmVm
KHRvV0soZnJhbWVSZWYpLT5uYW1lKCkpOwogfQogCiBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVH
ZXRDb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oV0tCdW5kbGVGcmFtZVJlZiBmcmFt
ZVJlZiwgSlNPYmplY3RSZWYgZWxlbWVudCkKQEAgLTgzLDEwICs3NiwxMCBAQCBKU1ZhbHVlUmVm
IFdLQnVuZGxlRnJhbWVHZXRDb21wdXRlZFN0eWxlCiAKIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJh
bWVDb3B5Q291bnRlclZhbHVlKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIEpTT2JqZWN0UmVm
IGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGNvcGllZFN0cmluZyh0b1dLKGZyYW1lUmVmKS0+Y291
bnRlclZhbHVlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gdG9Db3BpZWRSZWYodG9XSyhmcmFtZVJl
ZiktPmNvdW50ZXJWYWx1ZShlbGVtZW50KSk7CiB9CiAKIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJh
bWVDb3B5TWFya2VyVGV4dChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBKU09iamVjdFJlZiBl
bGVtZW50KQogewotICAgIHJldHVybiBjb3BpZWRTdHJpbmcodG9XSyhmcmFtZVJlZiktPm1hcmtl
clRleHQoZWxlbWVudCkpOworICAgIHJldHVybiB0b0NvcGllZFJlZih0b1dLKGZyYW1lUmVmKS0+
bWFya2VyVGV4dChlbGVtZW50KSk7CiB9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHJldmlzaW9uIDY0
MTQ3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBXS19FWFBPUlQgYm9vbCBX
S0J1bmRsZUZyYW1lSXNNYWluRnJhbWUoCiBXS19FWFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZUZy
YW1lQ29weUNoaWxkRnJhbWVzKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogCiBXS19FWFBPUlQg
V0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNvcHlOYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUp
OwotV0tfRVhQT1JUIFdLVVJMUmVmIFdLQnVuZGxlRnJhbWVHZXRVUkwoV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSk7CitXS19FWFBPUlQgV0tVUkxSZWYgV0tCdW5kbGVGcmFtZUNvcHlVUkwoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSk7CiAKIFdLX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYgV0tCdW5k
bGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogCklu
ZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVOb2RlLmNwcAkocmV2aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzUsOCArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBXS1N0cmluZ1JlZiBX
S0J1bmRsZU5vZGVDb3B5Tm9kZU5hbWUoV0tCdW5kbGVOb2RlUmVmIG5vZGUpCiB7Ci0gICAgUmVm
UHRyPFN0cmluZ0ltcGw+IG5hbWUgPSB0b1dLKG5vZGUpLT5ub2RlTmFtZSgpLmltcGwoKTsKLSAg
ICByZXR1cm4gdG9SZWYobmFtZS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKKyAgICByZXR1cm4g
dG9Db3BpZWRSZWYodG9XSyhub2RlKS0+bm9kZU5hbWUoKSk7CiB9CiAKIFdLQnVuZGxlTm9kZVJl
ZiBXS0J1bmRsZU5vZGVHZXRQYXJlbnQoV0tCdW5kbGVOb2RlUmVmIG5vZGUpCkluZGV4OiBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcAkocmV2aXNpb24gNjQxNDcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyAr
NTgsNSBAQCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtCiAKIFdLU3Ry
aW5nUmVmIFdLQnVuZGxlUGFnZUNvcHlSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKLSAgICBXZWJDb3JlOjpTdHJpbmcgc3RyaW5nID0g
dG9XSyhwYWdlUmVmKS0+cmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oKTsKLSAgICBz
dHJpbmcuaW1wbCgpLT5yZWYoKTsKLSAgICByZXR1cm4gdG9SZWYoc3RyaW5nLmltcGwoKSk7Cisg
ICAgcmV0dXJuIHRvQ29waWVkUmVmKHRvV0socGFnZVJlZiktPnJlbmRlclRyZWVFeHRlcm5hbFJl
cHJlc2VudGF0aW9uKCkpOwogfQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjQxNjgpCisrKyBXZWJLaXRU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0y
NyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhdGNoIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDMwODcKKyAgICAgICAgQ2xlYW4gdXAgaGFuZGxpbmcgb2Ygc3Ry
aW5ncyBhdCB0aGUgV2ViS2l0MiBBUEkgbGF5ZXIuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9t
YWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRBbGVy
dCk6CisgICAgICAgIChydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChydW5KYXZhU2Ny
aXB0UHJvbXB0KToKKyAgICAgICAgKGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAg
ICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdXBkYXRlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZTpdKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV2ViQnVuZGxlL1dlYkJ1bmRsZU1h
aW4ubToKKyAgICAgICAgKF9kaWRDbGVhcldpbmRvd0ZvckZyYW1lKToKKwogMjAxMC0wNy0yNyAg
T2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgpJbmRleDogV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFj
L0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0JKHJldmlzaW9uIDY0MTQ3KQorKysgV2ViS2l0VG9v
bHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0JKHdvcmtpbmcgY29w
eSkKQEAgLTI4Miw3ICsyODIsMTAgQEAgc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdL
UGFnZVJlZgogewogICAgIE5TQWxlcnQqIGFsZXJ0ID0gW1tOU0FsZXJ0IGFsbG9jXSBpbml0XTsK
IAotICAgIENGVVJMUmVmIGNmVVJMID0gV0tVUkxDb3B5Q0ZVUkwoMCwgV0tGcmFtZUdldFVSTChm
cmFtZSkpOworICAgIFdLVVJMUmVmIHdrVVJMID0gV0tGcmFtZUNvcHlVUkwoZnJhbWUpOworICAg
IENGVVJMUmVmIGNmVVJMID0gV0tVUkxDb3B5Q0ZVUkwoMCwgd2tVUkwpOworICAgIFdLVVJMUmVs
ZWFzZSh3a1VSTCk7CisKICAgICBbYWxlcnQgc2V0TWVzc2FnZVRleHQ6W05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCJKYXZhU2NyaXB0IGFsZXJ0IGRpYWxvZyBmcm9tICVALiIsIFsoTlNVUkwg
KiljZlVSTCBhYnNvbHV0ZVN0cmluZ11dXTsKICAgICBDRlJlbGVhc2UoY2ZVUkwpOwogCkBAIC0z
MDAsNyArMzAzLDEwIEBAIHN0YXRpYyBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdLUGFnZVIK
IHsKICAgICBOU0FsZXJ0KiBhbGVydCA9IFtbTlNBbGVydCBhbGxvY10gaW5pdF07CiAKLSAgICBD
RlVSTFJlZiBjZlVSTCA9IFdLVVJMQ29weUNGVVJMKDAsIFdLRnJhbWVHZXRVUkwoZnJhbWUpKTsK
KyAgICBXS1VSTFJlZiB3a1VSTCA9IFdLRnJhbWVDb3B5VVJMKGZyYW1lKTsKKyAgICBDRlVSTFJl
ZiBjZlVSTCA9IFdLVVJMQ29weUNGVVJMKDAsIHdrVVJMKTsKKyAgICBXS1VSTFJlbGVhc2Uod2tV
UkwpOworCiAgICAgW2FsZXJ0IHNldE1lc3NhZ2VUZXh0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyBmcm9tICVALiIsIFsoTlNVUkwgKiljZlVS
TCBhYnNvbHV0ZVN0cmluZ11dXTsKICAgICBDRlJlbGVhc2UoY2ZVUkwpOwogCkBAIC0zMjEsNyAr
MzI3LDEwIEBAIHN0YXRpYyBXS1N0cmluZ1JlZiBydW5KYXZhU2NyaXB0UHJvbXB0KFcKIHsKICAg
ICBOU0FsZXJ0KiBhbGVydCA9IFtbTlNBbGVydCBhbGxvY10gaW5pdF07CiAKLSAgICBDRlVSTFJl
ZiBjZlVSTCA9IFdLVVJMQ29weUNGVVJMKDAsIFdLRnJhbWVHZXRVUkwoZnJhbWUpKTsKKyAgICBX
S1VSTFJlZiB3a1VSTCA9IFdLRnJhbWVDb3B5VVJMKGZyYW1lKTsKKyAgICBDRlVSTFJlZiBjZlVS
TCA9IFdLVVJMQ29weUNGVVJMKDAsIHdrVVJMKTsKKyAgICBXS1VSTFJlbGVhc2Uod2tVUkwpOwor
CiAgICAgW2FsZXJ0IHNldE1lc3NhZ2VUZXh0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
SmF2YVNjcmlwdCBwcm9tcHQgZGlhbG9nIGZyb20gJUAuIiwgWyhOU1VSTCAqKWNmVVJMIGFic29s
dXRlU3RyaW5nXV1dOwogICAgIENGUmVsZWFzZShjZlVSTCk7CiAKQEAgLTM1OCw4ICszNjcsMTQg
QEAgc3RhdGljIFdLU3RyaW5nUmVmIHJ1bkphdmFTY3JpcHRQcm9tcHQoVwogCiBzdGF0aWMgdm9p
ZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0
aW9uRGF0YVJlZiBuYXZpZ2F0aW9uRGF0YSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKIHsKLSAgICBDRlN0cmluZ1JlZiB0aXRsZSA9IFdLU3RyaW5nQ29weUNGU3Ry
aW5nKDAsIFdLTmF2aWdhdGlvbkRhdGFHZXRUaXRsZShuYXZpZ2F0aW9uRGF0YSkpOwotICAgIENG
VVJMUmVmIHVybCA9IFdLVVJMQ29weUNGVVJMKDAsIFdLTmF2aWdhdGlvbkRhdGFHZXRVUkwobmF2
aWdhdGlvbkRhdGEpKTsKKyAgICBXS1N0cmluZ1JlZiB3a1RpdGxlID0gV0tOYXZpZ2F0aW9uRGF0
YUNvcHlUaXRsZShuYXZpZ2F0aW9uRGF0YSk7CisgICAgQ0ZTdHJpbmdSZWYgdGl0bGUgPSBXS1N0
cmluZ0NvcHlDRlN0cmluZygwLCB3a1RpdGxlKTsKKyAgICBXS1N0cmluZ1JlbGVhc2Uod2tUaXRs
ZSk7CisKKyAgICBXS1VSTFJlZiB3a1VSTCA9IFdLTmF2aWdhdGlvbkRhdGFDb3B5VVJMKG5hdmln
YXRpb25EYXRhKTsKKyAgICBDRlVSTFJlZiB1cmwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VSTCk7
CisgICAgV0tVUkxSZWxlYXNlKHdrVVJMKTsKKwogICAgIExPRyhAIkhpc3RvcnlDbGllbnQgLSBk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSAtIHRpdGxlOiAlQCAtIHVybDogJUAiLCB0aXRs
ZSwgdXJsKTsKICAgICBDRlJlbGVhc2UodGl0bGUpOwogICAgIENGUmVsZWFzZSh1cmwpOwpAQCAt
NDc1LDExICs0OTAsMTMgQEAgLSAodm9pZClkaWRGaW5pc2hQcm9ncmVzcwogCiAtICh2b2lkKXVw
ZGF0ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWUKIHsKLSAgICBXS1VS
TFJlZiB1cmwgPSBXS0ZyYW1lR2V0UHJvdmlzaW9uYWxVUkwoZnJhbWUpOworICAgIFdLVVJMUmVm
IHVybCA9IFdLRnJhbWVDb3B5UHJvdmlzaW9uYWxVUkwoZnJhbWUpOwogICAgIGlmICghdXJsKQog
ICAgICAgICByZXR1cm47CiAKICAgICBDRlVSTFJlZiBjZlNvdXJjZVVSTCA9IFdLVVJMQ29weUNG
VVJMKDAsIHVybCk7CisgICAgV0tVUkxSZWxlYXNlKHVybCk7CisKICAgICBbdXJsVGV4dCBzZXRT
dHJpbmdWYWx1ZTooTlNTdHJpbmcqKUNGVVJMR2V0U3RyaW5nKGNmU291cmNlVVJMKV07CiAgICAg
Q0ZSZWxlYXNlKGNmU291cmNlVVJMKTsKIH0KSW5kZXg6IFdlYktpdFRvb2xzL01pbmlCcm93c2Vy
L21hYy9XZWJCdW5kbGUvV2ViQnVuZGxlTWFpbi5tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L01pbmlCcm93c2VyL21hYy9XZWJCdW5kbGUvV2ViQnVuZGxlTWFpbi5tCShyZXZpc2lvbiA2NDE0
NykKKysrIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9XZWJCdW5kbGUvV2ViQnVuZGxlTWFp
bi5tCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2NywxMCBAQCB2b2lkIF9kaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZShXS0J1bmRsZVBhCiAKIHZvaWQgX2RpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIEpTR2xvYmFsQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3csIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CiB7Ci0gICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCBXS0J1bmRsZUZyYW1l
R2V0VVJMKFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShwYWdlKSkpOworICAgIFdLVVJMUmVmIHdr
VVJMID0gV0tCdW5kbGVGcmFtZUNvcHlVUkwoV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKHBhZ2Up
KTsKKyAgICBDRlVSTFJlZiBjZlVSTCA9IFdLVVJMQ29weUNGVVJMKDAsIHdrVVJMKTsKKyAgICBX
S1VSTFJlbGVhc2Uod2tVUkwpOworCiAgICAgTE9HKEAiV0tCdW5kbGVQYWdlQ2xpZW50IC0gX2Rp
ZENsZWFyV2luZG93Rm9yRnJhbWUgJUAiLCBbKE5TVVJMICopY2ZVUkwgYWJzb2x1dGVTdHJpbmdd
KTsKICAgICBDRlJlbGVhc2UoY2ZVUkwpOwogCg==
</data>
<flag name="review"
          id="50997"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>