<?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>127396</bug_id>
          
          <creation_ts>2014-01-21 18:23:04 -0800</creation_ts>
          <short_desc>WebKit2 View Gestures (Swipe): Give WebCore the first crack at scroll events if it needs it</short_desc>
          <delta_ts>2014-01-28 16:46:39 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970524</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-21 18:23:04 -0800</bug_when>
    <thetext>If a page has synchronous wheel event handlers, we should let it attempt to handle events before starting a swipe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970525</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-21 18:23:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/15876893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973136</commentid>
    <comment_count>2</comment_count>
      <attachid>222501</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 15:06:45 -0800</bug_when>
    <thetext>Created attachment 222501
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973139</commentid>
    <comment_count>3</comment_count>
      <attachid>222501</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-28 15:08:43 -0800</bug_when>
    <thetext>Comment on attachment 222501
patch

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

&gt; Source/WebKit2/UIProcess/API/mac/PageClientImpl.h:118
&gt; +    virtual void didNotHandleWheelEvent(const NativeWebWheelEvent&amp;) override;

Who did not handle it? The receiver (the page client)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973140</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 15:09:53 -0800</bug_when>
    <thetext>Attachment 222501 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/ViewGestureController.h:59:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973142</commentid>
    <comment_count>5</comment_count>
      <attachid>222504</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 15:17:25 -0800</bug_when>
    <thetext>Created attachment 222504
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973156</commentid>
    <comment_count>6</comment_count>
      <attachid>222510</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 15:33:11 -0800</bug_when>
    <thetext>Created attachment 222510
use NSEvent at the WKView level</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973161</commentid>
    <comment_count>7</comment_count>
      <attachid>222513</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 15:35:05 -0800</bug_when>
    <thetext>Created attachment 222513
remove unneeded fwd declaration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973216</commentid>
    <comment_count>8</comment_count>
      <attachid>222513</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-28 16:30:22 -0800</bug_when>
    <thetext>Comment on attachment 222513
remove unneeded fwd declaration

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

&gt; Source/WebKit2/UIProcess/mac/ViewGestureController.h:114
&gt; +    bool m_hasDeferredSwipe;
&gt; +    SwipeDirection m_deferredSwipeDirection;

I think pending would be more fitting than deferred here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973221</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 16:46:39 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162984</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222501</attachid>
            <date>2014-01-28 15:06:45 -0800</date>
            <delta_ts>2014-01-28 15:17:25 -0800</delta_ts>
            <desc>patch</desc>
            <filename>swipe-subframe.diff</filename>
            <type>text/plain</type>
            <size>15330</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYmM5YTU2Li5mOTIxOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDgg
QEAKIDIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEdpdmUgV2ViQ29yZSB0aGUg
Zmlyc3QgY3JhY2sgYXQgc2Nyb2xsIGV2ZW50cyBpZiBpdCBuZWVkcyBpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mzk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkTm90SGFu
ZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3
IF9kaWROb3RIYW5kbGVXaGVlbEV2ZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQpOgorICAgICAgICBJbiBhZGRpdGlvbiB0byBpbmZv
cm1pbmcgdGhlIHBhZ2UgY2xpZW50IGFib3V0IHVuLWhhbmRsZWQgd2hlZWwgZXZlbnRzLAorICAg
ICAgICBpbmZvcm0gdGhlIFZpZXdHZXN0dXJlQ29udHJvbGxlciwgaW4gYSByb3VuZGFib3V0IHdh
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6Cisg
ICAgICAgIEFkZCBhbmQgdXNlIFN3aXBlRGlyZWN0aW9uIGVudW0gaW5zdGVhZCBvZiAnYm9vbCB3
aWxsU3dpcGVMZWZ0Jy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250
cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6CisgICAgICAgIElmIHdlIGdldCBhIEJlZ2luIHNj
cm9sbCB3aGVlbCBldmVudCwgYW55IHByZXZpb3VzbHkgZGVmZXJyZWQKKyAgICAgICAgc3dpcGVz
IGFyZSBpbnZhbGlkLgorCisgICAgICAgIElmIHRoZSBwYWdlIGhhcyBzdWJmcmFtZXMgb3Igd2hl
ZWwgaGFuZGxlcnMsIGRlZmVyIHN0YXJ0aW5nIHRoZQorICAgICAgICBzd2lwZSB1bnRpbCB3ZSBn
ZXQgYSBkaWROb3RIYW5kbGVXaGVlbEV2ZW50IGJhY2sgZnJvbSB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZE5vdEhhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICBTdGFydCB0aGUgc3dpcGUgaWYgdGhlIFdlYlByb2Nlc3MgZGlkbid0
IGVhdCB0aGUgZXZlbnQuCisKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
Ojp0cmFja1N3aXBlR2VzdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZSk6CisgICAgICAgIFVzZSBTd2lwZURpcmVjdGlv
bi4KKworCisyMDE0LTAxLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCiAgICAgICAgIEZpeCB0aGUgaU9TIGJ1aWxkLgogCiAgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9p
b3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA3MTNhZDMwLi4zZDUwZDY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
QEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdmlydHVhbCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gdGFrZVZpZXdTbmFwc2hvdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWROb3RIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRG9jdW1lbnREaWRSZWNlaXZlTW9iaWxl
RG9jVHlwZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGUyZjI0NDAuLjMzNTU5NmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCkBAIC0zMjgsNiArMzI4LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBQYWdl
Q2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZl
V2ViV2hlZWxFdmVudCYgZXZlbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6bWFpbkRvY3VtZW50RGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoKQog
ewogICAgIFttX3ZpZXcgX2RpZFJlY2VpdmVNb2JpbGVEb2NUeXBlRm9yTWFpbkZyYW1lXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCmlu
ZGV4IDA4ZDc4MWQuLjhkYTdmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtMTE1LDYgKzExNSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKTsKIAogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRh
a2VWaWV3U25hcHNob3QoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxl
V2hlZWxFdmVudChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlblJlY2VpdmVkKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDkwYzg0OWQuLjQ3ZGVmNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBA
IC00NDQsNiArNDQ0LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBQYWdlQ2xpZW50SW1wbDo6
dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIFttX3drVmlldyBfdGFrZVZpZXdTbmFwc2hv
dF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCit7CisgICAgW21fd2tWaWV3IF9kaWROb3RI
YW5kbGVXaGVlbEV2ZW50OmV2ZW50XTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cGx1Z2lu
Rm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKQogewogICAg
IFttX3drVmlldyBfcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZDpwbHVnaW5IYXNGb2N1
c0FuZFdpbmRvd0hhc0ZvY3VzIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOnBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQppbmRleCA4YmMwMDZlLi5iZDg2MGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0yNTY0LDYgKzI1NjQsMTEgQEAgc3Rh
dGljIHZvaWQgY3JlYXRlU2FuZGJveEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkKE5TUGFzdGVib2Fy
ZCAqcGFzdGVib2FyZCwgU2FuZGIKICAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3JlYXRlV2l0
aEltYWdlSW5SZWN0KHdpbmRvd1NuYXBzaG90SW1hZ2UuZ2V0KCksIE5TUmVjdFRvQ0dSZWN0KFt3
aW5kb3cgY29udmVydFJlY3RUb0JhY2tpbmc6Y3JvcHBlZEltYWdlUmVjdF0pKSk7CiB9CiAKKy0g
KHZvaWQpX2RpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KWV2ZW50Cit7CisgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+ZGlkTm90SGFuZGxlV2hl
ZWxFdmVudChldmVudCk7Cit9CisKIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNz
VG9rZW46KE5TRGF0YSAqKWRhdGEKIHsKICAgICBfZGF0YS0+X3JlbW90ZUFjY2Vzc2liaWxpdHlD
aGlsZCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCBhNjNmNzE1Li44
MDcyMzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
d0ludGVybmFsLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgY2xh
c3MgRHJhd2luZ0FyZWFQcm94eTsKICAgICBjbGFzcyBGaW5kSW5kaWNhdG9yOwogICAgIGNsYXNz
IExheWVyVHJlZUNvbnRleHQ7CisgICAgY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKICAgICBz
dHJ1Y3QgQ29sb3JTcGFjZURhdGE7CiAgICAgc3RydWN0IEVkaXRvclN0YXRlOwogfQpAQCAtNzIs
NiArNzMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC0gKENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGVSb290TGF5ZXI7CiAKIC0gKFJldGFpblB0cjxDR0ltYWdlUmVmPilfdGFr
ZVZpZXdTbmFwc2hvdDsKKy0gKHZvaWQpX2RpZE5vdEhhbmRsZVdoZWVsRXZlbnQ6KGNvbnN0IFdl
YktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudCYpZXZlbnQ7CiAKIC0gKHZvaWQpX3NldEFjY2Vzc2li
aWxpdHlXZWJQcm9jZXNzVG9rZW46KE5TRGF0YSAqKWRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IGU5MjViZDEuLjQ2YWIyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihDQUxheWVyICopID0g
MDsKICAgICB2aXJ0dWFsIENBTGF5ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gdGFrZVZpZXdT
bmFwc2hvdCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlV2hlZWxFdmVudChj
b25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikgPSAwOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3MTRiNzJm
Li5lY2E0ZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMzU1NCw4ICszNTU0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQo
dWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5kbGVkKQogICAgICAgICBPd25QdHI8VmVjdG9y
PE5hdGl2ZVdlYldoZWVsRXZlbnQ+PiBvbGRlc3RDb2FsZXNjZWRFdmVudCA9IG1fY3VycmVudGx5
UHJvY2Vzc2VkV2hlZWxFdmVudHMudGFrZUZpcnN0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IERp
c3BhdGNoIGFkZGl0aW9uYWwgZXZlbnRzIHRvIHRoZSBkaWROb3RIYW5kbGVXaGVlbEV2ZW50IGNs
aWVudCBmdW5jdGlvbi4KLSAgICAgICAgaWYgKCFoYW5kbGVkICYmIG1fdWlDbGllbnQuaW1wbGVt
ZW50c0RpZE5vdEhhbmRsZVdoZWVsRXZlbnQoKSkKLSAgICAgICAgICAgIG1fdWlDbGllbnQuZGlk
Tm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBvbGRlc3RDb2FsZXNjZWRFdmVudC0+bGFzdCgpKTsK
KyAgICAgICAgaWYgKCFoYW5kbGVkKSB7CisgICAgICAgICAgICBpZiAobV91aUNsaWVudC5pbXBs
ZW1lbnRzRGlkTm90SGFuZGxlV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgICAgIG1fdWlDbGll
bnQuZGlkTm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBvbGRlc3RDb2FsZXNjZWRFdmVudC0+bGFz
dCgpKTsKKyAgICAgICAgICAgIG1fcGFnZUNsaWVudC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KG9s
ZGVzdENvYWxlc2NlZEV2ZW50LT5sYXN0KCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKCFt
X3doZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBwcm9jZXNzTmV4dFF1ZXVl
ZFdoZWVsRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGVjNDViOTguLmEwY2I4OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBPQkpDX0NMQVNTIE5TRXZlbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCitjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0
SXRlbTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIApAQCAtNTUsNiArNTYsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZlbnQgKik7CiAgICAgdm9pZCBkaWRI
aXRSZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCgpOwogCisgICAgdm9pZCBkaWROb3RIYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KTsKKwogICAgIHZvaWQgZW5k
QWN0aXZlR2VzdHVyZSgpOwogCiAgICAgZW51bSBjbGFzcyBWaWV3R2VzdHVyZVR5cGUgewpAQCAt
ODAsOCArODMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuZE1hZ25pZmljYXRpb25HZXN0dXJl
KCk7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzY2FsZWRNYWduaWZpY2F0aW9uT3JpZ2luKFdl
YkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luLCBkb3VibGUgc2NhbGUpOwogCi0gICAgdm9pZCBiZWdp
blN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBib29sIHN3
aXBpbmdMZWZ0KTsKLSAgICB2b2lkIGhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiB0YXJnZXRJdGVtLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgc3dpcGluZ0xlZnQpOwor
ICAgIGVudW0gY2xhc3MgU3dpcGVEaXJlY3Rpb24geyBMZWZ0LCBSaWdodCB9OworICAgIHZvaWQg
dHJhY2tTd2lwZUdlc3R1cmUoTlNFdmVudCAqLCBTd2lwZURpcmVjdGlvbik7CisgICAgdm9pZCBi
ZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBTd2lw
ZURpcmVjdGlvbik7CisgICAgdm9pZCBoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogdGFyZ2V0SXRlbSwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURpcmVjdGlvbik7CiAg
ICAgdm9pZCBlbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRl
bSwgYm9vbCBjYW5jZWxsZWQpOwogICAgIHZvaWQgcmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwogICAg
IHZvaWQgc3dpcGVTbmFwc2hvdFdhdGNoZG9nVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxWaWV3
R2VzdHVyZUNvbnRyb2xsZXI+Kik7CkBAIC0xMDMsNiArMTA4LDExIEBAIHByaXZhdGU6CiAgICAg
UmV0YWluUHRyPENBTGF5ZXI+IG1fc3dpcGVTbmFwc2hvdExheWVyOwogICAgIFN3aXBlVHJhbnNp
dGlvblN0eWxlIG1fc3dpcGVUcmFuc2l0aW9uU3R5bGU7CiAgICAgV2ViQ29yZTo6VGltZXI8Vmll
d0dlc3R1cmVDb250cm9sbGVyPiBtX3N3aXBlV2F0Y2hkb2dUaW1lcjsKKworICAgIC8vIElmIHdl
IG5lZWQgdG8gd2FpdCBmb3IgY29udGVudCB0byBkZWNpZGUgaWYgaXQgaXMgZ29pbmcgdG8gY29u
c3VtZQorICAgIC8vIHRoZSBzY3JvbGwgZXZlbnQgdGhhdCB3b3VsZCBoYXZlIHN0YXJ0ZWQgYSBz
d2lwZSwgd2UnbGwgZmlsbCB0aGVzZSBpbi4KKyAgICBib29sIG1faGFzRGVmZXJyZWRTd2lwZTsK
KyAgICBTd2lwZURpcmVjdGlvbiBtX2RlZmVycmVkU3dpcGVEaXJlY3Rpb247CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubW0KaW5kZXggNDdkODljNi4uOTc1NGNmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAKKyNpbXBvcnQg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgogI2ltcG9y
dCAiVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJl
R2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlcy5oIgpAQCAtOTYsNiArOTcsNyBAQCBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29udHJvbGxlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQ
cm94eSkKICAgICAsIG1fZnJhbWVIYW5kbGVzTWFnbmlmaWNhdGlvbkdlc3R1cmUoZmFsc2UpCiAg
ICAgLCBtX3N3aXBlVHJhbnNpdGlvblN0eWxlKFN3aXBlVHJhbnNpdGlvblN0eWxlOjpPdmVybGFw
KQogICAgICwgbV9zd2lwZVdhdGNoZG9nVGltZXIodGhpcywgJlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6c3dpcGVTbmFwc2hvdFdhdGNoZG9nVGltZXJGaXJlZCkKKyAgICAsIG1faGFzRGVmZXJyZWRT
d2lwZShmYWxzZSkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCksICp0aGlzKTsKIH0KQEAgLTI0Nyw2ICsyNDks
OCBAQCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChO
U0V2ZW50ICpldmVudCkKICAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQmVnYW4p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIG1faGFzRGVmZXJyZWRTd2lwZSA9IGZhbHNl
OworCiAgICAgaWYgKGZhYnMoZXZlbnQuc2Nyb2xsaW5nRGVsdGFYKSA8IGZhYnMoZXZlbnQuc2Ny
b2xsaW5nRGVsdGFZKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yNTUsMzQgKzI1OSw1
NiBAQCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChO
U0V2ZW50ICpldmVudCkKICAgICBpZiAoIXdpbGxTd2lwZUxlZnQgJiYgIXdpbGxTd2lwZVJpZ2h0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24g
PSB3aWxsU3dpcGVMZWZ0ID8gU3dpcGVEaXJlY3Rpb246OkxlZnQgOiBTd2lwZURpcmVjdGlvbjo6
UmlnaHQ7CisKICAgICBpZiAoIWV2ZW50Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghW05TRXZlbnQgaXNTd2lwZVRyYWNraW5nRnJv
bVNjcm9sbEV2ZW50c0VuYWJsZWRdKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAo
bV93ZWJQYWdlUHJveHkud2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSkgeworICAg
ICAgICBtX2hhc0RlZmVycmVkU3dpcGUgPSB0cnVlOworICAgICAgICBtX2RlZmVycmVkU3dpcGVE
aXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICB0cmFja1N3aXBlR2VzdHVyZShldmVudCwgZGlyZWN0aW9uKTsKKworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkTm90SGFuZGxlV2hlZWxFdmVu
dChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKK3sKKyAgICBpZiAoIW1faGFzRGVm
ZXJyZWRTd2lwZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9oYXNEZWZlcnJlZFN3aXBlID0g
ZmFsc2U7CisgICAgdHJhY2tTd2lwZUdlc3R1cmUoZXZlbnQubmF0aXZlRXZlbnQoKSwgbV9kZWZl
cnJlZFN3aXBlRGlyZWN0aW9uKTsKK30KKwordm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRy
YWNrU3dpcGVHZXN0dXJlKE5TRXZlbnQgKmV2ZW50LCBTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24p
Cit7CiAgICAgVmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLnJlY29yZFNuYXBzaG90KG1fd2Vi
UGFnZVByb3h5KTsKIAotICAgIENHRmxvYXQgbWF4UHJvZ3Jlc3MgPSB3aWxsU3dpcGVMZWZ0ID8g
MSA6IDA7Ci0gICAgQ0dGbG9hdCBtaW5Qcm9ncmVzcyA9IHdpbGxTd2lwZVJpZ2h0ID8gLTEgOiAw
OwotICAgIFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPiB0YXJnZXRJdGVtID0gd2lsbFN3
aXBlTGVmdCA/IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCkgOiBt
X3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5mb3J3YXJkSXRlbSgpOworICAgIENHRmxv
YXQgbWF4UHJvZ3Jlc3MgPSAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KSA/IDEg
OiAwOworICAgIENHRmxvYXQgbWluUHJvZ3Jlc3MgPSAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0
aW9uOjpSaWdodCkgPyAtMSA6IDA7CisgICAgUmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+
IHRhcmdldEl0ZW0gPSAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KSA/IG1fd2Vi
UGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCkgOiBtX3dlYlBhZ2VQcm94eS5i
YWNrRm9yd2FyZExpc3QoKS5mb3J3YXJkSXRlbSgpOwogICAgIF9fYmxvY2sgYm9vbCBzd2lwZUNh
bmNlbGxlZCA9IGZhbHNlOwogCiAgICAgW2V2ZW50IHRyYWNrU3dpcGVFdmVudFdpdGhPcHRpb25z
OjAgZGFtcGVuQW1vdW50VGhyZXNob2xkTWluOm1pblByb2dyZXNzIG1heDptYXhQcm9ncmVzcyB1
c2luZ0hhbmRsZXI6XihDR0Zsb2F0IHByb2dyZXNzLCBOU0V2ZW50UGhhc2UgcGhhc2UsIEJPT0wg
aXNDb21wbGV0ZSwgQk9PTCAqc3RvcCkgewogICAgICAgICBpZiAocGhhc2UgPT0gTlNFdmVudFBo
YXNlQmVnYW4pCi0gICAgICAgICAgICB0aGlzLT5iZWdpblN3aXBlR2VzdHVyZSh0YXJnZXRJdGVt
LmdldCgpLCB3aWxsU3dpcGVMZWZ0KTsKKyAgICAgICAgICAgIHRoaXMtPmJlZ2luU3dpcGVHZXN0
dXJlKHRhcmdldEl0ZW0uZ2V0KCksIGRpcmVjdGlvbik7CiAgICAgICAgIENHRmxvYXQgY2xhbXBl
ZFByb2dyZXNzID0gc3RkOjptaW4oc3RkOjptYXgocHJvZ3Jlc3MsIG1pblByb2dyZXNzKSwgbWF4
UHJvZ3Jlc3MpOwotICAgICAgICB0aGlzLT5oYW5kbGVTd2lwZUdlc3R1cmUodGFyZ2V0SXRlbS5n
ZXQoKSwgY2xhbXBlZFByb2dyZXNzLCB3aWxsU3dpcGVMZWZ0KTsKKyAgICAgICAgdGhpcy0+aGFu
ZGxlU3dpcGVHZXN0dXJlKHRhcmdldEl0ZW0uZ2V0KCksIGNsYW1wZWRQcm9ncmVzcywgZGlyZWN0
aW9uKTsKICAgICAgICAgaWYgKHBoYXNlID09IE5TRXZlbnRQaGFzZUNhbmNlbGxlZCkKICAgICAg
ICAgICAgIHN3aXBlQ2FuY2VsbGVkID0gdHJ1ZTsKICAgICAgICAgaWYgKGlzQ29tcGxldGUpCiAg
ICAgICAgICAgICB0aGlzLT5lbmRTd2lwZUdlc3R1cmUodGFyZ2V0SXRlbS5nZXQoKSwgc3dpcGVD
YW5jZWxsZWQpOwogICAgIH1dOwotCi0gICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiB0YXJnZXRJdGVtLCBib29sIHN3aXBpbmdMZWZ0KQordm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmJlZ2luU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0s
IFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBtX2FjdGl2ZUdlc3R1cmVUeXBlID0g
Vmlld0dlc3R1cmVUeXBlOjpTd2lwZTsKIApAQCAtMzI5LDEzICszNTUsMTMgQEAgdm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qIHRhcmdldEl0ZW0KICAgICAgICAgW3Jvb3RMYXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1Bh
dGguZ2V0KCldOwogICAgIH0KIAotICAgIGlmIChzd2lwaW5nTGVmdCkKKyAgICBpZiAoZGlyZWN0
aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KQogICAgICAgICBbcm9vdExheWVyLnN1cGVybGF5
ZXIgaW5zZXJ0U3VibGF5ZXI6bV9zd2lwZVNuYXBzaG90TGF5ZXIuZ2V0KCkgYmVsb3c6cm9vdExh
eWVyXTsKICAgICBlbHNlCiAgICAgICAgIFtyb290TGF5ZXIuc3VwZXJsYXllciBpbnNlcnRTdWJs
YXllcjptX3N3aXBlU25hcHNob3RMYXllci5nZXQoKSBhYm92ZTpyb290TGF5ZXJdOwogfQogCi12
b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBzd2lwaW5nTGVm
dCkKK3ZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURpcmVj
dGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYWN0aXZlR2VzdHVyZVR5cGUgPT0gVmll
d0dlc3R1cmVUeXBlOjpTd2lwZSk7CiAKQEAgLTM0NCwxMyArMzcwLDEzIEBAIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSogdGFyZ2V0SXRlCiAgICAgZG91YmxlIHN3aXBpbmdMYXllck9mZnNldCA9IGZsb29yKHdpZHRo
ICogcHJvZ3Jlc3MpOwogCiAgICAgaWYgKG1fc3dpcGVUcmFuc2l0aW9uU3R5bGUgPT0gU3dpcGVU
cmFuc2l0aW9uU3R5bGU6Ok92ZXJsYXApIHsKLSAgICAgICAgaWYgKHN3aXBpbmdMZWZ0KQorICAg
ICAgICBpZiAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KQogICAgICAgICAgICAg
W3Jvb3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzd2lwaW5nTGF5ZXJPZmZzZXQsIDAp
XTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFBv
c2l0aW9uOkNHUG9pbnRNYWtlKHdpZHRoICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07CiAgICAg
fSBlbHNlIGlmIChtX3N3aXBlVHJhbnNpdGlvblN0eWxlID09IFN3aXBlVHJhbnNpdGlvblN0eWxl
OjpQdXNoKSB7CiAgICAgICAgIFtyb290TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2Uoc3dp
cGluZ0xheWVyT2Zmc2V0LCAwKV07Ci0gICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRQ
b3NpdGlvbjpDR1BvaW50TWFrZSgoc3dpcGluZ0xlZnQgPyAtd2lkdGggOiB3aWR0aCkgKyBzd2lw
aW5nTGF5ZXJPZmZzZXQsIDApXTsKKyAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFBv
c2l0aW9uOkNHUG9pbnRNYWtlKChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQgPyAt
d2lkdGggOiB3aWR0aCkgKyBzd2lwaW5nTGF5ZXJPZmZzZXQsIDApXTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222504</attachid>
            <date>2014-01-28 15:17:25 -0800</date>
            <delta_ts>2014-01-28 15:33:11 -0800</delta_ts>
            <desc>patch</desc>
            <filename>swipe-subframe.diff</filename>
            <type>text/plain</type>
            <size>15494</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYmM5YTU2Li41ZDYzNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDgg
QEAKIDIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEdpdmUgV2ViQ29yZSB0aGUg
Zmlyc3QgY3JhY2sgYXQgc2Nyb2xsIGV2ZW50cyBpZiBpdCBuZWVkcyBpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mzk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgorICAgICAgICAoLVtXS1ZpZXcgX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQp
OgorICAgICAgICBJbiBhZGRpdGlvbiB0byBpbmZvcm1pbmcgdGhlIHBhZ2UgY2xpZW50IGFib3V0
IHVuLWhhbmRsZWQgd2hlZWwgZXZlbnRzLAorICAgICAgICBpbmZvcm0gdGhlIFZpZXdHZXN0dXJl
Q29udHJvbGxlciwgaW4gYSByb3VuZGFib3V0IHdheS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgIEFkZCBhbmQgdXNlIFN3aXBlRGly
ZWN0aW9uIGVudW0gaW5zdGVhZCBvZiAnYm9vbCB3aWxsU3dpcGVMZWZ0Jy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6
CisgICAgICAgIElmIHdlIGdldCBhIEJlZ2luIHNjcm9sbCB3aGVlbCBldmVudCwgYW55IHByZXZp
b3VzbHkgZGVmZXJyZWQKKyAgICAgICAgc3dpcGVzIGFyZSBpbnZhbGlkLgorCisgICAgICAgIElm
IHRoZSBwYWdlIGhhcyBzdWJmcmFtZXMgb3Igd2hlZWwgaGFuZGxlcnMsIGRlZmVyIHN0YXJ0aW5n
IHRoZQorICAgICAgICBzd2lwZSB1bnRpbCB3ZSBnZXQgYSB3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZSBiYWNrIGZyb20gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6
Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6
CisgICAgICAgIFN0YXJ0IHRoZSBzd2lwZSBpZiB0aGUgV2ViUHJvY2VzcyBkaWRuJ3QgZWF0IHRo
ZSBldmVudC4KKworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRyYWNr
U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpi
ZWdpblN3aXBlR2VzdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6aGFuZGxlU3dpcGVHZXN0dXJlKToKKyAgICAgICAgVXNlIFN3aXBlRGlyZWN0aW9uLgorCisK
KzIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAg
ICAgICAgRml4IHRoZSBpT1MgYnVpbGQuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCmluZGV4IDcxM2FkMzAuLmY3NmIwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtOTgs
NiArOTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDR0lt
YWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdo
ZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRG9jdW1lbnREaWRSZWNlaXZlTW9i
aWxlRG9jVHlwZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGUyZjI0NDAuLjg5NmM2NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCkBAIC0zMjgsNiArMzI4LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBQ
YWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6Om1haW5Eb2N1bWVudERpZFJlY2VpdmVNb2Jp
bGVEb2NUeXBlKCkKIHsKICAgICBbbV92aWV3IF9kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZUZvck1h
aW5GcmFtZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwuaAppbmRleCAwOGQ3ODFkLi42OGZkNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTExNSw2ICsxMTUsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
R0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggOTBj
ODQ5ZC4uMjYxMzg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTQ0NCw2ICs0NDQsMTEgQEAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKICAgICByZXR1cm4gW21f
d2tWaWV3IF90YWtlVmlld1NuYXBzaG90XTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hl
ZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYg
ZXZlbnQpCit7CisgICAgW21fd2tWaWV3IF93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZTpldmVudF07Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dG
b2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJv
b2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKIHsKICAgICBbbV93a1ZpZXcgX3Bs
dWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQ6cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNG
b2N1cyBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KaW5kZXggOGJjMDA2ZS4uYzY5MTMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQpAQCAtMjU2NCw2ICsyNTY0LDExIEBAIHN0YXRpYyB2b2lkIGNyZWF0
ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQs
IFNhbmRiCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZVdpdGhJbWFnZUluUmVjdCh3
aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1JlY3RUb0NHUmVjdChbd2luZG93IGNvbnZlcnRS
ZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3RdKSkpOwogfQogCistICh2b2lkKV93aGVlbEV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpZXZl
bnQKK3sKKyAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT53aGVlbEV2ZW50V2FzTm90SGFu
ZGxlZEJ5V2ViQ29yZShldmVudCk7Cit9CisKIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlXZWJQ
cm9jZXNzVG9rZW46KE5TRGF0YSAqKWRhdGEKIHsKICAgICBfZGF0YS0+X3JlbW90ZUFjY2Vzc2li
aWxpdHlDaGlsZCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCBhNjNm
NzE1Li5lN2NlNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAg
ICAgY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKICAgICBjbGFzcyBGaW5kSW5kaWNhdG9yOwogICAg
IGNsYXNzIExheWVyVHJlZUNvbnRleHQ7CisgICAgY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsK
ICAgICBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7CiAgICAgc3RydWN0IEVkaXRvclN0YXRlOwogfQpA
QCAtNzIsNiArNzMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC0gKENBTGF5ZXIgKilfYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXI7CiAKIC0gKFJldGFpblB0cjxDR0ltYWdlUmVm
PilfdGFrZVZpZXdTbmFwc2hvdDsKKy0gKHZvaWQpX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlX
ZWJDb3JlOihjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQmKWV2ZW50OwogCiAtICh2
b2lkKV9zZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlOTI1YmQxLi4zMThhZmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIoQ0FMYXllciAqKSA9IDA7CiAgICAgdmlydHVhbCBDQUxheWVyICphY2NlbGVyYXRlZENvbXBv
c2l0aW5nUm9vdExheWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IHRha2VWaWV3U25hcHNob3QoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSA9IDA7
CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDcxNGI3MmYuLjk2MWYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNTU0LDggKzM1NTQsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRs
ZWQpCiAgICAgICAgIE93blB0cjxWZWN0b3I8TmF0aXZlV2ViV2hlZWxFdmVudD4+IG9sZGVzdENv
YWxlc2NlZEV2ZW50ID0gbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy50YWtlRmlyc3Qo
KTsKIAogICAgICAgICAvLyBGSVhNRTogRGlzcGF0Y2ggYWRkaXRpb25hbCBldmVudHMgdG8gdGhl
IGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQgY2xpZW50IGZ1bmN0aW9uLgotICAgICAgICBpZiAoIWhh
bmRsZWQgJiYgbV91aUNsaWVudC5pbXBsZW1lbnRzRGlkTm90SGFuZGxlV2hlZWxFdmVudCgpKQot
ICAgICAgICAgICAgbV91aUNsaWVudC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KHRoaXMsIG9sZGVz
dENvYWxlc2NlZEV2ZW50LT5sYXN0KCkpOworICAgICAgICBpZiAoIWhhbmRsZWQpIHsKKyAgICAg
ICAgICAgIGlmIChtX3VpQ2xpZW50LmltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50KCkp
CisgICAgICAgICAgICAgICAgbV91aUNsaWVudC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KHRoaXMs
IG9sZGVzdENvYWxlc2NlZEV2ZW50LT5sYXN0KCkpOworICAgICAgICAgICAgbV9wYWdlQ2xpZW50
LndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKG9sZGVzdENvYWxlc2NlZEV2ZW50LT5s
YXN0KCkpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5o
CmluZGV4IGVjNDViOTguLjA0NWRjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMzgsNiArMzgsNyBAQCBPQkpD
X0NMQVNTIE5TRXZlbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOYXRpdmVXZWJX
aGVlbEV2ZW50OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIApAQCAtNTUsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVTY3JvbGxX
aGVlbEV2ZW50KE5TRXZlbnQgKik7CiAgICAgdm9pZCBkaWRIaXRSZW5kZXJUcmVlU2l6ZVRocmVz
aG9sZCgpOwogCisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CisKICAgICB2b2lkIGVuZEFjdGl2ZUdlc3R1cmUoKTsK
IAogICAgIGVudW0gY2xhc3MgVmlld0dlc3R1cmVUeXBlIHsKQEAgLTgwLDggKzgzLDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBlbmRNYWduaWZpY2F0aW9uR2VzdHVyZSgpOwogICAgIFdlYkNvcmU6
OkZsb2F0UG9pbnQgc2NhbGVkTWFnbmlmaWNhdGlvbk9yaWdpbihXZWJDb3JlOjpGbG9hdFBvaW50
IG9yaWdpbiwgZG91YmxlIHNjYWxlKTsKIAotICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgYm9vbCBzd2lwaW5nTGVmdCk7Ci0gICAg
dm9pZCBoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRl
bSwgZG91YmxlIHByb2dyZXNzLCBib29sIHN3aXBpbmdMZWZ0KTsKKyAgICBlbnVtIGNsYXNzIFN3
aXBlRGlyZWN0aW9uIHsgTGVmdCwgUmlnaHQgfTsKKyAgICB2b2lkIHRyYWNrU3dpcGVHZXN0dXJl
KE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24pOworICAgIHZvaWQgYmVnaW5Td2lwZUdlc3R1cmUo
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgU3dpcGVEaXJlY3Rpb24pOworICAg
IHZvaWQgaGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0
ZW0sIGRvdWJsZSBwcm9ncmVzcywgU3dpcGVEaXJlY3Rpb24pOwogICAgIHZvaWQgZW5kU3dpcGVH
ZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgY2FuY2VsbGVk
KTsKICAgICB2b2lkIHJlbW92ZVN3aXBlU25hcHNob3QoKTsKICAgICB2b2lkIHN3aXBlU25hcHNo
b3RXYXRjaGRvZ1RpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9sbGVy
PiopOwpAQCAtMTAzLDYgKzEwOCwxMSBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX3N3aXBlU25hcHNob3RMYXllcjsKICAgICBTd2lwZVRyYW5zaXRpb25TdHlsZSBtX3N3aXBl
VHJhbnNpdGlvblN0eWxlOwogICAgIFdlYkNvcmU6OlRpbWVyPFZpZXdHZXN0dXJlQ29udHJvbGxl
cj4gbV9zd2lwZVdhdGNoZG9nVGltZXI7CisKKyAgICAvLyBJZiB3ZSBuZWVkIHRvIHdhaXQgZm9y
IGNvbnRlbnQgdG8gZGVjaWRlIGlmIGl0IGlzIGdvaW5nIHRvIGNvbnN1bWUKKyAgICAvLyB0aGUg
c2Nyb2xsIGV2ZW50IHRoYXQgd291bGQgaGF2ZSBzdGFydGVkIGEgc3dpcGUsIHdlJ2xsIGZpbGwg
dGhlc2UgaW4uCisgICAgYm9vbCBtX2hhc0RlZmVycmVkU3dpcGU7CisgICAgU3dpcGVEaXJlY3Rp
b24gbV9kZWZlcnJlZFN3aXBlRGlyZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250
cm9sbGVyLm1tCmluZGV4IDQ3ZDg5YzYuLjg4NTIxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiAhUExBVEZPUk0oSU9TKQogCisjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2
ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlQ29u
dHJvbGxlck1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9y
TWVzc2FnZXMuaCIKQEAgLTk2LDYgKzk3LDcgQEAgVmlld0dlc3R1cmVDb250cm9sbGVyOjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXIoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAgICAgLCBtX2Zy
YW1lSGFuZGxlc01hZ25pZmljYXRpb25HZXN0dXJlKGZhbHNlKQogICAgICwgbV9zd2lwZVRyYW5z
aXRpb25TdHlsZShTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3ZlcmxhcCkKICAgICAsIG1fc3dpcGVX
YXRjaGRvZ1RpbWVyKHRoaXMsICZWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnN3aXBlU25hcHNob3RX
YXRjaGRvZ1RpbWVyRmlyZWQpCisgICAgLCBtX2hhc0RlZmVycmVkU3dpcGUoZmFsc2UpCiB7CiAg
ICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
Vmlld0dlc3R1cmVDb250cm9sbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZVBy
b3h5LnBhZ2VJRCgpLCAqdGhpcyk7CiB9CkBAIC0yNDcsNiArMjQ5LDggQEAgYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAg
ICAgaWYgKGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBtX2hhc0RlZmVycmVkU3dpcGUgPSBmYWxzZTsKKwogICAgIGlmIChmYWJz
KGV2ZW50LnNjcm9sbGluZ0RlbHRhWCkgPCBmYWJzKGV2ZW50LnNjcm9sbGluZ0RlbHRhWSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjU1LDM0ICsyNTksNTYgQEAgYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAg
ICAgaWYgKCF3aWxsU3dpcGVMZWZ0ICYmICF3aWxsU3dpcGVSaWdodCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uID0gd2lsbFN3aXBlTGVmdCA/
IFN3aXBlRGlyZWN0aW9uOjpMZWZ0IDogU3dpcGVEaXJlY3Rpb246OlJpZ2h0OworCiAgICAgaWYg
KCFldmVudC5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIVtOU0V2ZW50IGlzU3dpcGVUcmFja2luZ0Zyb21TY3JvbGxFdmVudHNFbmFi
bGVkXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fd2ViUGFnZVByb3h5Lndp
bGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKCkpIHsKKyAgICAgICAgbV9oYXNEZWZlcnJl
ZFN3aXBlID0gdHJ1ZTsKKyAgICAgICAgbV9kZWZlcnJlZFN3aXBlRGlyZWN0aW9uID0gZGlyZWN0
aW9uOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdHJhY2tTd2lwZUdlc3R1
cmUoZXZlbnQsIGRpcmVjdGlvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0
IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIGlmICghbV9oYXNEZWZlcnJlZFN3
aXBlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hhc0RlZmVycmVkU3dpcGUgPSBmYWxzZTsK
KyAgICB0cmFja1N3aXBlR2VzdHVyZShldmVudC5uYXRpdmVFdmVudCgpLCBtX2RlZmVycmVkU3dp
cGVEaXJlY3Rpb24pOworfQorCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6dHJhY2tTd2lw
ZUdlc3R1cmUoTlNFdmVudCAqZXZlbnQsIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKICAg
ICBWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVkKCkucmVjb3JkU25hcHNob3QobV93ZWJQYWdlUHJv
eHkpOwogCi0gICAgQ0dGbG9hdCBtYXhQcm9ncmVzcyA9IHdpbGxTd2lwZUxlZnQgPyAxIDogMDsK
LSAgICBDR0Zsb2F0IG1pblByb2dyZXNzID0gd2lsbFN3aXBlUmlnaHQgPyAtMSA6IDA7Ci0gICAg
UmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+IHRhcmdldEl0ZW0gPSB3aWxsU3dpcGVMZWZ0
ID8gbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuYmFja0l0ZW0oKSA6IG1fd2ViUGFn
ZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7CisgICAgQ0dGbG9hdCBtYXhQ
cm9ncmVzcyA9IChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQpID8gMSA6IDA7Cisg
ICAgQ0dGbG9hdCBtaW5Qcm9ncmVzcyA9IChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OlJp
Z2h0KSA/IC0xIDogMDsKKyAgICBSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gdGFyZ2V0
SXRlbSA9IChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQpID8gbV93ZWJQYWdlUHJv
eHkuYmFja0ZvcndhcmRMaXN0KCkuYmFja0l0ZW0oKSA6IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3
YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7CiAgICAgX19ibG9jayBib29sIHN3aXBlQ2FuY2VsbGVk
ID0gZmFsc2U7CiAKICAgICBbZXZlbnQgdHJhY2tTd2lwZUV2ZW50V2l0aE9wdGlvbnM6MCBkYW1w
ZW5BbW91bnRUaHJlc2hvbGRNaW46bWluUHJvZ3Jlc3MgbWF4Om1heFByb2dyZXNzIHVzaW5nSGFu
ZGxlcjpeKENHRmxvYXQgcHJvZ3Jlc3MsIE5TRXZlbnRQaGFzZSBwaGFzZSwgQk9PTCBpc0NvbXBs
ZXRlLCBCT09MICpzdG9wKSB7CiAgICAgICAgIGlmIChwaGFzZSA9PSBOU0V2ZW50UGhhc2VCZWdh
bikKLSAgICAgICAgICAgIHRoaXMtPmJlZ2luU3dpcGVHZXN0dXJlKHRhcmdldEl0ZW0uZ2V0KCks
IHdpbGxTd2lwZUxlZnQpOworICAgICAgICAgICAgdGhpcy0+YmVnaW5Td2lwZUdlc3R1cmUodGFy
Z2V0SXRlbS5nZXQoKSwgZGlyZWN0aW9uKTsKICAgICAgICAgQ0dGbG9hdCBjbGFtcGVkUHJvZ3Jl
c3MgPSBzdGQ6Om1pbihzdGQ6Om1heChwcm9ncmVzcywgbWluUHJvZ3Jlc3MpLCBtYXhQcm9ncmVz
cyk7Ci0gICAgICAgIHRoaXMtPmhhbmRsZVN3aXBlR2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBj
bGFtcGVkUHJvZ3Jlc3MsIHdpbGxTd2lwZUxlZnQpOworICAgICAgICB0aGlzLT5oYW5kbGVTd2lw
ZUdlc3R1cmUodGFyZ2V0SXRlbS5nZXQoKSwgY2xhbXBlZFByb2dyZXNzLCBkaXJlY3Rpb24pOwog
ICAgICAgICBpZiAocGhhc2UgPT0gTlNFdmVudFBoYXNlQ2FuY2VsbGVkKQogICAgICAgICAgICAg
c3dpcGVDYW5jZWxsZWQgPSB0cnVlOwogICAgICAgICBpZiAoaXNDb21wbGV0ZSkKICAgICAgICAg
ICAgIHRoaXMtPmVuZFN3aXBlR2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBzd2lwZUNhbmNlbGxl
ZCk7CiAgICAgfV07Ci0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdl
dEl0ZW0sIGJvb2wgc3dpcGluZ0xlZnQpCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVn
aW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgU3dpcGVE
aXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIG1fYWN0aXZlR2VzdHVyZVR5cGUgPSBWaWV3R2Vz
dHVyZVR5cGU6OlN3aXBlOwogCkBAIC0zMjksMTMgKzM1NSwxMyBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFy
Z2V0SXRlbQogICAgICAgICBbcm9vdExheWVyIHNldFNoYWRvd1BhdGg6c2hhZG93UGF0aC5nZXQo
KV07CiAgICAgfQogCi0gICAgaWYgKHN3aXBpbmdMZWZ0KQorICAgIGlmIChkaXJlY3Rpb24gPT0g
U3dpcGVEaXJlY3Rpb246OkxlZnQpCiAgICAgICAgIFtyb290TGF5ZXIuc3VwZXJsYXllciBpbnNl
cnRTdWJsYXllcjptX3N3aXBlU25hcHNob3RMYXllci5nZXQoKSBiZWxvdzpyb290TGF5ZXJdOwog
ICAgIGVsc2UKICAgICAgICAgW3Jvb3RMYXllci5zdXBlcmxheWVyIGluc2VydFN1YmxheWVyOm1f
c3dpcGVTbmFwc2hvdExheWVyLmdldCgpIGFib3ZlOnJvb3RMYXllcl07CiB9CiAKLXZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSogdGFyZ2V0SXRlbSwgZG91YmxlIHByb2dyZXNzLCBib29sIHN3aXBpbmdMZWZ0KQordm9p
ZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBkb3VibGUgcHJvZ3Jlc3MsIFN3aXBlRGlyZWN0aW9uIGRp
cmVjdGlvbikKIHsKICAgICBBU1NFUlQobV9hY3RpdmVHZXN0dXJlVHlwZSA9PSBWaWV3R2VzdHVy
ZVR5cGU6OlN3aXBlKTsKIApAQCAtMzQ0LDEzICszNzAsMTMgQEAgdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJn
ZXRJdGUKICAgICBkb3VibGUgc3dpcGluZ0xheWVyT2Zmc2V0ID0gZmxvb3Iod2lkdGggKiBwcm9n
cmVzcyk7CiAKICAgICBpZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRp
b25TdHlsZTo6T3ZlcmxhcCkgewotICAgICAgICBpZiAoc3dpcGluZ0xlZnQpCisgICAgICAgIGlm
IChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQpCiAgICAgICAgICAgICBbcm9vdExh
eWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHN3aXBpbmdMYXllck9mZnNldCwgMCldOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0UG9zaXRpb246
Q0dQb2ludE1ha2Uod2lkdGggKyBzd2lwaW5nTGF5ZXJPZmZzZXQsIDApXTsKICAgICB9IGVsc2Ug
aWYgKG1fc3dpcGVUcmFuc2l0aW9uU3R5bGUgPT0gU3dpcGVUcmFuc2l0aW9uU3R5bGU6OlB1c2gp
IHsKICAgICAgICAgW3Jvb3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzd2lwaW5nTGF5
ZXJPZmZzZXQsIDApXTsKLSAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFBvc2l0aW9u
OkNHUG9pbnRNYWtlKChzd2lwaW5nTGVmdCA/IC13aWR0aCA6IHdpZHRoKSArIHN3aXBpbmdMYXll
ck9mZnNldCwgMCldOworICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0UG9zaXRpb246
Q0dQb2ludE1ha2UoKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCA/IC13aWR0aCA6
IHdpZHRoKSArIHN3aXBpbmdMYXllck9mZnNldCwgMCldOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222510</attachid>
            <date>2014-01-28 15:33:11 -0800</date>
            <delta_ts>2014-01-28 15:35:05 -0800</delta_ts>
            <desc>use NSEvent at the WKView level</desc>
            <filename>swipe-subframe.diff</filename>
            <type>text/plain</type>
            <size>15514</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYmM5YTU2Li41ZDYzNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDgg
QEAKIDIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEdpdmUgV2ViQ29yZSB0aGUg
Zmlyc3QgY3JhY2sgYXQgc2Nyb2xsIGV2ZW50cyBpZiBpdCBuZWVkcyBpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mzk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgorICAgICAgICAoLVtXS1ZpZXcgX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQp
OgorICAgICAgICBJbiBhZGRpdGlvbiB0byBpbmZvcm1pbmcgdGhlIHBhZ2UgY2xpZW50IGFib3V0
IHVuLWhhbmRsZWQgd2hlZWwgZXZlbnRzLAorICAgICAgICBpbmZvcm0gdGhlIFZpZXdHZXN0dXJl
Q29udHJvbGxlciwgaW4gYSByb3VuZGFib3V0IHdheS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgIEFkZCBhbmQgdXNlIFN3aXBlRGly
ZWN0aW9uIGVudW0gaW5zdGVhZCBvZiAnYm9vbCB3aWxsU3dpcGVMZWZ0Jy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6
CisgICAgICAgIElmIHdlIGdldCBhIEJlZ2luIHNjcm9sbCB3aGVlbCBldmVudCwgYW55IHByZXZp
b3VzbHkgZGVmZXJyZWQKKyAgICAgICAgc3dpcGVzIGFyZSBpbnZhbGlkLgorCisgICAgICAgIElm
IHRoZSBwYWdlIGhhcyBzdWJmcmFtZXMgb3Igd2hlZWwgaGFuZGxlcnMsIGRlZmVyIHN0YXJ0aW5n
IHRoZQorICAgICAgICBzd2lwZSB1bnRpbCB3ZSBnZXQgYSB3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZSBiYWNrIGZyb20gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6
Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6
CisgICAgICAgIFN0YXJ0IHRoZSBzd2lwZSBpZiB0aGUgV2ViUHJvY2VzcyBkaWRuJ3QgZWF0IHRo
ZSBldmVudC4KKworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRyYWNr
U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpi
ZWdpblN3aXBlR2VzdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6aGFuZGxlU3dpcGVHZXN0dXJlKToKKyAgICAgICAgVXNlIFN3aXBlRGlyZWN0aW9uLgorCisK
KzIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAg
ICAgICAgRml4IHRoZSBpT1MgYnVpbGQuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCmluZGV4IDcxM2FkMzAuLmY3NmIwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtOTgs
NiArOTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDR0lt
YWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdo
ZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRG9jdW1lbnREaWRSZWNlaXZlTW9i
aWxlRG9jVHlwZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGUyZjI0NDAuLjg5NmM2NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCkBAIC0zMjgsNiArMzI4LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBQ
YWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6Om1haW5Eb2N1bWVudERpZFJlY2VpdmVNb2Jp
bGVEb2NUeXBlKCkKIHsKICAgICBbbV92aWV3IF9kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZUZvck1h
aW5GcmFtZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwuaAppbmRleCAwOGQ3ODFkLi42OGZkNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTExNSw2ICsxMTUsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
R0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggOTBj
ODQ5ZC4uNmFjNWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkRpY3Rpb25h
cnlQb3B1cEluZm8uaCIKICNpbXBvcnQgIkZpbmRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIk5hdGl2
ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNp
bXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0
ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCkBAIC00NDQsNiArNDQ1LDExIEBAIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBQYWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAg
ICAgcmV0dXJuIFttX3drVmlldyBfdGFrZVZpZXdTbmFwc2hvdF07CiB9CiAKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdl
YldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIFttX3drVmlldyBfd2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmU6ZXZlbnQubmF0aXZlRXZlbnQoKV07Cit9CisKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNG
b2N1cykKIHsKICAgICBbbV93a1ZpZXcgX3BsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQ6
cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cyBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcl07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggOGJjMDA2ZS4uYTg1Yzc3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMjU2NCw2ICsy
NTY0LDExIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9h
ZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJ
bWFnZUNyZWF0ZVdpdGhJbWFnZUluUmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1Jl
Y3RUb0NHUmVjdChbd2luZG93IGNvbnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3Rd
KSkpOwogfQogCistICh2b2lkKV93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNF
dmVudCAqKWV2ZW50Cit7CisgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+d2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoZXZlbnQpOworfQorCiAtICh2b2lkKV9zZXRBY2Nlc3Np
YmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhCiB7CiAgICAgX2RhdGEtPl9yZW1v
dGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBXS0FYUmVtb3RlRWxlbWVudEZvclRva2VuKGRhdGEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
aW5kZXggYTYzZjcxNS4uMjZiMWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogICAgIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7CiAgICAgY2xhc3MgRmluZEluZGlj
YXRvcjsKICAgICBjbGFzcyBMYXllclRyZWVDb250ZXh0OworICAgIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiAgICAgc3RydWN0IENvbG9yU3BhY2VEYXRhOwogICAgIHN0cnVjdCBFZGl0b3JT
dGF0ZTsKIH0KQEAgLTcyLDYgKzczLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAtIChDQUxheWVy
ICopX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOwogCiAtIChSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4pX3Rha2VWaWV3U25hcHNob3Q7CistICh2b2lkKV93aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50OwogCiAtICh2b2lkKV9zZXRBY2Nlc3Np
YmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlOTI1YmQxLi4zMThhZmU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAqKSA9
IDA7CiAgICAgdmlydHVhbCBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVy
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRha2VWaWV3
U25hcHNob3QoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVk
QnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSA9IDA7CiAjZW5kaWYKIAogI2lm
IFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDcxNGI3MmYuLjk2MWYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0zNTU0LDggKzM1NTQsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhhbmRsZWQpCiAgICAgICAgIE93
blB0cjxWZWN0b3I8TmF0aXZlV2ViV2hlZWxFdmVudD4+IG9sZGVzdENvYWxlc2NlZEV2ZW50ID0g
bV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy50YWtlRmlyc3QoKTsKIAogICAgICAgICAv
LyBGSVhNRTogRGlzcGF0Y2ggYWRkaXRpb25hbCBldmVudHMgdG8gdGhlIGRpZE5vdEhhbmRsZVdo
ZWVsRXZlbnQgY2xpZW50IGZ1bmN0aW9uLgotICAgICAgICBpZiAoIWhhbmRsZWQgJiYgbV91aUNs
aWVudC5pbXBsZW1lbnRzRGlkTm90SGFuZGxlV2hlZWxFdmVudCgpKQotICAgICAgICAgICAgbV91
aUNsaWVudC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KHRoaXMsIG9sZGVzdENvYWxlc2NlZEV2ZW50
LT5sYXN0KCkpOworICAgICAgICBpZiAoIWhhbmRsZWQpIHsKKyAgICAgICAgICAgIGlmIChtX3Vp
Q2xpZW50LmltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50KCkpCisgICAgICAgICAgICAg
ICAgbV91aUNsaWVudC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KHRoaXMsIG9sZGVzdENvYWxlc2Nl
ZEV2ZW50LT5sYXN0KCkpOworICAgICAgICAgICAgbV9wYWdlQ2xpZW50LndoZWVsRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlKG9sZGVzdENvYWxlc2NlZEV2ZW50LT5sYXN0KCkpOworICAgICAg
ICB9CiAKICAgICAgICAgaWYgKCFtX3doZWVsRXZlbnRRdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGVjNDViOTgu
LmMxOGE4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZlbnQgKik7CiAgICAgdm9pZCBkaWRIaXRSZW5kZXJU
cmVlU2l6ZVRocmVzaG9sZCgpOwogCisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5
V2ViQ29yZShOU0V2ZW50ICopOworCiAgICAgdm9pZCBlbmRBY3RpdmVHZXN0dXJlKCk7CiAKICAg
ICBlbnVtIGNsYXNzIFZpZXdHZXN0dXJlVHlwZSB7CkBAIC04MCw4ICs4MiwxMCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZW5kTWFnbmlmaWNhdGlvbkdlc3R1cmUoKTsKICAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IHNjYWxlZE1hZ25pZmljYXRpb25PcmlnaW4oV2ViQ29yZTo6RmxvYXRQb2ludCBvcmln
aW4sIGRvdWJsZSBzY2FsZSk7CiAKLSAgICB2b2lkIGJlZ2luU3dpcGVHZXN0dXJlKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgc3dpcGluZ0xlZnQpOwotICAgIHZvaWQg
aGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGRv
dWJsZSBwcm9ncmVzcywgYm9vbCBzd2lwaW5nTGVmdCk7CisgICAgZW51bSBjbGFzcyBTd2lwZURp
cmVjdGlvbiB7IExlZnQsIFJpZ2h0IH07CisgICAgdm9pZCB0cmFja1N3aXBlR2VzdHVyZShOU0V2
ZW50ICosIFN3aXBlRGlyZWN0aW9uKTsKKyAgICB2b2lkIGJlZ2luU3dpcGVHZXN0dXJlKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIFN3aXBlRGlyZWN0aW9uKTsKKyAgICB2b2lk
IGhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBk
b3VibGUgcHJvZ3Jlc3MsIFN3aXBlRGlyZWN0aW9uKTsKICAgICB2b2lkIGVuZFN3aXBlR2VzdHVy
ZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBib29sIGNhbmNlbGxlZCk7CiAg
ICAgdm9pZCByZW1vdmVTd2lwZVNuYXBzaG90KCk7CiAgICAgdm9pZCBzd2lwZVNuYXBzaG90V2F0
Y2hkb2dUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4qKTsK
QEAgLTEwMyw2ICsxMDcsMTEgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9z
d2lwZVNuYXBzaG90TGF5ZXI7CiAgICAgU3dpcGVUcmFuc2l0aW9uU3R5bGUgbV9zd2lwZVRyYW5z
aXRpb25TdHlsZTsKICAgICBXZWJDb3JlOjpUaW1lcjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IG1f
c3dpcGVXYXRjaGRvZ1RpbWVyOworCisgICAgLy8gSWYgd2UgbmVlZCB0byB3YWl0IGZvciBjb250
ZW50IHRvIGRlY2lkZSBpZiBpdCBpcyBnb2luZyB0byBjb25zdW1lCisgICAgLy8gdGhlIHNjcm9s
bCBldmVudCB0aGF0IHdvdWxkIGhhdmUgc3RhcnRlZCBhIHN3aXBlLCB3ZSdsbCBmaWxsIHRoZXNl
IGluLgorICAgIGJvb2wgbV9oYXNEZWZlcnJlZFN3aXBlOworICAgIFN3aXBlRGlyZWN0aW9uIG1f
ZGVmZXJyZWRTd2lwZURpcmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5tbQppbmRleCA0N2Q4OWM2Li5hYzdmM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tbQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgIVBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5o
IgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xs
ZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3Nh
Z2VzLmgiCkBAIC05Niw2ICs5Nyw3IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Vmlld0dlc3R1
cmVDb250cm9sbGVyKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgICwgbV9mcmFtZUhh
bmRsZXNNYWduaWZpY2F0aW9uR2VzdHVyZShmYWxzZSkKICAgICAsIG1fc3dpcGVUcmFuc2l0aW9u
U3R5bGUoU3dpcGVUcmFuc2l0aW9uU3R5bGU6Ok92ZXJsYXApCiAgICAgLCBtX3N3aXBlV2F0Y2hk
b2dUaW1lcih0aGlzLCAmVmlld0dlc3R1cmVDb250cm9sbGVyOjpzd2lwZVNuYXBzaG90V2F0Y2hk
b2dUaW1lckZpcmVkKQorICAgICwgbV9oYXNEZWZlcnJlZFN3aXBlKGZhbHNlKQogewogICAgIG1f
d2ViUGFnZVByb3h5LnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS5w
YWdlSUQoKSwgKnRoaXMpOwogfQpAQCAtMjQ3LDYgKzI0OSw4IEBAIGJvb2wgVmlld0dlc3R1cmVD
b250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIGlm
IChldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VCZWdhbikKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisgICAgbV9oYXNEZWZlcnJlZFN3aXBlID0gZmFsc2U7CisKICAgICBpZiAoZmFicyhldmVu
dC5zY3JvbGxpbmdEZWx0YVgpIDwgZmFicyhldmVudC5zY3JvbGxpbmdEZWx0YVkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKQEAgLTI1NSwzNCArMjU5LDU2IEBAIGJvb2wgVmlld0dlc3R1cmVD
b250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIGlm
ICghd2lsbFN3aXBlTGVmdCAmJiAhd2lsbFN3aXBlUmlnaHQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbiA9IHdpbGxTd2lwZUxlZnQgPyBTd2lw
ZURpcmVjdGlvbjo6TGVmdCA6IFN3aXBlRGlyZWN0aW9uOjpSaWdodDsKKwogICAgIGlmICghZXZl
bnQuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKCFbTlNFdmVudCBpc1N3aXBlVHJhY2tpbmdGcm9tU2Nyb2xsRXZlbnRzRW5hYmxlZF0p
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX3dlYlBhZ2VQcm94eS53aWxsSGFu
ZGxlSG9yaXpvbnRhbFNjcm9sbEV2ZW50cygpKSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRTd2lw
ZSA9IHRydWU7CisgICAgICAgIG1fZGVmZXJyZWRTd2lwZURpcmVjdGlvbiA9IGRpcmVjdGlvbjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRyYWNrU3dpcGVHZXN0dXJlKGV2
ZW50LCBkaXJlY3Rpb24pOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICpl
dmVudCkKK3sKKyAgICBpZiAoIW1faGFzRGVmZXJyZWRTd2lwZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9oYXNEZWZlcnJlZFN3aXBlID0gZmFsc2U7CisgICAgdHJhY2tTd2lwZUdlc3R1cmUo
ZXZlbnQsIG1fZGVmZXJyZWRTd2lwZURpcmVjdGlvbik7Cit9CisKK3ZvaWQgVmlld0dlc3R1cmVD
b250cm9sbGVyOjp0cmFja1N3aXBlR2VzdHVyZShOU0V2ZW50ICpldmVudCwgU3dpcGVEaXJlY3Rp
b24gZGlyZWN0aW9uKQorewogICAgIFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQoKS5yZWNvcmRT
bmFwc2hvdChtX3dlYlBhZ2VQcm94eSk7CiAKLSAgICBDR0Zsb2F0IG1heFByb2dyZXNzID0gd2ls
bFN3aXBlTGVmdCA/IDEgOiAwOwotICAgIENHRmxvYXQgbWluUHJvZ3Jlc3MgPSB3aWxsU3dpcGVS
aWdodCA/IC0xIDogMDsKLSAgICBSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gdGFyZ2V0
SXRlbSA9IHdpbGxTd2lwZUxlZnQgPyBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5i
YWNrSXRlbSgpIDogbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuZm9yd2FyZEl0ZW0o
KTsKKyAgICBDR0Zsb2F0IG1heFByb2dyZXNzID0gKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlv
bjo6TGVmdCkgPyAxIDogMDsKKyAgICBDR0Zsb2F0IG1pblByb2dyZXNzID0gKGRpcmVjdGlvbiA9
PSBTd2lwZURpcmVjdGlvbjo6UmlnaHQpID8gLTEgOiAwOworICAgIFJlZlB0cjxXZWJCYWNrRm9y
d2FyZExpc3RJdGVtPiB0YXJnZXRJdGVtID0gKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6
TGVmdCkgPyBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5iYWNrSXRlbSgpIDogbV93
ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuZm9yd2FyZEl0ZW0oKTsKICAgICBfX2Jsb2Nr
IGJvb2wgc3dpcGVDYW5jZWxsZWQgPSBmYWxzZTsKIAogICAgIFtldmVudCB0cmFja1N3aXBlRXZl
bnRXaXRoT3B0aW9uczowIGRhbXBlbkFtb3VudFRocmVzaG9sZE1pbjptaW5Qcm9ncmVzcyBtYXg6
bWF4UHJvZ3Jlc3MgdXNpbmdIYW5kbGVyOl4oQ0dGbG9hdCBwcm9ncmVzcywgTlNFdmVudFBoYXNl
IHBoYXNlLCBCT09MIGlzQ29tcGxldGUsIEJPT0wgKnN0b3ApIHsKICAgICAgICAgaWYgKHBoYXNl
ID09IE5TRXZlbnRQaGFzZUJlZ2FuKQotICAgICAgICAgICAgdGhpcy0+YmVnaW5Td2lwZUdlc3R1
cmUodGFyZ2V0SXRlbS5nZXQoKSwgd2lsbFN3aXBlTGVmdCk7CisgICAgICAgICAgICB0aGlzLT5i
ZWdpblN3aXBlR2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBkaXJlY3Rpb24pOwogICAgICAgICBD
R0Zsb2F0IGNsYW1wZWRQcm9ncmVzcyA9IHN0ZDo6bWluKHN0ZDo6bWF4KHByb2dyZXNzLCBtaW5Q
cm9ncmVzcyksIG1heFByb2dyZXNzKTsKLSAgICAgICAgdGhpcy0+aGFuZGxlU3dpcGVHZXN0dXJl
KHRhcmdldEl0ZW0uZ2V0KCksIGNsYW1wZWRQcm9ncmVzcywgd2lsbFN3aXBlTGVmdCk7CisgICAg
ICAgIHRoaXMtPmhhbmRsZVN3aXBlR2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBjbGFtcGVkUHJv
Z3Jlc3MsIGRpcmVjdGlvbik7CiAgICAgICAgIGlmIChwaGFzZSA9PSBOU0V2ZW50UGhhc2VDYW5j
ZWxsZWQpCiAgICAgICAgICAgICBzd2lwZUNhbmNlbGxlZCA9IHRydWU7CiAgICAgICAgIGlmIChp
c0NvbXBsZXRlKQogICAgICAgICAgICAgdGhpcy0+ZW5kU3dpcGVHZXN0dXJlKHRhcmdldEl0ZW0u
Z2V0KCksIHN3aXBlQ2FuY2VsbGVkKTsKICAgICB9XTsKLQotICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgYm9vbCBzd2lwaW5nTGVmdCkKK3ZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiB0YXJnZXRJdGVtLCBTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgbV9hY3RpdmVH
ZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGU7CiAKQEAgLTMyOSwxMyArMzU1LDEz
IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtCiAgICAgICAgIFtyb290TGF5ZXIgc2V0U2hhZG93
UGF0aDpzaGFkb3dQYXRoLmdldCgpXTsKICAgICB9CiAKLSAgICBpZiAoc3dpcGluZ0xlZnQpCisg
ICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkKICAgICAgICAgW3Jvb3RM
YXllci5zdXBlcmxheWVyIGluc2VydFN1YmxheWVyOm1fc3dpcGVTbmFwc2hvdExheWVyLmdldCgp
IGJlbG93OnJvb3RMYXllcl07CiAgICAgZWxzZQogICAgICAgICBbcm9vdExheWVyLnN1cGVybGF5
ZXIgaW5zZXJ0U3VibGF5ZXI6bV9zd2lwZVNuYXBzaG90TGF5ZXIuZ2V0KCkgYWJvdmU6cm9vdExh
eWVyXTsKIH0KIAotdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVy
ZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBkb3VibGUgcHJvZ3Jlc3MsIGJv
b2wgc3dpcGluZ0xlZnQpCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU3dpcGVH
ZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGRvdWJsZSBwcm9ncmVz
cywgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChtX2FjdGl2ZUdlc3R1
cmVUeXBlID09IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGUpOwogCkBAIC0zNDQsMTMgKzM3MCwxMyBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU3dpcGVHZXN0dXJlKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZQogICAgIGRvdWJsZSBzd2lwaW5nTGF5ZXJPZmZzZXQg
PSBmbG9vcih3aWR0aCAqIHByb2dyZXNzKTsKIAogICAgIGlmIChtX3N3aXBlVHJhbnNpdGlvblN0
eWxlID09IFN3aXBlVHJhbnNpdGlvblN0eWxlOjpPdmVybGFwKSB7Ci0gICAgICAgIGlmIChzd2lw
aW5nTGVmdCkKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkK
ICAgICAgICAgICAgIFtyb290TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2Uoc3dpcGluZ0xh
eWVyT2Zmc2V0LCAwKV07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFttX3N3aXBlU25hcHNo
b3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSh3aWR0aCArIHN3aXBpbmdMYXllck9mZnNl
dCwgMCldOwogICAgIH0gZWxzZSBpZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRy
YW5zaXRpb25TdHlsZTo6UHVzaCkgewogICAgICAgICBbcm9vdExheWVyIHNldFBvc2l0aW9uOkNH
UG9pbnRNYWtlKHN3aXBpbmdMYXllck9mZnNldCwgMCldOwotICAgICAgICBbbV9zd2lwZVNuYXBz
aG90TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoKHN3aXBpbmdMZWZ0ID8gLXdpZHRoIDog
d2lkdGgpICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07CisgICAgICAgIFttX3N3aXBlU25hcHNo
b3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0
aW9uOjpMZWZ0ID8gLXdpZHRoIDogd2lkdGgpICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07CiAg
ICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222513</attachid>
            <date>2014-01-28 15:35:05 -0800</date>
            <delta_ts>2014-01-28 16:30:22 -0800</delta_ts>
            <desc>remove unneeded fwd declaration</desc>
            <filename>swipe-subframe.diff</filename>
            <type>text/plain</type>
            <size>15305</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYmM5YTU2Li41ZDYzNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDgg
QEAKIDIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEdpdmUgV2ViQ29yZSB0aGUg
Zmlyc3QgY3JhY2sgYXQgc2Nyb2xsIGV2ZW50cyBpZiBpdCBuZWVkcyBpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mzk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgorICAgICAgICAoLVtXS1ZpZXcgX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQp
OgorICAgICAgICBJbiBhZGRpdGlvbiB0byBpbmZvcm1pbmcgdGhlIHBhZ2UgY2xpZW50IGFib3V0
IHVuLWhhbmRsZWQgd2hlZWwgZXZlbnRzLAorICAgICAgICBpbmZvcm0gdGhlIFZpZXdHZXN0dXJl
Q29udHJvbGxlciwgaW4gYSByb3VuZGFib3V0IHdheS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgIEFkZCBhbmQgdXNlIFN3aXBlRGly
ZWN0aW9uIGVudW0gaW5zdGVhZCBvZiAnYm9vbCB3aWxsU3dpcGVMZWZ0Jy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6
CisgICAgICAgIElmIHdlIGdldCBhIEJlZ2luIHNjcm9sbCB3aGVlbCBldmVudCwgYW55IHByZXZp
b3VzbHkgZGVmZXJyZWQKKyAgICAgICAgc3dpcGVzIGFyZSBpbnZhbGlkLgorCisgICAgICAgIElm
IHRoZSBwYWdlIGhhcyBzdWJmcmFtZXMgb3Igd2hlZWwgaGFuZGxlcnMsIGRlZmVyIHN0YXJ0aW5n
IHRoZQorICAgICAgICBzd2lwZSB1bnRpbCB3ZSBnZXQgYSB3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZSBiYWNrIGZyb20gdGhlIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6
Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6
CisgICAgICAgIFN0YXJ0IHRoZSBzd2lwZSBpZiB0aGUgV2ViUHJvY2VzcyBkaWRuJ3QgZWF0IHRo
ZSBldmVudC4KKworICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRyYWNr
U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpi
ZWdpblN3aXBlR2VzdHVyZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6aGFuZGxlU3dpcGVHZXN0dXJlKToKKyAgICAgICAgVXNlIFN3aXBlRGlyZWN0aW9uLgorCisK
KzIwMTQtMDEtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAg
ICAgICAgRml4IHRoZSBpT1MgYnVpbGQuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCmluZGV4IDcxM2FkMzAuLmY3NmIwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtOTgs
NiArOTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDR0lt
YWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdo
ZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRG9jdW1lbnREaWRSZWNlaXZlTW9i
aWxlRG9jVHlwZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGUyZjI0NDAuLjg5NmM2NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCkBAIC0zMjgsNiArMzI4LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBQ
YWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6Om1haW5Eb2N1bWVudERpZFJlY2VpdmVNb2Jp
bGVEb2NUeXBlKCkKIHsKICAgICBbbV92aWV3IF9kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZUZvck1h
aW5GcmFtZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwuaAppbmRleCAwOGQ3ODFkLi42OGZkNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTExNSw2ICsxMTUsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
R0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggOTBj
ODQ5ZC4uNmFjNWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkRpY3Rpb25h
cnlQb3B1cEluZm8uaCIKICNpbXBvcnQgIkZpbmRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIk5hdGl2
ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNp
bXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0
ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCkBAIC00NDQsNiArNDQ1LDExIEBAIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBQYWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAg
ICAgcmV0dXJuIFttX3drVmlldyBfdGFrZVZpZXdTbmFwc2hvdF07CiB9CiAKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdl
YldoZWVsRXZlbnQmIGV2ZW50KQoreworICAgIFttX3drVmlldyBfd2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmU6ZXZlbnQubmF0aXZlRXZlbnQoKV07Cit9CisKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNG
b2N1cykKIHsKICAgICBbbV93a1ZpZXcgX3BsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQ6
cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cyBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcl07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggOGJjMDA2ZS4uYTg1Yzc3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMjU2NCw2ICsy
NTY0LDExIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9h
ZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJ
bWFnZUNyZWF0ZVdpdGhJbWFnZUluUmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1Jl
Y3RUb0NHUmVjdChbd2luZG93IGNvbnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3Rd
KSkpOwogfQogCistICh2b2lkKV93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNF
dmVudCAqKWV2ZW50Cit7CisgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+d2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoZXZlbnQpOworfQorCiAtICh2b2lkKV9zZXRBY2Nlc3Np
YmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhCiB7CiAgICAgX2RhdGEtPl9yZW1v
dGVBY2Nlc3NpYmlsaXR5Q2hpbGQgPSBXS0FYUmVtb3RlRWxlbWVudEZvclRva2VuKGRhdGEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
aW5kZXggYTYzZjcxNS4uNzVhMDBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogLSAoQ0FMYXllciAqKV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXll
cjsKIAogLSAoUmV0YWluUHRyPENHSW1hZ2VSZWY+KV90YWtlVmlld1NuYXBzaG90OworLSAodm9p
ZClfd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudDsKIAog
LSAodm9pZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0YTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZTkyNWJkMS4uMzE4YWZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xNzQsNiArMTc0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKENBTGF5ZXIgKikgPSAwOwogICAgIHZpcnR1YWwgQ0FMYXllciAqYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
R0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aGVl
bEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikg
PSAwOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA3MTRiNzJmLi45NjFmMjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU1NCw4ICszNTU0LDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBo
YW5kbGVkKQogICAgICAgICBPd25QdHI8VmVjdG9yPE5hdGl2ZVdlYldoZWVsRXZlbnQ+PiBvbGRl
c3RDb2FsZXNjZWRFdmVudCA9IG1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMudGFrZUZp
cnN0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IERpc3BhdGNoIGFkZGl0aW9uYWwgZXZlbnRzIHRv
IHRoZSBkaWROb3RIYW5kbGVXaGVlbEV2ZW50IGNsaWVudCBmdW5jdGlvbi4KLSAgICAgICAgaWYg
KCFoYW5kbGVkICYmIG1fdWlDbGllbnQuaW1wbGVtZW50c0RpZE5vdEhhbmRsZVdoZWVsRXZlbnQo
KSkKLSAgICAgICAgICAgIG1fdWlDbGllbnQuZGlkTm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBv
bGRlc3RDb2FsZXNjZWRFdmVudC0+bGFzdCgpKTsKKyAgICAgICAgaWYgKCFoYW5kbGVkKSB7Cisg
ICAgICAgICAgICBpZiAobV91aUNsaWVudC5pbXBsZW1lbnRzRGlkTm90SGFuZGxlV2hlZWxFdmVu
dCgpKQorICAgICAgICAgICAgICAgIG1fdWlDbGllbnQuZGlkTm90SGFuZGxlV2hlZWxFdmVudCh0
aGlzLCBvbGRlc3RDb2FsZXNjZWRFdmVudC0+bGFzdCgpKTsKKyAgICAgICAgICAgIG1fcGFnZUNs
aWVudC53aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShvbGRlc3RDb2FsZXNjZWRFdmVu
dC0+bGFzdCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICghbV93aGVlbEV2ZW50UXVldWUu
aXNFbXB0eSgpKQogICAgICAgICAgICAgcHJvY2Vzc05leHRRdWV1ZWRXaGVlbEV2ZW50KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuaAppbmRleCBlYzQ1Yjk4Li5jMThhOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTU1LDYgKzU1LDggQEAg
cHVibGljOgogICAgIGJvb2wgaGFuZGxlU2Nyb2xsV2hlZWxFdmVudChOU0V2ZW50ICopOwogICAg
IHZvaWQgZGlkSGl0UmVuZGVyVHJlZVNpemVUaHJlc2hvbGQoKTsKIAorICAgIHZvaWQgd2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoTlNFdmVudCAqKTsKKwogICAgIHZvaWQgZW5kQWN0
aXZlR2VzdHVyZSgpOwogCiAgICAgZW51bSBjbGFzcyBWaWV3R2VzdHVyZVR5cGUgewpAQCAtODAs
OCArODIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuZE1hZ25pZmljYXRpb25HZXN0dXJlKCk7
CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzY2FsZWRNYWduaWZpY2F0aW9uT3JpZ2luKFdlYkNv
cmU6OkZsb2F0UG9pbnQgb3JpZ2luLCBkb3VibGUgc2NhbGUpOwogCi0gICAgdm9pZCBiZWdpblN3
aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBib29sIHN3aXBp
bmdMZWZ0KTsKLSAgICB2b2lkIGhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiB0YXJnZXRJdGVtLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgc3dpcGluZ0xlZnQpOworICAg
IGVudW0gY2xhc3MgU3dpcGVEaXJlY3Rpb24geyBMZWZ0LCBSaWdodCB9OworICAgIHZvaWQgdHJh
Y2tTd2lwZUdlc3R1cmUoTlNFdmVudCAqLCBTd2lwZURpcmVjdGlvbik7CisgICAgdm9pZCBiZWdp
blN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBTd2lwZURp
cmVjdGlvbik7CisgICAgdm9pZCBoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSogdGFyZ2V0SXRlbSwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURpcmVjdGlvbik7CiAgICAg
dm9pZCBlbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwg
Ym9vbCBjYW5jZWxsZWQpOwogICAgIHZvaWQgcmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwogICAgIHZv
aWQgc3dpcGVTbmFwc2hvdFdhdGNoZG9nVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI+Kik7CkBAIC0xMDMsNiArMTA3LDExIEBAIHByaXZhdGU6CiAgICAgUmV0
YWluUHRyPENBTGF5ZXI+IG1fc3dpcGVTbmFwc2hvdExheWVyOwogICAgIFN3aXBlVHJhbnNpdGlv
blN0eWxlIG1fc3dpcGVUcmFuc2l0aW9uU3R5bGU7CiAgICAgV2ViQ29yZTo6VGltZXI8Vmlld0dl
c3R1cmVDb250cm9sbGVyPiBtX3N3aXBlV2F0Y2hkb2dUaW1lcjsKKworICAgIC8vIElmIHdlIG5l
ZWQgdG8gd2FpdCBmb3IgY29udGVudCB0byBkZWNpZGUgaWYgaXQgaXMgZ29pbmcgdG8gY29uc3Vt
ZQorICAgIC8vIHRoZSBzY3JvbGwgZXZlbnQgdGhhdCB3b3VsZCBoYXZlIHN0YXJ0ZWQgYSBzd2lw
ZSwgd2UnbGwgZmlsbCB0aGVzZSBpbi4KKyAgICBib29sIG1faGFzRGVmZXJyZWRTd2lwZTsKKyAg
ICBTd2lwZURpcmVjdGlvbiBtX2RlZmVycmVkU3dpcGVEaXJlY3Rpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIubW0KaW5kZXggNDdkODljNi4uYWM3ZjNhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
bW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAKKyNpbXBvcnQgIk5h
dGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgogI2ltcG9ydCAi
Vmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlR2Vv
bWV0cnlDb2xsZWN0b3JNZXNzYWdlcy5oIgpAQCAtOTYsNiArOTcsNyBAQCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OlZpZXdHZXN0dXJlQ29udHJvbGxlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94
eSkKICAgICAsIG1fZnJhbWVIYW5kbGVzTWFnbmlmaWNhdGlvbkdlc3R1cmUoZmFsc2UpCiAgICAg
LCBtX3N3aXBlVHJhbnNpdGlvblN0eWxlKFN3aXBlVHJhbnNpdGlvblN0eWxlOjpPdmVybGFwKQog
ICAgICwgbV9zd2lwZVdhdGNoZG9nVGltZXIodGhpcywgJlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
c3dpcGVTbmFwc2hvdFdhdGNoZG9nVGltZXJGaXJlZCkKKyAgICAsIG1faGFzRGVmZXJyZWRTd2lw
ZShmYWxzZSkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCksICp0aGlzKTsKIH0KQEAgLTI0Nyw2ICsyNDksOCBA
QCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChOU0V2
ZW50ICpldmVudCkKICAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQmVnYW4pCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIG1faGFzRGVmZXJyZWRTd2lwZSA9IGZhbHNlOwor
CiAgICAgaWYgKGZhYnMoZXZlbnQuc2Nyb2xsaW5nRGVsdGFYKSA8IGZhYnMoZXZlbnQuc2Nyb2xs
aW5nRGVsdGFZKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yNTUsMzQgKzI1OSw1NiBA
QCBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChOU0V2
ZW50ICpldmVudCkKICAgICBpZiAoIXdpbGxTd2lwZUxlZnQgJiYgIXdpbGxTd2lwZVJpZ2h0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24gPSB3
aWxsU3dpcGVMZWZ0ID8gU3dpcGVEaXJlY3Rpb246OkxlZnQgOiBTd2lwZURpcmVjdGlvbjo6Umln
aHQ7CisKICAgICBpZiAoIWV2ZW50Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmICghW05TRXZlbnQgaXNTd2lwZVRyYWNraW5nRnJvbVNj
cm9sbEV2ZW50c0VuYWJsZWRdKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV93
ZWJQYWdlUHJveHkud2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSkgeworICAgICAg
ICBtX2hhc0RlZmVycmVkU3dpcGUgPSB0cnVlOworICAgICAgICBtX2RlZmVycmVkU3dpcGVEaXJl
Y3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB0
cmFja1N3aXBlR2VzdHVyZShldmVudCwgZGlyZWN0aW9uKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRC
eVdlYkNvcmUoTlNFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKCFtX2hhc0RlZmVycmVkU3dpcGUp
CisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzRGVmZXJyZWRTd2lwZSA9IGZhbHNlOworICAg
IHRyYWNrU3dpcGVHZXN0dXJlKGV2ZW50LCBtX2RlZmVycmVkU3dpcGVEaXJlY3Rpb24pOworfQor
Cit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6dHJhY2tTd2lwZUdlc3R1cmUoTlNFdmVudCAq
ZXZlbnQsIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKICAgICBWaWV3U25hcHNob3RTdG9y
ZTo6c2hhcmVkKCkucmVjb3JkU25hcHNob3QobV93ZWJQYWdlUHJveHkpOwogCi0gICAgQ0dGbG9h
dCBtYXhQcm9ncmVzcyA9IHdpbGxTd2lwZUxlZnQgPyAxIDogMDsKLSAgICBDR0Zsb2F0IG1pblBy
b2dyZXNzID0gd2lsbFN3aXBlUmlnaHQgPyAtMSA6IDA7Ci0gICAgUmVmUHRyPFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0+IHRhcmdldEl0ZW0gPSB3aWxsU3dpcGVMZWZ0ID8gbV93ZWJQYWdlUHJveHku
YmFja0ZvcndhcmRMaXN0KCkuYmFja0l0ZW0oKSA6IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJk
TGlzdCgpLmZvcndhcmRJdGVtKCk7CisgICAgQ0dGbG9hdCBtYXhQcm9ncmVzcyA9IChkaXJlY3Rp
b24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQpID8gMSA6IDA7CisgICAgQ0dGbG9hdCBtaW5Qcm9n
cmVzcyA9IChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OlJpZ2h0KSA/IC0xIDogMDsKKyAg
ICBSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gdGFyZ2V0SXRlbSA9IChkaXJlY3Rpb24g
PT0gU3dpcGVEaXJlY3Rpb246OkxlZnQpID8gbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0
KCkuYmFja0l0ZW0oKSA6IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJ
dGVtKCk7CiAgICAgX19ibG9jayBib29sIHN3aXBlQ2FuY2VsbGVkID0gZmFsc2U7CiAKICAgICBb
ZXZlbnQgdHJhY2tTd2lwZUV2ZW50V2l0aE9wdGlvbnM6MCBkYW1wZW5BbW91bnRUaHJlc2hvbGRN
aW46bWluUHJvZ3Jlc3MgbWF4Om1heFByb2dyZXNzIHVzaW5nSGFuZGxlcjpeKENHRmxvYXQgcHJv
Z3Jlc3MsIE5TRXZlbnRQaGFzZSBwaGFzZSwgQk9PTCBpc0NvbXBsZXRlLCBCT09MICpzdG9wKSB7
CiAgICAgICAgIGlmIChwaGFzZSA9PSBOU0V2ZW50UGhhc2VCZWdhbikKLSAgICAgICAgICAgIHRo
aXMtPmJlZ2luU3dpcGVHZXN0dXJlKHRhcmdldEl0ZW0uZ2V0KCksIHdpbGxTd2lwZUxlZnQpOwor
ICAgICAgICAgICAgdGhpcy0+YmVnaW5Td2lwZUdlc3R1cmUodGFyZ2V0SXRlbS5nZXQoKSwgZGly
ZWN0aW9uKTsKICAgICAgICAgQ0dGbG9hdCBjbGFtcGVkUHJvZ3Jlc3MgPSBzdGQ6Om1pbihzdGQ6
Om1heChwcm9ncmVzcywgbWluUHJvZ3Jlc3MpLCBtYXhQcm9ncmVzcyk7Ci0gICAgICAgIHRoaXMt
PmhhbmRsZVN3aXBlR2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBjbGFtcGVkUHJvZ3Jlc3MsIHdp
bGxTd2lwZUxlZnQpOworICAgICAgICB0aGlzLT5oYW5kbGVTd2lwZUdlc3R1cmUodGFyZ2V0SXRl
bS5nZXQoKSwgY2xhbXBlZFByb2dyZXNzLCBkaXJlY3Rpb24pOwogICAgICAgICBpZiAocGhhc2Ug
PT0gTlNFdmVudFBoYXNlQ2FuY2VsbGVkKQogICAgICAgICAgICAgc3dpcGVDYW5jZWxsZWQgPSB0
cnVlOwogICAgICAgICBpZiAoaXNDb21wbGV0ZSkKICAgICAgICAgICAgIHRoaXMtPmVuZFN3aXBl
R2VzdHVyZSh0YXJnZXRJdGVtLmdldCgpLCBzd2lwZUNhbmNlbGxlZCk7CiAgICAgfV07Ci0KLSAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dp
cGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgc3dpcGlu
Z0xlZnQpCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9u
KQogewogICAgIG1fYWN0aXZlR2VzdHVyZVR5cGUgPSBWaWV3R2VzdHVyZVR5cGU6OlN3aXBlOwog
CkBAIC0zMjksMTMgKzM1NSwxMyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5T
d2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbQogICAgICAgICBb
cm9vdExheWVyIHNldFNoYWRvd1BhdGg6c2hhZG93UGF0aC5nZXQoKV07CiAgICAgfQogCi0gICAg
aWYgKHN3aXBpbmdMZWZ0KQorICAgIGlmIChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246Okxl
ZnQpCiAgICAgICAgIFtyb290TGF5ZXIuc3VwZXJsYXllciBpbnNlcnRTdWJsYXllcjptX3N3aXBl
U25hcHNob3RMYXllci5nZXQoKSBiZWxvdzpyb290TGF5ZXJdOwogICAgIGVsc2UKICAgICAgICAg
W3Jvb3RMYXllci5zdXBlcmxheWVyIGluc2VydFN1YmxheWVyOm1fc3dpcGVTbmFwc2hvdExheWVy
LmdldCgpIGFib3ZlOnJvb3RMYXllcl07CiB9CiAKLXZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpoYW5kbGVTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwg
ZG91YmxlIHByb2dyZXNzLCBib29sIHN3aXBpbmdMZWZ0KQordm9pZCBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJ
dGVtLCBkb3VibGUgcHJvZ3Jlc3MsIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBB
U1NFUlQobV9hY3RpdmVHZXN0dXJlVHlwZSA9PSBWaWV3R2VzdHVyZVR5cGU6OlN3aXBlKTsKIApA
QCAtMzQ0LDEzICszNzAsMTMgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZVN3
aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGUKICAgICBkb3VibGUg
c3dpcGluZ0xheWVyT2Zmc2V0ID0gZmxvb3Iod2lkdGggKiBwcm9ncmVzcyk7CiAKICAgICBpZiAo
bV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3ZlcmxhcCkg
ewotICAgICAgICBpZiAoc3dpcGluZ0xlZnQpCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gU3dp
cGVEaXJlY3Rpb246OkxlZnQpCiAgICAgICAgICAgICBbcm9vdExheWVyIHNldFBvc2l0aW9uOkNH
UG9pbnRNYWtlKHN3aXBpbmdMYXllck9mZnNldCwgMCldOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2Uod2lkdGgg
KyBzd2lwaW5nTGF5ZXJPZmZzZXQsIDApXTsKICAgICB9IGVsc2UgaWYgKG1fc3dpcGVUcmFuc2l0
aW9uU3R5bGUgPT0gU3dpcGVUcmFuc2l0aW9uU3R5bGU6OlB1c2gpIHsKICAgICAgICAgW3Jvb3RM
YXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzd2lwaW5nTGF5ZXJPZmZzZXQsIDApXTsKLSAg
ICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKChzd2lw
aW5nTGVmdCA/IC13aWR0aCA6IHdpZHRoKSArIHN3aXBpbmdMYXllck9mZnNldCwgMCldOworICAg
ICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoKGRpcmVj
dGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCA/IC13aWR0aCA6IHdpZHRoKSArIHN3aXBpbmdM
YXllck9mZnNldCwgMCldOwogICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="246510"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>