<?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>130385</bug_id>
          
          <creation_ts>2014-03-17 23:17:08 -0700</creation_ts>
          <short_desc>[iOS][WebKit2] Provide generic software-snapshotting API</short_desc>
          <delta_ts>2014-03-18 23:56:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>ian</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991558</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-17 23:17:08 -0700</bug_when>
    <thetext>We should provide a single method on WKWebView that does an async software paint of a given rect in view space into an image of a given size.

&lt;rdar://problem/16005957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991755</commentid>
    <comment_count>1</comment_count>
      <attachid>227078</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 11:15:38 -0700</bug_when>
    <thetext>Created attachment 227078
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991760</commentid>
    <comment_count>2</comment_count>
      <attachid>227078</attachid>
    <who name="Ian Henderson">ian</who>
    <bug_when>2014-03-18 11:27:18 -0700</bug_when>
    <thetext>Comment on attachment 227078
patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:361
&gt; +        if (!imageHandle.isNull()) {
&gt; +            RefPtr&lt;WebKit::ShareableBitmap&gt; bitmap = WebKit::ShareableBitmap::create(imageHandle, WebKit::SharedMemory::ReadOnly);
&gt; +
&gt; +            if (bitmap) {
&gt; +                RetainPtr&lt;CGImageRef&gt; cgImage;
&gt; +                cgImage = bitmap-&gt;makeCGImage();
&gt; +                copiedCompletionHandler(cgImage.get());
&gt; +            }
&gt; +        }
&gt; +
&gt; +        [copiedCompletionHandler release];

Clients should be able to rely on the completion handler being called, even if something went wrong.  Could we call the completion handler with a nil argument in this case instead of not calling it at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991902</commentid>
    <comment_count>3</comment_count>
      <attachid>227116</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 15:04:38 -0700</bug_when>
    <thetext>Created attachment 227116
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991903</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 15:05:53 -0700</bug_when>
    <thetext>Attachment 227116 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.h:425:  The parameter name &quot;rect&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.h:425:  The parameter name &quot;options&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 10 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>992010</commentid>
    <comment_count>5</comment_count>
      <attachid>227151</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 20:45:56 -0700</bug_when>
    <thetext>Created attachment 227151
ignore this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992018</commentid>
    <comment_count>6</comment_count>
      <attachid>227151</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-03-18 22:08:39 -0700</bug_when>
    <thetext>Comment on attachment 227151
ignore this patch

This might build, but it is attached to the wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992019</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 22:29:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 227151 [details])
&gt; This might build, but it is attached to the wrong bug.

Re r?&apos;d the relevant patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992037</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-18 23:56:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/165872</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227078</attachid>
            <date>2014-03-18 11:15:38 -0700</date>
            <delta_ts>2014-03-18 15:04:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>snapshot.diff</filename>
            <type>text/plain</type>
            <size>11874</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxN2RjMTQ4Li44MWYwNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU11bV2ViS2l0Ml0gUHJvdmlkZSBnZW5lcmljIHNvZnR3YXJlLXNuYXBzaG90
dGluZyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDM4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYwMDU5NTc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc25hcHNob3RSZWN0OmludG9JbWFnZU9mV2lkdGg6Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIEFkZCBzbmFwc2hvdFJlY3Q6aW50b0ltYWdlT2ZX
aWR0aDpjb21wbGV0aW9uSGFuZGxlcjosIHdoaWNoIGRyYXdzCisgICAgICAgIHRoZSBnaXZlbiB2
aWV3LXJlbGF0aXZlIHJlY3QgaW50byBhbiBpbWFnZSBvZiB0aGUgZ2l2ZW4gd2lkdGgsIGNhbGxp
bmcKKyAgICAgICAgdGhlIGdpdmVuIGJsb2NrIGJhY2sgd2l0aCB0aGUgcmVzdWx0LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tOgorICAgICAgICAo
LVtfV0tUaHVtYm5haWxWaWV3IGluaXRXaXRoRnJhbWU6ZnJvbVdLVmlldzpdKToKKyAgICAgICAg
KC1bX1dLVGh1bWJuYWlsVmlldyBfcmVxdWVzdFNuYXBzaG90SWZOZWVkZWRdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2NhbGVkU25hcHNob3RXaXRoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgUmVuYW1lIFRha2VUaHVtYm5haWxTbmFwc2hvdCBtZXNz
YWdlIHRvIFRha2VTbmFwc2hvdC4KKworICAgICAgICAqIFNoYXJlZC9JbWFnZU9wdGlvbnMuaDoK
KyAgICAgICAgQWRkIGEgc25hcHNob3Qgb3B0aW9uLCBSZXNwZWN0RHJhd2luZ0FyZWFUcmFuc2Zv
cm0sIHRoYXQgbWFwcworICAgICAgICB0aGUgcmVjdCB0aHJvdWdoIHRoZSBkcmF3aW5nIGFyZWEn
cyByb290IGxheWVyIHRyYW5zZm9ybS4KKyAgICAgICAgVXNlIHRoaXMgaW4gcGxhY2Ugb2YgdGhl
IHRodW1ibmFpbC1zcGVjaWZpYyBjb2RlIGluIFRha2VUaHVtYm5haWxTbmFwc2hvdC4KKwogMjAx
NC0wMy0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIGNvbnZlcnRUb1JhbmdlKCkgaGVscGVyIHRvIGNyb3NzLXBsYXRmb3JtIFdlYlBhZ2UuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1hZ2VPcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvSW1hZ2VPcHRpb25zLmgKaW5kZXggNzNkMmMwZS4uZTk4ZDJiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltYWdlT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9JbWFnZU9wdGlvbnMuaApAQCAtMzYsNyArMzYsOCBAQCBlbnVt
IHsKICAgICBTbmFwc2hvdE9wdGlvbnNTaGFyZWFibGUgPSAxIDw8IDAsCiAgICAgU25hcHNob3RP
cHRpb25zRXhjbHVkZVNlbGVjdGlvbkhpZ2hsaWdodGluZyA9IDEgPDwgMSwKICAgICBTbmFwc2hv
dE9wdGlvbnNJblZpZXdDb29yZGluYXRlcyA9IDEgPDwgMiwKLSAgICBTbmFwc2hvdE9wdGlvbnNQ
YWludFNlbGVjdGlvblJlY3RhbmdsZSA9IDEgPDwgMworICAgIFNuYXBzaG90T3B0aW9uc1BhaW50
U2VsZWN0aW9uUmVjdGFuZ2xlID0gMSA8PCAzLAorICAgIFNuYXBzaG90T3B0aW9uc1Jlc3BlY3RE
cmF3aW5nQXJlYVRyYW5zZm9ybSA9IDEgPDwgNAogfTsKIHR5cGVkZWYgdWludDMyX3QgU25hcHNo
b3RPcHRpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcuaAppbmRleCBjNWEzNjFmLi45MDliMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTEyNCw2ICsxMjQsOCBAQCBXS19BUElf
Q0xBU1MKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3OworCistICh2b2lkKXNuYXBzaG90UmVjdDoo
Q0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0KWlt
YWdlV2lkdGggY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQ0dJbWFnZVJlZikpY29tcGxldGlv
bkhhbmRsZXI7CiAjZWxzZQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzTWFnbmlm
aWNhdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1hZ25pZmljYXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4
IDE0ZjdhYjAuLmFjY2Y5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNDEsNiArMzQxLDI3IEBACiAgICAgcmV0dXJuIFtfY29u
dGVudFZpZXcgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcl07CiB9CiAKKy0gKHZvaWQpc25hcHNo
b3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFnZU9mV2lkdGg6KENH
RmxvYXQpaW1hZ2VXaWR0aCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR0ltYWdlUmVmKSlj
b21wbGV0aW9uSGFuZGxlcgoreworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzbmFwc2hvdFJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcyhbc2VsZiBjb252ZXJ0UmVjdDpyZWN0SW5WaWV3Q29vcmRpbmF0
ZXMgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV0pOworICAgIGRvdWJsZSBzY2FsZSA9IGltYWdl
V2lkdGggLyAoc25hcHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMud2lkdGgoKSAqIF9wYWdl
LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKworICAgIHZvaWQoXmNvcGllZENvbXBsZXRpb25IYW5k
bGVyKShDR0ltYWdlUmVmKSA9IFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XTsKKyAgICBfcGFnZS0+
dGFrZVNuYXBzaG90KFdlYkNvcmU6OmVuY2xvc2luZ0ludFJlY3Qoc25hcHNob3RSZWN0SW5Db250
ZW50Q29vcmRpbmF0ZXMpLCBzY2FsZSwgMCwgW2NvcGllZENvbXBsZXRpb25IYW5kbGVyXShib29s
LCBjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZUhhbmRsZSkgewor
ICAgICAgICBpZiAoIWltYWdlSGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBSZWZQdHI8
V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisK
KyAgICAgICAgICAgIGlmIChiaXRtYXApIHsKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY2dJbWFnZTsKKyAgICAgICAgICAgICAgICBjZ0ltYWdlID0gYml0bWFwLT5tYWtl
Q0dJbWFnZSgpOworICAgICAgICAgICAgICAgIGNvcGllZENvbXBsZXRpb25IYW5kbGVyKGNnSW1h
Z2UuZ2V0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgW2NvcGllZENv
bXBsZXRpb25IYW5kbGVyIHJlbGVhc2VdOworICAgIH0pOworfQorCiAtICh2b2lkKV9zZXRIYXND
dXN0b21Db250ZW50VmlldzooQk9PTClwYWdlSGFzQ3VzdG9tQ29udGVudFZpZXcgbG9hZGVkTUlN
RVR5cGU6KGNvbnN0IFdURjo6U3RyaW5nJiltaW1lVHlwZQogewogICAgIGlmIChwYWdlSGFzQ3Vz
dG9tQ29udGVudFZpZXcpIHsKQEAgLTQxNSw3ICs0MzYsNyBAQAogICAgICAgICBbX3Njcm9sbFZp
ZXcgc2V0Q29udGVudE9mZnNldDpDR1BvaW50TWFrZSgtaW5zZXQubGVmdCwgLWluc2V0LnRvcCld
OwogICAgICAgICBfaXNXYWl0aW5nRm9yTmV3TGF5ZXJUcmVlQWZ0ZXJEaWRDb21taXRMb2FkID0g
Tk87CiAgICAgfQotICAgIAorCiB9CiAKIC0gKFJldGFpblB0cjxDR0ltYWdlUmVmPilfdGFrZVZp
ZXdTbmFwc2hvdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tUaHVtYm5haWxWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tUaHVtYm5haWxWaWV3Lm1tCmluZGV4IDM5YTcwN2YuLmEyN2VhMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcu
bW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAorI2ltcG9ydCAiSW1h
Z2VPcHRpb25zLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLVmlldy5oIgog
I2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKQEAgLTY5LDYgKzcwLDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKICAgICBfb3JpZ2luYWxTb3VyY2VWaWV3SXNJbldpbmRvdyA9ICEhW193a1Zp
ZXcgd2luZG93XTsKIAogICAgIF9zaG91bGRBcHBseVRodW1ibmFpbFNjYWxlID0gIV9vcmlnaW5h
bFNvdXJjZVZpZXdJc0luV2luZG93OworCisgICAgc2VsZi51c2VzU25hcHNob3QgPSBZRVM7CisK
ICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTA3LDcgKzExMSw5IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAgICAgX3dhaXRpbmdGb3JTbmFwc2hvdCA9IFlFUzsKIAogICAgIFJldGFpblB0
cjxfV0tUaHVtYm5haWxWaWV3PiB0aHVtYm5haWxWaWV3ID0gc2VsZjsKLSAgICBfd2ViUGFnZVBy
b3h5LT50YWtlVGh1bWJuYWlsU25hcHNob3QoW3RodW1ibmFpbFZpZXddKGJvb2wsIGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZUhhbmRsZSkgeworICAgIEludFJlY3Qgc25hcHNo
b3RSZWN0KEludFBvaW50KCksIF93ZWJQYWdlUHJveHktPnZpZXdTaXplKCkpOworICAgIFNuYXBz
aG90T3B0aW9ucyBvcHRpb25zID0gU25hcHNob3RPcHRpb25zUmVzcGVjdERyYXdpbmdBcmVhVHJh
bnNmb3JtIHwgU25hcHNob3RPcHRpb25zSW5WaWV3Q29vcmRpbmF0ZXM7CisgICAgX3dlYlBhZ2VQ
cm94eS0+dGFrZVNuYXBzaG90KHNuYXBzaG90UmVjdCwgMSwgb3B0aW9ucywgW3RodW1ibmFpbFZp
ZXddKGJvb2wsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZUhhbmRsZSkgewog
ICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CiAgICAgICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYml0bWFwLT5tYWtlQ0dJbWFnZSgpOwogICAg
ICAgICBbdGh1bWJuYWlsVmlldyBfZGlkVGFrZVNuYXBzaG90OmNnSW1hZ2UuZ2V0KCldOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlOTdkMTRiLi5iZTJk
MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDU2
Nyw3ICs0NTY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFkZE1JTUVUeXBlV2l0aEN1c3RvbUNv
bnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6QWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVy
KG1pbWVUeXBlKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dGFrZVRodW1i
bmFpbFNuYXBzaG90KEltYWdlQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24gY2FsbGJhY2tGdW5j
dGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5Ojp0YWtlU25hcHNob3QoSW50UmVjdCByZWN0LCBkb3Vi
bGUgYWRkaXRpb25hbFNjYWxlLCBTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucywgSW1hZ2VDYWxsYmFj
azo6Q2FsbGJhY2tGdW5jdGlvbiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGlmICghaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC00NTc3LDcgKzQ1NzcsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6dGFrZVRodW1ibmFpbFNuYXBzaG90KEltYWdlQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rp
b24gY2FsbGJhYwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOwogICAgIG1faW1hZ2VDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgp
KTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VGFrZVRodW1ibmFp
bFNuYXBzaG90KGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpUYWtlU25hcHNob3QocmVjdCwgYWRkaXRpb25hbFNjYWxlLCBvcHRp
b25zLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjZGFmNTlhLi41Y2Vl
OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05MTcsNyAr
OTE3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRUaHVtYm5haWxTY2FsZShkb3VibGUpOwog
Ci0gICAgdm9pZCB0YWtlVGh1bWJuYWlsU25hcHNob3QoSW1hZ2VDYWxsYmFjazo6Q2FsbGJhY2tG
dW5jdGlvbik7CisgICAgdm9pZCB0YWtlU25hcHNob3QoV2ViQ29yZTo6SW50UmVjdCwgZG91Ymxl
IGFkZGl0aW9uYWxTY2FsZSwgU25hcHNob3RPcHRpb25zLCBJbWFnZUNhbGxiYWNrOjpDYWxsYmFj
a0Z1bmN0aW9uKTsKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdl
YlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNvbmZpZ3VyYXRp
b24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBlNDg0MmUzLi40ZjY3OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTEzLDEyICsxNTEzLDEyIEBAIHZvaWQgV2ViUGFnZTo6
c2hvd1BhZ2VCYW5uZXJzKCkKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi12b2lkIFdl
YlBhZ2U6OnRha2VUaHVtYm5haWxTbmFwc2hvdCh1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQYWdlOjp0YWtlU25hcHNob3QoSW50UmVjdCBzbmFwc2hvdFJlY3QsIGRvdWJsZSBzY2FsZSwg
dWludDMyX3Qgb3B0aW9ucywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBJbnRSZWN0IHNu
YXBzaG90UmVjdChJbnRQb2ludCgpLCBtX3ZpZXdTaXplKTsKLSAgICBzbmFwc2hvdFJlY3QgPSBt
X2RyYXdpbmdBcmVhLT5yb290TGF5ZXJUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUmVjdChzbmFw
c2hvdFJlY3QpOworICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSBzdGF0aWNf
Y2FzdDxTbmFwc2hvdE9wdGlvbnM+KG9wdGlvbnMpOworICAgIHNuYXBzaG90T3B0aW9ucyB8PSBT
bmFwc2hvdE9wdGlvbnNTaGFyZWFibGU7CiAKLSAgICBSZWZQdHI8V2ViSW1hZ2U+IGltYWdlID0g
c2NhbGVkU25hcHNob3RXaXRoT3B0aW9ucyhzbmFwc2hvdFJlY3QsIDEsIFNuYXBzaG90T3B0aW9u
c1NoYXJlYWJsZSB8IFNuYXBzaG90T3B0aW9uc0luVmlld0Nvb3JkaW5hdGVzKTsKKyAgICBSZWZQ
dHI8V2ViSW1hZ2U+IGltYWdlID0gc2NhbGVkU25hcHNob3RXaXRoT3B0aW9ucyhzbmFwc2hvdFJl
Y3QsIHNjYWxlLCBzbmFwc2hvdE9wdGlvbnMpOwogCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgaGFuZGxlOwogICAgIGlmIChpbWFnZSkKQEAgLTE1MzcsNyArMTUzNywxMSBAQCBQYXNzUmVm
UHRyPFdlYkltYWdlPiBXZWJQYWdlOjpzY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGRvdQogICAgIGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIEludFNpemUgYml0bWFwU2l6ZSA9IHJlY3Quc2l6ZSgpOworICAgIEludFJl
Y3Qgc25hcHNob3RSZWN0ID0gcmVjdDsKKyAgICBpZiAob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9u
c1Jlc3BlY3REcmF3aW5nQXJlYVRyYW5zZm9ybSkKKyAgICAgICAgc25hcHNob3RSZWN0ID0gbV9k
cmF3aW5nQXJlYS0+cm9vdExheWVyVHJhbnNmb3JtKCkuaW52ZXJzZSgpLm1hcFJlY3Qoc25hcHNo
b3RSZWN0KTsKKworICAgIEludFNpemUgYml0bWFwU2l6ZSA9IHNuYXBzaG90UmVjdC5zaXplKCk7
CiAgICAgZmxvYXQgY29tYmluZWRTY2FsZUZhY3RvciA9IHNjYWxlRmFjdG9yICogY29yZVBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICBiaXRtYXBTaXplLnNjYWxlKGNvbWJpbmVkU2Nh
bGVGYWN0b3IpOwogCkBAIC0xNTUwLDcgKzE1NTQsNyBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBX
ZWJQYWdlOjpzY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKGNvbnN0IEludFJlY3QmIHJlY3QsIGRv
dQogICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgYml0
bWFwU2l6ZSkpOwogCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5hcHBseURldmljZVNjYWxlRmFjdG9y
KGNvbWJpbmVkU2NhbGVGYWN0b3IpOwotICAgIGdyYXBoaWNzQ29udGV4dC0+dHJhbnNsYXRlKC1y
ZWN0LngoKSwgLXJlY3QueSgpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPnRyYW5zbGF0ZSgtc25h
cHNob3RSZWN0LngoKSwgLXNuYXBzaG90UmVjdC55KCkpOwogCiAgICAgRnJhbWVWaWV3OjpTZWxl
Y3Rpb25JblNuYXBzaG90IHNob3VsZFBhaW50U2VsZWN0aW9uID0gRnJhbWVWaWV3OjpJbmNsdWRl
U2VsZWN0aW9uOwogICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zRXhjbHVkZVNlbGVj
dGlvbkhpZ2hsaWdodGluZykKQEAgLTE1NjAsNyArMTU2NCw3IEBAIFBhc3NSZWZQdHI8V2ViSW1h
Z2U+IFdlYlBhZ2U6OnNjYWxlZFNuYXBzaG90V2l0aE9wdGlvbnMoY29uc3QgSW50UmVjdCYgcmVj
dCwgZG91CiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNJblZpZXdDb29yZGluYXRl
cykKICAgICAgICAgY29vcmRpbmF0ZVNwYWNlID0gRnJhbWVWaWV3OjpWaWV3Q29vcmRpbmF0ZXM7
CiAKLSAgICBmcmFtZVZpZXctPnBhaW50Q29udGVudHNGb3JTbmFwc2hvdChncmFwaGljc0NvbnRl
eHQuZ2V0KCksIHJlY3QsIHNob3VsZFBhaW50U2VsZWN0aW9uLCBjb29yZGluYXRlU3BhY2UpOwor
ICAgIGZyYW1lVmlldy0+cGFpbnRDb250ZW50c0ZvclNuYXBzaG90KGdyYXBoaWNzQ29udGV4dC5n
ZXQoKSwgc25hcHNob3RSZWN0LCBzaG91bGRQYWludFNlbGVjdGlvbiwgY29vcmRpbmF0ZVNwYWNl
KTsKIAogICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zUGFpbnRTZWxlY3Rpb25SZWN0
YW5nbGUpIHsKICAgICAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IG1fbWFpbkZy
YW1lLT5jb3JlRnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uQm91bmRzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjNDU4Yzc2Li40Njc5
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTg0Niw3ICs4NDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZh
U2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBmb3JjZVJlcGFpbnQodWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCB0YWtl
VGh1bWJuYWlsU25hcHNob3QodWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCB0YWtlU25h
cHNob3QoV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QsIGRvdWJsZSBzY2FsZSwgdWludDMy
X3Qgb3B0aW9ucywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICB2b2lkIHByZWZlcmVuY2Vz
RGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKICAgICB2b2lkIHBsYXRmb3Jt
UHJlZmVyZW5jZXNEaWRDaGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAzODUzMzA3Li4zOGZlNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzM3LDYgKzMzNyw2IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgR2V0Qnl0ZWNvZGVQ
cm9maWxlKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgCi0gICAgVGFrZVRodW1ibmFpbFNuYXBz
aG90KHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgVGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJl
Y3Qgc25hcHNob3RSZWN0LCBkb3VibGUgc2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227116</attachid>
            <date>2014-03-18 15:04:38 -0700</date>
            <delta_ts>2014-03-18 23:35:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>snapshot.diff</filename>
            <type>text/plain</type>
            <size>15166</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxN2RjMTQ4Li5kMzVlZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU11bV2ViS2l0Ml0gUHJvdmlkZSBnZW5lcmljIHNvZnR3YXJlLXNuYXBzaG90
dGluZyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDM4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYwMDU5NTc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6
V2ViS2l0OjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zbmFwc2hvdFJlY3Q6aW50b0ltYWdl
T2ZXaWR0aDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1RodW1ibmFpbFZpZXcubW06CisgICAgICAgICgtW19XS1RodW1ibmFpbFZpZXcgaW5pdFdpdGhG
cmFtZTpmcm9tV0tWaWV3Ol0pOgorICAgICAgICAoLVtfV0tUaHVtYm5haWxWaWV3IF9yZXF1ZXN0
U25hcHNob3RJZk5lZWRlZF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0YWtl
U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZWRTbmFwc2hvdFdpdGhP
cHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c25hcHNob3RBdFNpemUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgIFJlbmFtZSBUYWtlVGh1bWJu
YWlsU25hcHNob3QgbWVzc2FnZSB0byBUYWtlU25hcHNob3QuCisKKyAgICAgICAgRmlsbCB0aGUg
c25hcHNob3QgaW1hZ2Ugd2l0aCB0aGUgRnJhbWVWaWV3J3MgYmFja2dyb3VuZCBjb2xvciwgdG8g
YXZvaWQKKyAgICAgICAgaGFsZi1waXhlbCBhbHBoYSBhcm91bmQgdGhlIGVkZ2VzLgorCisgICAg
ICAgIEZhY3RvciBzbmFwc2hvdEF0U2l6ZSBvdXQgb2Ygc2NhbGVkU25hcHNob3RXaXRoT3B0aW9u
cy4KKworICAgICAgICBEb24ndCBhcHBseSBib3RoIHRoZSBjdXN0b20gYW5kIGRldmljZSBzY2Fs
ZSBmYWN0b3IgdG8gdGhlIGJhc2UgQ1RNLAorICAgICAgICBvbmx5IHRoZSBkZXZpY2Ugc2NhbGUg
ZmFjdG9yLiBDdXN0b20gc2NhbGUgZmFjdG9yIHNob3VsZCBvbmx5IGJlCisgICAgICAgIGFwcGxp
ZWQgdG8gdGhlIHVzZXIgQ1RNLgorCisgICAgICAgICogU2hhcmVkL0ltYWdlT3B0aW9ucy5oOgor
ICAgICAgICBBZGQgYSBzbmFwc2hvdCBvcHRpb24sIFJlc3BlY3REcmF3aW5nQXJlYVRyYW5zZm9y
bSwgdGhhdCBtYXBzCisgICAgICAgIHRoZSByZWN0IHRocm91Z2ggdGhlIGRyYXdpbmcgYXJlYSdz
IHJvb3QgbGF5ZXIgdHJhbnNmb3JtLgorICAgICAgICBVc2UgdGhpcyBpbiBwbGFjZSBvZiB0aGUg
dGh1bWJuYWlsLXNwZWNpZmljIGNvZGUgaW4gVGFrZVRodW1ibmFpbFNuYXBzaG90LgorICAgICAg
ICBBZGQgYSBzbmFwc2hvdCBvcHRpb24sIEV4Y2x1ZGVEZXZpY2VTY2FsZUZhY3Rvciwgd2hpY2gg
bWVhbnMgdGhhdAorICAgICAgICBzbmFwc2hvdHRpbmcgd2lsbCBub3QgZmFjdG9yIHRoZSBkZXZp
Y2Ugc2NhbGUgaW4gKHVzZWZ1bCBmb3IgZHJhd2luZworICAgICAgICB0byBhIGJpdG1hcCBhdCBh
biBleGFjdCByZXF1ZXN0ZWQgc2l6ZSkuCisKIDIwMTQtMDMtMTcgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBjb252ZXJ0VG9SYW5nZSgpIGhlbHBl
ciB0byBjcm9zcy1wbGF0Zm9ybSBXZWJQYWdlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0ltYWdlT3B0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltYWdlT3B0
aW9ucy5oCmluZGV4IDczZDJjMGUuLjlkZTk0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9JbWFnZU9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1hZ2VP
cHRpb25zLmgKQEAgLTM2LDcgKzM2LDkgQEAgZW51bSB7CiAgICAgU25hcHNob3RPcHRpb25zU2hh
cmVhYmxlID0gMSA8PCAwLAogICAgIFNuYXBzaG90T3B0aW9uc0V4Y2x1ZGVTZWxlY3Rpb25IaWdo
bGlnaHRpbmcgPSAxIDw8IDEsCiAgICAgU25hcHNob3RPcHRpb25zSW5WaWV3Q29vcmRpbmF0ZXMg
PSAxIDw8IDIsCi0gICAgU25hcHNob3RPcHRpb25zUGFpbnRTZWxlY3Rpb25SZWN0YW5nbGUgPSAx
IDw8IDMKKyAgICBTbmFwc2hvdE9wdGlvbnNQYWludFNlbGVjdGlvblJlY3RhbmdsZSA9IDEgPDwg
MywKKyAgICBTbmFwc2hvdE9wdGlvbnNSZXNwZWN0RHJhd2luZ0FyZWFUcmFuc2Zvcm0gPSAxIDw8
IDQsCisgICAgU25hcHNob3RPcHRpb25zRXhjbHVkZURldmljZVNjYWxlRmFjdG9yID0gMSA8PCA1
LAogfTsKIHR5cGVkZWYgdWludDMyX3QgU25hcHNob3RPcHRpb25zOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE0ZjdhYjAuLmY0
YzFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC00MTUsNyArNDE1LDcgQEAKICAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRl
bnRPZmZzZXQ6Q0dQb2ludE1ha2UoLWluc2V0LmxlZnQsIC1pbnNldC50b3ApXTsKICAgICAgICAg
X2lzV2FpdGluZ0Zvck5ld0xheWVyVHJlZUFmdGVyRGlkQ29tbWl0TG9hZCA9IE5POwogICAgIH0K
LSAgICAKKwogfQogCiAtIChSZXRhaW5QdHI8Q0dJbWFnZVJlZj4pX3Rha2VWaWV3U25hcHNob3QK
QEAgLTk2Miw2ICs5NjIsMzUgQEAgc3RhdGljIGlubGluZSBXZWJDb3JlOjpMYXlvdXRNaWxlc3Rv
bmVzIGxheW91dE1pbGVzdG9uZXMoX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmUKICAgICBbc2VsZiBf
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c107CiB9CiAKKy0gKHZvaWQpX3NuYXBzaG90UmVjdDoo
Q0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRoOihDR0Zsb2F0KWlt
YWdlV2lkdGggY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQ0dJbWFnZVJlZikpY29tcGxldGlv
bkhhbmRsZXIKK3sKKyAgICBDR1JlY3Qgc25hcHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMg
PSBbc2VsZiBjb252ZXJ0UmVjdDpyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgdG9WaWV3Ol9jb250ZW50
Vmlldy5nZXQoKV07CisgICAgQ0dGbG9hdCBpbWFnZUhlaWdodCA9IGltYWdlV2lkdGggLyBzbmFw
c2hvdFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcy5zaXplLndpZHRoICogc25hcHNob3RSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQ7CisgICAgQ0dTaXplIGltYWdlU2l6ZSA9IENH
U2l6ZU1ha2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOworCisgICAgdm9pZCheY29waWVkQ29t
cGxldGlvbkhhbmRsZXIpKENHSW1hZ2VSZWYpID0gW2NvbXBsZXRpb25IYW5kbGVyIGNvcHldOwor
ICAgIF9wYWdlLT50YWtlU25hcHNob3QoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdChzbmFwc2hv
dFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyksIFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJD
b3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdlYktpdDo6U25hcHNob3RPcHRpb25zRXhjbHVk
ZURldmljZVNjYWxlRmFjdG9yLCBbY29waWVkQ29tcGxldGlvbkhhbmRsZXJdKGJvb2wsIGNvbnN0
IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlSGFuZGxlKSB7CisgICAgICAg
IGlmIChpbWFnZUhhbmRsZS5pc051bGwoKSkgeworICAgICAgICAgICAgY29waWVkQ29tcGxldGlv
bkhhbmRsZXIobnVsbHB0cik7CisgICAgICAgICAgICBbY29waWVkQ29tcGxldGlvbkhhbmRsZXIg
cmVsZWFzZV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWZQ
dHI8V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpSZWFkT25seSk7
CisKKyAgICAgICAgaWYgKCFiaXRtYXApIHsKKyAgICAgICAgICAgIGNvcGllZENvbXBsZXRpb25I
YW5kbGVyKG51bGxwdHIpOworICAgICAgICAgICAgW2NvcGllZENvbXBsZXRpb25IYW5kbGVyIHJl
bGVhc2VdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUmV0YWlu
UHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2U7CisgICAgICAgIGNnSW1hZ2UgPSBiaXRtYXAtPm1ha2VD
R0ltYWdlKCk7CisgICAgICAgIGNvcGllZENvbXBsZXRpb25IYW5kbGVyKGNnSW1hZ2UuZ2V0KCkp
OworICAgICAgICBbY29waWVkQ29tcGxldGlvbkhhbmRsZXIgcmVsZWFzZV07CisgICAgfSk7Cit9
CisKICNlbHNlCiAKICNwcmFnbWEgbWFyayAtIE9TIFgtc3BlY2lmaWMgbWV0aG9kcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCA0ZDdiM2NiLi5iOTgzOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNzksNiArNzksOCBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMp
IHsKIAogLSAodm9pZClfYmVnaW5JbnRlcmFjdGl2ZU9ic2N1cmVkSW5zZXRzQ2hhbmdlOwogLSAo
dm9pZClfZW5kSW50ZXJhY3RpdmVPYnNjdXJlZEluc2V0c0NoYW5nZTsKKworLSAodm9pZClfc25h
cHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFnZU9mV2lkdGg6
KENHRmxvYXQpaW1hZ2VXaWR0aCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR0ltYWdlUmVm
KSljb21wbGV0aW9uSGFuZGxlcjsKICNlbHNlCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU0NvbG9y
ICpfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0KaW5kZXgg
MzlhNzA3Zi4uM2JhNjdmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lm
IFBMQVRGT1JNKE1BQykKIAorI2ltcG9ydCAiSW1hZ2VPcHRpb25zLmgiCiAjaW1wb3J0ICJXS0FQ
SUNhc3QuaCIKICNpbXBvcnQgIldLVmlldy5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIK
QEAgLTY5LDYgKzcwLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBfb3JpZ2luYWxT
b3VyY2VWaWV3SXNJbldpbmRvdyA9ICEhW193a1ZpZXcgd2luZG93XTsKIAogICAgIF9zaG91bGRB
cHBseVRodW1ibmFpbFNjYWxlID0gIV9vcmlnaW5hbFNvdXJjZVZpZXdJc0luV2luZG93OworCisg
ICAgc2VsZi51c2VzU25hcHNob3QgPSBZRVM7CisKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAt
MTA3LDcgKzExMSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIF93YWl0aW5nRm9y
U25hcHNob3QgPSBZRVM7CiAKICAgICBSZXRhaW5QdHI8X1dLVGh1bWJuYWlsVmlldz4gdGh1bWJu
YWlsVmlldyA9IHNlbGY7Ci0gICAgX3dlYlBhZ2VQcm94eS0+dGFrZVRodW1ibmFpbFNuYXBzaG90
KFt0aHVtYm5haWxWaWV3XShib29sLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2VIYW5kbGUpIHsKKyAgICBJbnRSZWN0IHNuYXBzaG90UmVjdChJbnRQb2ludCgpLCBfd2ViUGFn
ZVByb3h5LT52aWV3U2l6ZSgpKTsKKyAgICBTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucyA9IFNuYXBz
aG90T3B0aW9uc1Jlc3BlY3REcmF3aW5nQXJlYVRyYW5zZm9ybSB8IFNuYXBzaG90T3B0aW9uc0lu
Vmlld0Nvb3JkaW5hdGVzOworICAgIEludFNpemUgYml0bWFwU2l6ZSA9IHNuYXBzaG90UmVjdC5z
aXplKCk7CisgICAgYml0bWFwU2l6ZS5zY2FsZShfd2ViUGFnZVByb3h5LT5kZXZpY2VTY2FsZUZh
Y3RvcigpKTsKKyAgICBfd2ViUGFnZVByb3h5LT50YWtlU25hcHNob3Qoc25hcHNob3RSZWN0LCBi
aXRtYXBTaXplLCBvcHRpb25zLCBbdGh1bWJuYWlsVmlld10oYm9vbCwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlSGFuZGxlKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlSGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlJlYWRPbmx5KTsKICAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1h
Z2UgPSBiaXRtYXAtPm1ha2VDR0ltYWdlKCk7CiAgICAgICAgIFt0aHVtYm5haWxWaWV3IF9kaWRU
YWtlU25hcHNob3Q6Y2dJbWFnZS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGU5N2QxNGIuLjE2Yjc5MTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDU2NywxNyArNDU2NywxOSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6YWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpB
ZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50UHJvdmlkZXIobWltZVR5cGUpLCBtX3BhZ2VJRCk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp0YWtlVGh1bWJuYWlsU25hcHNob3QoSW1hZ2VDYWxs
YmFjazo6Q2FsbGJhY2tGdW5jdGlvbiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdlUHJv
eHk6OnRha2VTbmFwc2hvdChJbnRSZWN0IHJlY3QsIEludFNpemUgYml0bWFwU2l6ZSwgU25hcHNo
b3RPcHRpb25zIG9wdGlvbnMsIEltYWdlQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24gY2FsbGJh
Y2tGdW5jdGlvbikKIHsKLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgUmVmUHRyPEltYWdlQ2FsbGJhY2s+IGNhbGxiYWNrID0gSW1hZ2VDYWxsYmFjazo6Y3JlYXRl
KGNhbGxiYWNrRnVuY3Rpb24pOwogCisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgY2Fs
bGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogICAgIG1faW1hZ2VDYWxs
YmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKIAotICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VGFrZVRodW1ibmFpbFNuYXBzaG90KGNhbGxiYWNrSUQp
LCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYWtl
U25hcHNob3QocmVjdCwgYml0bWFwU2l6ZSwgb3B0aW9ucywgY2FsbGJhY2tJRCksIG1fcGFnZUlE
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggY2RhZjU5YS4uZmRlMjIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTE3LDcgKzkxNyw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0VGh1bWJuYWlsU2NhbGUoZG91YmxlKTsKIAotICAgIHZvaWQgdGFrZVRodW1ibmFpbFNu
YXBzaG90KEltYWdlQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgdGFrZVNu
YXBzaG90KFdlYkNvcmU6OkludFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwgU25h
cHNob3RPcHRpb25zLCBJbWFnZUNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uKTsKIAogcHJpdmF0
ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNvbmZpZ3VyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNDg0MmUzLi45YjQ0OTg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0xNTEzLDEyICsxNTEzLDEyIEBAIHZvaWQgV2ViUGFnZTo6c2hvd1BhZ2VCYW5uZXJzKCkKIH0K
ICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi12b2lkIFdlYlBhZ2U6OnRha2VUaHVtYm5haWxT
bmFwc2hvdCh1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjp0YWtlU25hcHNob3Qo
SW50UmVjdCBzbmFwc2hvdFJlY3QsIEludFNpemUgYml0bWFwU2l6ZSwgdWludDMyX3Qgb3B0aW9u
cywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBJbnRSZWN0IHNuYXBzaG90UmVjdChJbnRQ
b2ludCgpLCBtX3ZpZXdTaXplKTsKLSAgICBzbmFwc2hvdFJlY3QgPSBtX2RyYXdpbmdBcmVhLT5y
b290TGF5ZXJUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUmVjdChzbmFwc2hvdFJlY3QpOworICAg
IFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSBzdGF0aWNfY2FzdDxTbmFwc2hvdE9w
dGlvbnM+KG9wdGlvbnMpOworICAgIHNuYXBzaG90T3B0aW9ucyB8PSBTbmFwc2hvdE9wdGlvbnNT
aGFyZWFibGU7CiAKLSAgICBSZWZQdHI8V2ViSW1hZ2U+IGltYWdlID0gc2NhbGVkU25hcHNob3RX
aXRoT3B0aW9ucyhzbmFwc2hvdFJlY3QsIDEsIFNuYXBzaG90T3B0aW9uc1NoYXJlYWJsZSB8IFNu
YXBzaG90T3B0aW9uc0luVmlld0Nvb3JkaW5hdGVzKTsKKyAgICBSZWZQdHI8V2ViSW1hZ2U+IGlt
YWdlID0gc25hcHNob3RBdFNpemUoc25hcHNob3RSZWN0LCBiaXRtYXBTaXplLCBzbmFwc2hvdE9w
dGlvbnMpOwogCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwogICAgIGlmIChp
bWFnZSkKQEAgLTE1MjksNiArMTUyOSwxOCBAQCB2b2lkIFdlYlBhZ2U6OnRha2VUaHVtYm5haWxT
bmFwc2hvdCh1aW50NjRfdCBjYWxsYmFja0lEKQogCiBQYXNzUmVmUHRyPFdlYkltYWdlPiBXZWJQ
YWdlOjpzY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKGNvbnN0IEludFJlY3QmIHJlY3QsIGRvdWJs
ZSBzY2FsZUZhY3RvciwgU25hcHNob3RPcHRpb25zIG9wdGlvbnMpCiB7CisgICAgSW50UmVjdCBz
bmFwc2hvdFJlY3QgPSByZWN0OworICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zUmVz
cGVjdERyYXdpbmdBcmVhVHJhbnNmb3JtKQorICAgICAgICBzbmFwc2hvdFJlY3QgPSBtX2RyYXdp
bmdBcmVhLT5yb290TGF5ZXJUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUmVjdChzbmFwc2hvdFJl
Y3QpOworCisgICAgSW50U2l6ZSBiaXRtYXBTaXplID0gc25hcHNob3RSZWN0LnNpemUoKTsKKyAg
ICBiaXRtYXBTaXplLnNjYWxlKHNjYWxlRmFjdG9yICogY29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVG
YWN0b3IoKSk7CisKKyAgICByZXR1cm4gc25hcHNob3RBdFNpemUocmVjdCwgYml0bWFwU2l6ZSwg
b3B0aW9ucyk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViSW1hZ2U+IFdlYlBhZ2U6OnNuYXBzaG90QXRT
aXplKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIGJpdG1hcFNpemUsIFNuYXBz
aG90T3B0aW9ucyBvcHRpb25zKQorewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBtX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTUzNyw5ICsxNTQ5LDEzIEBAIFBhc3NSZWZQdHI8V2ViSW1hZ2U+IFdlYlBhZ2U6
OnNjYWxlZFNuYXBzaG90V2l0aE9wdGlvbnMoY29uc3QgSW50UmVjdCYgcmVjdCwgZG91CiAgICAg
aWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgSW50U2l6ZSBi
aXRtYXBTaXplID0gcmVjdC5zaXplKCk7Ci0gICAgZmxvYXQgY29tYmluZWRTY2FsZUZhY3RvciA9
IHNjYWxlRmFjdG9yICogY29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICBiaXRt
YXBTaXplLnNjYWxlKGNvbWJpbmVkU2NhbGVGYWN0b3IpOworICAgIEludFJlY3Qgc25hcHNob3RS
ZWN0ID0gcmVjdDsKKyAgICBpZiAob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9uc1Jlc3BlY3REcmF3
aW5nQXJlYVRyYW5zZm9ybSkKKyAgICAgICAgc25hcHNob3RSZWN0ID0gbV9kcmF3aW5nQXJlYS0+
cm9vdExheWVyVHJhbnNmb3JtKCkuaW52ZXJzZSgpLm1hcFJlY3Qoc25hcHNob3RSZWN0KTsKKwor
ICAgIGZsb2F0IGhvcml6b250YWxTY2FsZUZhY3RvciA9IHN0YXRpY19jYXN0PGZsb2F0PihiaXRt
YXBTaXplLndpZHRoKCkpIC8gcmVjdC53aWR0aCgpOworICAgIGZsb2F0IHZlcnRpY2FsU2NhbGVG
YWN0b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4oYml0bWFwU2l6ZS5oZWlnaHQoKSkgLyByZWN0Lmhl
aWdodCgpOworICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc3RkOjptaW4oaG9yaXpvbnRhbFNjYWxl
RmFjdG9yLCB2ZXJ0aWNhbFNjYWxlRmFjdG9yKTsKIAogICAgIFJlZlB0cjxXZWJJbWFnZT4gc25h
cHNob3QgPSBXZWJJbWFnZTo6Y3JlYXRlKGJpdG1hcFNpemUsIHNuYXBzaG90T3B0aW9uc1RvSW1h
Z2VPcHRpb25zKG9wdGlvbnMpKTsKICAgICBpZiAoIXNuYXBzaG90LT5iaXRtYXAoKSkKQEAgLTE1
NDcsMTAgKzE1NjMsMTMgQEAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gV2ViUGFnZTo6c2NhbGVkU25h
cHNob3RXaXRoT3B0aW9ucyhjb25zdCBJbnRSZWN0JiByZWN0LCBkb3UKIAogICAgIGF1dG8gZ3Jh
cGhpY3NDb250ZXh0ID0gc25hcHNob3QtPmJpdG1hcCgpLT5jcmVhdGVHcmFwaGljc0NvbnRleHQo
KTsKIAotICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0KEludFJlY3QoSW50UG9pbnQoKSwg
Yml0bWFwU2l6ZSkpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFJlY3QoSW50UmVjdChJbnRQ
b2ludCgpLCBiaXRtYXBTaXplKSwgZnJhbWVWaWV3LT5iYXNlQmFja2dyb3VuZENvbG9yKCksIENv
bG9yU3BhY2VEZXZpY2VSR0IpOworCisgICAgaWYgKCEob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9u
c0V4Y2x1ZGVEZXZpY2VTY2FsZUZhY3RvcikpCisgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+YXBw
bHlEZXZpY2VTY2FsZUZhY3Rvcihjb3JlUGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAot
ICAgIGdyYXBoaWNzQ29udGV4dC0+YXBwbHlEZXZpY2VTY2FsZUZhY3Rvcihjb21iaW5lZFNjYWxl
RmFjdG9yKTsKLSAgICBncmFwaGljc0NvbnRleHQtPnRyYW5zbGF0ZSgtcmVjdC54KCksIC1yZWN0
LnkoKSk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5zY2FsZShGbG9hdFNpemUoc2NhbGVGYWN0b3Is
IHNjYWxlRmFjdG9yKSk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT50cmFuc2xhdGUoLXNuYXBzaG90
UmVjdC54KCksIC1zbmFwc2hvdFJlY3QueSgpKTsKIAogICAgIEZyYW1lVmlldzo6U2VsZWN0aW9u
SW5TbmFwc2hvdCBzaG91bGRQYWludFNlbGVjdGlvbiA9IEZyYW1lVmlldzo6SW5jbHVkZVNlbGVj
dGlvbjsKICAgICBpZiAob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9uc0V4Y2x1ZGVTZWxlY3Rpb25I
aWdobGlnaHRpbmcpCkBAIC0xNTYwLDE0ICsxNTc5LDE0IEBAIFBhc3NSZWZQdHI8V2ViSW1hZ2U+
IFdlYlBhZ2U6OnNjYWxlZFNuYXBzaG90V2l0aE9wdGlvbnMoY29uc3QgSW50UmVjdCYgcmVjdCwg
ZG91CiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNJblZpZXdDb29yZGluYXRlcykK
ICAgICAgICAgY29vcmRpbmF0ZVNwYWNlID0gRnJhbWVWaWV3OjpWaWV3Q29vcmRpbmF0ZXM7CiAK
LSAgICBmcmFtZVZpZXctPnBhaW50Q29udGVudHNGb3JTbmFwc2hvdChncmFwaGljc0NvbnRleHQu
Z2V0KCksIHJlY3QsIHNob3VsZFBhaW50U2VsZWN0aW9uLCBjb29yZGluYXRlU3BhY2UpOworICAg
IGZyYW1lVmlldy0+cGFpbnRDb250ZW50c0ZvclNuYXBzaG90KGdyYXBoaWNzQ29udGV4dC5nZXQo
KSwgc25hcHNob3RSZWN0LCBzaG91bGRQYWludFNlbGVjdGlvbiwgY29vcmRpbmF0ZVNwYWNlKTsK
IAogICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zUGFpbnRTZWxlY3Rpb25SZWN0YW5n
bGUpIHsKICAgICAgICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IG1fbWFpbkZyYW1l
LT5jb3JlRnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uQm91bmRzKCk7CiAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3IoMHhGRiwgMCwgMCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IpOwogICAgICAgICBncmFwaGljc0NvbnRleHQtPnN0cm9rZVJlY3Qoc2VsZWN0
aW9uUmVjdGFuZ2xlLCAxKTsKICAgICB9Ci0KKyAgICAKICAgICByZXR1cm4gc25hcHNob3QucmVs
ZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCBjNDU4Yzc2Li4zMTRmZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQyMSw2ICs0MjEsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKIAog
ICAgIFBhc3NSZWZQdHI8V2ViSW1hZ2U+IHNjYWxlZFNuYXBzaG90V2l0aE9wdGlvbnMoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGRvdWJsZSBzY2FsZUZhY3RvciwgU25hcHNob3RPcHRpb25zKTsK
KyAgICBQYXNzUmVmUHRyPFdlYkltYWdlPiBzbmFwc2hvdEF0U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiaXRtYXBTaXplLCBTbmFwc2hv
dE9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBzdGF0aWMgY29uc3QgV2ViRXZlbnQqIGN1cnJlbnRF
dmVudCgpOwogCkBAIC04NDYsNyArODQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFdlYkFy
Y2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAg
IHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KHVpbnQ2NF90IGNhbGxiYWNrSUQpOwot
ICAgIHZvaWQgdGFrZVRodW1ibmFpbFNuYXBzaG90KHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgdGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBXZWJDb3Jl
OjpJbnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlvbnMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogCiAgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJik7CiAgICAgdm9pZCBwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzg1MzMwNy4uNGU0NGJiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTMzNyw2ICszMzcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJl
Y2VpdmVyIHsKIAogICAgIEdldEJ5dGVjb2RlUHJvZmlsZSh1aW50NjRfdCBjYWxsYmFja0lEKQog
ICAgIAotICAgIFRha2VUaHVtYm5haWxTbmFwc2hvdCh1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IFRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50
U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQog
CiB9Cg==
</data>
<flag name="review"
          id="251387"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227151</attachid>
            <date>2014-03-18 20:45:56 -0700</date>
            <delta_ts>2014-03-18 22:33:16 -0700</delta_ts>
            <desc>ignore this patch</desc>
            <filename>swipe-vertical.diff</filename>
            <type>text/plain</type>
            <size>4177</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2Yjc5NjZhLi4xNzVmOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUg
QEAKIDIwMTQtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzOiBTd2lwZSBnZXN0dXJlIGNhbiB0cmFjayB2
ZXJ0aWNhbCBtb3ZlbWVudCBpbnN0ZWFkIG9mIGhvcml6b250YWwgbW92ZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQ0MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTYzMzcyNzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZSk6CisgICAg
ICAgIEZhY3RvciBsb2dpYyB0aGF0IGRldGVybWluZXMgaWYgYSBzY3JvbGwgZXZlbnQgY2FuIGJl
Y29tZSBhIHN3aXBlCisgICAgICAgIG91dCBpbnRvIHNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUu
CisgICAgICAgIFVzZSA8PSBpbnN0ZWFkIG9mIDwgd2hlbiBjb21wYXJpbmcgdGhlIGF4ZXMsIGJl
Y2F1c2Ugd2UgZG9uJ3Qgd2FudAorICAgICAgICB0byBzdGFydCBhIHN3aXBlIG9uIGEgY29tcGxl
dGVseSBkaWFnb25hbCBzY3JvbGwgZWl0aGVyIChiZWNhdXNlIEFwcEtpdAorICAgICAgICBjYW4g
c3RhcnQgdHJhY2tpbmcgYSB2ZXJ0aWNhbCBzd2lwZSBpbiB0aGF0IGNhc2UpLgorCisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlU2Nyb2xsV2hlZWxFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6d2hlZWxFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICBNYWtlIHVzZSBvZiBzY3JvbGxFdmVudENhbkJl
Y29tZVN3aXBlLgorCisyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCiAgICAgICAgIFtpT1NdW1dlYktpdDJdIE1hcmsgbGF5ZXIgY29udGVudHMgYXMg
YmVpbmcgb3BhcXVlIGlmIHRoZXkgYXJlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzA0MjcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1NTQwNDM0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbQppbmRleCA5ZDQzYWM5Li42ZjAxYzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5t
bQpAQCAtMjQ3LDMyICsyNDcsNDEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZENv
bGxlY3RHZW9tZXRyeUZvclNtYXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoRmxvYXQKICAgICBtX2xh
c3RNYWduaWZpY2F0aW9uR2VzdHVyZVdhc1NtYXJ0TWFnbmlmaWNhdGlvbiA9IHRydWU7CiB9CiAK
LWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50KE5TRXZl
bnQgKmV2ZW50KQorc3RhdGljIGJvb2wgc2Nyb2xsRXZlbnRDYW5CZWNvbWVTd2lwZShOU0V2ZW50
ICpldmVudCwgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6U3dpcGVEaXJlY3Rpb24mIHBvdGVudGlhbFN3aXBlRGlyZWN0aW9uKQogewotICAgIGlmICht
X2FjdGl2ZUdlc3R1cmVUeXBlICE9IFZpZXdHZXN0dXJlVHlwZTo6Tm9uZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgaWYgKGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2hhc1BlbmRpbmdTd2lwZSA9IGZhbHNlOwot
Ci0gICAgaWYgKGZhYnMoZXZlbnQuc2Nyb2xsaW5nRGVsdGFYKSA8IGZhYnMoZXZlbnQuc2Nyb2xs
aW5nRGVsdGFZKSkKKyAgICBpZiAoZmFicyhldmVudC5zY3JvbGxpbmdEZWx0YVgpIDw9IGZhYnMo
ZXZlbnQuc2Nyb2xsaW5nRGVsdGFZKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYm9v
bCB3aWxsU3dpcGVMZWZ0ID0gZXZlbnQuc2Nyb2xsaW5nRGVsdGFYID4gMCAmJiBtX3dlYlBhZ2VQ
cm94eS5pc1Bpbm5lZFRvTGVmdFNpZGUoKSAmJiBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExp
c3QoKS5iYWNrSXRlbSgpOwotICAgIGJvb2wgd2lsbFN3aXBlUmlnaHQgPSBldmVudC5zY3JvbGxp
bmdEZWx0YVggPCAwICYmIG1fd2ViUGFnZVByb3h5LmlzUGlubmVkVG9SaWdodFNpZGUoKSAmJiBt
X3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5mb3J3YXJkSXRlbSgpOworICAgIGJvb2wg
d2lsbFN3aXBlTGVmdCA9IGV2ZW50LnNjcm9sbGluZ0RlbHRhWCA+IDAgJiYgd2ViUGFnZVByb3h5
LmlzUGlubmVkVG9MZWZ0U2lkZSgpICYmIHdlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3QoKS5i
YWNrSXRlbSgpOworICAgIGJvb2wgd2lsbFN3aXBlUmlnaHQgPSBldmVudC5zY3JvbGxpbmdEZWx0
YVggPCAwICYmIHdlYlBhZ2VQcm94eS5pc1Bpbm5lZFRvUmlnaHRTaWRlKCkgJiYgd2ViUGFnZVBy
b3h5LmJhY2tGb3J3YXJkTGlzdCgpLmZvcndhcmRJdGVtKCk7CiAgICAgaWYgKCF3aWxsU3dpcGVM
ZWZ0ICYmICF3aWxsU3dpcGVSaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3dp
cGVEaXJlY3Rpb24gZGlyZWN0aW9uID0gd2lsbFN3aXBlTGVmdCA/IFN3aXBlRGlyZWN0aW9uOjpM
ZWZ0IDogU3dpcGVEaXJlY3Rpb246OlJpZ2h0OwotCiAgICAgaWYgKCFldmVudC5oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIVtOU0V2
ZW50IGlzU3dpcGVUcmFja2luZ0Zyb21TY3JvbGxFdmVudHNFbmFibGVkXSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgcG90ZW50aWFsU3dpcGVEaXJlY3Rpb24gPSB3aWxsU3dpcGVMZWZ0
ID8gVmlld0dlc3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6TGVmdCA6IFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6U3dpcGVEaXJlY3Rpb246OlJpZ2h0OworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTY3JvbGxXaGVlbEV2ZW50
KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChtX2FjdGl2ZUdlc3R1cmVUeXBlICE9IFZpZXdH
ZXN0dXJlVHlwZTo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9oYXNQZW5k
aW5nU3dpcGUgPSBmYWxzZTsKKworICAgIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBp
ZiAoIXNjcm9sbEV2ZW50Q2FuQmVjb21lU3dpcGUoZXZlbnQsIG1fd2ViUGFnZVByb3h5LCBkaXJl
Y3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV93ZWJQYWdlUHJveHku
d2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSkgewogICAgICAgICBtX2hhc1BlbmRp
bmdTd2lwZSA9IHRydWU7CiAgICAgICAgIG1fcGVuZGluZ1N3aXBlRGlyZWN0aW9uID0gZGlyZWN0
aW9uOwpAQCAtMjkxLDcgKzMwMCw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjp3aGVl
bEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICpldmVudCkKIAogICAgIG1faGFz
UGVuZGluZ1N3aXBlID0gZmFsc2U7CiAKLSAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBo
YXNlQmVnYW4pCisgICAgU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uOworICAgIGlmICghc2Nyb2xs
RXZlbnRDYW5CZWNvbWVTd2lwZShldmVudCwgbV93ZWJQYWdlUHJveHksIGRpcmVjdGlvbikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHRyYWNrU3dpcGVHZXN0dXJlKGV2ZW50LCBtX3BlbmRpbmdT
d2lwZURpcmVjdGlvbik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>