<?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>129492</bug_id>
          
          <creation_ts>2014-02-28 09:32:59 -0800</creation_ts>
          <short_desc>[ATK] Expose missing functionalities of AtkTableCell to AT.</short_desc>
          <delta_ts>2014-03-05 07:10:34 -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>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Krzysztof Czech">k.czech</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985598</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-02-28 09:32:59 -0800</bug_when>
    <thetext>Implements, get_column_span, get_row_span, get_position, get_table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985599</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-28 09:33:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/16196432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986332</commentid>
    <comment_count>2</comment_count>
      <attachid>225646</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-03 06:31:36 -0800</bug_when>
    <thetext>Created attachment 225646
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986333</commentid>
    <comment_count>3</comment_count>
      <attachid>225647</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-03 06:48:36 -0800</bug_when>
    <thetext>Created attachment 225647
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986334</commentid>
    <comment_count>4</comment_count>
      <attachid>225648</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-03 06:51:55 -0800</bug_when>
    <thetext>Created attachment 225648
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986335</commentid>
    <comment_count>5</comment_count>
      <attachid>225649</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-03 06:53:18 -0800</bug_when>
    <thetext>Created attachment 225649
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986356</commentid>
    <comment_count>6</comment_count>
      <attachid>225649</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-03-03 08:54:23 -0800</bug_when>
    <thetext>Comment on attachment 225649
patch

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

Thanks for doing this. The patch looks good to me in general, but still needs some changes IMHO (see below). Also, table cell is a pretty new thing to ATK so you probably want to use ATK_CHECK_VERSION in some places too.

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:49
&gt; +    accessibilityObjectGetOrReturn(cell, axObject, nullptr);
&gt;  
&gt; -    AccessibilityObject* axObject = core(cell);
&gt; -    if (!axObject || !axObject-&gt;isTableCell())
&gt; +    if (!axObject-&gt;isTableCell())

I&apos;d rather keep the old idiom in place. This new macro is confusing IMHO, specially because of containing an out parameter, and thus decreases readability

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:103
&gt; +gboolean webkitAccessibleTableCellGetPosition(AtkTableCell* cell, gint *row, gint* column)

misplaced *

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h:70
&gt; +    } while (0)

Because of the particular nature of this macro, you can not place the whole block inside G_STMT_START/END guards which, besides being probably not good enough for places where the compiler expects the macro to expand in only one line, looks a bit awkward, IMO

This should go away if you go back to the old idiom, though

&gt; Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:213
&gt; +    gint row = -1, column= -1, rowSpan = -1, columnSpan = -1;

Please declare each variable in a separate line and use int instead of gint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986359</commentid>
    <comment_count>7</comment_count>
      <attachid>225649</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-03 08:57:49 -0800</bug_when>
    <thetext>Comment on attachment 225649
patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Implemented  missing API of AtkTableCell.

too many spaces after Implemented

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:134
&gt; +    AtkObject* table = atk_object_get_parent(axObject-&gt;wrapper());

should you verify that this is actually the table element before returning?

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h:63
&gt; +    AccessibilityObject* axObject = nullptr; \

It&apos;s a little non-intuitive that a local variable will be declared inside the macro, that you reference outside the macro.

Maybe it would be better to write a function that does this same check

AccessibilityObject* axObject = verifyAccessibilityObjectIsValid(...);
if (!axObject)
return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986794</commentid>
    <comment_count>8</comment_count>
      <attachid>225773</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-04 07:06:49 -0800</bug_when>
    <thetext>Created attachment 225773
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986795</commentid>
    <comment_count>9</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-04 07:07:56 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 225649 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225649&amp;action=review
&gt; 
&gt; Thanks for doing this. The patch looks good to me in general, but still needs some changes IMHO (see below). Also, table cell is a pretty new thing to ATK so you probably want to use ATK_CHECK_VERSION in some places too.
&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:49
&gt; &gt; +    accessibilityObjectGetOrReturn(cell, axObject, nullptr);
&gt; &gt;  
&gt; &gt; -    AccessibilityObject* axObject = core(cell);
&gt; &gt; -    if (!axObject || !axObject-&gt;isTableCell())
&gt; &gt; +    if (!axObject-&gt;isTableCell())
&gt; 
&gt; I&apos;d rather keep the old idiom in place. This new macro is confusing IMHO, specially because of containing an out parameter, and thus decreases readability

Done.

&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:103
&gt; &gt; +gboolean webkitAccessibleTableCellGetPosition(AtkTableCell* cell, gint *row, gint* column)
&gt; 
&gt; misplaced *
Done
&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h:70
&gt; &gt; +    } while (0)
&gt; 
&gt; Because of the particular nature of this macro, you can not place the whole block inside G_STMT_START/END guards which, besides being probably not good enough for places where the compiler expects the macro to expand in only one line, looks a bit awkward, IMO
&gt; 
&gt; This should go away if you go back to the old idiom, though
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:213
&gt; &gt; +    gint row = -1, column= -1, rowSpan = -1, columnSpan = -1;
&gt; 
&gt; Please declare each variable in a separate line and use int instead of gint.
Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986796</commentid>
    <comment_count>10</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2014-03-04 07:14:29 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 225649 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225649&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Implemented  missing API of AtkTableCell.
Done.
&gt; 
&gt; too many spaces after Implemented
&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:134
&gt; &gt; +    AtkObject* table = atk_object_get_parent(axObject-&gt;wrapper());
&gt; 
&gt; should you verify that this is actually the table element before returning?
Yes exactly, you are right. Thanks.
&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleUtil.h:63
&gt; &gt; +    AccessibilityObject* axObject = nullptr; \
&gt; 
&gt; It&apos;s a little non-intuitive that a local variable will be declared inside the macro, that you reference outside the macro.
&gt; 
&gt; Maybe it would be better to write a function that does this same check
Yes, this sounds as good idea. We already have similar function that returns AccessibilityObject for respective AtkObject and it&apos;s called webkitAccessibleGetAccessibilityObject. I think it can be slightly extended for adding some additional checks. I think it should be modified in a separate patch because it touches many files that are not related to this changes.
&gt; 
&gt; AccessibilityObject* axObject = verifyAccessibilityObjectIsValid(...);
&gt; if (!axObject)
&gt; return;
Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987231</commentid>
    <comment_count>11</comment_count>
      <attachid>225773</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-03-05 06:15:36 -0800</bug_when>
    <thetext>Comment on attachment 225773
patch

Looks good to me now. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987241</commentid>
    <comment_count>12</comment_count>
      <attachid>225773</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 07:10:28 -0800</bug_when>
    <thetext>Comment on attachment 225773
patch

Clearing flags on attachment: 225773

Committed r165107: &lt;http://trac.webkit.org/changeset/165107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987242</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 07:10:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225646</attachid>
            <date>2014-03-03 06:31:36 -0800</date>
            <delta_ts>2014-03-03 06:48:36 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-atktablecell-missing-api.patch</filename>
            <type>text/plain</type>
            <size>9508</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMDVjMjczLi42YjY5MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxl
Q2VsbCB0byBBVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkICBtaXNzaW5nIEFQSSBvZiBBdGtUYWJsZUNlbGwuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcDoKKyAg
ICAgICAgKHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5IZWFkZXJDZWxscyk6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMpOgorICAg
ICAgICAod2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW4pOgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1NwYW4pOgorICAgICAgICAod2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRUYWJsZSk6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVV0aWwuaDoKKwogMjAxNC0wMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkIHNob3VsZG4ndCBkbyBhbnkgd29y
ayB3aGVuIGF0dHJpYnV0ZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVD
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCmluZGV4IDQ5OGMyNjYuLjY1Njk3MzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCkBAIC00MCwyMSArNDAsMTMg
QEAgc3RhdGljIEdQdHJBcnJheSogY29udmVydFRvR1B0ckFycmF5KGNvbnN0IEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGkKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRp
YyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1RhYmxlQ2VsbCogY2VsbCkKLXsKLSAgICBp
ZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNlbGwpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIHJldHVybiB3ZWJraXRBY2Nlc3NpYmxlR2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJL
SVRfQUNDRVNTSUJMRShjZWxsKSk7Ci19Ci0KIEdQdHJBcnJheSogd2Via2l0QWNjZXNzaWJsZVRh
YmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzKEF0a1RhYmxlQ2VsbCogY2VsbCkKIHsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CiAgICAg
cmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNl
bGwpLCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwg
YXhPYmplY3QsIG51bGxwdHIpOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3Qg
PSBjb3JlKGNlbGwpOwotICAgIGlmICghYXhPYmplY3QgfHwgIWF4T2JqZWN0LT5pc1RhYmxlQ2Vs
bCgpKQorICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnM7CkBAIC02NywxMCArNTksMTAgQEAgR1B0ckFycmF5KiB3ZWJr
aXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMoQXRrVGFibGVDZWxsKiBjZWxs
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9DRUxMKGNlbGwpLCBudWxs
cHRyKTsKICAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFsaWQoV0VCS0lUX0FD
Q0VTU0lCTEUoY2VsbCksIG51bGxwdHIpOworICAgIGFjY2Vzc2liaWxpdHlPYmplY3RHZXRPclJl
dHVybihjZWxsLCBheE9iamVjdCwgbnVsbHB0cik7CiAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheE9iamVjdCA9IGNvcmUoY2VsbCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhYXhPYmplY3Qt
PmlzVGFibGVDZWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghYXhPYmpl
Y3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOyAgIAogCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnM7
CiAgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+cm93SGVhZGVycyhyb3dI
ZWFkZXJzKTsKQEAgLTc4LDEwICs3MCw3NSBAQCBHUHRyQXJyYXkqIHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRSb3dIZWFkZXJDZWxscyhBdGtUYWJsZUNlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IGNvbnZlcnRUb0dQdHJBcnJheShyb3dIZWFkZXJzKTsKIH0KIAorZ2ludCB3ZWJraXRBY2Nlc3Np
YmxlVGFibGVDZWxsR2V0Q29sdW1uU3BhbihBdGtUYWJsZUNlbGwqIGNlbGwpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoQVRLX1RBQkxFX0NFTEwoY2VsbCksIDApOworICAgIHJldHVyblZh
bElmV2ViS2l0QWNjZXNzaWJsZUlzSW52YWxpZChXRUJLSVRfQUNDRVNTSUJMRShjZWxsKSwgMCk7
CisgICAgYWNjZXNzaWJpbGl0eU9iamVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCAwKTsK
KworICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gY29sdW1uUmFuZ2U7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
YW5nZSk7CisKKyAgICByZXR1cm4gY29sdW1uUmFuZ2Uuc2Vjb25kOworfQorCitnaW50IHdlYmtp
dEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgMCk7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCAwKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwgYXhPYmplY3Qs
IDApOworCisgICAgaWYgKCFheE9iamVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiByb3dSYW5nZTsKKyAgICB0
b0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKHJvd1Jhbmdl
KTsKKworICAgIHJldHVybiByb3dSYW5nZS5zZWNvbmQ7Cit9CisKK2dib29sZWFuIHdlYmtpdEFj
Y2Vzc2libGVUYWJsZUNlbGxHZXRQb3NpdGlvbihBdGtUYWJsZUNlbGwqIGNlbGwsIGdpbnQgKnJv
dywgZ2ludCogY29sdW1uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9D
RUxMKGNlbGwpLCBmYWxzZSk7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZh
bGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwpLCBmYWxzZSk7CisgICAgYWNjZXNzaWJpbGl0eU9i
amVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCBmYWxzZSk7CisKKyAgICBpZiAoIWF4T2Jq
ZWN0LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiBjb2x1bW5Sb3dSYW5nZTsKKyAgICB0b0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKGNvbHVtblJvd1JhbmdlKTsKKyAg
ICAqcm93ID0gY29sdW1uUm93UmFuZ2UuZmlyc3Q7CisgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVD
ZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5Sb3dSYW5nZSk7CisgICAgKmNv
bHVtbiA9IGNvbHVtblJvd1JhbmdlLmZpcnN0OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0F0
a09iamVjdCogd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFRhYmxlKEF0a1RhYmxlQ2VsbCog
Y2VsbCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwg
bnVsbHB0cik7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJ
VF9BQ0NFU1NJQkxFKGNlbGwpLCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0
T3JSZXR1cm4oQVRLX1RBQkxFX0NFTEwoY2VsbCksIGF4T2JqZWN0LCBudWxscHRyKTsKKworICAg
IGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgQXRrT2JqZWN0KiB0YWJsZSA9IGF0a19vYmplY3RfZ2V0X3BhcmVudChheE9iamVjdC0+
d3JhcHBlcigpKTsKKyAgICByZXR1cm4gdGFibGUgPyBBVEtfT0JKRUNUKGdfb2JqZWN0X3JlZih0
YWJsZSkpIDogbnVsbHB0cjsKK30KKwogdm9pZCB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdChBdGtUYWJsZUNlbGxJZmFjZSogaWZhY2UpCiB7CiAgICAgaWZhY2UtPmdldF9j
b2x1bW5faGVhZGVyX2NlbGxzID0gd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtbkhl
YWRlckNlbGxzOwogICAgIGlmYWNlLT5nZXRfcm93X2hlYWRlcl9jZWxscyA9IHdlYmtpdEFjY2Vz
c2libGVUYWJsZUNlbGxHZXRSb3dIZWFkZXJDZWxsczsKKyAgICBpZmFjZS0+Z2V0X2NvbHVtbl9z
cGFuID0gd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW47CisgICAgaWZhY2Ut
PmdldF9yb3dfc3BhbiA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuOworICAg
IGlmYWNlLT5nZXRfcG9zaXRpb24gPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0UG9zaXRp
b247CisgICAgaWZhY2UtPmdldF90YWJsZSA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRU
YWJsZTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVV0aWwuaAppbmRleCBkMDMxMmRjLi5kNzg1ZDAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3Np
YmxlVXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVVdGlsLmgKQEAgLTU5LDYgKzU5LDE2IEBAIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CiAgICAgICAgICAgICByZXR1cm4gKHZhbCk7IFwKICAgICB9OyB9IEdfU1RNVF9FTkQKIAorI2Rl
ZmluZSBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY29yZU9iamVjdCwgYXhPYmplY3Qs
IC4uLikgXAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4T2JqZWN0ID0gbnVsbHB0cjsgXAor
ICAgIGRvIHsgXAorICAgICAgICBpZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNvcmVPYmplY3Qp
KSBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgYXhPYmplY3Qg
PSB3ZWJraXRBY2Nlc3NpYmxlR2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJLSVRfQUNDRVNTSUJM
RShjb3JlT2JqZWN0KSk7IFwKKyAgICAgICAgaWYgKEdfVU5MSUtFTFkoIWF4T2JqZWN0KSkgXAor
ICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgfSB3aGlsZSAoMCkKKwogQXRr
QXR0cmlidXRlU2V0KiBhZGRUb0F0a0F0dHJpYnV0ZVNldChBdGtBdHRyaWJ1dGVTZXQqLCBjb25z
dCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKIHZvaWQgY29udGVudHNSZWxhdGl2
ZVRvQXRrQ29vcmRpbmF0ZVR5cGUoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCosIEF0a0Nv
b3JkVHlwZSwgV2ViQ29yZTo6SW50UmVjdCwgZ2ludCogeCwgZ2ludCogeSwgZ2ludCogd2lkdGgg
PSAwLCBnaW50KiBoZWlnaHQgPSAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NjRkMzI4Li40ZmM4ZTI2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDMt
MDMgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxlQ2VsbCB0byBBVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNpbmcg
c29tZSBjb2RlIGJ5IHVzaW5nIG5ldyBBUEkgb2YgQXRrVGFibGVDZWxsLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEF0ay5jcHA6CisKIDIwMTQtMDItMjcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogbW9kZWwgdGVzdHMgc2hvdWxkIHVzZSBhIHNwZWNpYWwg
VGVzdC5odG1sIGluc3BlY3RvciBwYWdlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRBdGsuY3BwCmluZGV4IGY3MzU5N2MuLjlmZjJkYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRB
dGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCkBAIC0yMDUsMjQgKzIwNSwxMyBAQCBib29sIGNo
ZWNrRWxlbWVudFN0YXRlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1N0YXRlVHlwZSBz
dGF0ZVR5cGUpCiAKIEpTU3RyaW5nUmVmIGluZGV4UmFuZ2VJblRhYmxlKFBsYXRmb3JtVUlFbGVt
ZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKIHsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBy
YW5nZVN0cmluZyhnX3N0cmR1cCgiezAsIDB9IikpOwotCi0gICAgaWYgKCFBVEtfSVNfT0JKRUNU
KGVsZW1lbnQuZ2V0KCkpKQotICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOwotCi0gICAgQXRrT2JqZWN0KiBheFRhYmxlID0gYXRr
X29iamVjdF9nZXRfcGFyZW50KEFUS19PQkpFQ1QoZWxlbWVudC5nZXQoKSkpOwotICAgIGlmICgh
YXhUYWJsZSB8fCAhQVRLX0lTX1RBQkxFKGF4VGFibGUpKQotICAgICAgICByZXR1cm4gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOworICAgIGlmICghQVRL
X0lTX1RBQkxFX0NFTEwoZWxlbWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgLy8gTG9vayBmb3IgdGhlIGNlbGwgaW4gdGhlIHRhYmxlLgotICAgIGdpbnQgaW5kZXhJ
blBhcmVudCA9IGF0a19vYmplY3RfZ2V0X2luZGV4X2luX3BhcmVudChBVEtfT0JKRUNUKGVsZW1l
bnQuZ2V0KCkpKTsKLSAgICBpZiAoaW5kZXhJblBhcmVudCA9PSAtMSkKLSAgICAgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHJhbmdlU3RyaW5nLmdldCgpKTsKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiByYW5nZVN0cmluZyhnX3N0cmR1cCgiezAsIDB9IikpOwogCi0gICAg
aW50IHJvdyA9IC0xOwotICAgIGludCBjb2x1bW4gPSAtMTsKLSAgICByb3cgPSBhdGtfdGFibGVf
Z2V0X3Jvd19hdF9pbmRleChBVEtfVEFCTEUoYXhUYWJsZSksIGluZGV4SW5QYXJlbnQpOwotICAg
IGNvbHVtbiA9IGF0a190YWJsZV9nZXRfY29sdW1uX2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxl
KSwgaW5kZXhJblBhcmVudCk7CisgICAgZ2ludCByb3cgPSAtMSwgY29sdW1uPSAtMSwgcm93U3Bh
biA9IC0xLCBjb2x1bW5TcGFuID0gLTE7CisgICAgYXRrX3RhYmxlX2NlbGxfZ2V0X3Jvd19jb2x1
bW5fc3BhbihBVEtfVEFCTEVfQ0VMTChlbGVtZW50LmdldCgpKSwgJnJvdywgJmNvbHVtbiwgJnJv
d1NwYW4sICZjb2x1bW5TcGFuKTsKIAogICAgIC8vIEdldCB0aGUgYWN0dWFsIHZhbHVlcywgaWYg
cm93IGFuZCBjb2x1bW5zIGFyZSB2YWxpZCB2YWx1ZXMuCiAgICAgaWYgKHJvdyAhPSAtMSAmJiBj
b2x1bW4gIT0gLTEpIHsKQEAgLTIzMCwxMCArMjE5LDEwIEBAIEpTU3RyaW5nUmVmIGluZGV4UmFu
Z2VJblRhYmxlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKICAg
ICAgICAgaW50IGxlbmd0aCA9IDA7CiAgICAgICAgIGlmIChpc1Jvd1JhbmdlKSB7CiAgICAgICAg
ICAgICBiYXNlID0gcm93OwotICAgICAgICAgICAgbGVuZ3RoID0gYXRrX3RhYmxlX2dldF9yb3df
ZXh0ZW50X2F0KEFUS19UQUJMRShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAg
bGVuZ3RoID0gcm93U3BhbjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2UgPSBj
b2x1bW47Ci0gICAgICAgICAgICBsZW5ndGggPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRf
YXQoQVRLX1RBQkxFKGF4VGFibGUpLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICBsZW5ndGgg
PSBjb2x1bW5TcGFuOwogICAgICAgICB9CiAgICAgICAgIHJhbmdlU3RyaW5nLnJlc2V0KGdfc3Ry
ZHVwX3ByaW50ZigieyVkLCAlZH0iLCBiYXNlLCBsZW5ndGgpKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225647</attachid>
            <date>2014-03-03 06:48:36 -0800</date>
            <delta_ts>2014-03-03 06:51:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-atktablecell-missing-api.patch</filename>
            <type>text/plain</type>
            <size>9547</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMDVjMjczLi42YjY5MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxl
Q2VsbCB0byBBVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkICBtaXNzaW5nIEFQSSBvZiBBdGtUYWJsZUNlbGwuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcDoKKyAg
ICAgICAgKHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5IZWFkZXJDZWxscyk6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMpOgorICAg
ICAgICAod2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW4pOgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1NwYW4pOgorICAgICAgICAod2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRUYWJsZSk6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVV0aWwuaDoKKwogMjAxNC0wMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkIHNob3VsZG4ndCBkbyBhbnkgd29y
ayB3aGVuIGF0dHJpYnV0ZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVD
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCmluZGV4IDQ5OGMyNjYuLjI1YjFlMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCkBAIC00MCwyMSArNDAsMTMg
QEAgc3RhdGljIEdQdHJBcnJheSogY29udmVydFRvR1B0ckFycmF5KGNvbnN0IEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGkKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRp
YyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1RhYmxlQ2VsbCogY2VsbCkKLXsKLSAgICBp
ZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNlbGwpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIHJldHVybiB3ZWJraXRBY2Nlc3NpYmxlR2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJL
SVRfQUNDRVNTSUJMRShjZWxsKSk7Ci19Ci0KIEdQdHJBcnJheSogd2Via2l0QWNjZXNzaWJsZVRh
YmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzKEF0a1RhYmxlQ2VsbCogY2VsbCkKIHsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CiAgICAg
cmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNl
bGwpLCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwg
YXhPYmplY3QsIG51bGxwdHIpOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3Qg
PSBjb3JlKGNlbGwpOwotICAgIGlmICghYXhPYmplY3QgfHwgIWF4T2JqZWN0LT5pc1RhYmxlQ2Vs
bCgpKQorICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnM7CkBAIC02NywxMCArNTksMTAgQEAgR1B0ckFycmF5KiB3ZWJr
aXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMoQXRrVGFibGVDZWxsKiBjZWxs
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9DRUxMKGNlbGwpLCBudWxs
cHRyKTsKICAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFsaWQoV0VCS0lUX0FD
Q0VTU0lCTEUoY2VsbCksIG51bGxwdHIpOworICAgIGFjY2Vzc2liaWxpdHlPYmplY3RHZXRPclJl
dHVybihjZWxsLCBheE9iamVjdCwgbnVsbHB0cik7CiAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheE9iamVjdCA9IGNvcmUoY2VsbCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhYXhPYmplY3Qt
PmlzVGFibGVDZWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghYXhPYmpl
Y3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOyAgIAogCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnM7
CiAgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+cm93SGVhZGVycyhyb3dI
ZWFkZXJzKTsKQEAgLTc4LDEwICs3MCw3NyBAQCBHUHRyQXJyYXkqIHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRSb3dIZWFkZXJDZWxscyhBdGtUYWJsZUNlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IGNvbnZlcnRUb0dQdHJBcnJheShyb3dIZWFkZXJzKTsKIH0KIAorZ2ludCB3ZWJraXRBY2Nlc3Np
YmxlVGFibGVDZWxsR2V0Q29sdW1uU3BhbihBdGtUYWJsZUNlbGwqIGNlbGwpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoQVRLX1RBQkxFX0NFTEwoY2VsbCksIDApOworICAgIHJldHVyblZh
bElmV2ViS2l0QWNjZXNzaWJsZUlzSW52YWxpZChXRUJLSVRfQUNDRVNTSUJMRShjZWxsKSwgMCk7
CisgICAgYWNjZXNzaWJpbGl0eU9iamVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCAwKTsK
KworICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gY29sdW1uUmFuZ2U7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
YW5nZSk7CisKKyAgICByZXR1cm4gY29sdW1uUmFuZ2Uuc2Vjb25kOworfQorCitnaW50IHdlYmtp
dEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgMCk7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCAwKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwgYXhPYmplY3Qs
IDApOworCisgICAgaWYgKCFheE9iamVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiByb3dSYW5nZTsKKyAgICB0
b0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKHJvd1Jhbmdl
KTsKKworICAgIHJldHVybiByb3dSYW5nZS5zZWNvbmQ7Cit9CisKK2dib29sZWFuIHdlYmtpdEFj
Y2Vzc2libGVUYWJsZUNlbGxHZXRQb3NpdGlvbihBdGtUYWJsZUNlbGwqIGNlbGwsIGdpbnQgKnJv
dywgZ2ludCogY29sdW1uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9D
RUxMKGNlbGwpLCBmYWxzZSk7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZh
bGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwpLCBmYWxzZSk7CisgICAgYWNjZXNzaWJpbGl0eU9i
amVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCBmYWxzZSk7CisKKyAgICBpZiAoIWF4T2Jq
ZWN0LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiBjb2x1bW5Sb3dSYW5nZTsKKyAgICB0b0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKGNvbHVtblJvd1JhbmdlKTsKKyAg
ICBpZiAocm93KQorICAgICAgICAqcm93ID0gY29sdW1uUm93UmFuZ2UuZmlyc3Q7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
b3dSYW5nZSk7CisgICAgaWYgKGNvbHVtbikKKyAgICAgICAgKmNvbHVtbiA9IGNvbHVtblJvd1Jh
bmdlLmZpcnN0OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0F0a09iamVjdCogd2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFRhYmxlKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oQVRLX1RBQkxF
X0NFTEwoY2VsbCksIGF4T2JqZWN0LCBudWxscHRyKTsKKworICAgIGlmICghYXhPYmplY3QtPmlz
VGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQXRrT2JqZWN0KiB0
YWJsZSA9IGF0a19vYmplY3RfZ2V0X3BhcmVudChheE9iamVjdC0+d3JhcHBlcigpKTsKKyAgICBy
ZXR1cm4gdGFibGUgPyBBVEtfT0JKRUNUKGdfb2JqZWN0X3JlZih0YWJsZSkpIDogbnVsbHB0cjsK
K30KKwogdm9pZCB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50ZXJmYWNlSW5pdChBdGtUYWJs
ZUNlbGxJZmFjZSogaWZhY2UpCiB7CiAgICAgaWZhY2UtPmdldF9jb2x1bW5faGVhZGVyX2NlbGxz
ID0gd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzOwogICAgIGlm
YWNlLT5nZXRfcm93X2hlYWRlcl9jZWxscyA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRS
b3dIZWFkZXJDZWxsczsKKyAgICBpZmFjZS0+Z2V0X2NvbHVtbl9zcGFuID0gd2Via2l0QWNjZXNz
aWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW47CisgICAgaWZhY2UtPmdldF9yb3dfc3BhbiA9IHdl
YmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuOworICAgIGlmYWNlLT5nZXRfcG9zaXRp
b24gPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0UG9zaXRpb247CisgICAgaWZhY2UtPmdl
dF90YWJsZSA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRUYWJsZTsKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlVXRpbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNj
ZXNzaWJsZVV0aWwuaAppbmRleCBkMDMxMmRjLi5kNzg1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVVdGlsLmgKQEAg
LTU5LDYgKzU5LDE2IEBAIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiAgICAgICAgICAgICByZXR1
cm4gKHZhbCk7IFwKICAgICB9OyB9IEdfU1RNVF9FTkQKIAorI2RlZmluZSBhY2Nlc3NpYmlsaXR5
T2JqZWN0R2V0T3JSZXR1cm4oY29yZU9iamVjdCwgYXhPYmplY3QsIC4uLikgXAorICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGF4T2JqZWN0ID0gbnVsbHB0cjsgXAorICAgIGRvIHsgXAorICAgICAg
ICBpZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNvcmVPYmplY3QpKSBcCisgICAgICAgICAgICBy
ZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgYXhPYmplY3QgPSB3ZWJraXRBY2Nlc3NpYmxl
R2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJLSVRfQUNDRVNTSUJMRShjb3JlT2JqZWN0KSk7IFwK
KyAgICAgICAgaWYgKEdfVU5MSUtFTFkoIWF4T2JqZWN0KSkgXAorICAgICAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOyBcCisgICAgfSB3aGlsZSAoMCkKKwogQXRrQXR0cmlidXRlU2V0KiBhZGRU
b0F0a0F0dHJpYnV0ZVNldChBdGtBdHRyaWJ1dGVTZXQqLCBjb25zdCBjaGFyKiBuYW1lLCBjb25z
dCBjaGFyKiB2YWx1ZSk7CiAKIHZvaWQgY29udGVudHNSZWxhdGl2ZVRvQXRrQ29vcmRpbmF0ZVR5
cGUoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCosIEF0a0Nvb3JkVHlwZSwgV2ViQ29yZTo6
SW50UmVjdCwgZ2ludCogeCwgZ2ludCogeSwgZ2ludCogd2lkdGggPSAwLCBnaW50KiBoZWlnaHQg
PSAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5NjRkMzI4Li40ZmM4ZTI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVj
aCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3Npbmcg
ZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxlQ2VsbCB0byBBVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDkyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNpbmcgc29tZSBjb2RlIGJ5IHVzaW5n
IG5ldyBBUEkgb2YgQXRrVGFibGVDZWxsLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisKIDIwMTQt
MDItMjcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogbW9kZWwgdGVzdHMgc2hvdWxkIHVzZSBhIHNwZWNpYWwgVGVzdC5odG1sIGluc3BlY3Rv
ciBwYWdlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4
IGY3MzU5N2MuLjlmZjJkYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCkBAIC0yMDUsMjQgKzIwNSwxMyBAQCBib29sIGNoZWNrRWxlbWVudFN0YXRlKFBs
YXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1N0YXRlVHlwZSBzdGF0ZVR5cGUpCiAKIEpTU3Ry
aW5nUmVmIGluZGV4UmFuZ2VJblRhYmxlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIGJvb2wg
aXNSb3dSYW5nZSkKIHsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiByYW5nZVN0cmluZyhnX3N0cmR1
cCgiezAsIDB9IikpOwotCi0gICAgaWYgKCFBVEtfSVNfT0JKRUNUKGVsZW1lbnQuZ2V0KCkpKQot
ICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcu
Z2V0KCkpOwotCi0gICAgQXRrT2JqZWN0KiBheFRhYmxlID0gYXRrX29iamVjdF9nZXRfcGFyZW50
KEFUS19PQkpFQ1QoZWxlbWVudC5nZXQoKSkpOwotICAgIGlmICghYXhUYWJsZSB8fCAhQVRLX0lT
X1RBQkxFKGF4VGFibGUpKQotICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOworICAgIGlmICghQVRLX0lTX1RBQkxFX0NFTEwoZWxl
bWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgLy8gTG9vayBmb3Ig
dGhlIGNlbGwgaW4gdGhlIHRhYmxlLgotICAgIGdpbnQgaW5kZXhJblBhcmVudCA9IGF0a19vYmpl
Y3RfZ2V0X2luZGV4X2luX3BhcmVudChBVEtfT0JKRUNUKGVsZW1lbnQuZ2V0KCkpKTsKLSAgICBp
ZiAoaW5kZXhJblBhcmVudCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHJhbmdlU3RyaW5nLmdldCgpKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBy
YW5nZVN0cmluZyhnX3N0cmR1cCgiezAsIDB9IikpOwogCi0gICAgaW50IHJvdyA9IC0xOwotICAg
IGludCBjb2x1bW4gPSAtMTsKLSAgICByb3cgPSBhdGtfdGFibGVfZ2V0X3Jvd19hdF9pbmRleChB
VEtfVEFCTEUoYXhUYWJsZSksIGluZGV4SW5QYXJlbnQpOwotICAgIGNvbHVtbiA9IGF0a190YWJs
ZV9nZXRfY29sdW1uX2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxlKSwgaW5kZXhJblBhcmVudCk7
CisgICAgZ2ludCByb3cgPSAtMSwgY29sdW1uPSAtMSwgcm93U3BhbiA9IC0xLCBjb2x1bW5TcGFu
ID0gLTE7CisgICAgYXRrX3RhYmxlX2NlbGxfZ2V0X3Jvd19jb2x1bW5fc3BhbihBVEtfVEFCTEVf
Q0VMTChlbGVtZW50LmdldCgpKSwgJnJvdywgJmNvbHVtbiwgJnJvd1NwYW4sICZjb2x1bW5TcGFu
KTsKIAogICAgIC8vIEdldCB0aGUgYWN0dWFsIHZhbHVlcywgaWYgcm93IGFuZCBjb2x1bW5zIGFy
ZSB2YWxpZCB2YWx1ZXMuCiAgICAgaWYgKHJvdyAhPSAtMSAmJiBjb2x1bW4gIT0gLTEpIHsKQEAg
LTIzMCwxMCArMjE5LDEwIEBAIEpTU3RyaW5nUmVmIGluZGV4UmFuZ2VJblRhYmxlKFBsYXRmb3Jt
VUlFbGVtZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKICAgICAgICAgaW50IGxlbmd0aCA9
IDA7CiAgICAgICAgIGlmIChpc1Jvd1JhbmdlKSB7CiAgICAgICAgICAgICBiYXNlID0gcm93Owot
ICAgICAgICAgICAgbGVuZ3RoID0gYXRrX3RhYmxlX2dldF9yb3dfZXh0ZW50X2F0KEFUS19UQUJM
RShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAgbGVuZ3RoID0gcm93U3BhbjsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2UgPSBjb2x1bW47Ci0gICAgICAgICAg
ICBsZW5ndGggPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRfYXQoQVRLX1RBQkxFKGF4VGFi
bGUpLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICBsZW5ndGggPSBjb2x1bW5TcGFuOwogICAg
ICAgICB9CiAgICAgICAgIHJhbmdlU3RyaW5nLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigieyVkLCAl
ZH0iLCBiYXNlLCBsZW5ndGgpKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225648</attachid>
            <date>2014-03-03 06:51:55 -0800</date>
            <delta_ts>2014-03-03 06:53:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-atktablecell-missing-api.patch</filename>
            <type>text/plain</type>
            <size>9547</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMDVjMjczLi42YjY5MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxl
Q2VsbCB0byBBVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkICBtaXNzaW5nIEFQSSBvZiBBdGtUYWJsZUNlbGwuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcDoKKyAg
ICAgICAgKHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5IZWFkZXJDZWxscyk6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMpOgorICAg
ICAgICAod2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW4pOgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1NwYW4pOgorICAgICAgICAod2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRUYWJsZSk6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVV0aWwuaDoKKwogMjAxNC0wMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkIHNob3VsZG4ndCBkbyBhbnkgd29y
ayB3aGVuIGF0dHJpYnV0ZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVD
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCmluZGV4IDQ5OGMyNjYuLjI1YjFlMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCkBAIC00MCwyMSArNDAsMTMg
QEAgc3RhdGljIEdQdHJBcnJheSogY29udmVydFRvR1B0ckFycmF5KGNvbnN0IEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGkKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRp
YyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1RhYmxlQ2VsbCogY2VsbCkKLXsKLSAgICBp
ZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNlbGwpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIHJldHVybiB3ZWJraXRBY2Nlc3NpYmxlR2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJL
SVRfQUNDRVNTSUJMRShjZWxsKSk7Ci19Ci0KIEdQdHJBcnJheSogd2Via2l0QWNjZXNzaWJsZVRh
YmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzKEF0a1RhYmxlQ2VsbCogY2VsbCkKIHsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CiAgICAg
cmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNl
bGwpLCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwg
YXhPYmplY3QsIG51bGxwdHIpOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3Qg
PSBjb3JlKGNlbGwpOwotICAgIGlmICghYXhPYmplY3QgfHwgIWF4T2JqZWN0LT5pc1RhYmxlQ2Vs
bCgpKQorICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnM7CkBAIC02NywxMCArNTksMTAgQEAgR1B0ckFycmF5KiB3ZWJr
aXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMoQXRrVGFibGVDZWxsKiBjZWxs
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9DRUxMKGNlbGwpLCBudWxs
cHRyKTsKICAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFsaWQoV0VCS0lUX0FD
Q0VTU0lCTEUoY2VsbCksIG51bGxwdHIpOworICAgIGFjY2Vzc2liaWxpdHlPYmplY3RHZXRPclJl
dHVybihjZWxsLCBheE9iamVjdCwgbnVsbHB0cik7CiAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheE9iamVjdCA9IGNvcmUoY2VsbCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhYXhPYmplY3Qt
PmlzVGFibGVDZWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghYXhPYmpl
Y3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOyAgIAogCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnM7
CiAgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+cm93SGVhZGVycyhyb3dI
ZWFkZXJzKTsKQEAgLTc4LDEwICs3MCw3NyBAQCBHUHRyQXJyYXkqIHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRSb3dIZWFkZXJDZWxscyhBdGtUYWJsZUNlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IGNvbnZlcnRUb0dQdHJBcnJheShyb3dIZWFkZXJzKTsKIH0KIAorZ2ludCB3ZWJraXRBY2Nlc3Np
YmxlVGFibGVDZWxsR2V0Q29sdW1uU3BhbihBdGtUYWJsZUNlbGwqIGNlbGwpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoQVRLX1RBQkxFX0NFTEwoY2VsbCksIDApOworICAgIHJldHVyblZh
bElmV2ViS2l0QWNjZXNzaWJsZUlzSW52YWxpZChXRUJLSVRfQUNDRVNTSUJMRShjZWxsKSwgMCk7
CisgICAgYWNjZXNzaWJpbGl0eU9iamVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCAwKTsK
KworICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gY29sdW1uUmFuZ2U7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
YW5nZSk7CisKKyAgICByZXR1cm4gY29sdW1uUmFuZ2Uuc2Vjb25kOworfQorCitnaW50IHdlYmtp
dEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgMCk7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCAwKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwgYXhPYmplY3Qs
IDApOworCisgICAgaWYgKCFheE9iamVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiByb3dSYW5nZTsKKyAgICB0
b0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKHJvd1Jhbmdl
KTsKKworICAgIHJldHVybiByb3dSYW5nZS5zZWNvbmQ7Cit9CisKK2dib29sZWFuIHdlYmtpdEFj
Y2Vzc2libGVUYWJsZUNlbGxHZXRQb3NpdGlvbihBdGtUYWJsZUNlbGwqIGNlbGwsIGdpbnQgKnJv
dywgZ2ludCogY29sdW1uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9D
RUxMKGNlbGwpLCBmYWxzZSk7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZh
bGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwpLCBmYWxzZSk7CisgICAgYWNjZXNzaWJpbGl0eU9i
amVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCBmYWxzZSk7CisKKyAgICBpZiAoIWF4T2Jq
ZWN0LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiBjb2x1bW5Sb3dSYW5nZTsKKyAgICB0b0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKGNvbHVtblJvd1JhbmdlKTsKKyAg
ICBpZiAocm93KQorICAgICAgICAqcm93ID0gY29sdW1uUm93UmFuZ2UuZmlyc3Q7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
b3dSYW5nZSk7CisgICAgaWYgKGNvbHVtbikKKyAgICAgICAgKmNvbHVtbiA9IGNvbHVtblJvd1Jh
bmdlLmZpcnN0OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0F0a09iamVjdCogd2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFRhYmxlKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oQVRLX1RBQkxF
X0NFTEwoY2VsbCksIGF4T2JqZWN0LCBudWxscHRyKTsKKworICAgIGlmICghYXhPYmplY3QtPmlz
VGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQXRrT2JqZWN0KiB0
YWJsZSA9IGF0a19vYmplY3RfZ2V0X3BhcmVudChheE9iamVjdC0+d3JhcHBlcigpKTsKKyAgICBy
ZXR1cm4gdGFibGUgPyBBVEtfT0JKRUNUKGdfb2JqZWN0X3JlZih0YWJsZSkpIDogbnVsbHB0cjsK
K30KKwogdm9pZCB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50ZXJmYWNlSW5pdChBdGtUYWJs
ZUNlbGxJZmFjZSogaWZhY2UpCiB7CiAgICAgaWZhY2UtPmdldF9jb2x1bW5faGVhZGVyX2NlbGxz
ID0gd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzOwogICAgIGlm
YWNlLT5nZXRfcm93X2hlYWRlcl9jZWxscyA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRS
b3dIZWFkZXJDZWxsczsKKyAgICBpZmFjZS0+Z2V0X2NvbHVtbl9zcGFuID0gd2Via2l0QWNjZXNz
aWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW47CisgICAgaWZhY2UtPmdldF9yb3dfc3BhbiA9IHdl
YmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuOworICAgIGlmYWNlLT5nZXRfcG9zaXRp
b24gPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0UG9zaXRpb247CisgICAgaWZhY2UtPmdl
dF90YWJsZSA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRUYWJsZTsKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlVXRpbC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNj
ZXNzaWJsZVV0aWwuaAppbmRleCBkMDMxMmRjLi5kNzg1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVVdGlsLmgKQEAg
LTU5LDYgKzU5LDE2IEBAIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiAgICAgICAgICAgICByZXR1
cm4gKHZhbCk7IFwKICAgICB9OyB9IEdfU1RNVF9FTkQKIAorI2RlZmluZSBhY2Nlc3NpYmlsaXR5
T2JqZWN0R2V0T3JSZXR1cm4oY29yZU9iamVjdCwgYXhPYmplY3QsIC4uLikgXAorICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIGF4T2JqZWN0ID0gbnVsbHB0cjsgXAorICAgIGRvIHsgXAorICAgICAg
ICBpZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNvcmVPYmplY3QpKSBcCisgICAgICAgICAgICBy
ZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgYXhPYmplY3QgPSB3ZWJraXRBY2Nlc3NpYmxl
R2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJLSVRfQUNDRVNTSUJMRShjb3JlT2JqZWN0KSk7IFwK
KyAgICAgICAgaWYgKEdfVU5MSUtFTFkoIWF4T2JqZWN0KSkgXAorICAgICAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOyBcCisgICAgfSB3aGlsZSAoMCkKKwogQXRrQXR0cmlidXRlU2V0KiBhZGRU
b0F0a0F0dHJpYnV0ZVNldChBdGtBdHRyaWJ1dGVTZXQqLCBjb25zdCBjaGFyKiBuYW1lLCBjb25z
dCBjaGFyKiB2YWx1ZSk7CiAKIHZvaWQgY29udGVudHNSZWxhdGl2ZVRvQXRrQ29vcmRpbmF0ZVR5
cGUoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCosIEF0a0Nvb3JkVHlwZSwgV2ViQ29yZTo6
SW50UmVjdCwgZ2ludCogeCwgZ2ludCogeSwgZ2ludCogd2lkdGggPSAwLCBnaW50KiBoZWlnaHQg
PSAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5NjRkMzI4Li40ZmM4ZTI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVj
aCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3Npbmcg
ZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxlQ2VsbCB0byBBVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDkyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNpbmcgc29tZSBjb2RlIGJ5IHVzaW5n
IG5ldyBBUEkgb2YgQXRrVGFibGVDZWxsLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisKIDIwMTQt
MDItMjcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogbW9kZWwgdGVzdHMgc2hvdWxkIHVzZSBhIHNwZWNpYWwgVGVzdC5odG1sIGluc3BlY3Rv
ciBwYWdlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCmluZGV4
IGY3MzU5N2MuLjlmZjJkYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRBdGsuY3BwCkBAIC0yMDUsMjQgKzIwNSwxMyBAQCBib29sIGNoZWNrRWxlbWVudFN0YXRlKFBs
YXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1N0YXRlVHlwZSBzdGF0ZVR5cGUpCiAKIEpTU3Ry
aW5nUmVmIGluZGV4UmFuZ2VJblRhYmxlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIGJvb2wg
aXNSb3dSYW5nZSkKIHsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiByYW5nZVN0cmluZyhnX3N0cmR1
cCgiezAsIDB9IikpOwotCi0gICAgaWYgKCFBVEtfSVNfT0JKRUNUKGVsZW1lbnQuZ2V0KCkpKQot
ICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcu
Z2V0KCkpOwotCi0gICAgQXRrT2JqZWN0KiBheFRhYmxlID0gYXRrX29iamVjdF9nZXRfcGFyZW50
KEFUS19PQkpFQ1QoZWxlbWVudC5nZXQoKSkpOwotICAgIGlmICghYXhUYWJsZSB8fCAhQVRLX0lT
X1RBQkxFKGF4VGFibGUpKQotICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOworICAgIGlmICghQVRLX0lTX1RBQkxFX0NFTEwoZWxl
bWVudC5nZXQoKSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgLy8gTG9vayBmb3Ig
dGhlIGNlbGwgaW4gdGhlIHRhYmxlLgotICAgIGdpbnQgaW5kZXhJblBhcmVudCA9IGF0a19vYmpl
Y3RfZ2V0X2luZGV4X2luX3BhcmVudChBVEtfT0JKRUNUKGVsZW1lbnQuZ2V0KCkpKTsKLSAgICBp
ZiAoaW5kZXhJblBhcmVudCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHJhbmdlU3RyaW5nLmdldCgpKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBy
YW5nZVN0cmluZyhnX3N0cmR1cCgiezAsIDB9IikpOwogCi0gICAgaW50IHJvdyA9IC0xOwotICAg
IGludCBjb2x1bW4gPSAtMTsKLSAgICByb3cgPSBhdGtfdGFibGVfZ2V0X3Jvd19hdF9pbmRleChB
VEtfVEFCTEUoYXhUYWJsZSksIGluZGV4SW5QYXJlbnQpOwotICAgIGNvbHVtbiA9IGF0a190YWJs
ZV9nZXRfY29sdW1uX2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxlKSwgaW5kZXhJblBhcmVudCk7
CisgICAgZ2ludCByb3cgPSAtMSwgY29sdW1uPSAtMSwgcm93U3BhbiA9IC0xLCBjb2x1bW5TcGFu
ID0gLTE7CisgICAgYXRrX3RhYmxlX2NlbGxfZ2V0X3Jvd19jb2x1bW5fc3BhbihBVEtfVEFCTEVf
Q0VMTChlbGVtZW50LmdldCgpKSwgJnJvdywgJmNvbHVtbiwgJnJvd1NwYW4sICZjb2x1bW5TcGFu
KTsKIAogICAgIC8vIEdldCB0aGUgYWN0dWFsIHZhbHVlcywgaWYgcm93IGFuZCBjb2x1bW5zIGFy
ZSB2YWxpZCB2YWx1ZXMuCiAgICAgaWYgKHJvdyAhPSAtMSAmJiBjb2x1bW4gIT0gLTEpIHsKQEAg
LTIzMCwxMCArMjE5LDEwIEBAIEpTU3RyaW5nUmVmIGluZGV4UmFuZ2VJblRhYmxlKFBsYXRmb3Jt
VUlFbGVtZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKICAgICAgICAgaW50IGxlbmd0aCA9
IDA7CiAgICAgICAgIGlmIChpc1Jvd1JhbmdlKSB7CiAgICAgICAgICAgICBiYXNlID0gcm93Owot
ICAgICAgICAgICAgbGVuZ3RoID0gYXRrX3RhYmxlX2dldF9yb3dfZXh0ZW50X2F0KEFUS19UQUJM
RShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAgbGVuZ3RoID0gcm93U3BhbjsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2UgPSBjb2x1bW47Ci0gICAgICAgICAg
ICBsZW5ndGggPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRfYXQoQVRLX1RBQkxFKGF4VGFi
bGUpLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICBsZW5ndGggPSBjb2x1bW5TcGFuOwogICAg
ICAgICB9CiAgICAgICAgIHJhbmdlU3RyaW5nLnJlc2V0KGdfc3RyZHVwX3ByaW50ZigieyVkLCAl
ZH0iLCBiYXNlLCBsZW5ndGgpKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225649</attachid>
            <date>2014-03-03 06:53:18 -0800</date>
            <delta_ts>2014-03-04 07:06:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-atktablecell-missing-api.patch</filename>
            <type>text/plain</type>
            <size>9573</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMDVjMjczLi42YjY5MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDMgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxl
Q2VsbCB0byBBVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkICBtaXNzaW5nIEFQSSBvZiBBdGtUYWJsZUNlbGwuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcDoKKyAg
ICAgICAgKHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5IZWFkZXJDZWxscyk6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMpOgorICAg
ICAgICAod2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW4pOgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1NwYW4pOgorICAgICAgICAod2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRUYWJsZSk6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVV0aWwuaDoKKwogMjAxNC0wMi0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkIHNob3VsZG4ndCBkbyBhbnkgd29y
ayB3aGVuIGF0dHJpYnV0ZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVD
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2li
bGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCmluZGV4IDQ5OGMyNjYuLmExMmIxNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwCkBAIC00MCwyMSArNDAsMTMg
QEAgc3RhdGljIEdQdHJBcnJheSogY29udmVydFRvR1B0ckFycmF5KGNvbnN0IEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGkKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRp
YyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlKEF0a1RhYmxlQ2VsbCogY2VsbCkKLXsKLSAgICBp
ZiAoIVdFQktJVF9JU19BQ0NFU1NJQkxFKGNlbGwpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIHJldHVybiB3ZWJraXRBY2Nlc3NpYmxlR2V0QWNjZXNzaWJpbGl0eU9iamVjdChXRUJL
SVRfQUNDRVNTSUJMRShjZWxsKSk7Ci19Ci0KIEdQdHJBcnJheSogd2Via2l0QWNjZXNzaWJsZVRh
YmxlQ2VsbEdldENvbHVtbkhlYWRlckNlbGxzKEF0a1RhYmxlQ2VsbCogY2VsbCkKIHsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgbnVsbHB0cik7CiAgICAg
cmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNl
bGwpLCBudWxscHRyKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwg
YXhPYmplY3QsIG51bGxwdHIpOwogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3Qg
PSBjb3JlKGNlbGwpOwotICAgIGlmICghYXhPYmplY3QgfHwgIWF4T2JqZWN0LT5pc1RhYmxlQ2Vs
bCgpKQorICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGNvbHVtbkhlYWRlcnM7CkBAIC02NywxMCArNTksMTAgQEAgR1B0ckFycmF5KiB3ZWJr
aXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVhZGVyQ2VsbHMoQXRrVGFibGVDZWxsKiBjZWxs
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9DRUxMKGNlbGwpLCBudWxs
cHRyKTsKICAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFsaWQoV0VCS0lUX0FD
Q0VTU0lCTEUoY2VsbCksIG51bGxwdHIpOworICAgIGFjY2Vzc2liaWxpdHlPYmplY3RHZXRPclJl
dHVybihjZWxsLCBheE9iamVjdCwgbnVsbHB0cik7CiAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheE9iamVjdCA9IGNvcmUoY2VsbCk7Ci0gICAgaWYgKCFheE9iamVjdCB8fCAhYXhPYmplY3Qt
PmlzVGFibGVDZWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghYXhPYmpl
Y3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOyAgIAogCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0hlYWRlcnM7
CiAgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+cm93SGVhZGVycyhyb3dI
ZWFkZXJzKTsKQEAgLTc4LDEwICs3MCw3OSBAQCBHUHRyQXJyYXkqIHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRSb3dIZWFkZXJDZWxscyhBdGtUYWJsZUNlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IGNvbnZlcnRUb0dQdHJBcnJheShyb3dIZWFkZXJzKTsKIH0KIAorZ2ludCB3ZWJraXRBY2Nlc3Np
YmxlVGFibGVDZWxsR2V0Q29sdW1uU3BhbihBdGtUYWJsZUNlbGwqIGNlbGwpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoQVRLX1RBQkxFX0NFTEwoY2VsbCksIDApOworICAgIHJldHVyblZh
bElmV2ViS2l0QWNjZXNzaWJsZUlzSW52YWxpZChXRUJLSVRfQUNDRVNTSUJMRShjZWxsKSwgMCk7
CisgICAgYWNjZXNzaWJpbGl0eU9iamVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCAwKTsK
KworICAgIGlmICghYXhPYmplY3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gY29sdW1uUmFuZ2U7CisgICAgdG9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsKGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5S
YW5nZSk7CisKKyAgICByZXR1cm4gY29sdW1uUmFuZ2Uuc2Vjb25kOworfQorCitnaW50IHdlYmtp
dEFjY2Vzc2libGVUYWJsZUNlbGxHZXRSb3dTcGFuKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwgMCk7CisgICAgcmV0
dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwp
LCAwKTsKKyAgICBhY2Nlc3NpYmlsaXR5T2JqZWN0R2V0T3JSZXR1cm4oY2VsbCwgYXhPYmplY3Qs
IDApOworCisgICAgaWYgKCFheE9iamVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiByb3dSYW5nZTsKKyAgICB0
b0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKHJvd1Jhbmdl
KTsKKworICAgIHJldHVybiByb3dSYW5nZS5zZWNvbmQ7Cit9CisKK2dib29sZWFuIHdlYmtpdEFj
Y2Vzc2libGVUYWJsZUNlbGxHZXRQb3NpdGlvbihBdGtUYWJsZUNlbGwqIGNlbGwsIGdpbnQgKnJv
dywgZ2ludCogY29sdW1uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9D
RUxMKGNlbGwpLCBmYWxzZSk7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZh
bGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwpLCBmYWxzZSk7CisgICAgYWNjZXNzaWJpbGl0eU9i
amVjdEdldE9yUmV0dXJuKGNlbGwsIGF4T2JqZWN0LCBmYWxzZSk7CisKKyAgICBpZiAoIWF4T2Jq
ZWN0LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiBjb2x1bW5Sb3dSYW5nZTsKKyAgICBpZiAocm93KSB7Cisg
ICAgICAgIHRvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChheE9iamVjdCktPnJvd0luZGV4UmFuZ2Uo
Y29sdW1uUm93UmFuZ2UpOworICAgICAgICAqcm93ID0gY29sdW1uUm93UmFuZ2UuZmlyc3Q7Cisg
ICAgfQorICAgIGlmIChjb2x1bW4pIHsKKyAgICAgICAgdG9BY2Nlc3NpYmlsaXR5VGFibGVDZWxs
KGF4T2JqZWN0KS0+Y29sdW1uSW5kZXhSYW5nZShjb2x1bW5Sb3dSYW5nZSk7CisgICAgICAgICpj
b2x1bW4gPSBjb2x1bW5Sb3dSYW5nZS5maXJzdDsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworQXRrT2JqZWN0KiB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0VGFibGUoQXRrVGFi
bGVDZWxsKiBjZWxsKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEFUS19UQUJMRV9DRUxM
KGNlbGwpLCBudWxscHRyKTsKKyAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFs
aWQoV0VCS0lUX0FDQ0VTU0lCTEUoY2VsbCksIG51bGxwdHIpOworICAgIGFjY2Vzc2liaWxpdHlP
YmplY3RHZXRPclJldHVybihBVEtfVEFCTEVfQ0VMTChjZWxsKSwgYXhPYmplY3QsIG51bGxwdHIp
OworCisgICAgaWYgKCFheE9iamVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBBdGtPYmplY3QqIHRhYmxlID0gYXRrX29iamVjdF9nZXRfcGFyZW50KGF4
T2JqZWN0LT53cmFwcGVyKCkpOworICAgIHJldHVybiB0YWJsZSA/IEFUS19PQkpFQ1QoZ19vYmpl
Y3RfcmVmKHRhYmxlKSkgOiBudWxscHRyOworfQorCiB2b2lkIHdlYmtpdEFjY2Vzc2libGVUYWJs
ZUNlbGxJbnRlcmZhY2VJbml0KEF0a1RhYmxlQ2VsbElmYWNlKiBpZmFjZSkKIHsKICAgICBpZmFj
ZS0+Z2V0X2NvbHVtbl9oZWFkZXJfY2VsbHMgPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0
Q29sdW1uSGVhZGVyQ2VsbHM7CiAgICAgaWZhY2UtPmdldF9yb3dfaGVhZGVyX2NlbGxzID0gd2Vi
a2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd0hlYWRlckNlbGxzOworICAgIGlmYWNlLT5nZXRf
Y29sdW1uX3NwYW4gPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Q29sdW1uU3BhbjsKKyAg
ICBpZmFjZS0+Z2V0X3Jvd19zcGFuID0gd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1Nw
YW47CisgICAgaWZhY2UtPmdldF9wb3NpdGlvbiA9IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxH
ZXRQb3NpdGlvbjsKKyAgICBpZmFjZS0+Z2V0X3RhYmxlID0gd2Via2l0QWNjZXNzaWJsZVRhYmxl
Q2VsbEdldFRhYmxlOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlVXRpbC5oCmluZGV4IGQwMzEyZGMuLmQ3
ODVkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGVVdGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
V2ViS2l0QWNjZXNzaWJsZVV0aWwuaApAQCAtNTksNiArNTksMTYgQEAgY2xhc3MgVmlzaWJsZVNl
bGVjdGlvbjsKICAgICAgICAgICAgIHJldHVybiAodmFsKTsgXAogICAgIH07IH0gR19TVE1UX0VO
RAogCisjZGVmaW5lIGFjY2Vzc2liaWxpdHlPYmplY3RHZXRPclJldHVybihjb3JlT2JqZWN0LCBh
eE9iamVjdCwgLi4uKSBcCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QgPSBudWxs
cHRyOyBcCisgICAgZG8geyBcCisgICAgICAgIGlmICghV0VCS0lUX0lTX0FDQ0VTU0lCTEUoY29y
ZU9iamVjdCkpIFwKKyAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorICAgICAgICBh
eE9iamVjdCA9IHdlYmtpdEFjY2Vzc2libGVHZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KFdFQktJVF9B
Q0NFU1NJQkxFKGNvcmVPYmplY3QpKTsgXAorICAgICAgICBpZiAoR19VTkxJS0VMWSghYXhPYmpl
Y3QpKSBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICB9IHdoaWxlICgw
KQorCiBBdGtBdHRyaWJ1dGVTZXQqIGFkZFRvQXRrQXR0cmlidXRlU2V0KEF0a0F0dHJpYnV0ZVNl
dCosIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZhbHVlKTsKIAogdm9pZCBjb250ZW50
c1JlbGF0aXZlVG9BdGtDb29yZGluYXRlVHlwZShXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQXRrQ29vcmRUeXBlLCBXZWJDb3JlOjpJbnRSZWN0LCBnaW50KiB4LCBnaW50KiB5LCBnaW50
KiB3aWR0aCA9IDAsIGdpbnQqIGhlaWdodCA9IDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk2NGQzMjguLjRmYzhlMjYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxNC0wMy0wMyAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbQVRLXSBFeHBvc2UgbWlzc2luZyBmdW5jdGlvbmFsaXRpZXMgb2YgQXRrVGFibGVDZWxs
IHRvIEFUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjk0OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWR1Y2luZyBzb21lIGNvZGUgYnkgdXNpbmcgbmV3IEFQSSBvZiBBdGtUYWJsZUNlbGwuCisKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50QXRrLmNwcDoKKwogMjAxNC0wMi0yNyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb2RlbCB0ZXN0cyBzaG91bGQgdXNlIGEg
c3BlY2lhbCBUZXN0Lmh0bWwgaW5zcGVjdG9yIHBhZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHAKaW5kZXggZjczNTk3Yy4uOWZmMmRhMSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAKQEAgLTIwNSwyNCArMjA1LDEzIEBA
IGJvb2wgY2hlY2tFbGVtZW50U3RhdGUoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCwgQXRrU3Rh
dGVUeXBlIHN0YXRlVHlwZSkKIAogSlNTdHJpbmdSZWYgaW5kZXhSYW5nZUluVGFibGUoUGxhdGZv
cm1VSUVsZW1lbnQgZWxlbWVudCwgYm9vbCBpc1Jvd1JhbmdlKQogewotICAgIEdVbmlxdWVQdHI8
Z2NoYXI+IHJhbmdlU3RyaW5nKGdfc3RyZHVwKCJ7MCwgMH0iKSk7Ci0KLSAgICBpZiAoIUFUS19J
U19PQkpFQ1QoZWxlbWVudC5nZXQoKSkpCi0gICAgICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhyYW5nZVN0cmluZy5nZXQoKSk7Ci0KLSAgICBBdGtPYmplY3QqIGF4VGFi
bGUgPSBhdGtfb2JqZWN0X2dldF9wYXJlbnQoQVRLX09CSkVDVChlbGVtZW50LmdldCgpKSk7Ci0g
ICAgaWYgKCFheFRhYmxlIHx8ICFBVEtfSVNfVEFCTEUoYXhUYWJsZSkpCi0gICAgICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhyYW5nZVN0cmluZy5nZXQoKSk7CisgICAg
aWYgKCFBVEtfSVNfVEFCTEVfQ0VMTChlbGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICAvLyBMb29rIGZvciB0aGUgY2VsbCBpbiB0aGUgdGFibGUuCi0gICAgZ2lu
dCBpbmRleEluUGFyZW50ID0gYXRrX29iamVjdF9nZXRfaW5kZXhfaW5fcGFyZW50KEFUS19PQkpF
Q1QoZWxlbWVudC5nZXQoKSkpOwotICAgIGlmIChpbmRleEluUGFyZW50ID09IC0xKQotICAgICAg
ICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkp
OworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHJhbmdlU3RyaW5nKGdfc3RyZHVwKCJ7MCwgMH0iKSk7
CiAKLSAgICBpbnQgcm93ID0gLTE7Ci0gICAgaW50IGNvbHVtbiA9IC0xOwotICAgIHJvdyA9IGF0
a190YWJsZV9nZXRfcm93X2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxlKSwgaW5kZXhJblBhcmVu
dCk7Ci0gICAgY29sdW1uID0gYXRrX3RhYmxlX2dldF9jb2x1bW5fYXRfaW5kZXgoQVRLX1RBQkxF
KGF4VGFibGUpLCBpbmRleEluUGFyZW50KTsKKyAgICBnaW50IHJvdyA9IC0xLCBjb2x1bW49IC0x
LCByb3dTcGFuID0gLTEsIGNvbHVtblNwYW4gPSAtMTsKKyAgICBhdGtfdGFibGVfY2VsbF9nZXRf
cm93X2NvbHVtbl9zcGFuKEFUS19UQUJMRV9DRUxMKGVsZW1lbnQuZ2V0KCkpLCAmcm93LCAmY29s
dW1uLCAmcm93U3BhbiwgJmNvbHVtblNwYW4pOwogCiAgICAgLy8gR2V0IHRoZSBhY3R1YWwgdmFs
dWVzLCBpZiByb3cgYW5kIGNvbHVtbnMgYXJlIHZhbGlkIHZhbHVlcy4KICAgICBpZiAocm93ICE9
IC0xICYmIGNvbHVtbiAhPSAtMSkgewpAQCAtMjMwLDEwICsyMTksMTAgQEAgSlNTdHJpbmdSZWYg
aW5kZXhSYW5nZUluVGFibGUoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCwgYm9vbCBpc1Jvd1Jh
bmdlKQogICAgICAgICBpbnQgbGVuZ3RoID0gMDsKICAgICAgICAgaWYgKGlzUm93UmFuZ2UpIHsK
ICAgICAgICAgICAgIGJhc2UgPSByb3c7Ci0gICAgICAgICAgICBsZW5ndGggPSBhdGtfdGFibGVf
Z2V0X3Jvd19leHRlbnRfYXQoQVRLX1RBQkxFKGF4VGFibGUpLCByb3csIGNvbHVtbik7CisgICAg
ICAgICAgICBsZW5ndGggPSByb3dTcGFuOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
YmFzZSA9IGNvbHVtbjsKLSAgICAgICAgICAgIGxlbmd0aCA9IGF0a190YWJsZV9nZXRfY29sdW1u
X2V4dGVudF9hdChBVEtfVEFCTEUoYXhUYWJsZSksIHJvdywgY29sdW1uKTsKKyAgICAgICAgICAg
IGxlbmd0aCA9IGNvbHVtblNwYW47CiAgICAgICAgIH0KICAgICAgICAgcmFuZ2VTdHJpbmcucmVz
ZXQoZ19zdHJkdXBfcHJpbnRmKCJ7JWQsICVkfSIsIGJhc2UsIGxlbmd0aCkpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225773</attachid>
            <date>2014-03-04 07:06:49 -0800</date>
            <delta_ts>2014-03-05 07:10:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a11y-atktablecell-missing-api.patch</filename>
            <type>text/plain</type>
            <size>9736</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMDVjMjczLi44OGI1NTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDMtMDQgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0FUS10gRXhwb3NlIG1pc3NpbmcgZnVuY3Rpb25hbGl0aWVzIG9mIEF0a1RhYmxl
Q2VsbCB0byBBVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkIG1pc3NpbmcgQVBJIG9mIEF0a1RhYmxlQ2VsbC4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3Rpbmcgb25lcy4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUYWJsZUNlbGwuY3BwOgorICAg
ICAgICAod2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldENvbHVtblNwYW4pOgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd1NwYW4pOgorICAgICAgICAod2Via2l0QWNj
ZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uKToKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRUYWJsZSk6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsSW50
ZXJmYWNlSW5pdCk6CisKIDIwMTQtMDItMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCBzaG91bGRuJ3QgZG8gYW55
IHdvcmsgd2hlbiBhdHRyaWJ1dGUgdmFsdWUgZGlkbid0IGNoYW5nZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRh
YmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcAppbmRleCA0OThjMjY2Li5iZmU2MTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxl
SW50ZXJmYWNlVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGFibGVDZWxsLmNwcApAQCAtNzgsMTAgKzc4
LDgyIEBAIEdQdHJBcnJheSogd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFJvd0hlYWRlckNl
bGxzKEF0a1RhYmxlQ2VsbCogY2VsbCkKICAgICByZXR1cm4gY29udmVydFRvR1B0ckFycmF5KHJv
d0hlYWRlcnMpOwogfQogCitnaW50IHdlYmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5T
cGFuKEF0a1RhYmxlQ2VsbCogY2VsbCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtf
VEFCTEVfQ0VMTChjZWxsKSwgMCk7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJ
bnZhbGlkKFdFQktJVF9BQ0NFU1NJQkxFKGNlbGwpLCAwKTsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGF4T2JqZWN0ID0gY29yZShjZWxsKTsKKyAgICBpZiAoIWF4T2JqZWN0IHx8ICFheE9i
amVjdC0+aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzdGQ6OnBhaXI8
dW5zaWduZWQsIHVuc2lnbmVkPiBjb2x1bW5SYW5nZTsKKyAgICB0b0FjY2Vzc2liaWxpdHlUYWJs
ZUNlbGwoYXhPYmplY3QpLT5jb2x1bW5JbmRleFJhbmdlKGNvbHVtblJhbmdlKTsKKworICAgIHJl
dHVybiBjb2x1bW5SYW5nZS5zZWNvbmQ7Cit9CisKK2dpbnQgd2Via2l0QWNjZXNzaWJsZVRhYmxl
Q2VsbEdldFJvd1NwYW4oQXRrVGFibGVDZWxsKiBjZWxsKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKEFUS19UQUJMRV9DRUxMKGNlbGwpLCAwKTsKKyAgICByZXR1cm5WYWxJZldlYktpdEFj
Y2Vzc2libGVJc0ludmFsaWQoV0VCS0lUX0FDQ0VTU0lCTEUoY2VsbCksIDApOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QgPSBjb3JlKGNlbGwpOworICAgIGlmICghYXhPYmpl
Y3QgfHwgIWF4T2JqZWN0LT5pc1RhYmxlQ2VsbCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+IHJvd1JhbmdlOworICAgIHRvQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbChheE9iamVjdCktPnJvd0luZGV4UmFuZ2Uocm93UmFuZ2UpOworCisgICAg
cmV0dXJuIHJvd1JhbmdlLnNlY29uZDsKK30KKworZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVRh
YmxlQ2VsbEdldFBvc2l0aW9uKEF0a1RhYmxlQ2VsbCogY2VsbCwgZ2ludCogcm93LCBnaW50KiBj
b2x1bW4pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoQVRLX1RBQkxFX0NFTEwoY2VsbCks
IGZhbHNlKTsKKyAgICByZXR1cm5WYWxJZldlYktpdEFjY2Vzc2libGVJc0ludmFsaWQoV0VCS0lU
X0FDQ0VTU0lCTEUoY2VsbCksIGZhbHNlKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
T2JqZWN0ID0gY29yZShjZWxsKTsKKyAgICBpZiAoIWF4T2JqZWN0IHx8ICFheE9iamVjdC0+aXNU
YWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RkOjpwYWlyPHVuc2ln
bmVkLCB1bnNpZ25lZD4gY29sdW1uUm93UmFuZ2U7CisgICAgaWYgKHJvdykgeworICAgICAgICB0
b0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwoYXhPYmplY3QpLT5yb3dJbmRleFJhbmdlKGNvbHVtblJv
d1JhbmdlKTsKKyAgICAgICAgKnJvdyA9IGNvbHVtblJvd1JhbmdlLmZpcnN0OworICAgIH0KKyAg
ICBpZiAoY29sdW1uKSB7CisgICAgICAgIHRvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbChheE9iamVj
dCktPmNvbHVtbkluZGV4UmFuZ2UoY29sdW1uUm93UmFuZ2UpOworICAgICAgICAqY29sdW1uID0g
Y29sdW1uUm93UmFuZ2UuZmlyc3Q7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK0F0
a09iamVjdCogd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFRhYmxlKEF0a1RhYmxlQ2VsbCog
Y2VsbCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChBVEtfVEFCTEVfQ0VMTChjZWxsKSwg
bnVsbHB0cik7CisgICAgcmV0dXJuVmFsSWZXZWJLaXRBY2Nlc3NpYmxlSXNJbnZhbGlkKFdFQktJ
VF9BQ0NFU1NJQkxFKGNlbGwpLCBudWxscHRyKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGF4T2JqZWN0ID0gY29yZShjZWxsKTsKKyAgICBpZiAoIWF4T2JqZWN0IHx8ICFheE9iamVjdC0+
aXNUYWJsZUNlbGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBBdGtPYmplY3Qq
IHRhYmxlID0gYXRrX29iamVjdF9nZXRfcGFyZW50KGF4T2JqZWN0LT53cmFwcGVyKCkpOworICAg
IGlmICghdGFibGUgfHwgIUFUS19JU19UQUJMRSh0YWJsZSkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIEFUS19PQkpFQ1QoZ19vYmplY3RfcmVmKHRhYmxlKSk7Cit9CisK
IHZvaWQgd2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEludGVyZmFjZUluaXQoQXRrVGFibGVDZWxs
SWZhY2UqIGlmYWNlKQogewogICAgIGlmYWNlLT5nZXRfY29sdW1uX2hlYWRlcl9jZWxscyA9IHdl
YmtpdEFjY2Vzc2libGVUYWJsZUNlbGxHZXRDb2x1bW5IZWFkZXJDZWxsczsKICAgICBpZmFjZS0+
Z2V0X3Jvd19oZWFkZXJfY2VsbHMgPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93SGVh
ZGVyQ2VsbHM7CisgICAgaWZhY2UtPmdldF9jb2x1bW5fc3BhbiA9IHdlYmtpdEFjY2Vzc2libGVU
YWJsZUNlbGxHZXRDb2x1bW5TcGFuOworICAgIGlmYWNlLT5nZXRfcm93X3NwYW4gPSB3ZWJraXRB
Y2Nlc3NpYmxlVGFibGVDZWxsR2V0Um93U3BhbjsKKyAgICBpZmFjZS0+Z2V0X3Bvc2l0aW9uID0g
d2Via2l0QWNjZXNzaWJsZVRhYmxlQ2VsbEdldFBvc2l0aW9uOworICAgIGlmYWNlLT5nZXRfdGFi
bGUgPSB3ZWJraXRBY2Nlc3NpYmxlVGFibGVDZWxsR2V0VGFibGU7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk2NGQzMjgu
LjZjMDljY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0wNCAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVj
aEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQVRLXSBFeHBvc2UgbWlzc2luZyBmdW5jdGlvbmFs
aXRpZXMgb2YgQXRrVGFibGVDZWxsIHRvIEFUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWR1Y2luZyBzb21lIGNvZGUgYnkgdXNpbmcgbmV3IEFQSSBv
ZiBBdGtUYWJsZUNlbGwuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEF0ay5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHA6CisKIDIwMTQtMDItMjcg
IEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
bW9kZWwgdGVzdHMgc2hvdWxkIHVzZSBhIHNwZWNpYWwgVGVzdC5odG1sIGluc3BlY3RvciBwYWdl
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEF0ay5jcHAKaW5kZXggYzk2ZDU4ZS4uNjdhZjQ1OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcApAQCAtNDk1
LDEyICs0OTUsMTQgQEAgc3RhdGljIHZvaWQgY29udmVydEdQdHJBcnJheVRvVmVjdG9yKGNvbnN0
IEdQdHJBcnJheSogYXJyYXksIFZlY3RvcjxBY2Nlc3NpYmlsaXQKIH0KICNlbmRpZgogCi19IC8v
IG5hbWVzcGFjZQotCiBKU1N0cmluZ1JlZiBpbmRleFJhbmdlSW5UYWJsZShQbGF0Zm9ybVVJRWxl
bWVudCBlbGVtZW50LCBib29sIGlzUm93UmFuZ2UpCiB7CiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
cmFuZ2VTdHJpbmcoZ19zdHJkdXAoInswLCAwfSIpKTsKIAorI2lmIEFUS19DSEVDS19WRVJTSU9O
KDIsMTEsOTApCisgICAgaWYgKCFBVEtfSVNfVEFCTEVfQ0VMTChlbGVtZW50KSkKKyAgICAgICAg
cmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHJhbmdlU3RyaW5nLmdldCgpKTsK
KyNlbHNlCiAgICAgaWYgKCFBVEtfSVNfT0JKRUNUKGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOwogCkBAIC01
MTIsMTEgKzUxNCwyMCBAQCBKU1N0cmluZ1JlZiBpbmRleFJhbmdlSW5UYWJsZShQbGF0Zm9ybVVJ
RWxlbWVudCBlbGVtZW50LCBib29sIGlzUm93UmFuZ2UpCiAgICAgZ2ludCBpbmRleEluUGFyZW50
ID0gYXRrX29iamVjdF9nZXRfaW5kZXhfaW5fcGFyZW50KEFUS19PQkpFQ1QoZWxlbWVudCkpOwog
ICAgIGlmIChpbmRleEluUGFyZW50ID09IC0xKQogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOworI2VuZGlmCiAKLSAgICBpbnQg
cm93ID0gLTE7Ci0gICAgaW50IGNvbHVtbiA9IC0xOworICAgIGdpbnQgcm93ID0gLTE7CisgICAg
Z2ludCBjb2x1bW4gPSAtMTsKKyAgICBnaW50IHJvd1NwYW4gPSAtMTsKKyAgICBnaW50IGNvbHVt
blNwYW4gPSAtMTsKKyNpZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLDExLDkwKQorICAgIGF0a190YWJs
ZV9jZWxsX2dldF9yb3dfY29sdW1uX3NwYW4oQVRLX1RBQkxFX0NFTEwoZWxlbWVudCksICZyb3cs
ICZjb2x1bW4sICZyb3dTcGFuLCAmY29sdW1uU3Bhbik7CisjZWxzZQogICAgIHJvdyA9IGF0a190
YWJsZV9nZXRfcm93X2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxlKSwgaW5kZXhJblBhcmVudCk7
CiAgICAgY29sdW1uID0gYXRrX3RhYmxlX2dldF9jb2x1bW5fYXRfaW5kZXgoQVRLX1RBQkxFKGF4
VGFibGUpLCBpbmRleEluUGFyZW50KTsKKyAgICByb3dTcGFuID0gYXRrX3RhYmxlX2dldF9yb3df
ZXh0ZW50X2F0KEFUS19UQUJMRShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgIGNvbHVtblNw
YW4gPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRfYXQoQVRLX1RBQkxFKGF4VGFibGUpLCBy
b3csIGNvbHVtbik7CisjZW5kaWYKIAogICAgIC8vIEdldCB0aGUgYWN0dWFsIHZhbHVlcywgaWYg
cm93IGFuZCBjb2x1bW5zIGFyZSB2YWxpZCB2YWx1ZXMuCiAgICAgaWYgKHJvdyAhPSAtMSAmJiBj
b2x1bW4gIT0gLTEpIHsKQEAgLTUyNCwxMCArNTM1LDEwIEBAIEpTU3RyaW5nUmVmIGluZGV4UmFu
Z2VJblRhYmxlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKICAg
ICAgICAgaW50IGxlbmd0aCA9IDA7CiAgICAgICAgIGlmIChpc1Jvd1JhbmdlKSB7CiAgICAgICAg
ICAgICBiYXNlID0gcm93OwotICAgICAgICAgICAgbGVuZ3RoID0gYXRrX3RhYmxlX2dldF9yb3df
ZXh0ZW50X2F0KEFUS19UQUJMRShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAg
bGVuZ3RoID0gcm93U3BhbjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2UgPSBj
b2x1bW47Ci0gICAgICAgICAgICBsZW5ndGggPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRf
YXQoQVRLX1RBQkxFKGF4VGFibGUpLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICBsZW5ndGgg
PSBjb2x1bW5TcGFuOwogICAgICAgICB9CiAgICAgICAgIHJhbmdlU3RyaW5nLnJlc2V0KGdfc3Ry
ZHVwX3ByaW50ZigieyVkLCAlZH0iLCBiYXNlLCBsZW5ndGgpKTsKICAgICB9CkBAIC01NTcsNiAr
NTY4LDggQEAgdm9pZCBhbHRlckN1cnJlbnRWYWx1ZShQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50
LCBpbnQgZmFjdG9yKQogICAgIGdfdmFsdWVfdW5zZXQoJmN1cnJlbnRWYWx1ZSk7CiB9CiAKK30g
Ly8gbmFtZXNwYWNlCisKIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50
KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9h
dGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAppbmRleCBm
NzM1OTdjLi44ZmEyYjYzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
QXRrLmNwcApAQCAtMjA2LDcgKzIwNiwxMCBAQCBib29sIGNoZWNrRWxlbWVudFN0YXRlKFBsYXRm
b3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1N0YXRlVHlwZSBzdGF0ZVR5cGUpCiBKU1N0cmluZ1Jl
ZiBpbmRleFJhbmdlSW5UYWJsZShQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50LCBib29sIGlzUm93
UmFuZ2UpCiB7CiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gcmFuZ2VTdHJpbmcoZ19zdHJkdXAoInsw
LCAwfSIpKTsKLQorI2lmIEFUS19DSEVDS19WRVJTSU9OKDIsMTEsOTApCisgICAgaWYgKCFBVEtf
SVNfVEFCTEVfQ0VMTChlbGVtZW50LmdldCgpKSkKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHJhbmdlU3RyaW5nLmdldCgpKTsKKyNlbHNlCiAgICAgaWYgKCFB
VEtfSVNfT0JKRUNUKGVsZW1lbnQuZ2V0KCkpKQogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOwogCkBAIC0yMTgsMTEgKzIyMSwy
MCBAQCBKU1N0cmluZ1JlZiBpbmRleFJhbmdlSW5UYWJsZShQbGF0Zm9ybVVJRWxlbWVudCBlbGVt
ZW50LCBib29sIGlzUm93UmFuZ2UpCiAgICAgZ2ludCBpbmRleEluUGFyZW50ID0gYXRrX29iamVj
dF9nZXRfaW5kZXhfaW5fcGFyZW50KEFUS19PQkpFQ1QoZWxlbWVudC5nZXQoKSkpOwogICAgIGlm
IChpbmRleEluUGFyZW50ID09IC0xKQogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcocmFuZ2VTdHJpbmcuZ2V0KCkpOworI2VuZGlmCiAKLSAgICBpbnQgcm93ID0g
LTE7Ci0gICAgaW50IGNvbHVtbiA9IC0xOworICAgIGdpbnQgcm93ID0gLTE7CisgICAgZ2ludCBj
b2x1bW4gPSAtMTsKKyAgICBnaW50IHJvd1NwYW4gPSAtMTsKKyAgICBnaW50IGNvbHVtblNwYW4g
PSAtMTsKKyNpZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLDExLDkwKQorICAgIGF0a190YWJsZV9jZWxs
X2dldF9yb3dfY29sdW1uX3NwYW4oQVRLX1RBQkxFX0NFTEwoZWxlbWVudC5nZXQoKSksICZyb3cs
ICZjb2x1bW4sICZyb3dTcGFuLCAmY29sdW1uU3Bhbik7CisjZWxzZQogICAgIHJvdyA9IGF0a190
YWJsZV9nZXRfcm93X2F0X2luZGV4KEFUS19UQUJMRShheFRhYmxlKSwgaW5kZXhJblBhcmVudCk7
CiAgICAgY29sdW1uID0gYXRrX3RhYmxlX2dldF9jb2x1bW5fYXRfaW5kZXgoQVRLX1RBQkxFKGF4
VGFibGUpLCBpbmRleEluUGFyZW50KTsKKyAgICByb3dTcGFuID0gYXRrX3RhYmxlX2dldF9yb3df
ZXh0ZW50X2F0KEFUS19UQUJMRShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgIGNvbHVtblNw
YW4gPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRfYXQoQVRLX1RBQkxFKGF4VGFibGUpLCBy
b3csIGNvbHVtbik7CisjZW5kaWYKIAogICAgIC8vIEdldCB0aGUgYWN0dWFsIHZhbHVlcywgaWYg
cm93IGFuZCBjb2x1bW5zIGFyZSB2YWxpZCB2YWx1ZXMuCiAgICAgaWYgKHJvdyAhPSAtMSAmJiBj
b2x1bW4gIT0gLTEpIHsKQEAgLTIzMCwxMCArMjQyLDEwIEBAIEpTU3RyaW5nUmVmIGluZGV4UmFu
Z2VJblRhYmxlKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIGJvb2wgaXNSb3dSYW5nZSkKICAg
ICAgICAgaW50IGxlbmd0aCA9IDA7CiAgICAgICAgIGlmIChpc1Jvd1JhbmdlKSB7CiAgICAgICAg
ICAgICBiYXNlID0gcm93OwotICAgICAgICAgICAgbGVuZ3RoID0gYXRrX3RhYmxlX2dldF9yb3df
ZXh0ZW50X2F0KEFUS19UQUJMRShheFRhYmxlKSwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAg
bGVuZ3RoID0gcm93U3BhbjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhc2UgPSBj
b2x1bW47Ci0gICAgICAgICAgICBsZW5ndGggPSBhdGtfdGFibGVfZ2V0X2NvbHVtbl9leHRlbnRf
YXQoQVRLX1RBQkxFKGF4VGFibGUpLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICBsZW5ndGgg
PSBjb2x1bW5TcGFuOwogICAgICAgICB9CiAgICAgICAgIHJhbmdlU3RyaW5nLnJlc2V0KGdfc3Ry
ZHVwX3ByaW50ZigieyVkLCAlZH0iLCBiYXNlLCBsZW5ndGgpKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>