<?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>72570</bug_id>
          
          <creation_ts>2011-11-16 17:40:43 -0800</creation_ts>
          <short_desc>AX: cleanup style and naming and code in accessibility search mechanism</short_desc>
          <delta_ts>2011-11-17 13:16:15 -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>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>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>504455</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-16 17:40:43 -0800</bug_when>
    <thetext>Original implementation was done by an intern. I think the naming and coding need to be improved and shaped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504473</commentid>
    <comment_count>1</comment_count>
      <attachid>115497</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-16 17:58:18 -0800</bug_when>
    <thetext>Created attachment 115497
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505044</commentid>
    <comment_count>2</comment_count>
      <attachid>115497</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-11-17 11:49:14 -0800</bug_when>
    <thetext>Comment on attachment 115497
patch

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

Definite improvement!

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:-333
&gt; -    ASSERT(AXObjectCache::accessibilityEnabled());

Did you mean to remove this assertion? If so, why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505051</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 11:52:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 115497 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115497&amp;action=review
&gt; 
&gt; Definite improvement!
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:-333
&gt; &gt; -    ASSERT(AXObjectCache::accessibilityEnabled());
&gt; 
&gt; Did you mean to remove this assertion? If so, why?

I don&apos;t really know why it was added in the first place. I definitely should have told the intern to remove it. 

Asserting that is true is quite meaningless. 

No one will use this method unless it&apos;s been triggered through an existing accessibility mechanism (which means that accessibility is already enabled)... 

This method is really no different than any other method, so it doesn&apos;t harm anything to have it there, but it makes it confusing as to why it&apos;s there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505058</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-11-17 11:55:22 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 115497 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115497&amp;action=review
&gt; &gt; 
&gt; &gt; Definite improvement!
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:-333
&gt; &gt; &gt; -    ASSERT(AXObjectCache::accessibilityEnabled());
&gt; &gt; 
&gt; &gt; Did you mean to remove this assertion? If so, why?
&gt; 
&gt; I don&apos;t really know why it was added in the first place. I definitely should have told the intern to remove it. 
&gt; 
&gt; Asserting that is true is quite meaningless. 
&gt; 
&gt; No one will use this method unless it&apos;s been triggered through an existing accessibility mechanism (which means that accessibility is already enabled)... 
&gt; 
&gt; This method is really no different than any other method, so it doesn&apos;t harm anything to have it there, but it makes it confusing as to why it&apos;s there

Makes sense!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505140</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-11-17 13:16:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/100662</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115497</attachid>
            <date>2011-11-16 17:58:18 -0800</date>
            <delta_ts>2011-11-17 11:49:14 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>14838</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTE2ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGNsZWFudXAgc3R5
bGUgYW5kIG5hbWluZyBhbmQgY29kZSBpbiBhY2Nlc3NpYmlsaXR5IHNlYXJjaCBtZWNoYW5pc20K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW51cCB0
aGUgbmFtaW5nIGFuZCBjb2RlIHN0eWxlIHdpdGhpbiB0aGUgZWxlbWVudCBzZWFyY2hpbmcgbWVj
aGFuaXNtLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpmaXJzdEFjY2Vzc2libGVPYmplY3RGcm9tTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZVZhbHVlOmZvclBhcmFtZXRlcjpdKToKKwogMjAxMS0xMS0xNiAgTWljaGFlbCBOb3JkbWFu
ICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlvbkNhY2hlIG1hbmlm
ZXN0IHNob3VsZCB3b3JrIHdpdGggYW55IE1JTUUgdHlwZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiAxMDA1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjgwMiwxNyArMjgwMiwxNyBAQAogICAgIAogICAgIC8vIGRpc3BhdGNoCiAg
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dHNGb3JTZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlXSkgewotICAgICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBheFN0YXJ0T2JqZWN0ID0gMDsKKyAgICAgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogc3RhcnRPYmplY3QgPSAwOwogICAgICAgICBpZiAoW1tkaWN0aW9uYXJ5IG9i
amVjdEZvcktleTpAIkFYU3RhcnRFbGVtZW50Il0gaXNLaW5kT2ZDbGFzczpbV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIgc2VsZl1dKQotICAgICAgICAgICAgYXhTdGFydE9iamVjdCA9IFso
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqKVtkaWN0aW9uYXJ5IG9iamVjdEZvcktleTpA
IkFYU3RhcnRFbGVtZW50Il0gYWNjZXNzaWJpbGl0eU9iamVjdF07CisgICAgICAgICAgICBzdGFy
dE9iamVjdCA9IFsoV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqKVtkaWN0aW9uYXJ5IG9i
amVjdEZvcktleTpAIkFYU3RhcnRFbGVtZW50Il0gYWNjZXNzaWJpbGl0eU9iamVjdF07CiAgICAg
ICAgIAotICAgICAgICBBY2Nlc3NpYmlsaXR5U2VhcmNoRGlyZWN0aW9uIGF4U2VhcmNoRGlyZWN0
aW9uID0gU2VhcmNoRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgQWNjZXNzaWJpbGl0eVNlYXJjaERp
cmVjdGlvbiBzZWFyY2hEaXJlY3Rpb24gPSBTZWFyY2hEaXJlY3Rpb25OZXh0OwogICAgICAgICBp
ZiAoW1tkaWN0aW9uYXJ5IG9iamVjdEZvcktleTpAIkFYRGlyZWN0aW9uIl0gaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgc2VsZl1dKQotICAgICAgICAgICAgYXhTZWFyY2hEaXJlY3Rpb24gPSAoWyhO
U1N0cmluZyopW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAiQVhEaXJlY3Rpb24iXSBpc0VxdWFs
VG9TdHJpbmc6QCJBWERpcmVjdGlvbk5leHQiXSkgPyBTZWFyY2hEaXJlY3Rpb25OZXh0IDogU2Vh
cmNoRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgICAgICBzZWFyY2hEaXJlY3Rpb24gPSAoWyhO
U1N0cmluZyopW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAiQVhEaXJlY3Rpb24iXSBpc0VxdWFs
VG9TdHJpbmc6QCJBWERpcmVjdGlvbk5leHQiXSkgPyBTZWFyY2hEaXJlY3Rpb25OZXh0IDogU2Vh
cmNoRGlyZWN0aW9uUHJldmlvdXM7CiAgICAgICAgIAotICAgICAgICBBY2Nlc3NpYmlsaXR5U2Vh
cmNoS2V5IGF4U2VhcmNoS2V5ID0gQW55VHlwZVNlYXJjaEtleTsKKyAgICAgICAgQWNjZXNzaWJp
bGl0eVNlYXJjaEtleSBzZWFyY2hLZXkgPSBBbnlUeXBlU2VhcmNoS2V5OwogICAgICAgICBpZiAo
W1tkaWN0aW9uYXJ5IG9iamVjdEZvcktleTpAIkFYU2VhcmNoS2V5Il0gaXNLaW5kT2ZDbGFzczpb
TlNTdHJpbmcgc2VsZl1dKQotICAgICAgICAgICAgYXhTZWFyY2hLZXkgPSBhY2Nlc3NpYmlsaXR5
U2VhcmNoS2V5Rm9yU3RyaW5nKChDRlN0cmluZ1JlZilbZGljdGlvbmFyeSBvYmplY3RGb3JLZXk6
QCJBWFNlYXJjaEtleSJdKTsKKyAgICAgICAgICAgIHNlYXJjaEtleSA9IGFjY2Vzc2liaWxpdHlT
ZWFyY2hLZXlGb3JTdHJpbmcoKENGU3RyaW5nUmVmKVtkaWN0aW9uYXJ5IG9iamVjdEZvcktleTpA
IkFYU2VhcmNoS2V5Il0pOwogICAgICAgICAKICAgICAgICAgU3RyaW5nIHNlYXJjaFRleHQ7CiAg
ICAgICAgIGlmIChbW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAiQVhTZWFyY2hUZXh0Il0gaXNL
aW5kT2ZDbGFzczpbTlNTdHJpbmcgc2VsZl1dKQpAQCAtMjgyMiwxMSArMjgyMiwxMiBAQAogICAg
ICAgICBpZiAoW1tkaWN0aW9uYXJ5IG9iamVjdEZvcktleTpAIkFYUmVzdWx0c0xpbWl0Il0gaXNL
aW5kT2ZDbGFzczpbTlNOdW1iZXIgc2VsZl1dKQogICAgICAgICAgICAgcmVzdWx0c0xpbWl0ID0g
WyhOU051bWJlciopW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OkAiQVhSZXN1bHRzTGltaXQiXSB1
bnNpZ25lZEludFZhbHVlXTsKICAgICAgICAgCi0gICAgICAgIEFjY2Vzc2liaWxpdHlTZWFyY2hQ
cmVkaWNhdGUgYXhTZWFyY2hQcmVkaWNhdGUgPSB7bV9vYmplY3QsIGF4U3RhcnRPYmplY3QsIGF4
U2VhcmNoRGlyZWN0aW9uLCBheFNlYXJjaEtleSwgJnNlYXJjaFRleHQsIHJlc3VsdHNMaW1pdH07
Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciBheFJlc3VsdHM7Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2libGVPYmpl
Y3RzV2l0aEFjY2Vzc2liaWxpdHlTZWFyY2hQcmVkaWNhdGUoJmF4U2VhcmNoUHJlZGljYXRlLCBh
eFJlc3VsdHMpOworICAgICAgICBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY3JpdGVyaWEg
PSB7c3RhcnRPYmplY3QsIHNlYXJjaERpcmVjdGlvbiwgc2VhcmNoS2V5LCAmc2VhcmNoVGV4dCwg
cmVzdWx0c0xpbWl0fTsKKworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3IgcmVzdWx0czsKKyAgICAgICAgbV9vYmplY3QtPmZpbmRNYXRjaGlu
Z09iamVjdHMoJmNyaXRlcmlhLCByZXN1bHRzKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBj
b252ZXJ0VG9OU0FycmF5KGF4UmVzdWx0cyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9OU0Fy
cmF5KHJlc3VsdHMpOwogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmlu
ZzpAIkFYVUlFbGVtZW50Rm9yVGV4dE1hcmtlciJdKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAkocmV2aXNpb24gMTAw
NTMyKQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3MywxMSArMjczLDEwIEBACiAgICAgVmlzaXRlZExpbmtT
ZWFyY2hLZXkKIH07CiAKLXN0cnVjdCBBY2Nlc3NpYmlsaXR5U2VhcmNoUHJlZGljYXRlIHsKLSAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheENvbnRhaW5lck9iamVjdDsKLSAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBheFN0YXJ0T2JqZWN0OwotICAgIEFjY2Vzc2liaWxpdHlTZWFyY2hEaXJlY3Rp
b24gYXhTZWFyY2hEaXJlY3Rpb247Ci0gICAgQWNjZXNzaWJpbGl0eVNlYXJjaEtleSBheFNlYXJj
aEtleTsKK3N0cnVjdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgeworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHN0YXJ0T2JqZWN0OworICAgIEFjY2Vzc2liaWxpdHlTZWFyY2hEaXJlY3Rp
b24gc2VhcmNoRGlyZWN0aW9uOworICAgIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkgc2VhcmNoS2V5
OwogICAgIFN0cmluZyogc2VhcmNoVGV4dDsKICAgICB1bnNpZ25lZCByZXN1bHRzTGltaXQ7CiB9
OwpAQCAtMzE5LDkgKzMxOCw2IEBACiBwcm90ZWN0ZWQ6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCgpOwogICAgIAotICAgIC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBhY2Nlc3NpYmxlT2Jq
ZWN0c1dpdGhBY2Nlc3NpYmlsaXR5U2VhcmNoUHJlZGljYXRlIGZvciBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0IHNlYXJjaGluZy4KLSAgICBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFy
Y2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaFByZWRpY2F0
ZSopOwotICAgIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaFByZWRpY2F0ZSopOwogcHVibGlj
OgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlPYmplY3QoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKCk7CkBAIC00ODMsNyArNDc5LDcgQEAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCB7IHJldHVybiAwOyB9
CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0QWNjZXNzaWJsZU9iamVjdEZy
b21Ob2RlKGNvbnN0IE5vZGUqKTsKLSAgICBzdGF0aWMgdm9pZCBhY2Nlc3NpYmxlT2JqZWN0c1dp
dGhBY2Nlc3NpYmlsaXR5U2VhcmNoUHJlZGljYXRlKEFjY2Vzc2liaWxpdHlTZWFyY2hQcmVkaWNh
dGUqLCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKKyAgICB2b2lkIGZpbmRNYXRjaGlu
Z09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKiwgQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yJik7CiAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFi
bGVPYmplY3QoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGxpbmtlZFVJ
RWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgeyB9CkBAIC02ODks
NyArNjg1LDkgQEAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSBtX3JvbGU7CiAgICAgCiAgICAgdmly
dHVhbCBib29sIGlzRGV0YWNoZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgCisgICAg
c3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSopOworICAgIHN0YXRpYyBib29s
IGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKik7CisKICNpZiBQTEFURk9STShHVEspCiAgICAgYm9v
bCBhbGxvd3NUZXh0UmFuZ2VzKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgZ2V0TGVuZ3RoRm9yVGV4
dFJhbmdlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAJKHJldmlzaW9uIDEwMDUzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg5LDIwICs4OSwyMCBAQAogI2VuZGlmICAgIAogfQogCi1ib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKEFjY2Vzc2liaWxp
dHlPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoUHJlZGljYXRlKiBheFNlYXJj
aFByZWRpY2F0ZSkKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNBY2Nlc3NpYmlsaXR5T2Jq
ZWN0U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QsIEFjY2Vzc2liaWxp
dHlTZWFyY2hDcml0ZXJpYSogY3JpdGVyaWEpCiB7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhYXhT
ZWFyY2hQcmVkaWNhdGUpCisgICAgaWYgKCFheE9iamVjdCB8fCAhY3JpdGVyaWEpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKLSAgICBzd2l0Y2ggKGF4U2VhcmNoUHJlZGljYXRlLT5heFNl
YXJjaEtleSkgeworICAgIHN3aXRjaCAoY3JpdGVyaWEtPnNlYXJjaEtleSkgewogICAgIC8vIFRo
ZSBBbnlUeXBlU2VhcmNoS2V5IG1hdGNoZXMgYW55IG5vbi1udWxsIEFjY2Vzc2liaWxpdHlPYmpl
Y3QuCiAgICAgY2FzZSBBbnlUeXBlU2VhcmNoS2V5OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgCiAgICAgY2FzZSBCbG9ja3F1b3RlU2FtZUxldmVsU2VhcmNoS2V5OgotICAgICAgICBy
ZXR1cm4gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QKKyAgICAgICAgcmV0dXJuIGNy
aXRlcmlhLT5zdGFydE9iamVjdAogICAgICAgICAgICAgJiYgYXhPYmplY3QtPmlzQmxvY2txdW90
ZSgpCi0gICAgICAgICAgICAmJiBheE9iamVjdC0+YmxvY2txdW90ZUxldmVsKCkgPT0gYXhTZWFy
Y2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QtPmJsb2NrcXVvdGVMZXZlbCgpOworICAgICAgICAg
ICAgJiYgYXhPYmplY3QtPmJsb2NrcXVvdGVMZXZlbCgpID09IGNyaXRlcmlhLT5zdGFydE9iamVj
dC0+YmxvY2txdW90ZUxldmVsKCk7CiAgICAgICAgIAogICAgIGNhc2UgQmxvY2txdW90ZVNlYXJj
aEtleToKICAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc0Jsb2NrcXVvdGUoKTsKQEAgLTEyMCwx
NiArMTIwLDE2IEBACiAgICAgICAgIHJldHVybiBheE9iamVjdC0+aXNDb250cm9sKCk7CiAgICAg
ICAgIAogICAgIGNhc2UgRGlmZmVyZW50VHlwZVNlYXJjaEtleToKLSAgICAgICAgcmV0dXJuIGF4
U2VhcmNoUHJlZGljYXRlLT5heFN0YXJ0T2JqZWN0Ci0gICAgICAgICAgICAmJiBheE9iamVjdC0+
cm9sZVZhbHVlKCkgIT0gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QtPnJvbGVWYWx1
ZSgpOworICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0CisgICAgICAgICAgICAm
JiBheE9iamVjdC0+cm9sZVZhbHVlKCkgIT0gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0LT5yb2xlVmFs
dWUoKTsKICAgICAgICAgCiAgICAgY2FzZSBGb250Q2hhbmdlU2VhcmNoS2V5OgotICAgICAgICBy
ZXR1cm4gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QKLSAgICAgICAgICAgICYmICFh
eE9iamVjdC0+aGFzU2FtZUZvbnQoYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QtPnJl
bmRlcmVyKCkpOworICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0CisgICAgICAg
ICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVGb250KGNyaXRlcmlhLT5zdGFydE9iamVjdC0+cmVu
ZGVyZXIoKSk7CiAgICAgICAgIAogICAgIGNhc2UgRm9udENvbG9yQ2hhbmdlU2VhcmNoS2V5Ogot
ICAgICAgICByZXR1cm4gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QKLSAgICAgICAg
ICAgICYmICFheE9iamVjdC0+aGFzU2FtZUZvbnRDb2xvcihheFNlYXJjaFByZWRpY2F0ZS0+YXhT
dGFydE9iamVjdC0+cmVuZGVyZXIoKSk7CisgICAgICAgIHJldHVybiBjcml0ZXJpYS0+c3RhcnRP
YmplY3QKKyAgICAgICAgICAgICYmICFheE9iamVjdC0+aGFzU2FtZUZvbnRDb2xvcihjcml0ZXJp
YS0+c3RhcnRPYmplY3QtPnJlbmRlcmVyKCkpOwogICAgICAgICAKICAgICAvLyBGSVhNRTogSGFu
ZGxlIHRoaXMgc2VhcmNoIGtleS4KICAgICBjYXNlIEZyYW1lU2VhcmNoS2V5OgpAQCAtMTU3LDkg
KzE1Nyw5IEBACiAgICAgICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkgPT0gNjsK
ICAgICAgICAgCiAgICAgY2FzZSBIZWFkaW5nU2FtZUxldmVsU2VhcmNoS2V5OgotICAgICAgICBy
ZXR1cm4gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QKKyAgICAgICAgcmV0dXJuIGNy
aXRlcmlhLT5zdGFydE9iamVjdAogICAgICAgICAgICAgJiYgYXhPYmplY3QtPmlzSGVhZGluZygp
Ci0gICAgICAgICAgICAmJiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkgPT0gYXhTZWFyY2hQcmVk
aWNhdGUtPmF4U3RhcnRPYmplY3QtPmhlYWRpbmdMZXZlbCgpOworICAgICAgICAgICAgJiYgYXhP
YmplY3QtPmhlYWRpbmdMZXZlbCgpID09IGNyaXRlcmlhLT5zdGFydE9iamVjdC0+aGVhZGluZ0xl
dmVsKCk7CiAgICAgICAgIAogICAgIGNhc2UgSGVhZGluZ1NlYXJjaEtleToKICAgICAgICAgcmV0
dXJuIGF4T2JqZWN0LT5pc0hlYWRpbmcoKTsKQEAgLTE4OSwyMCArMTg5LDIwIEBACiAgICAgICAg
IHJldHVybiBheE9iamVjdC0+aXNSYWRpb0dyb3VwKCk7CiAgICAgICAgIAogICAgIGNhc2UgU2Ft
ZVR5cGVTZWFyY2hLZXk6Ci0gICAgICAgIHJldHVybiBheFNlYXJjaFByZWRpY2F0ZS0+YXhTdGFy
dE9iamVjdAotICAgICAgICAgICAgJiYgYXhPYmplY3QtPnJvbGVWYWx1ZSgpID09IGF4U2VhcmNo
UHJlZGljYXRlLT5heFN0YXJ0T2JqZWN0LT5yb2xlVmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIGNy
aXRlcmlhLT5zdGFydE9iamVjdAorICAgICAgICAgICAgJiYgYXhPYmplY3QtPnJvbGVWYWx1ZSgp
ID09IGNyaXRlcmlhLT5zdGFydE9iamVjdC0+cm9sZVZhbHVlKCk7CiAgICAgICAgIAogICAgIGNh
c2UgU3RhdGljVGV4dFNlYXJjaEtleToKICAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNTdGF0
aWNUZXh0KCk7CiAgICAgICAgIAogICAgIGNhc2UgU3R5bGVDaGFuZ2VTZWFyY2hLZXk6Ci0gICAg
ICAgIHJldHVybiBheFNlYXJjaFByZWRpY2F0ZS0+YXhTdGFydE9iamVjdAotICAgICAgICAgICAg
JiYgIWF4T2JqZWN0LT5oYXNTYW1lU3R5bGUoYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmpl
Y3QtPnJlbmRlcmVyKCkpOworICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0Cisg
ICAgICAgICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVTdHlsZShjcml0ZXJpYS0+c3RhcnRPYmpl
Y3QtPnJlbmRlcmVyKCkpOwogICAgICAgICAKICAgICBjYXNlIFRhYmxlU2FtZUxldmVsU2VhcmNo
S2V5OgotICAgICAgICByZXR1cm4gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QKKyAg
ICAgICAgcmV0dXJuIGNyaXRlcmlhLT5zdGFydE9iamVjdAogICAgICAgICAgICAgJiYgYXhPYmpl
Y3QtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkKLSAgICAgICAgICAgICYmIGF4T2JqZWN0LT50YWJs
ZUxldmVsKCkgPT0gYXhTZWFyY2hQcmVkaWNhdGUtPmF4U3RhcnRPYmplY3QtPnRhYmxlTGV2ZWwo
KTsKKyAgICAgICAgICAgICYmIGF4T2JqZWN0LT50YWJsZUxldmVsKCkgPT0gY3JpdGVyaWEtPnN0
YXJ0T2JqZWN0LT50YWJsZUxldmVsKCk7CiAgICAgICAgIAogICAgIGNhc2UgVGFibGVTZWFyY2hL
ZXk6CiAgICAgICAgIHJldHVybiBheE9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKTsKQEAg
LTIyNCwxMiArMjI0LDEyIEBACiAgICAgfQogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9i
amVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaFByZWRpY2F0ZSogYXhTZWFyY2hQcmVkaWNhdGUpCiti
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlh
KiBjcml0ZXJpYSkKIHsKLSAgICBpZiAoIWF4T2JqZWN0IHx8ICFheFNlYXJjaFByZWRpY2F0ZSkK
KyAgICBpZiAoIWF4T2JqZWN0IHx8ICFjcml0ZXJpYSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAotICAgIHJldHVybiBheE9iamVjdC0+YWNjZXNzaWJpbGl0eU9iamVjdENvbnRhaW5zVGV4
dChheFNlYXJjaFByZWRpY2F0ZS0+c2VhcmNoVGV4dCk7CisgICAgcmV0dXJuIGF4T2JqZWN0LT5h
Y2Nlc3NpYmlsaXR5T2JqZWN0Q29udGFpbnNUZXh0KGNyaXRlcmlhLT5zZWFyY2hUZXh0KTsKIH0K
IAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5T2JqZWN0Q29udGFpbnNU
ZXh0KFN0cmluZyogdGV4dCkgY29uc3QKQEAgLTI0Nyw3ICsyNDcsNiBAQAogICAgIHJldHVybiBu
b2RlKCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKGJsb2NrcXVvdGVUYWcpOwogfQogCi0KIGJvb2wg
QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBVGV4dENvbnRyb2woKSBjb25zdAogewogICAgIHJl
dHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpID09IFRleHRBcmVhUm9sZSB8fCBhcmlhUm9sZUF0dHJp
YnV0ZSgpID09IFRleHRGaWVsZFJvbGU7CkBAIC0zMzAsOCArMzI5LDYgQEAKIAogQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU9iamVjdDo6Zmlyc3RBY2Nlc3NpYmxlT2JqZWN0RnJv
bU5vZGUoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSk7Ci0KICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiAw
OwogCkBAIC0zNTcsMzcgKzM1NCw0MiBAQAogICAgIHJldHVybiBhY2Nlc3NpYmxlT2JqZWN0Owog
fQogCi12b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2libGVPYmplY3RzV2l0aEFjY2Vz
c2liaWxpdHlTZWFyY2hQcmVkaWNhdGUoQWNjZXNzaWJpbGl0eVNlYXJjaFByZWRpY2F0ZSogYXhT
ZWFyY2hQcmVkaWNhdGUsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgYXhSZXN1bHRzKQor
dm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpmaW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxp
dHlTZWFyY2hDcml0ZXJpYSogY3JpdGVyaWEsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYg
cmVzdWx0cykKIHsKLSAgICBBU1NFUlQoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSk7CisgICAgQVNTRVJUKGNyaXRlcmlhKTsKICAgICAKLSAgICBpZiAoIWF4U2VhcmNoUHJl
ZGljYXRlKQorICAgIGlmICghY3JpdGVyaWEpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgYXhDaGlsZHJlbjsKLSAgICBpZiAoYXhTZWFyY2hQ
cmVkaWNhdGUtPmF4Q29udGFpbmVyT2JqZWN0KQotICAgICAgICBheENoaWxkcmVuLmFwcGVuZChh
eFNlYXJjaFByZWRpY2F0ZS0+YXhDb250YWluZXJPYmplY3QpOworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHN0YXJ0T2JqZWN0ID0gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0OworICAgIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciBzZWFyY2hTdGFjazsKKyAgICBzZWFyY2hTdGFjay5hcHBlbmQo
dGhpcyk7CiAgICAgCi0gICAgYm9vbCBpc1NlYXJjaERpcmVjdGlvbk5leHQgPSAoYXhTZWFyY2hQ
cmVkaWNhdGUtPmF4U2VhcmNoRGlyZWN0aW9uID09IFNlYXJjaERpcmVjdGlvbk5leHQpOwotICAg
IGJvb2wgZGlkRmluZEFYU3RhcnRPYmplY3QgPSAoIWF4U2VhcmNoUHJlZGljYXRlLT5heFN0YXJ0
T2JqZWN0KTsKKyAgICBib29sIGlzRm9yd2FyZCA9IGNyaXRlcmlhLT5zZWFyY2hEaXJlY3Rpb24g
PT0gU2VhcmNoRGlyZWN0aW9uTmV4dDsKKyAgICBib29sIGRpZEZpbmRTdGFydE9iamVjdCA9ICFj
cml0ZXJpYS0+c3RhcnRPYmplY3Q7CiAgICAgCiAgICAgLy8gRklYTUU6IEl0ZXJhdGUgdGhlIEFj
Y2Vzc2liaWxpdHlPYmplY3QgY2FjaGUgY3JlYXRpbmcgYW5kIGFkZGluZyBvYmplY3RzIGlmIG5l
c3Nlc2FyeS4KLSAgICB3aGlsZSAoIWF4Q2hpbGRyZW4uaXNFbXB0eSgpICYmIGF4UmVzdWx0cy5z
aXplKCkgPCBheFNlYXJjaFByZWRpY2F0ZS0+cmVzdWx0c0xpbWl0KSB7Ci0gICAgICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGF4Q2hpbGQgPSBheENoaWxkcmVuLmxhc3QoKS5nZXQoKTsKLSAgICAg
ICAgYXhDaGlsZHJlbi5yZW1vdmVMYXN0KCk7CisgICAgd2hpbGUgKCFzZWFyY2hTdGFjay5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogc2VhcmNoT2JqZWN0ID0gc2Vh
cmNoU3RhY2subGFzdCgpLmdldCgpOworICAgICAgICBzZWFyY2hTdGFjay5yZW1vdmVMYXN0KCk7
CiAgICAgICAgIAotICAgICAgICBpZiAoZGlkRmluZEFYU3RhcnRPYmplY3QpIHsKLSAgICAgICAg
ICAgIGlmIChpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChheENoaWxkLCBheFNlYXJj
aFByZWRpY2F0ZSkKLSAgICAgICAgICAgICAgICAmJiBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNo
TWF0Y2goYXhDaGlsZCwgYXhTZWFyY2hQcmVkaWNhdGUpKQotICAgICAgICAgICAgICAgIGF4UmVz
dWx0cy5hcHBlbmQoYXhDaGlsZCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoYXhDaGlsZCA9PSBheFNl
YXJjaFByZWRpY2F0ZS0+YXhTdGFydE9iamVjdCkKLSAgICAgICAgICAgIGRpZEZpbmRBWFN0YXJ0
T2JqZWN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpZEZpbmRTdGFydE9iamVjdCkgeworICAgICAg
ICAgICAgaWYgKGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKHNlYXJjaE9iamVjdCwg
Y3JpdGVyaWEpICYmIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChzZWFyY2hPYmplY3Qs
IGNyaXRlcmlhKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNlYXJjaE9iamVj
dCk7CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gRW5vdWdoIHJlc3VsdHMgd2Vy
ZSBmb3VuZCB0byBzdG9wIHNlYXJjaGluZy4KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0cy5z
aXplKCkgPj0gY3JpdGVyaWEtPnJlc3VsdHNMaW1pdCkKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT2JqZWN0ID09IHN0
YXJ0T2JqZWN0KQorICAgICAgICAgICAgZGlkRmluZFN0YXJ0T2JqZWN0ID0gdHJ1ZTsKICAgICAg
ICAgCi0gICAgICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBheEdyYW5kY2hpbGRyZW4g
PSBheENoaWxkLT5jaGlsZHJlbigpOwotICAgICAgICB1bnNpZ25lZCBheEdyYW5kY2hpbGRyZW5T
aXplID0gYXhDaGlsZC0+Y2hpbGRyZW4oKS5zaXplKCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQg
aSA9IChpc1NlYXJjaERpcmVjdGlvbk5leHQpID8gYXhHcmFuZGNoaWxkcmVuU2l6ZSA6IDA7IChp
c1NlYXJjaERpcmVjdGlvbk5leHQpID8gaSA+IDAgOiBpIDwgYXhHcmFuZGNoaWxkcmVuU2l6ZTsg
KGlzU2VhcmNoRGlyZWN0aW9uTmV4dCkgPyBpLS0gOiBpKyspCisgICAgICAgIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBzZWFyY2hDaGlsZHJlbiA9IHNlYXJjaE9iamVjdC0+Y2hpbGRyZW4o
KTsKKyAgICAgICAgc2l6ZV90IGNoaWxkcmVuU2l6ZSA9IHNlYXJjaENoaWxkcmVuLnNpemUoKTsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IGlzRm9yd2FyZCA/IGNoaWxkcmVuU2l6ZSA6IDA7IGlz
Rm9yd2FyZCA/IGkgPiAwIDogaSA8IGNoaWxkcmVuU2l6ZTsgaXNGb3J3YXJkID8gaS0tIDogaSsr
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGF0dGFjaG1lbnRzLgotICAgICAgICAg
ICAgYXhDaGlsZHJlbi5hcHBlbmQoYXhHcmFuZGNoaWxkcmVuLmF0KChpc1NlYXJjaERpcmVjdGlv
bk5leHQpID8gaSAtIDEgOiBpKS5nZXQoKSk7CisgICAgICAgICAgICBzZWFyY2hTdGFjay5hcHBl
bmQoc2VhcmNoQ2hpbGRyZW4uYXQoaXNGb3J3YXJkID8gaSAtIDEgOiBpKS5nZXQoKSk7CisgICAg
ICAgIH0KICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="114427"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>