<?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>31702</bug_id>
          
          <creation_ts>2009-11-19 20:53:32 -0800</creation_ts>
          <short_desc>WAI-ARIA: add support for aria-owns</short_desc>
          <delta_ts>2009-11-20 19:30:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</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="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165185</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 20:53:32 -0800</bug_when>
    <thetext>need to support aria-owns

http://www.w3.org/TR/wai-aria/#aria-owns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165207</commentid>
    <comment_count>1</comment_count>
      <attachid>43551</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 22:04:25 -0800</bug_when>
    <thetext>Created attachment 43551
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165208</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 22:05:19 -0800</bug_when>
    <thetext>we determined on the mac that aria-owns should be represented with an AXOwns attribute. This is what windows accessibility does with aria-owns. It basically leaves it up to the Assistive Tech to do what it wants with AXOwns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165209</commentid>
    <comment_count>3</comment_count>
      <attachid>43552</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 22:12:53 -0800</bug_when>
    <thetext>Created attachment 43552
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165210</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-19 22:13:08 -0800</bug_when>
    <thetext>first patch forgot my WebKitTools changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165442</commentid>
    <comment_count>5</comment_count>
      <attachid>43552</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2009-11-20 14:08:22 -0800</bug_when>
    <thetext>Comment on attachment 43552
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165444</commentid>
    <comment_count>6</comment_count>
      <attachid>43552</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-20 14:09:38 -0800</bug_when>
    <thetext>Comment on attachment 43552
patch

adding to commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165445</commentid>
    <comment_count>7</comment_count>
      <attachid>43552</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-20 14:12:07 -0800</bug_when>
    <thetext>Comment on attachment 43552
patch

removing from commit queue. will handle this myself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165553</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-11-20 19:30:14 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/51276</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43551</attachid>
            <date>2009-11-19 22:04:25 -0800</date>
            <delta_ts>2009-11-19 22:12:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13860</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTIyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTEtMTkgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXQUktQVJJQTogYWRkIHN1cHBvcnQgZm9yIGFyaWEtb3ducworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3MDIKKworICAgICAgICBSZS1vcmdhbml6
ZWQgaG93IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcyBhcmUgcmV0dXJuZWQgc28gCisgICAg
ICAgIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgYW4gZWxlbWVudCB0byBhZGQgYW4gYXR0cmlidXRl
IGJhc2VkIG9uIAorICAgICAgICBhIGR5bmFtaWMgdmFsdWUuIEluIHRoaXMgY2FzZSwgd2Ugb25s
eSB3YW50IHRvIGFkZCBBWE93biBpZiB0aGUgCisgICAgICAgIGVsZW1lbnQgYWN0dWFsbHkgc3Vw
cG9ydHMgYXJpYS1vd25zLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2FyaWEtb3ducy5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBv
cnRzQVJJQU93bnMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJp
YU93bnNFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFyaWFPd25zRWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c3VwcG9ydHNBUklBT3ducyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToKKyAg
ICAgICAgKC1bQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZU5hbWVzXSk6CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbjoKKwogMjAwOS0xMS0yMCAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gNTEyMjYp
CisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMjUsNiArMzI1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGxheW91
dENvdW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBib29sIGlzQVJJQUNvbnRy
b2woQWNjZXNzaWJpbGl0eVJvbGUpOwogICAgIHN0YXRpYyBib29sIGlzQVJJQUlucHV0KEFjY2Vz
c2liaWxpdHlSb2xlKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBT3ducygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGFyaWFPd25zRWxlbWVudHMoQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgeyB9OwogICAgIAogICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogZG9BY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2lu
dCYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CkluZGV4OiBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiA1MTIyNikKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyMSw2ICsxODIxLDI5IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0VmFsdWUKICAgICB9CiB9CiAKK3ZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYU93bnNFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3ImIGF4T2JqZWN0cykgY29uc3QKK3sKKyAgICBWZWN0b3I8RWxlbWVudCo+IGVsZW1l
bnRzOworICAgIGVsZW1lbnRzRnJvbUF0dHJpYnV0ZShlbGVtZW50cywgYXJpYV9vd25zQXR0cik7
CisgICAgCisgICAgdW5zaWduZWQgY291bnQgPSBlbGVtZW50cy5zaXplKCk7CisgICAgZm9yICh1
bnNpZ25lZCBrID0gMDsgayA8IGNvdW50OyArK2spIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXIgPSBlbGVtZW50c1trXS0+cmVuZGVyZXIoKTsKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShyZW5kZXIpOworICAgICAg
ICBpZiAob2JqKQorICAgICAgICAgICAgYXhPYmplY3RzLmFwcGVuZChvYmopOworICAgIH0KK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBwb3J0c0FSSUFPd25zKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGFyaWFPd25zID0gZ2V0QXR0cmlidXRlKGFyaWFfb3duc0F0dHIp
LnN0cmluZygpOworCisgICAgcmV0dXJuICFhcmlhT3ducy5pc0VtcHR5KCk7Cit9CisgICAgCiBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzRW5hYmxlZCgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKG1fcmVuZGVyZXIpOwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCShyZXZpc2lvbiA1MTIyNikKKysrIFdlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0MSw2ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBjb3JyZXNwb25kaW5nQ29udHJvbEZvckxhYmVsRWxlbWVudCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogY29ycmVzcG9uZGluZ0xhYmVsRm9yQ29udHJvbEVs
ZW1lbnQoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBhcmlhT3duc0VsZW1lbnRzKEFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3RvciYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0FSSUFPd25zKCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBhcmlhUm9s
ZUF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbmFsQ2hp
bGRPZkFyaWFSb2xlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGFyaWFSb2xlSGFzUHJlc2Vu
dGF0aW9uYWxDaGlsZHJlbigpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiA1
MTIyNikKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksMTAgQEAgdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRBdHRyaWJ1dGUgQCJBWFJl
cXVpcmVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5T3duc0F0dHJpYnV0ZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlPd25zQXR0cmlidXRlIEAiQVhPd25zIgorI2VuZGlmCisK
ICNpZmRlZiBCVUlMRElOR19PTl9USUdFUgogdHlwZWRlZiB1bnNpZ25lZCBOU1VJbnRlZ2VyOwog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlWYWx1ZURlc2NyaXB0aW9uQXR0cmlidXRlIEAiQVhWYWx1
ZURlc2NyaXB0aW9uIgpAQCAtNTY5LDYgKzU3MywxOCBAQCBzdGF0aWMgV2ViQ29yZVRleHRNYXJr
ZXJSYW5nZSogdGV4dE1hcmtlCiAgICAgcmV0dXJuIGFjdGlvbnM7CiB9CiAKKy0gKE5TQXJyYXkq
KWFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMKK3sKKyAgICBpZiAoIW1fb2Jq
ZWN0KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmFkZGl0aW9u
YWwgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGlmIChtX29iamVjdC0+c3VwcG9ydHNB
UklBT3ducygpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
T3duc0F0dHJpYnV0ZV07CisKKyAgICByZXR1cm4gYWRkaXRpb25hbDsKK30KKwogLSAoTlNBcnJh
eSopYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzCiB7CiAgICAgaWYgKCFtX29iamVjdCkKQEAg
LTYwMCwxMCArNjE2LDEwIEBAIHN0YXRpYyBXZWJDb3JlVGV4dE1hcmtlclJhbmdlKiB0ZXh0TWFy
a2UKICAgICBzdGF0aWMgTlNBcnJheSogZ3JvdXBBdHRycyA9IG5pbDsKICAgICBzdGF0aWMgTlNB
cnJheSogaW5wdXRJbWFnZUF0dHJzID0gbmlsOwogICAgIHN0YXRpYyBOU0FycmF5KiBwYXNzd29y
ZEZpZWxkQXR0cnMgPSBuaWw7Ci0gICAgc3RhdGljIE5TQXJyYXkgKnRhYkxpc3RBdHRycyA9IG5p
bDsKLSAgICBzdGF0aWMgTlNBcnJheSAqY29tYm9Cb3hBdHRycyA9IG5pbDsKLSAgICBzdGF0aWMg
TlNBcnJheSAqb3V0bGluZUF0dHJzID0gbmlsOwotICAgIHN0YXRpYyBOU0FycmF5ICpvdXRsaW5l
Um93QXR0cnMgPSBuaWw7CisgICAgc3RhdGljIE5TQXJyYXkqIHRhYkxpc3RBdHRycyA9IG5pbDsK
KyAgICBzdGF0aWMgTlNBcnJheSogY29tYm9Cb3hBdHRycyA9IG5pbDsKKyAgICBzdGF0aWMgTlNB
cnJheSogb3V0bGluZUF0dHJzID0gbmlsOworICAgIHN0YXRpYyBOU0FycmF5KiBvdXRsaW5lUm93
QXR0cnMgPSBuaWw7CiAgICAgTlNNdXRhYmxlQXJyYXkqIHRlbXBBcnJheTsKICAgICBpZiAoYXR0
cmlidXRlcyA9PSBuaWwpIHsKICAgICAgICAgYXR0cmlidXRlcyA9IFtbTlNBcnJheSBhbGxvY10g
aW5pdFdpdGhPYmplY3RzOiBOU0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlLApAQCAtODMwLDYy
ICs4NDYsNzAgQEAgc3RhdGljIFdlYkNvcmVUZXh0TWFya2VyUmFuZ2UqIHRleHRNYXJrZQogICAg
ICAgICBbdGVtcEFycmF5IHJlbGVhc2VdOwogICAgIH0KICAgICAKLSAgICBpZiAobV9vYmplY3Qt
PmlzUGFzc3dvcmRGaWVsZCgpKQotICAgICAgICByZXR1cm4gcGFzc3dvcmRGaWVsZEF0dHJzOwot
Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1dlYkFyZWEoKSkKLSAgICAgICAgcmV0dXJuIHdlYkFyZWFB
dHRyczsKKyAgICBOU0FycmF5ICpvYmplY3RBdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKICAgICAK
LSAgICBpZiAobV9vYmplY3QtPmlzVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRleHRB
dHRyczsKLQotICAgIGlmIChtX29iamVjdC0+aXNBbmNob3IoKSB8fCBtX29iamVjdC0+aXNJbWFn
ZSgpIHx8IG1fb2JqZWN0LT5pc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGFuY2hvckF0dHJzOwor
ICAgIGlmIChtX29iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgIG9iamVjdEF0dHJp
YnV0ZXMgPSBwYXNzd29yZEZpZWxkQXR0cnM7CiAKLSAgICBpZiAobV9vYmplY3QtPmlzRGF0YVRh
YmxlKCkpCi0gICAgICAgIHJldHVybiB0YWJsZUF0dHJzOwotICAgIGlmIChtX29iamVjdC0+aXNU
YWJsZVJvdygpKQotICAgICAgICByZXR1cm4gdGFibGVSb3dBdHRyczsKLSAgICBpZiAobV9vYmpl
Y3QtPmlzVGFibGVDb2x1bW4oKSkKLSAgICAgICAgcmV0dXJuIHRhYmxlQ29sQXR0cnM7Ci0gICAg
aWYgKG1fb2JqZWN0LT5pc1RhYmxlQ2VsbCgpKQotICAgICAgICByZXR1cm4gdGFibGVDZWxsQXR0
cnM7Ci0gICAgCi0gICAgaWYgKG1fb2JqZWN0LT5pc1RyZWUoKSkKLSAgICAgICAgcmV0dXJuIG91
dGxpbmVBdHRyczsKLSAgICBpZiAobV9vYmplY3QtPmlzVHJlZUl0ZW0oKSkKLSAgICAgICAgcmV0
dXJuIG91dGxpbmVSb3dBdHRyczsKKyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNXZWJBcmVhKCkp
CisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB3ZWJBcmVhQXR0cnM7CiAgICAgCi0gICAgaWYg
KG1fb2JqZWN0LT5pc0xpc3RCb3goKSB8fCBtX29iamVjdC0+aXNMaXN0KCkpCi0gICAgICAgIHJl
dHVybiBsaXN0Qm94QXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzVGV4dENvbnRyb2wo
KSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRleHRBdHRyczsKIAotICAgIGlmIChtX29i
amVjdC0+aXNDb21ib0JveCgpKQotICAgICAgICByZXR1cm4gY29tYm9Cb3hBdHRyczsKKyAgICBl
bHNlIGlmIChtX29iamVjdC0+aXNBbmNob3IoKSB8fCBtX29iamVjdC0+aXNJbWFnZSgpIHx8IG1f
b2JqZWN0LT5pc0xpbmsoKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IGFuY2hvckF0dHJz
OworCisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzRGF0YVRhYmxlKCkpCisgICAgICAgIG9iamVj
dEF0dHJpYnV0ZXMgPSB0YWJsZUF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1RhYmxl
Um93KCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJsZVJvd0F0dHJzOworICAgIGVs
c2UgaWYgKG1fb2JqZWN0LT5pc1RhYmxlQ29sdW1uKCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0
ZXMgPSB0YWJsZUNvbEF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1RhYmxlQ2VsbCgp
KQorICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gdGFibGVDZWxsQXR0cnM7CisgICAgCisgICAg
ZWxzZSBpZiAobV9vYmplY3QtPmlzVHJlZSgpKQorICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0g
b3V0bGluZUF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1RyZWVJdGVtKCkpCisgICAg
ICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBvdXRsaW5lUm93QXR0cnM7CisgICAgCisgICAgZWxzZSBp
ZiAobV9vYmplY3QtPmlzTGlzdEJveCgpIHx8IG1fb2JqZWN0LT5pc0xpc3QoKSkKKyAgICAgICAg
b2JqZWN0QXR0cmlidXRlcyA9IGxpc3RCb3hBdHRyczsKKworICAgIGVsc2UgaWYgKG1fb2JqZWN0
LT5pc0NvbWJvQm94KCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBjb21ib0JveEF0dHJz
OworICAgIAorICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1Byb2dyZXNzSW5kaWNhdG9yKCkgfHwg
bV9vYmplY3QtPmlzU2xpZGVyKCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSByYW5nZUF0
dHJzOworCisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzSW5wdXRJbWFnZSgpKQorICAgICAgICBv
YmplY3RBdHRyaWJ1dGVzID0gaW5wdXRJbWFnZUF0dHJzOworICAgIAorICAgIGVsc2UgaWYgKG1f
b2JqZWN0LT5pc0NvbnRyb2woKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IGNvbnRyb2xB
dHRyczsKKyAgICAKKyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNHcm91cCgpKQorICAgICAgICBv
YmplY3RBdHRyaWJ1dGVzID0gZ3JvdXBBdHRyczsKKyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNU
YWJMaXN0KCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJMaXN0QXR0cnM7CisgICAg
CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzTWVudSgpKQorICAgICAgICBvYmplY3RBdHRyaWJ1
dGVzID0gbWVudUF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc01lbnVCYXIoKSkKKyAg
ICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IG1lbnVCYXJBdHRyczsKKyAgICBlbHNlIGlmIChtX29i
amVjdC0+aXNNZW51QnV0dG9uKCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBtZW51QnV0
dG9uQXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzTWVudUl0ZW0oKSkKKyAgICAgICAg
b2JqZWN0QXR0cmlidXRlcyA9IG1lbnVJdGVtQXR0cnM7CisKKyAgICBOU0FycmF5ICphZGRpdGlv
bmFsQXR0cmlidXRlcyA9IFtzZWxmIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXNdOworICAgIGlmICggW2FkZGl0aW9uYWxBdHRyaWJ1dGVzIGNvdW50XSA+IDAgKQorICAgIHsK
KyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IFtvYmplY3RBdHRyaWJ1dGVzIGFycmF5QnlBZGRp
bmdPYmplY3RzRnJvbUFycmF5OmFkZGl0aW9uYWxBdHRyaWJ1dGVzXTsKKyAgICB9CiAgICAgCi0g
ICAgaWYgKG1fb2JqZWN0LT5pc1Byb2dyZXNzSW5kaWNhdG9yKCkgfHwgbV9vYmplY3QtPmlzU2xp
ZGVyKCkpCi0gICAgICAgIHJldHVybiByYW5nZUF0dHJzOwotCi0gICAgaWYgKG1fb2JqZWN0LT5p
c0lucHV0SW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIGlucHV0SW1hZ2VBdHRyczsKLSAgICAKLSAg
ICBpZiAobV9vYmplY3QtPmlzQ29udHJvbCgpKQotICAgICAgICByZXR1cm4gY29udHJvbEF0dHJz
OwotICAgIAotICAgIGlmIChtX29iamVjdC0+aXNHcm91cCgpKQotICAgICAgICByZXR1cm4gZ3Jv
dXBBdHRyczsKLSAgICBpZiAobV9vYmplY3QtPmlzVGFiTGlzdCgpKQotICAgICAgICByZXR1cm4g
dGFiTGlzdEF0dHJzOwotICAgIAotICAgIGlmIChtX29iamVjdC0+aXNNZW51KCkpCi0gICAgICAg
IHJldHVybiBtZW51QXR0cnM7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc01lbnVCYXIoKSkKLSAgICAg
ICAgcmV0dXJuIG1lbnVCYXJBdHRyczsKLSAgICBpZiAobV9vYmplY3QtPmlzTWVudUJ1dHRvbigp
KQotICAgICAgICByZXR1cm4gbWVudUJ1dHRvbkF0dHJzOwotICAgIGlmIChtX29iamVjdC0+aXNN
ZW51SXRlbSgpKQotICAgICAgICByZXR1cm4gbWVudUl0ZW1BdHRyczsKLQotICAgIHJldHVybiBh
dHRyaWJ1dGVzOworICAgIHJldHVybiBvYmplY3RBdHRyaWJ1dGVzOwogfQogCiAtIChWaXNpYmxl
UG9zaXRpb25SYW5nZSl2aXNpYmxlUG9zaXRpb25SYW5nZUZvclRleHRNYXJrZXJSYW5nZTooV2Vi
Q29yZVRleHRNYXJrZXJSYW5nZSopIHRleHRNYXJrZXJSYW5nZQpAQCAtMTcwNCw2ICsxNzI4LDEy
IEBAIHN0YXRpYyBOU1N0cmluZyogcm9sZVZhbHVlVG9OU1N0cmluZyhBY2MKICAgICBpZiAoW2F0
dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJlcXVpcmVkQXR0cmli
dXRlXSkKICAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDptX29iamVjdC0+
aXNSZXF1aXJlZCgpXTsKIAorICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
TlNBY2Nlc3NpYmlsaXR5T3duc0F0dHJpYnV0ZV0pIHsKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGFyaWFPd25zOworICAgICAgICBtX29i
amVjdC0+YXJpYU93bnNFbGVtZW50cyhhcmlhT3ducyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0
VG9OU0FycmF5KGFyaWFPd25zKTsKKyAgICB9CisgICAgCiAgICAgLy8gdGhpcyBpcyB1c2VkIG9u
bHkgYnkgRHVtcFJlbmRlclRyZWUgZm9yIHRlc3RpbmcKICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOkAiQVhDbGlja1BvaW50Il0pCiAgICAgICAgIHJldHVybiBbTlNWYWx1
ZSB2YWx1ZVdpdGhQb2ludDptX29iamVjdC0+Y2xpY2tQb2ludCgpXTsKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gNTEyMjYpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBAIGFyaWEt
bGFiZWxlZGJ5CiBhcmlhLWxhYmVsbGVkYnkKIGFyaWEtbGV2ZWwKIGFyaWEtbXVsdGlzZWxlY3Rh
YmxlCithcmlhLW93bnMKIGFyaWEtcHJlc3NlZAogYXJpYS1yZWFkb25seQogYXJpYS1yZXF1aXJl
ZApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTEyMjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMS0xOSAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdBSS1BUklBOiBhZGQgc3VwcG9ydCBmb3IgYXJpYS1vd25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTcwMgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1vd25zLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1vd25zLmh0
bWw6IEFkZGVkLgorCiAyMDA5LTExLTIwICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1vd25zLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9hcmlhLW93bnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1vd25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOCBAQAorSXRlbSAxCitJdGVtIDIKK0l0ZW0gMworQlVUVE9OCitSQURJ
TyBCVVRUT04KK1RoaXMgdGVzdHMgdGhhdCBhcmlhLW93bnMgY29ycmVjdGx5IGV4cG9zZXMgQVhP
d25zIGFuZCBjb3JyZWN0bHkgcmV0dXJucyB0aGUgcmlnaHQgZWxlbWVudHMKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ3JvdXAuYXJpYU93bnNFbGVtZW50QXRJbmRleCgw
KS5yb2xlIGlzICdBWFJvbGU6IEFYQnV0dG9uJworUEFTUyBncm91cC5hcmlhT3duc0VsZW1lbnRB
dEluZGV4KDApLnRpdGxlIGlzICdBWFRpdGxlOiBCVVRUT04nCitQQVNTIGdyb3VwLmFyaWFPd25z
RWxlbWVudEF0SW5kZXgoMSkucm9sZSBpcyAnQVhSb2xlOiBBWFJhZGlvQnV0dG9uJworUEFTUyBn
cm91cC5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDEpLnRpdGxlIGlzICdBWFRpdGxlOiBSQURJTyBC
VVRUT04nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1vd25z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvYXJpYS1vd25zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlk
PSJib2R5Ij4KKworPGRpdiB0YWJpbmRleD0wIGlkPSJncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEt
b3ducz0iZXh0cmEgZXh0cmEyIj4KKzxkaXY+SXRlbSAxPC9kaXY+Cis8ZGl2Pkl0ZW0gMjwvZGl2
PgorPGRpdj5JdGVtIDM8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJleHRyYSIgcm9sZT0iYnV0
dG9uIj5CVVRUT048L2Rpdj4KKzxkaXYgaWQ9ImV4dHJhMiIgcm9sZT0icmFkaW8iPlJBRElPIEJV
VFRPTjwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBh
cmlhLW93bnMgY29ycmVjdGx5IGV4cG9zZXMgQVhPd25zIGFuZCBjb3JyZWN0bHkgcmV0dXJucyB0
aGUgcmlnaHQgZWxlbWVudHMiKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKworICAgICAgICAgIHZhciBncm91cCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJncm91cCIpOworICAgICAgICAgIGdyb3VwLmZvY3VzKCk7CisgICAgICAgICAgZ3JvdXAgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICAgICAgICBzaG91bGRC
ZSgiZ3JvdXAuYXJpYU93bnNFbGVtZW50QXRJbmRleCgwKS5yb2xlIiwgIidBWFJvbGU6IEFYQnV0
dG9uJyIpOworICAgICAgICAgIHNob3VsZEJlKCJncm91cC5hcmlhT3duc0VsZW1lbnRBdEluZGV4
KDApLnRpdGxlIiwgIidBWFRpdGxlOiBCVVRUT04nIik7CisgICAgICAgICAgc2hvdWxkQmUoImdy
b3VwLmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMSkucm9sZSIsICInQVhSb2xlOiBBWFJhZGlvQnV0
dG9uJyIpOworICAgICAgICAgIHNob3VsZEJlKCJncm91cC5hcmlhT3duc0VsZW1lbnRBdEluZGV4
KDEpLnRpdGxlIiwgIidBWFRpdGxlOiBSQURJTyBCVVRUT04nIik7CisgICAgfQorCisgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43552</attachid>
            <date>2009-11-19 22:12:53 -0800</date>
            <delta_ts>2009-11-20 14:12:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13853</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTIyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTEtMTkgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXQUktQVJJQTogYWRkIHN1cHBvcnQgZm9yIGFyaWEtb3ducworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3MDIKKworICAgICAgICBSZS1vcmdhbml6
ZWQgaG93IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcyBhcmUgcmV0dXJuZWQgc28gCisgICAg
ICAgIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgYW4gZWxlbWVudCB0byBhZGQgYW4gYXR0cmlidXRl
IGJhc2VkIG9uIAorICAgICAgICBhIGR5bmFtaWMgdmFsdWUuIEluIHRoaXMgY2FzZSwgd2Ugb25s
eSB3YW50IHRvIGFkZCBBWE93biBpZiB0aGUgCisgICAgICAgIGVsZW1lbnQgYWN0dWFsbHkgc3Vw
cG9ydHMgYXJpYS1vd25zLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2FyaWEtb3ducy5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBv
cnRzQVJJQU93bnMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXJp
YU93bnNFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFyaWFPd25zRWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c3VwcG9ydHNBUklBT3ducyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXNdKToKKyAg
ICAgICAgKC1bQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZU5hbWVzXSk6CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbjoKKwogMjAwOS0xMS0xOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiA1MTIyNikKKysrIFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyNSw2ICszMjYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgbGF5b3V0Q291bnQo
KSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIGJvb2wgaXNBUklBQ29udHJvbChBY2Nl
c3NpYmlsaXR5Um9sZSk7CiAgICAgc3RhdGljIGJvb2wgaXNBUklBSW5wdXQoQWNjZXNzaWJpbGl0
eVJvbGUpOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFPd25zKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXJpYU93bnNFbGVtZW50cyhBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH07CiAgICAgCiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBkb0FjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29u
c3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNl
ZFVJRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDUx
MjI2KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIxLDYgKzE4MjEsMjkgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRWYWx1ZQogICAgIH0KIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphcmlhT3duc0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciYgYXhPYmplY3RzKSBjb25zdAoreworICAgIFZlY3RvcjxFbGVtZW50Kj4gZWxlbWVudHM7Cisg
ICAgZWxlbWVudHNGcm9tQXR0cmlidXRlKGVsZW1lbnRzLCBhcmlhX293bnNBdHRyKTsKKyAgICAK
KyAgICB1bnNpZ25lZCBjb3VudCA9IGVsZW1lbnRzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGsgPSAwOyBrIDwgY291bnQ7ICsraykgeworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlciA9
IGVsZW1lbnRzW2tdLT5yZW5kZXJlcigpOworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmogPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKHJlbmRlcik7CisgICAgICAgIGlmIChv
YmopCisgICAgICAgICAgICBheE9iamVjdHMuYXBwZW5kKG9iaik7CisgICAgfQorfQorCitib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQU93bnMoKSBjb25zdAorewor
ICAgIGlmICghbV9yZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgYXJpYU93bnMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9vd25zQXR0cikuc3RyaW5n
KCk7CisKKyAgICByZXR1cm4gIWFyaWFPd25zLmlzRW1wdHkoKTsKK30KKyAgICAKIGJvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNFbmFibGVkKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9yZW5kZXJlcik7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDUxMjI2KQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTQx
LDYgKzE0MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNv
cnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCgp
IGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIGFyaWFPd25zRWxlbWVudHMoQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yJikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQU93
bnMoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlQXR0cmli
dXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJp
YVJvbGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgYXJpYVJvbGVIYXNQcmVzZW50YXRpb25h
bENoaWxkcmVuKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0JKHJldmlzaW9uIDUxMjI2KQor
KysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSwxMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZSBAIkFYUmVxdWlyZWQi
CiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlPd25zQXR0cmlidXRlCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eU93bnNBdHRyaWJ1dGUgQCJBWE93bnMiCisjZW5kaWYKKwogI2lmZGVm
IEJVSUxESU5HX09OX1RJR0VSCiB0eXBlZGVmIHVuc2lnbmVkIE5TVUludGVnZXI7CiAjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVZhbHVlRGVzY3JpcHRpb25BdHRyaWJ1dGUgQCJBWFZhbHVlRGVzY3Jp
cHRpb24iCkBAIC01NjksNiArNTczLDE4IEBAIHN0YXRpYyBXZWJDb3JlVGV4dE1hcmtlclJhbmdl
KiB0ZXh0TWFya2UKICAgICByZXR1cm4gYWN0aW9uczsKIH0KIAorLSAoTlNBcnJheSopYWRkaXRp
b25hbEFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcworeworICAgIGlmICghbV9vYmplY3QpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBOU011dGFibGVBcnJheSAqYWRkaXRpb25hbCA9IFtO
U011dGFibGVBcnJheSBhcnJheV07CisgICAgaWYgKG1fb2JqZWN0LT5zdXBwb3J0c0FSSUFPd25z
KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPd25zQXR0
cmlidXRlXTsKKworICAgIHJldHVybiBhZGRpdGlvbmFsOworfQorCiAtIChOU0FycmF5KilhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlTmFtZXMKIHsKICAgICBpZiAoIW1fb2JqZWN0KQpAQCAtNjAwLDEw
ICs2MTYsMTAgQEAgc3RhdGljIFdlYkNvcmVUZXh0TWFya2VyUmFuZ2UqIHRleHRNYXJrZQogICAg
IHN0YXRpYyBOU0FycmF5KiBncm91cEF0dHJzID0gbmlsOwogICAgIHN0YXRpYyBOU0FycmF5KiBp
bnB1dEltYWdlQXR0cnMgPSBuaWw7CiAgICAgc3RhdGljIE5TQXJyYXkqIHBhc3N3b3JkRmllbGRB
dHRycyA9IG5pbDsKLSAgICBzdGF0aWMgTlNBcnJheSAqdGFiTGlzdEF0dHJzID0gbmlsOwotICAg
IHN0YXRpYyBOU0FycmF5ICpjb21ib0JveEF0dHJzID0gbmlsOwotICAgIHN0YXRpYyBOU0FycmF5
ICpvdXRsaW5lQXR0cnMgPSBuaWw7Ci0gICAgc3RhdGljIE5TQXJyYXkgKm91dGxpbmVSb3dBdHRy
cyA9IG5pbDsKKyAgICBzdGF0aWMgTlNBcnJheSogdGFiTGlzdEF0dHJzID0gbmlsOworICAgIHN0
YXRpYyBOU0FycmF5KiBjb21ib0JveEF0dHJzID0gbmlsOworICAgIHN0YXRpYyBOU0FycmF5KiBv
dXRsaW5lQXR0cnMgPSBuaWw7CisgICAgc3RhdGljIE5TQXJyYXkqIG91dGxpbmVSb3dBdHRycyA9
IG5pbDsKICAgICBOU011dGFibGVBcnJheSogdGVtcEFycmF5OwogICAgIGlmIChhdHRyaWJ1dGVz
ID09IG5pbCkgewogICAgICAgICBhdHRyaWJ1dGVzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0
aE9iamVjdHM6IE5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUsCkBAIC04MzAsNjIgKzg0Niw3
MCBAQCBzdGF0aWMgV2ViQ29yZVRleHRNYXJrZXJSYW5nZSogdGV4dE1hcmtlCiAgICAgICAgIFt0
ZW1wQXJyYXkgcmVsZWFzZV07CiAgICAgfQogICAgIAotICAgIGlmIChtX29iamVjdC0+aXNQYXNz
d29yZEZpZWxkKCkpCi0gICAgICAgIHJldHVybiBwYXNzd29yZEZpZWxkQXR0cnM7Ci0KLSAgICBp
ZiAobV9vYmplY3QtPmlzV2ViQXJlYSgpKQotICAgICAgICByZXR1cm4gd2ViQXJlYUF0dHJzOwor
ICAgIE5TQXJyYXkgKm9iamVjdEF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwogICAgIAotICAgIGlm
IChtX29iamVjdC0+aXNUZXh0Q29udHJvbCgpKQotICAgICAgICByZXR1cm4gdGV4dEF0dHJzOwot
Ci0gICAgaWYgKG1fb2JqZWN0LT5pc0FuY2hvcigpIHx8IG1fb2JqZWN0LT5pc0ltYWdlKCkgfHwg
bV9vYmplY3QtPmlzTGluaygpKQotICAgICAgICByZXR1cm4gYW5jaG9yQXR0cnM7CisgICAgaWYg
KG1fb2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9
IHBhc3N3b3JkRmllbGRBdHRyczsKIAotICAgIGlmIChtX29iamVjdC0+aXNEYXRhVGFibGUoKSkK
LSAgICAgICAgcmV0dXJuIHRhYmxlQXR0cnM7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc1RhYmxlUm93
KCkpCi0gICAgICAgIHJldHVybiB0YWJsZVJvd0F0dHJzOwotICAgIGlmIChtX29iamVjdC0+aXNU
YWJsZUNvbHVtbigpKQotICAgICAgICByZXR1cm4gdGFibGVDb2xBdHRyczsKLSAgICBpZiAobV9v
YmplY3QtPmlzVGFibGVDZWxsKCkpCi0gICAgICAgIHJldHVybiB0YWJsZUNlbGxBdHRyczsKLSAg
ICAKLSAgICBpZiAobV9vYmplY3QtPmlzVHJlZSgpKQotICAgICAgICByZXR1cm4gb3V0bGluZUF0
dHJzOwotICAgIGlmIChtX29iamVjdC0+aXNUcmVlSXRlbSgpKQotICAgICAgICByZXR1cm4gb3V0
bGluZVJvd0F0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1dlYkFyZWEoKSkKKyAgICAg
ICAgb2JqZWN0QXR0cmlidXRlcyA9IHdlYkFyZWFBdHRyczsKICAgICAKLSAgICBpZiAobV9vYmpl
Y3QtPmlzTGlzdEJveCgpIHx8IG1fb2JqZWN0LT5pc0xpc3QoKSkKLSAgICAgICAgcmV0dXJuIGxp
c3RCb3hBdHRyczsKKyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNUZXh0Q29udHJvbCgpKQorICAg
ICAgICBvYmplY3RBdHRyaWJ1dGVzID0gdGV4dEF0dHJzOwogCi0gICAgaWYgKG1fb2JqZWN0LT5p
c0NvbWJvQm94KCkpCi0gICAgICAgIHJldHVybiBjb21ib0JveEF0dHJzOworICAgIGVsc2UgaWYg
KG1fb2JqZWN0LT5pc0FuY2hvcigpIHx8IG1fb2JqZWN0LT5pc0ltYWdlKCkgfHwgbV9vYmplY3Qt
PmlzTGluaygpKQorICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gYW5jaG9yQXR0cnM7CisKKyAg
ICBlbHNlIGlmIChtX29iamVjdC0+aXNEYXRhVGFibGUoKSkKKyAgICAgICAgb2JqZWN0QXR0cmli
dXRlcyA9IHRhYmxlQXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzVGFibGVSb3coKSkK
KyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRhYmxlUm93QXR0cnM7CisgICAgZWxzZSBpZiAo
bV9vYmplY3QtPmlzVGFibGVDb2x1bW4oKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRh
YmxlQ29sQXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAg
ICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJsZUNlbGxBdHRyczsKKyAgICAKKyAgICBlbHNlIGlm
IChtX29iamVjdC0+aXNUcmVlKCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBvdXRsaW5l
QXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzVHJlZUl0ZW0oKSkKKyAgICAgICAgb2Jq
ZWN0QXR0cmlidXRlcyA9IG91dGxpbmVSb3dBdHRyczsKKyAgICAKKyAgICBlbHNlIGlmIChtX29i
amVjdC0+aXNMaXN0Qm94KCkgfHwgbV9vYmplY3QtPmlzTGlzdCgpKQorICAgICAgICBvYmplY3RB
dHRyaWJ1dGVzID0gbGlzdEJveEF0dHJzOworCisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzQ29t
Ym9Cb3goKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IGNvbWJvQm94QXR0cnM7CisgICAg
CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBtX29iamVj
dC0+aXNTbGlkZXIoKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHJhbmdlQXR0cnM7CisK
KyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNJbnB1dEltYWdlKCkpCisgICAgICAgIG9iamVjdEF0
dHJpYnV0ZXMgPSBpbnB1dEltYWdlQXR0cnM7CisgICAgCisgICAgZWxzZSBpZiAobV9vYmplY3Qt
PmlzQ29udHJvbCgpKQorICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gY29udHJvbEF0dHJzOwor
ICAgIAorICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc0dyb3VwKCkpCisgICAgICAgIG9iamVjdEF0
dHJpYnV0ZXMgPSBncm91cEF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5pc1RhYkxpc3Qo
KSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRhYkxpc3RBdHRyczsKKyAgICAKKyAgICBl
bHNlIGlmIChtX29iamVjdC0+aXNNZW51KCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBt
ZW51QXR0cnM7CisgICAgZWxzZSBpZiAobV9vYmplY3QtPmlzTWVudUJhcigpKQorICAgICAgICBv
YmplY3RBdHRyaWJ1dGVzID0gbWVudUJhckF0dHJzOworICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5p
c01lbnVCdXR0b24oKSkKKyAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IG1lbnVCdXR0b25BdHRy
czsKKyAgICBlbHNlIGlmIChtX29iamVjdC0+aXNNZW51SXRlbSgpKQorICAgICAgICBvYmplY3RB
dHRyaWJ1dGVzID0gbWVudUl0ZW1BdHRyczsKKworICAgIE5TQXJyYXkgKmFkZGl0aW9uYWxBdHRy
aWJ1dGVzID0gW3NlbGYgYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lc107Cisg
ICAgaWYgKCBbYWRkaXRpb25hbEF0dHJpYnV0ZXMgY291bnRdID4gMCApCisgICAgeworICAgICAg
ICBvYmplY3RBdHRyaWJ1dGVzID0gW29iamVjdEF0dHJpYnV0ZXMgYXJyYXlCeUFkZGluZ09iamVj
dHNGcm9tQXJyYXk6YWRkaXRpb25hbEF0dHJpYnV0ZXNdOworICAgIH0KICAgICAKLSAgICBpZiAo
bV9vYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBtX29iamVjdC0+aXNTbGlkZXIoKSkK
LSAgICAgICAgcmV0dXJuIHJhbmdlQXR0cnM7Ci0KLSAgICBpZiAobV9vYmplY3QtPmlzSW5wdXRJ
bWFnZSgpKQotICAgICAgICByZXR1cm4gaW5wdXRJbWFnZUF0dHJzOwotICAgIAotICAgIGlmICht
X29iamVjdC0+aXNDb250cm9sKCkpCi0gICAgICAgIHJldHVybiBjb250cm9sQXR0cnM7Ci0gICAg
Ci0gICAgaWYgKG1fb2JqZWN0LT5pc0dyb3VwKCkpCi0gICAgICAgIHJldHVybiBncm91cEF0dHJz
OwotICAgIGlmIChtX29iamVjdC0+aXNUYWJMaXN0KCkpCi0gICAgICAgIHJldHVybiB0YWJMaXN0
QXR0cnM7Ci0gICAgCi0gICAgaWYgKG1fb2JqZWN0LT5pc01lbnUoKSkKLSAgICAgICAgcmV0dXJu
IG1lbnVBdHRyczsKLSAgICBpZiAobV9vYmplY3QtPmlzTWVudUJhcigpKQotICAgICAgICByZXR1
cm4gbWVudUJhckF0dHJzOwotICAgIGlmIChtX29iamVjdC0+aXNNZW51QnV0dG9uKCkpCi0gICAg
ICAgIHJldHVybiBtZW51QnV0dG9uQXR0cnM7Ci0gICAgaWYgKG1fb2JqZWN0LT5pc01lbnVJdGVt
KCkpCi0gICAgICAgIHJldHVybiBtZW51SXRlbUF0dHJzOwotCi0gICAgcmV0dXJuIGF0dHJpYnV0
ZXM7CisgICAgcmV0dXJuIG9iamVjdEF0dHJpYnV0ZXM7CiB9CiAKIC0gKFZpc2libGVQb3NpdGlv
blJhbmdlKXZpc2libGVQb3NpdGlvblJhbmdlRm9yVGV4dE1hcmtlclJhbmdlOihXZWJDb3JlVGV4
dE1hcmtlclJhbmdlKikgdGV4dE1hcmtlclJhbmdlCkBAIC0xNzA0LDYgKzE3MzEsMTIgQEAgc3Rh
dGljIE5TU3RyaW5nKiByb2xlVmFsdWVUb05TU3RyaW5nKEFjYwogICAgIGlmIChbYXR0cmlidXRl
TmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRBdHRyaWJ1dGVdKQog
ICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOm1fb2JqZWN0LT5pc1JlcXVp
cmVkKCldOwogCisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vz
c2liaWxpdHlPd25zQXR0cmlidXRlXSkgeworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgYXJpYU93bnM7CisgICAgICAgIG1fb2JqZWN0LT5h
cmlhT3duc0VsZW1lbnRzKGFyaWFPd25zKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb05TQXJy
YXkoYXJpYU93bnMpOworICAgIH0KKyAgICAKICAgICAvLyB0aGlzIGlzIHVzZWQgb25seSBieSBE
dW1wUmVuZGVyVHJlZSBmb3IgdGVzdGluZwogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFs
VG9TdHJpbmc6QCJBWENsaWNrUG9pbnQiXSkKICAgICAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVl
V2l0aFBvaW50Om1fb2JqZWN0LT5jbGlja1BvaW50KCldOwpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCShyZXZpc2lvbiA1MTIyNikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAgYXJpYS1sYWJlbGVk
YnkKIGFyaWEtbGFiZWxsZWRieQogYXJpYS1sZXZlbAogYXJpYS1tdWx0aXNlbGVjdGFibGUKK2Fy
aWEtb3ducwogYXJpYS1wcmVzc2VkCiBhcmlhLXJlYWRvbmx5CiBhcmlhLXJlcXVpcmVkCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA1MTIyOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTExLTE5ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVp
emFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV0FJLUFSSUE6IGFkZCBzdXBwb3J0IGZvciBhcmlhLW93bnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNzAyCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMuaHRtbDogQWRk
ZWQuCisKIDIwMDktMTEtMjAgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEt
b3ducy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE4IEBACitJdGVtIDEKK0l0ZW0gMgorSXRlbSAzCitCVVRUT04KK1JBRElPIEJVVFRP
TgorVGhpcyB0ZXN0cyB0aGF0IGFyaWEtb3ducyBjb3JyZWN0bHkgZXhwb3NlcyBBWE93bnMgYW5k
IGNvcnJlY3RseSByZXR1cm5zIHRoZSByaWdodCBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBncm91cC5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDApLnJvbGUg
aXMgJ0FYUm9sZTogQVhCdXR0b24nCitQQVNTIGdyb3VwLmFyaWFPd25zRWxlbWVudEF0SW5kZXgo
MCkudGl0bGUgaXMgJ0FYVGl0bGU6IEJVVFRPTicKK1BBU1MgZ3JvdXAuYXJpYU93bnNFbGVtZW50
QXRJbmRleCgxKS5yb2xlIGlzICdBWFJvbGU6IEFYUmFkaW9CdXR0b24nCitQQVNTIGdyb3VwLmFy
aWFPd25zRWxlbWVudEF0SW5kZXgoMSkudGl0bGUgaXMgJ0FYVGl0bGU6IFJBRElPIEJVVFRPTicK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlhLW93bnMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlh
LW93bnMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L2FyaWEtb3ducy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCis8ZGl2IHRhYmluZGV4PTAgaWQ9Imdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1vd25zPSJl
eHRyYSBleHRyYTIiPgorPGRpdj5JdGVtIDE8L2Rpdj4KKzxkaXY+SXRlbSAyPC9kaXY+Cis8ZGl2
Pkl0ZW0gMzwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9ImV4dHJhIiByb2xlPSJidXR0b24iPkJV
VFRPTjwvZGl2PgorPGRpdiBpZD0iZXh0cmEyIiByb2xlPSJyYWRpbyI+UkFESU8gQlVUVE9OPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGFyaWEtb3du
cyBjb3JyZWN0bHkgZXhwb3NlcyBBWE93bnMgYW5kIGNvcnJlY3RseSByZXR1cm5zIHRoZSByaWdo
dCBlbGVtZW50cyIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
eworCisgICAgICAgICAgdmFyIGdyb3VwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyb3Vw
Iik7CisgICAgICAgICAgZ3JvdXAuZm9jdXMoKTsKKyAgICAgICAgICBncm91cCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgIHNob3VsZEJlKCJncm91
cC5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDApLnJvbGUiLCAiJ0FYUm9sZTogQVhCdXR0b24nIik7
CisgICAgICAgICAgc2hvdWxkQmUoImdyb3VwLmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMCkudGl0
bGUiLCAiJ0FYVGl0bGU6IEJVVFRPTiciKTsKKyAgICAgICAgICBzaG91bGRCZSgiZ3JvdXAuYXJp
YU93bnNFbGVtZW50QXRJbmRleCgxKS5yb2xlIiwgIidBWFJvbGU6IEFYUmFkaW9CdXR0b24nIik7
CisgICAgICAgICAgc2hvdWxkQmUoImdyb3VwLmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMSkudGl0
bGUiLCAiJ0FYVGl0bGU6IFJBRElPIEJVVFRPTiciKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>
<flag name="review"
          id="25288"
          type_id="1"
          status="+"
          setter="bdakin"
    />
    <flag name="commit-queue"
          id="25358"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>