<?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>64805</bug_id>
          
          <creation_ts>2011-07-19 09:16:04 -0700</creation_ts>
          <short_desc>[Chromium] WebAccessibilityObject needs information about tables</short_desc>
          <delta_ts>2011-07-19 13:48:12 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>439196</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-07-19 09:16:04 -0700</bug_when>
    <thetext>We need a few methods in WebAccessibilityObject to properly expose the accessible information from html tables (and ARIA tables) - for a table, we need the map from [row, col] to cell, and for a cell, we need its starting [row, col] indices and its rowspan and colspan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439209</commentid>
    <comment_count>1</comment_count>
      <attachid>101334</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-07-19 09:33:03 -0700</bug_when>
    <thetext>Created attachment 101334
Patch adds needed methods and refactors WebAccessibilityObject to use WebPrivatePtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439417</commentid>
    <comment_count>2</comment_count>
      <attachid>101334</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-19 13:48:08 -0700</bug_when>
    <thetext>Comment on attachment 101334
Patch adds needed methods and refactors WebAccessibilityObject to use WebPrivatePtr

Clearing flags on attachment: 101334

Committed r91297: &lt;http://trac.webkit.org/changeset/91297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439418</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-19 13:48:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101334</attachid>
            <date>2011-07-19 09:33:03 -0700</date>
            <delta_ts>2011-07-19 13:48:07 -0700</delta_ts>
            <desc>Patch adds needed methods and refactors WebAccessibilityObject to use WebPrivatePtr</desc>
            <filename>table-webkit2-upl.patch</filename>
            <type>text/plain</type>
            <size>23727</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MTI2MSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAg
QEAKKzIwMTEtMDctMTkgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisK
KyAgICAgICAgQWRkcyBzb21lIG1ldGhvZHMgdG8gcmV0cmlldmUgYWNjZXNzaWJsZSBpbmZvcm1h
dGlvbiBmcm9tIHRhYmxlcyBhbmQKKyAgICAgICAgdGFibGUgY2VsbHMuIEFsc28gcmVmYWN0b3Jz
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgdG8gdXNlIFdlYlByaXZhdGVQdHIKKyAgICAgICAgaW5z
dGVhZCBvZiBpdHMgb3duIGltcGxlbWVudGF0aW9uIHRoYXQgZGlkbid0IGFsbG93IGFjY2VzcyB0
byBzdWJjbGFzc2VzCisgICAgICAgIG9mIEFjY2Vzc2liaWxpdHlPYmplY3QuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxp
dHlPYmplY3Q6OmlzTnVsbCk6CisgICAgICAgICogc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXNldCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFzc2lnbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmVxdWFscyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjdGlvblZlcmIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjYW5TZXRGb2N1c0F0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNhblNldFZhbHVl
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNW
YWxpZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNoaWxkQ291
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjaGlsZEF0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RDaGlsZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmZvY3VzZWRDaGlsZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6Omxhc3RDaGlsZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6Om5leHRTaWJsaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6cGFyZW50T2JqZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6cHJldmlvdXNTaWJsaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2FuU2V0U2VsZWN0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FuY2hv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ2hlY2tlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29sbGFwc2VkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNGb2N1c2VkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNFbmFibGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNIb3ZlcmVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNJbmRldGVybWluYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNMaW5rZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc011bHRpU2VsZWN0YWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzT2ZmU2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQcmVzc2VkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNSZWFkT25seSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzU2VsZWN0ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Zpc2libGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Zpc2l0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoZWxwVGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmhlYWRpbmdMZXZlbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjprZXlib2FyZFNob3J0Y3V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6cGVyZm9ybURlZmF1bHRBY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlVmFsdWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldEZvY3VzZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QWNjZXNzaWJpbGl0eU9iamVjdDo6dXJsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU9iamVjdDo6bm9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6
aGFzQ29tcHV0ZWRTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmNvbXB1dGVkU3R5bGVEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNzaWJp
bGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3Q6OmxpbmVCcmVha3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJvd0NvdW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQWNjZXNz
aWJpbGl0eU9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJvdyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNlbGxDb2x1bW5JbmRleCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNlbGxDb2x1bW5TcGFuKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2VsbFJvd0luZGV4KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2VsbFJvd1NwYW4pOgorICAgICAgICAoV2ViS2l0
OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6b3BlcmF0b3I9KToKKyAgICAgICAg
KFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q+KToKKwogMjAxMS0wNy0xOSAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFdlYiBJ
bnNwZWN0b3I6IGFkZCBzYW5pdHkgdGVzdCBmb3Igc2hhcmVkIHdvcmtlciBpbnNwZWN0b3IKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlPYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0LmgJKHJldmlzaW9uIDkxMjYwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywx
NiArMzMsMTcgQEAKIAogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlSb2xlLmgiCiAjaW5jbHVk
ZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgogI2luY2x1ZGUgIldl
YlZlY3Rvci5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7IGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7IH0KIG5hbWVzcGFjZSBXVEYgeyB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc1JlZlB0cjsgfQogI2VuZGlmCiAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsgY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsgfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFByaXZhdGU7CiBjbGFzcyBXZWJOb2Rl
OwogY2xhc3MgV2ViRG9jdW1lbnQ7CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC01NSw4ICs1Niw4IEBA
IGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVibGljOgogICAgIH5XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0KCkgeyByZXNldCgpOyB9CiAKLSAgICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
KCkgOiBtX3ByaXZhdGUoMCkgeyB9Ci0gICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdChjb25zdCBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvKSA6IG1fcHJpdmF0ZSgwKSB7IGFzc2lnbihvKTsgfQor
ICAgIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKSB7IH0KKyAgICBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmIG8pIHsgYXNzaWduKG8pOyB9CiAgICAg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb3BlcmF0b3I9KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlP
YmplY3QmIG8pCiAgICAgewogICAgICAgICBhc3NpZ24obyk7CkBAIC02Nyw3ICs2OCw3IEBAIHB1
YmxpYzoKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlP
YmplY3QmKTsKICAgICBXRUJLSVRfQVBJIGJvb2wgZXF1YWxzKGNvbnN0IFdlYkFjY2Vzc2liaWxp
dHlPYmplY3QmKSBjb25zdDsKIAotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1f
cHJpdmF0ZTsgfQorICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlz
TnVsbCgpOyB9CiAKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhY2Nlc3NpYmlsaXR5RGVzY3Jp
cHRpb24oKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhY3Rpb25WZXJiKCkgY29u
c3Q7CkBAIC0xMjQsNiArMTI1LDE3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIGJvb2wgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgYm9vbCBsaW5lQnJl
YWtzKFdlYlZlY3RvcjxpbnQ+JikgY29uc3Q7CiAKKyAgICAvLyBGb3IgYSB0YWJsZQorICAgIFdF
QktJVF9BUEkgdW5zaWduZWQgY29sdW1uQ291bnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHVu
c2lnbmVkIHJvd0NvdW50KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0IGNlbGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQgY29sdW1uLCB1bnNpZ25lZCByb3cp
IGNvbnN0OworCisgICAgLy8gRm9yIGEgdGFibGUgY2VsbAorICAgIFdFQktJVF9BUEkgdW5zaWdu
ZWQgY2VsbENvbHVtbkluZGV4KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBjZWxs
Q29sdW1uU3BhbigpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdW5zaWduZWQgY2VsbFJvd0luZGV4
KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB1bnNpZ25lZCBjZWxsUm93U3BhbigpIGNvbnN0Owor
CiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdChj
b25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdD4mKTsKICAg
ICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q+Jik7CkBAIC0xMzEsOCArMTQzLDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhc3NpZ24oV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFByaXZhdGUqKTsKLSAgICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0UHJpdmF0ZSogbV9w
cml2YXRlOworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdD4g
bV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAko
cmV2aXNpb24gOTEyNjApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1
ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGUuaCIKKyNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBA
IC01MSwzMCArNTMsMjQgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1jbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0UHJpdmF0ZSA6IHB1YmxpYyBX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKLX07Ci0KIHZvaWQgV2ViQWNjZXNzaWJpbGl0
eU9iamVjdDo6cmVzZXQoKQogewotICAgIGFzc2lnbigwKTsKKyAgICBtX3ByaXZhdGUucmVzZXQo
KTsKIH0KIAogdm9pZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojphc3NpZ24oY29uc3QgV2ViS2l0
OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvdGhlcikKIHsKLSAgICBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0UHJpdmF0ZSogcCA9IGNvbnN0X2Nhc3Q8V2ViQWNjZXNzaWJpbGl0eU9iamVjdFByaXZh
dGUqPihvdGhlci5tX3ByaXZhdGUpOwotICAgIGlmIChwKQotICAgICAgICBwLT5yZWYoKTsKLSAg
ICBhc3NpZ24ocCk7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOwogfQogCiBib29s
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmVxdWFscyhjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0JiBuKSBjb25zdAogewotICAgIHJldHVybiAobV9wcml2YXRlID09IG4ubV9wcml2YXRlKTsK
KyAgICByZXR1cm4gKG1fcHJpdmF0ZS5nZXQoKSA9PSBuLm1fcHJpdmF0ZS5nZXQoKSk7CiB9CiAK
IFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRp
b24oKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKIAogICAgIG1fcHJpdmF0ZS0+dXBk
YXRlQmFja2luZ1N0b3JlKCk7CkBAIC04Myw3ICs3OSw3IEBAIFdlYlN0cmluZyBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0OjphY2Nlc3MKIAogV2ViU3RyaW5nIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFjdGlvblZlcmIoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3By
aXZhdGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKIAogICAgIG1fcHJp
dmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC05Miw3ICs4OCw3IEBAIFdlYlN0cmluZyBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY3Rpb24KIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUp
CisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTEwMSw3ICs5Nyw3IEBAIGJv
b2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2FuU2V0Rm9jdXMKIAogYm9vbCBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpjYW5TZXRWYWx1ZUF0dHJpYnV0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTExMCw3ICsx
MDYsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNhblNldFZhbHVlCiAKIGJvb2wg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNWYWxpZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3By
aXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTExOSw3ICsxMTUs
NyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzVmFsaWQoKSBjCiAKIHVuc2lnbmVk
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNoaWxkQ291bnQoKSBjb25zdAogewotICAgIGlmICgh
bV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTEyOCw3ICsxMjQs
NyBAQCB1bnNpZ25lZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjaGlsZENvCiAKIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2hpbGRBdCh1bnNpZ25lZCBp
bmRleCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm4gV2ViQWNjZXNzaWJpbGl0eU9iamVjdCgpOwogCiAgICAg
bV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTE0MCw3ICsxMzYsNyBAQCBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0IFdlYkFjY2Vzc2liaWxpdHlPCiAKIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKTsKIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFj
a2luZ1N0b3JlKCk7CkBAIC0xNDksMTIgKzE0NSwxMiBAQCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
IFdlYkFjY2Vzc2liaWxpdHlPCiAKIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdDo6Zm9jdXNlZENoaWxkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkK
KyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCgpOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKICAg
ICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gZm9jdXNlZCA9IG1fcHJpdmF0ZS0+Zm9jdXNl
ZFVJRWxlbWVudCgpOwotICAgIGlmIChtX3ByaXZhdGUgPT0gZm9jdXNlZC5nZXQoKSB8fCBmb2N1
c2VkLT5wYXJlbnRPYmplY3QoKSA9PSBtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5nZXQo
KSA9PSBmb2N1c2VkLmdldCgpIHx8IG1fcHJpdmF0ZS5nZXQoKSA9PSBmb2N1c2VkLT5wYXJlbnRP
YmplY3QoKSkKICAgICAgICAgcmV0dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoZm9jdXNlZCk7
CiAKICAgICByZXR1cm4gV2ViQWNjZXNzaWJpbGl0eU9iamVjdCgpOwpAQCAtMTYyLDcgKzE1OCw3
IEBAIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QgV2ViQWNjZXNzaWJpbGl0eU8KIAogV2ViQWNjZXNz
aWJpbGl0eU9iamVjdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsYXN0Q2hpbGQoKSBjb25zdAog
ewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KCk7CiAKICAgICBtX3ByaXZhdGUtPnVw
ZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtMTcyLDcgKzE2OCw3IEBAIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3QgV2ViQWNjZXNzaWJpbGl0eU8KIAogV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpuZXh0U2libGluZygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZh
dGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3QoKTsKIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7
CkBAIC0xODEsNyArMTc3LDcgQEAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBXZWJBY2Nlc3NpYmls
aXR5TwogCiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBh
cmVudE9iamVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJp
dmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKTsK
IAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0xOTEsNyArMTg3LDcg
QEAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBXZWJBY2Nlc3NpYmlsaXR5TwogCiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnByZXZpb3VzU2libGluZygpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKTsKIAogICAgIG1fcHJpdmF0
ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0yMDAsNyArMTk2LDcgQEAgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCBXZWJBY2Nlc3NpYmlsaXR5TwogCiBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0
ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0yMDksNyArMjA1LDcgQEAgYm9v
bCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjYW5TZXRTZWxlYwogCiBib29sIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmlzQW5jaG9yKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAg
ICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIG1fcHJp
dmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0yMTgsNyArMjE0LDcgQEAgYm9vbCBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FuY2hvcigpIAogCiBib29sIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ2hlY2tlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYg
KG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUt
PnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtMjI3LDcgKzIyMyw3IEBAIGJvb2wgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNDaGVja2VkKCkKIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0NvbGxhcHNlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1f
cHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUtPnVw
ZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtMjM3LDcgKzIzMyw3IEBAIGJvb2wgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNDb2xsYXBzZWQKIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c0ZvY3VzZWQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZh
dGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVC
YWNraW5nU3RvcmUoKTsKQEAgLTI0Niw3ICsyNDIsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzRm9jdXNlZCgpCiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNFbmFi
bGVkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2lu
Z1N0b3JlKCk7CkBAIC0yNTUsNyArMjUxLDcgQEAgYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0VuYWJsZWQoKQogCiBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzSG92ZXJlZCgp
IGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9y
ZSgpOwpAQCAtMjY0LDcgKzI2MCw3IEBAIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNI
b3ZlcmVkKCkKIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0luZGV0ZXJtaW5hdGUo
KSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxs
KCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3Rv
cmUoKTsKQEAgLTI3Myw3ICsyNjksNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
SW5kZXRlcm1pCiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNMaW5rZWQoKSBjb25z
dAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsK
QEAgLTI4Miw3ICsyNzgsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzTGlua2Vk
KCkgCiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNNdWx0aVNlbGVjdGFibGUoKSBj
b25zdAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUo
KTsKQEAgLTI5MSw3ICsyODcsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzTXVs
dGlTZWxlCiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNPZmZTY3JlZW4oKSBjb25z
dAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsK
QEAgLTMwMCw3ICsyOTYsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzT2ZmU2Ny
ZWVuCiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7
CkBAIC0zMDksNyArMzA1LDcgQEAgYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3
b3JkRgogCiBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzUHJlc3NlZCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAt
MzE4LDcgKzMxNCw3IEBAIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQcmVzc2VkKCkK
IAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1JlYWRPbmx5KCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0zMjcs
NyArMzIzLDcgQEAgYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1JlYWRPbmx5KAogCiBi
b29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzU2VsZWN0ZWQoKSBjb25zdAogewotICAgIGlm
ICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTMzNiw3ICsz
MzIsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzU2VsZWN0ZWQoCiAKIGJvb2wg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNWaXNpYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1f
cHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBAIC0zNDUsNyArMzQxLDcg
QEAgYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Zpc2libGUoKQogCiBib29sIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzVmlzaXRlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZh
dGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtMzU0LDcgKzM1MCw3IEBAIGJv
b2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNWaXNpdGVkKCkKIAogV2ViUmVjdCBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAogewotICAgIGlmICghbV9w
cml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBXZWJS
ZWN0KCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtMzYzLDcg
KzM1OSw3IEBAIFdlYlJlY3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Ym91bmRpbmcKIAogV2Vi
U3RyaW5nIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmhlbHBUZXh0KCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gV2ViU3RyaW5nKCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpA
QCAtMzcyLDcgKzM2OCw3IEBAIFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoZWxw
VGUKIAogaW50IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmhlYWRpbmdMZXZlbCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAt
MzgxLDcgKzM3Nyw3IEBAIGludCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoZWFkaW5nTGV2ZWwK
IAogV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpoaXRUZXN0
KGNvbnN0IFdlYlBvaW50JiBwb2ludCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAg
ICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gV2ViQWNjZXNzaWJpbGl0
eU9iamVjdCgpOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTM5
OSw3ICszOTUsNyBAQCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IFdlYkFjY2Vzc2liaWxpdHlPCiAK
IFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjprZXlib2FyZFNob3J0Y3V0KCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gV2ViU3RyaW5nKCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tp
bmdTdG9yZSgpOwpAQCAtNDI4LDcgKzQyNCw3IEBAIFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0OjprZXlib2EKIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwZXJmb3JtRGVm
YXVsdEFjdGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJp
dmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KTsKQEAgLTQzOSw3ICs0MzUsNyBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBlcmZv
cm1EZWZhCiAKIFdlYkFjY2Vzc2liaWxpdHlSb2xlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJv
bGVWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0
ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eVJvbGVV
bmtub3duOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAgLTQ0OCw3
ICs0NDQsNyBAQCBXZWJBY2Nlc3NpYmlsaXR5Um9sZSBXZWJBY2Nlc3NpYmlsaXR5T2JqCiAKIHVu
c2lnbmVkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGlvbkVuZCgpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtNDU3
LDcgKzQ1Myw3IEBAIHVuc2lnbmVkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGkKIAog
dW5zaWduZWQgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0aW9uU3RhcnQoKSBjb25zdAog
ewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKQEAg
LTQ2NiwxMyArNDYyLDEzIEBAIHVuc2lnbmVkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVj
dGkKIAogdm9pZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRGb2N1c2VkKGJvb2wgb24pIGNv
bnN0CiB7Ci0gICAgaWYgKG1fcHJpdmF0ZSkKKyAgICBpZiAoIW1fcHJpdmF0ZS5pc051bGwoKSkK
ICAgICAgICAgbV9wcml2YXRlLT5zZXRGb2N1c2VkKG9uKTsKIH0KIAogV2ViU3RyaW5nIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJp
dmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gV2ViU3Ry
aW5nKCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAtNDgxLDcg
KzQ3Nyw3IEBAIFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmcKIAogV2Vi
U3RyaW5nIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnRpdGxlKCkgY29uc3QKIHsKLSAgICBpZiAo
IW1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4g
V2ViU3RyaW5nKCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpAQCAt
NDkwLDcgKzQ4Niw3IEBAIFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0aXRsZSgK
IAogV2ViVVJMIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnVybCgpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IFdlYlVSTCgpOwogICAgIAogICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CkBA
IC00OTksNyArNDk1LDcgQEAgV2ViVVJMIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnVybCgpIGNv
bgogCiBXZWJOb2RlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6Om5vZGUoKSBjb25zdAogewotICAg
IGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybiBXZWJOb2RlKCk7CiAKICAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpA
QCAtNTEzLDcgKzUwOSw3IEBAIFdlYk5vZGUgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6bm9kZSgp
IGMKIAogV2ViRG9jdW1lbnQgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6ZG9jdW1lbnQoKSBjb25z
dAogewotICAgIGlmICghbV9wcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBXZWJEb2N1bWVudCgpOwogCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNr
aW5nU3RvcmUoKTsKQEAgLTUyNyw2ICs1MjMsOSBAQCBXZWJEb2N1bWVudCBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0Ojpkb2N1CiAKIGJvb2wgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6aGFzQ29tcHV0
ZWRTdHlsZSgpIGNvbnN0CiB7CisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wcml2YXRlLT5kb2N1
bWVudCgpOwogICAgIGlmIChkb2N1bWVudCkKICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxl
SWZOZWVkZWQoKTsKQEAgLTU0MCw2ICs1MzksOSBAQCBib29sIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omhhc0NvbXB1dGVkCiAKIFdlYlN0cmluZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21w
dXRlZFN0eWxlRGlzcGxheSgpIGNvbnN0CiB7CisgICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkK
KyAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOworCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
bV9wcml2YXRlLT5kb2N1bWVudCgpOwogICAgIGlmIChkb2N1bWVudCkKICAgICAgICAgZG9jdW1l
bnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTU1NywxMiArNTU5LDE4IEBAIFdlYlN0cmlu
ZyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXQKIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIHsKKyAgICBpZiAobV9wcml2
YXRlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBtX3ByaXZhdGUtPnVw
ZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPmFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQoKTsKIH0KIAogYm9vbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpsaW5lQnJlYWtz
KFdlYlZlY3RvcjxpbnQ+JiByZXN1bHQpIGNvbnN0CiB7CisgICAgaWYgKG1fcHJpdmF0ZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgbV9wcml2YXRlLT51cGRhdGVCYWNr
aW5nU3RvcmUoKTsKICAgICBpbnQgdGV4dExlbmd0aCA9IG1fcHJpdmF0ZS0+dGV4dExlbmd0aCgp
OwogICAgIGlmICghdGV4dExlbmd0aCkKQEAgLTU4MiwyOCArNTkwLDk4IEBAIGJvb2wgV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdDo6bGluZUJyZWFrcygKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5z
aWduZWQgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29sdW1uQ291bnQoKSBjb25zdAoreworICAg
IGlmIChtX3ByaXZhdGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1f
cHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisgICAgaWYgKCFtX3ByaXZhdGUtPmlzQWNj
ZXNzaWJpbGl0eVRhYmxlKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZSo+KG1fcHJpdmF0ZS5nZXQoKSktPmNv
bHVtbkNvdW50KCk7Cit9CisKK3Vuc2lnbmVkIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvd0Nv
dW50KCkgY29uc3QKK3sKKyAgICBpZiAobV9wcml2YXRlLmlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX3ByaXZhdGUtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOworICAgIGlm
ICghbV9wcml2YXRlLT5pc0FjY2Vzc2liaWxpdHlUYWJsZSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGUqPiht
X3ByaXZhdGUuZ2V0KCkpLT5yb3dDb3VudCgpOworfQorCitXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNlbGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQgY29s
dW1uLCB1bnNpZ25lZCByb3cpIGNvbnN0Cit7CisgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5n
U3RvcmUoKTsKKyAgICBpZiAoIW1fcHJpdmF0ZS0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAg
ICAgICAgcmV0dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoKTsKKworICAgIFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUYWJsZUNlbGwqIGNlbGwgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5VGFibGUqPihtX3ByaXZhdGUuZ2V0KCkpLT5jZWxsRm9yQ29sdW1uQW5kUm93KGNvbHVt
biwgcm93KTsKKyAgICByZXR1cm4gV2ViQWNjZXNzaWJpbGl0eU9iamVjdChzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4oY2VsbCkpOworfQorCit1bnNpZ25lZCBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpjZWxsQ29sdW1uSW5kZXgoKSBjb25zdAoreworICAgIG1fcHJp
dmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisgICAgaWYgKCFtX3ByaXZhdGUtPmlzVGFibGVD
ZWxsKCkpCisgICAgICAgcmV0dXJuIDA7CisKKyAgICBwYWlyPGludCwgaW50PiBjb2x1bW5SYW5n
ZTsKKyAgICBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKj4obV9w
cml2YXRlLmdldCgpKS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5SYW5nZSk7CisgICAgcmV0dXJu
IGNvbHVtblJhbmdlLmZpcnN0OworfQorCit1bnNpZ25lZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpjZWxsQ29sdW1uU3BhbigpIGNvbnN0Cit7CisgICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5n
U3RvcmUoKTsKKyAgICBpZiAoIW1fcHJpdmF0ZS0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICByZXR1
cm4gMDsKKworICAgIHBhaXI8aW50LCBpbnQ+IGNvbHVtblJhbmdlOworICAgIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwqPihtX3ByaXZhdGUuZ2V0KCkpLT5jb2x1
bW5JbmRleFJhbmdlKGNvbHVtblJhbmdlKTsKKyAgICByZXR1cm4gY29sdW1uUmFuZ2Uuc2Vjb25k
OworfQorCit1bnNpZ25lZCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjZWxsUm93SW5kZXgoKSBj
b25zdAoreworICAgIG1fcHJpdmF0ZS0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisgICAgaWYgKCFt
X3ByaXZhdGUtPmlzVGFibGVDZWxsKCkpCisgICAgICAgcmV0dXJuIDA7CisKKyAgICBwYWlyPGlu
dCwgaW50PiByb3dSYW5nZTsKKyAgICBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsKj4obV9wcml2YXRlLmdldCgpKS0+cm93SW5kZXhSYW5nZShyb3dSYW5nZSk7Cisg
ICAgcmV0dXJuIHJvd1JhbmdlLmZpcnN0OworfQorCit1bnNpZ25lZCBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpjZWxsUm93U3BhbigpIGNvbnN0Cit7CisgICAgbV9wcml2YXRlLT51cGRhdGVCYWNr
aW5nU3RvcmUoKTsKKyAgICBpZiAoIW1fcHJpdmF0ZS0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICBy
ZXR1cm4gMDsKKworICAgIHBhaXI8aW50LCBpbnQ+IHJvd1JhbmdlOworICAgIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwqPihtX3ByaXZhdGUuZ2V0KCkpLT5yb3dJ
bmRleFJhbmdlKHJvd1JhbmdlKTsKKyAgICByZXR1cm4gcm93UmFuZ2Uuc2Vjb25kOworfQorCiBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0PiYgb2JqZWN0KQotICAgIDog
bV9wcml2YXRlKHN0YXRpY19jYXN0PFdlYkFjY2Vzc2liaWxpdHlPYmplY3RQcml2YXRlKj4ob2Jq
ZWN0LnJlbGVhc2VSZWYoKSkpCisgICAgOiBtX3ByaXZhdGUob2JqZWN0KQogewogfQogCiBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0JiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvcGVyYXRvcj0oY29u
c3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q+JiBvYmplY3Qp
CiB7Ci0gICAgYXNzaWduKHN0YXRpY19jYXN0PFdlYkFjY2Vzc2liaWxpdHlPYmplY3RQcml2YXRl
Kj4ob2JqZWN0LnJlbGVhc2VSZWYoKSkpOworICAgIG1fcHJpdmF0ZSA9IG9iamVjdDsKICAgICBy
ZXR1cm4gKnRoaXM7CiB9CiAKIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6Om9wZXJhdG9yIFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0PigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFBhc3NSZWZQdHI8V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdD4oY29uc3RfY2Fz
dDxXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0UHJpdmF0ZSo+KG1fcHJpdmF0ZSkpOwotfQotCi12b2lk
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFzc2lnbihXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0UHJp
dmF0ZSogcCkKLXsKLSAgICAvLyBwIGlzIGFscmVhZHkgcmVmJ2QgZm9yIHVzIGJ5IHRoZSBjYWxs
ZXIKLSAgICBpZiAobV9wcml2YXRlKQotICAgICAgICBtX3ByaXZhdGUtPmRlcmVmKCk7Ci0gICAg
bV9wcml2YXRlID0gcDsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>