<?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>16311</bug_id>
          
          <creation_ts>2007-12-05 12:40:52 -0800</creation_ts>
          <short_desc>[Gtk] Copy rich text to clipboard as text/plain and text/html</short_desc>
          <delta_ts>2007-12-22 15:13:04 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Luca Bruno">lethalman88</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>63374</commentid>
    <comment_count>0</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-05 12:40:52 -0800</bug_when>
    <thetext>We can paste text/html and text/plain to editable contents such as rich text, but we can&apos;t copy from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63582</commentid>
    <comment_count>1</comment_count>
      <attachid>17769</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-07 04:32:38 -0800</bug_when>
    <thetext>Created attachment 17769
patch

Add targets for plain text and text/html, then complete the implementation of copying text from the page. Adding targets meant adding new API, hopefully this is not wrong.

Please consider reviewing deeply the PasteboardGtk.cpp file which has a new struct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63585</commentid>
    <comment_count>2</comment_count>
      <attachid>17769</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-07 05:18:49 -0800</bug_when>
    <thetext>Comment on attachment 17769
patch

Hey Luca,

Unfortunately this patch is going to need some re-designing.

nothing in platform/gtk should use anything from WebKit/gtk. WebKit/gtk should be built on top of platform, never the other way round.

This means that we shouldn&apos;t need to add webkit_web_view_get_target_list() as public API either. It should remain totally internal, just like GtkTextView.

(The feature itself works well and this&apos;ll be a great feature to have.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63589</commentid>
    <comment_count>3</comment_count>
      <attachid>17770</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-07 08:19:55 -0800</bug_when>
    <thetext>Created attachment 17770
cleaner patch

Diffs:
- Use a class instead of a struct in the C++ context, which would be useful for future enhancements like URIs and GtkTextBuffer data
- Create target entries inside Pasteboard
- Do not use API except for WebKitWebViewTargetInfo enum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63601</commentid>
    <comment_count>4</comment_count>
      <attachid>17773</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-07 10:54:25 -0800</bug_when>
    <thetext>Created attachment 17773
do not use webkit enum

Diffs:
- Define webkit target info enum
- Use the right GdkAtom

Pasteboard in in mac is used for DnD not for Pasteboard, therefore they can pass their PasteboardHelper from webkit. Instead, there&apos;s no way to do this for the Pasteboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63839</commentid>
    <comment_count>5</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-10 10:23:32 -0800</bug_when>
    <thetext>GtkTextBuffer has:

GtkTargetList*      gtk_text_buffer_get_copy_target_list
                                                        (GtkTextBuffer *buffer);
GtkTargetList*      gtk_text_buffer_get_paste_target_list
                                                        (GtkTextBuffer *buffer);

Is there a reason why this patch adds only one? webkit_web_view_get_target_list()

Just wondering, have not studied the case in detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63850</commentid>
    <comment_count>6</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-10 12:32:41 -0800</bug_when>
    <thetext>Didn&apos;t think we need two different target lists. I just thought the copy target was the same as the paste target. As i see the text buffer has two target lists with the same contents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64625</commentid>
    <comment_count>7</comment_count>
      <attachid>17972</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-18 06:32:21 -0800</bug_when>
    <thetext>Created attachment 17972
PasteboardHelper and use the right clipboard

Well i created a PasteboardHelper (please check the license) and a target list for both copy and paste operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64771</commentid>
    <comment_count>8</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-19 16:35:59 -0800</bug_when>
    <thetext>Mitch has offered to look into this one for clipboard API correctness. There are some minor coding style issues like whitespace before braces from a quick glance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64793</commentid>
    <comment_count>9</comment_count>
      <attachid>18005</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-20 04:23:01 -0800</bug_when>
    <thetext>Created attachment 18005
coding style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65087</commentid>
    <comment_count>10</comment_count>
      <attachid>18005</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-22 15:08:45 -0800</bug_when>
    <thetext>Comment on attachment 18005
coding style issues

r=me (thanks to Xan and Mitch for looking into this one too)

Will land with the discussed documentation and whitespace fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65088</commentid>
    <comment_count>11</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-22 15:13:04 -0800</bug_when>
    <thetext>Landed in r28963.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17769</attachid>
            <date>2007-12-07 04:32:38 -0800</date>
            <delta_ts>2007-12-07 08:19:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>targets.patch</filename>
            <type>text/plain</type>
            <size>9753</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDI4NTE2KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Myw2ICs4MywxMiBAQAogICAgIExBU1RfU0lHTkFMCiB9OwogCitlbnVtIHsKKyAgICBQUk9Q
XzAsCisKKyAgICBQUk9QX1RBUkdFVF9MSVNUCit9OworCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQpAQCAtMjY0
LDYgKzI3MCwxOSBAQAogICAgICAgICAoKmNhbGxiYWNrKSgqY3VycmVudCwgY2FsbGJhY2tEYXRh
KTsKIH0KIAorc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0
ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVj
KSB7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
OworCisgICAgc3dpdGNoKHByb3BfaWQpIHsKKyAgICBjYXNlIFBST1BfVEFSR0VUX0xJU1Q6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Rhcmdl
dF9saXN0KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXcoV2ViS2l0V2ViVmlldyopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTQyMSw2ICs0NDAsOSBAQAogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXdE
YXRhLT5tYWluRnJhbWUpOwogICAgIGRlbGV0ZSB3ZWJWaWV3RGF0YS0+dXNlckFnZW50OwogCisg
ICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCk7CisgICAg
d2ViVmlld0RhdGEtPnRhcmdldF9saXN0ID0gTlVMTDsKKwogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCkBAIC03
NDUsNiArNzY3LDkgQEAKICAgICBjb250YWluZXJDbGFzcy0+cmVtb3ZlID0gd2Via2l0X3dlYl92
aWV3X2NvbnRhaW5lcl9yZW1vdmU7CiAgICAgY29udGFpbmVyQ2xhc3MtPmZvcmFsbCA9IHdlYmtp
dF93ZWJfdmlld19jb250YWluZXJfZm9yYWxsOwogCisgICAgR09iamVjdENsYXNzKiBvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFzcyk7CisgICAgb2JqZWN0Q2xhc3MtPmdl
dF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHk7CisKICAgICAvKgogICAg
ICAqIG1ha2UgdXMgc2Nyb2xsYWJsZSAoZS5nLiBhZGRhYmxlIHRvIGEgR3RrU2Nyb2xsZWRXaW5k
b3cpCiAgICAgICovCkBAIC03ODIsNiArODA3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY29weV9jbGlwYm9hcmQiLCAwKTsKICAgICBndGtfYmluZGluZ19lbnRyeV9h
ZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfSW5zZXJ0LCBHREtfU0hJRlRfTUFTSywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXN0ZV9jbGlwYm9hcmQiLCAwKTsKKworICAg
IC8qIFByb3BlcnRpZXMgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChv
YmplY3RDbGFzcywgUFJPUF9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQgKCJ0YXJnZXQtbGlzdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFyZ2V0IGxp
c3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBidWZmZXIgc3VwcG9ydHMgZm9yIGNsaXBi
b2FyZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFE
QUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFU
SUNfQkxVUkIpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCkBAIC04MDYsNiArODM5LDE1IEBACiAgICAgR1RLX1dJREdFVF9T
RVRfRkxBR1Mod2ViVmlldywgR1RLX0NBTl9GT0NVUyk7CiAgICAgd2ViVmlld0RhdGEtPm1haW5G
cmFtZSA9IFdFQktJVF9XRUJfRlJBTUUod2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwog
ICAgIHdlYlZpZXdEYXRhLT5lZGl0YWJsZSA9IGZhbHNlOworCisKKyAgICB3ZWJWaWV3RGF0YS0+
dGFyZ2V0X2xpc3QgPSBndGtfdGFyZ2V0X2xpc3RfbmV3IChOVUxMLCAwKTsgIAorICAgIGd0a190
YXJnZXRfbGlzdF9hZGQgKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZyAoInRleHQvaHRtbCIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19UQVJHRVRfT1RIRVJfQVBQLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKTsKKyAgICBn
dGtfdGFyZ2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cyAod2ViVmlld0RhdGEtPnRhcmdldF9saXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfV0VCX1ZJRVdf
VEFSR0VUX0lORk9fVEVYVCk7CiB9CiAKIEd0a1dpZGdldCogd2Via2l0X3dlYl92aWV3X25ldyh2
b2lkKQpAQCAtMTAwNSw0ICsxMDQ3LDIzIEBACiAgICAgICAgIG1haW5GcmFtZS0+cmVtb3ZlRWRp
dGluZ1N0eWxlRnJvbUJvZHlFbGVtZW50KCk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2dldF90YXJnZXRfbGlzdDoKKyAqIEBidWZmZXI6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBU
aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxpc3Qgb2YgdGFyZ2V0cyB0aGlzIHRleHQgYnVmZmVy
IGNhbgorICogcHJvdmlkZSBmb3IgY2xpcGJvYXJkIGFuZCBhcyBETkQgc291cmNlLiBUaGUgdGFy
Z2V0cyBpbiB0aGUgbGlzdCBhcmUKKyAqIGFkZGVkIHdpdGggJWluZm8gdmFsdWVzIGZyb20gdGhl
ICNXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyBlbnVtLAorICogdXNpbmcgZ3RrX3RhcmdldF9saXN0
X2FkZCgpIGFuZAorICogZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3RhcmdldHMoKS4KKyAqCisg
KiBSZXR1cm4gdmFsdWU6IHRoZSAjR3RrVGFyZ2V0TGlzdAorICoqLworR3RrVGFyZ2V0TGlzdCog
d2Via2l0X3dlYl92aWV3X2dldF90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KSB7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBO
VUxMKTsKKyAgICAKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJL
SVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgcmV0dXJuIHdlYlZpZXdEYXRh
LT50YXJnZXRfbGlzdDsKIH0KKworfQpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5o
CShyZXZpc2lvbiAyODUxNikKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDEyIEBACiAgICAgV0VCS0lUX05BVklHQVRJT05f
UkVTUE9OU0VfRE9XTkxPQUQKIH0gV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlOwogCit0eXBlZGVm
IGVudW0KK3sKKyAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCA9IC0gMSwKKyAg
ICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCA9IC0gMgorfSBXZWJLaXRXZWJWaWV3
VGFyZ2V0SW5mbzsKIAotCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgewogICAgIEd0a0NvbnRhaW5l
ciBwYXJlbnQ7CiB9OwpAQCAtMTI1LDYgKzEyOSw5IEBACiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtp
dF93ZWJfdmlld19zZXRfZWRpdGFibGUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVh
biBmbGFnKTsKIAorV0VCS0lUX0FQSSBHdGtUYXJnZXRMaXN0Kgord2Via2l0X3dlYl92aWV3X2dl
dF90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRlLmgJKHJldmlzaW9uIDI4NTE2
KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNiArNjIsOCBAQAogCiAgICAgICAgIEhhc2hTZXQ8R3RrV2lkZ2V0Kj4gY2hpbGRyZW47
CiAgICAgICAgIGJvb2wgZWRpdGFibGU7CisKKyAgICAgICAgR3RrVGFyZ2V0TGlzdCogdGFyZ2V0
X2xpc3Q7CiAgICAgfTsKIAogICAgICNkZWZpbmUgV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFU
RShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBF
X1dFQl9GUkFNRSwgV2ViS2l0V2ViRnJhbWVQcml2YXRlKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwCShyZXZpc2lvbiAyODUxNikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMzkg
QEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCiAKKyNpbmNsdWRlIDx3
ZWJraXR3ZWJ2aWV3Lmg+CisjaW5jbHVkZSA8d2Via2l0cHJpdmF0ZS5oPgorCiAjaW5jbHVkZSA8
Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0Q2xpcGJvYXJkRGF0YVByaXZhdGUgV2ViS2l0Q2xpcGJvYXJkRGF0YVByaXZhdGU7Cisg
ICAgc3RydWN0IF9XZWJLaXRDbGlwYm9hcmREYXRhUHJpdmF0ZSB7CisgICAgICAgIGdjaGFyKiB0
ZXh0OworICAgICAgICBnY2hhciogbWFya3VwOworICAgIH07CisKK3N0YXRpYyB2b2lkIGNsaXBi
b2FyZF9nZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkICpjbGlwYm9hcmQsIEd0a1NlbGVjdGlv
bkRhdGEgKnNlbGVjdGlvbl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKSB7CisgICAgV2ViS2l0Q2xpcGJvYXJkRGF0
YVByaXZhdGUqIGNsaXBib2FyZERhdGEgPSByZWludGVycHJldF9jYXN0PFdlYktpdENsaXBib2Fy
ZERhdGFQcml2YXRlKj4oZGF0YSk7CisgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOworICAgIGlm
ICgoZ2ludClpbmZvID09IFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKSB7CisgICAg
ICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2VsZWN0aW9uX2RhdGEsIHNlbGVjdGlvbl9kYXRh
LT50YXJnZXQsIDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBndWNoYXIqPihjbGlwYm9hcmREYXRhLT5tYXJrdXApLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfdXRmOF9zdHJsZW4oY2xpcGJvYXJkRGF0YS0+bWFya3VwLCAt
MSkpOworICAgIH0gZWxzZQorICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0X3RleHQoc2Vs
ZWN0aW9uX2RhdGEsIGNsaXBib2FyZERhdGEtPnRleHQsIC0xKTsKK30KKworc3RhdGljIHZvaWQg
Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCAqY2xpcGJvYXJkLCBncG9p
bnRlciBkYXRhKSB7CisgICAgV2ViS2l0Q2xpcGJvYXJkRGF0YVByaXZhdGUqIGNsaXBib2FyZERh
dGEgPSByZWludGVycHJldF9jYXN0PFdlYktpdENsaXBib2FyZERhdGFQcml2YXRlKj4oZGF0YSk7
CisgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOworICAgIGdfZnJlZShjbGlwYm9hcmREYXRhLT50
ZXh0KTsKKyAgICBnX2ZyZWUoY2xpcGJvYXJkRGF0YS0+bWFya3VwKTsKKyAgICBkZWxldGUgY2xp
cGJvYXJkRGF0YTsKK30KKwogUGFzdGVib2FyZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9h
cmQoKQogewogICAgIHN0YXRpYyBQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbmV3IFBhc3RlYm9h
cmQoKTsKQEAgLTYxLDEyICs5MCwyMCBAQAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6d3Jp
dGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wsIEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNw
bGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsK
KyAgICBXZWJLaXRDbGlwYm9hcmREYXRhUHJpdmF0ZSogY2xpcGJvYXJkRGF0YSA9IG5ldyBXZWJL
aXRDbGlwYm9hcmREYXRhUHJpdmF0ZSgpOworICAgIGNsaXBib2FyZERhdGEtPnRleHQgPSBnX3N0
cmR1cChmcmFtZS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgY2xpcGJvYXJk
RGF0YS0+bWFya3VwID0gZ19zdHJkdXAoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFu
bm90YXRlRm9ySW50ZXJjaGFuZ2UpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgU3RyaW5nIHRleHQg
PSBmcmFtZS0+c2VsZWN0ZWRUZXh0KCk7Ci0gICAgZ3RrX2NsaXBib2FyZF9zZXRfdGV4dChjbGlw
Ym9hcmQsIHRleHQudXRmOCgpLmRhdGEoKSwgdGV4dC51dGY4KCkubGVuZ3RoKCkpOworICAgIEd0
a0NsaXBib2FyZCogY2xpcGJvYXJkID0gZ3RrX2NsaXBib2FyZF9nZXRfZm9yX2Rpc3BsYXkoZ2Rr
X2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpOyAgIAorICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXZWJLaXQ6OmtpdChmcmFtZS0+cGFnZSgpKTsKKyAg
ICBnaW50IG5fdGFyZ2V0czsKKyAgICBHdGtUYXJnZXRFbnRyeSAqdGFyZ2V0cyA9IGd0a190YXJn
ZXRfdGFibGVfbmV3X2Zyb21fbGlzdCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RhcmdldF9saXN0KHdl
YlZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZuX3RhcmdldHMpOworICAgIGd0a19jbGlwYm9hcmRfc2V0X3dpdGhfZGF0
YShjbGlwYm9hcmQsIHRhcmdldHMsIG5fdGFyZ2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYiwgY2xpcGJvYXJkX2NsZWFyX2NvbnRl
bnRzX2NiLCBjbGlwYm9hcmREYXRhKTsKKyAgICBndGtfdGFyZ2V0X3RhYmxlX2ZyZWUodGFyZ2V0
cywgbl90YXJnZXRzKTsKIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJM
JiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NTE2KQorKysgV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwyMSBAQAogMjAwNy0x
Mi0wNyAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KIAorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCWh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MzExCisgICAgICAgIFtHdGtdIENvcHkgcmljaCB0ZXh0IHRvIGNsaXBib2Fy
ZCBhcyB0ZXh0L3BsYWluIGFuZCB0ZXh0L2h0bWwuCisKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3RhcmdldF9saXN0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19maW5hbGl6ZSk6
CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfaW5pdCk6CisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6CisKKzIw
MDctMTItMDcgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwIFRva2VyLgogCiAgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzMzCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg1MTYpCisrKyBXZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA3LTEyLTA3ICBMdWNhIEJy
dW5vICA8bGV0aGFsbWFuODhAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MzExCisgICAgICAgIFtHdGtdIENvcHkgcmljaCB0ZXh0IHRvIGNsaXBib2FyZCBhcyB0
ZXh0L3BsYWluIGFuZCB0ZXh0L2h0bWwuCisJCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FT
RVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcGJvYXJkX2dldF9jb250ZW50c19jYik6Cisg
ICAgICAgIChXZWJDb3JlOjpjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorCiAyMDA3LTEyLTA3ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbi4K
</data>
<flag name="review"
          id="7651"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17770</attachid>
            <date>2007-12-07 08:19:55 -0800</date>
            <delta_ts>2007-12-07 10:54:25 -0800</delta_ts>
            <desc>cleaner patch</desc>
            <filename>targets.patch</filename>
            <type>text/plain</type>
            <size>11326</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDI4NTE2KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Myw2ICs4MywxMiBAQAogICAgIExBU1RfU0lHTkFMCiB9OwogCitlbnVtIHsKKyAgICBQUk9Q
XzAsCisKKyAgICBQUk9QX1RBUkdFVF9MSVNUCit9OworCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQpAQCAtMjY0
LDYgKzI3MCwxOSBAQAogICAgICAgICAoKmNhbGxiYWNrKSgqY3VycmVudCwgY2FsbGJhY2tEYXRh
KTsKIH0KIAorc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0
ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVj
KSB7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
OworCisgICAgc3dpdGNoKHByb3BfaWQpIHsKKyAgICBjYXNlIFBST1BfVEFSR0VUX0xJU1Q6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Rhcmdl
dF9saXN0KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXcoV2ViS2l0V2ViVmlldyopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTQyMSw2ICs0NDAsOSBAQAogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXdE
YXRhLT5tYWluRnJhbWUpOwogICAgIGRlbGV0ZSB3ZWJWaWV3RGF0YS0+dXNlckFnZW50OwogCisg
ICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCk7CisgICAg
d2ViVmlld0RhdGEtPnRhcmdldF9saXN0ID0gTlVMTDsKKwogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCkBAIC03
NDUsNiArNzY3LDkgQEAKICAgICBjb250YWluZXJDbGFzcy0+cmVtb3ZlID0gd2Via2l0X3dlYl92
aWV3X2NvbnRhaW5lcl9yZW1vdmU7CiAgICAgY29udGFpbmVyQ2xhc3MtPmZvcmFsbCA9IHdlYmtp
dF93ZWJfdmlld19jb250YWluZXJfZm9yYWxsOwogCisgICAgR09iamVjdENsYXNzKiBvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFzcyk7CisgICAgb2JqZWN0Q2xhc3MtPmdl
dF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHk7CisKICAgICAvKgogICAg
ICAqIG1ha2UgdXMgc2Nyb2xsYWJsZSAoZS5nLiBhZGRhYmxlIHRvIGEgR3RrU2Nyb2xsZWRXaW5k
b3cpCiAgICAgICovCkBAIC03ODIsNiArODA3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY29weV9jbGlwYm9hcmQiLCAwKTsKICAgICBndGtfYmluZGluZ19lbnRyeV9h
ZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfSW5zZXJ0LCBHREtfU0hJRlRfTUFTSywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXN0ZV9jbGlwYm9hcmQiLCAwKTsKKworICAg
IC8qIFByb3BlcnRpZXMgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChv
YmplY3RDbGFzcywgUFJPUF9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQgKCJ0YXJnZXQtbGlzdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFyZ2V0IGxp
c3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBidWZmZXIgc3VwcG9ydHMgZm9yIGNsaXBi
b2FyZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFE
QUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFU
SUNfQkxVUkIpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCkBAIC04MDYsNiArODM5LDE1IEBACiAgICAgR1RLX1dJREdFVF9T
RVRfRkxBR1Mod2ViVmlldywgR1RLX0NBTl9GT0NVUyk7CiAgICAgd2ViVmlld0RhdGEtPm1haW5G
cmFtZSA9IFdFQktJVF9XRUJfRlJBTUUod2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwog
ICAgIHdlYlZpZXdEYXRhLT5lZGl0YWJsZSA9IGZhbHNlOworCisKKyAgICB3ZWJWaWV3RGF0YS0+
dGFyZ2V0X2xpc3QgPSBndGtfdGFyZ2V0X2xpc3RfbmV3IChOVUxMLCAwKTsgIAorICAgIGd0a190
YXJnZXRfbGlzdF9hZGQgKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZyAoInRleHQvaHRtbCIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19UQVJHRVRfT1RIRVJfQVBQLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKTsKKyAgICBn
dGtfdGFyZ2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cyAod2ViVmlld0RhdGEtPnRhcmdldF9saXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfV0VCX1ZJRVdf
VEFSR0VUX0lORk9fVEVYVCk7CiB9CiAKIEd0a1dpZGdldCogd2Via2l0X3dlYl92aWV3X25ldyh2
b2lkKQpAQCAtMTAwNSw0ICsxMDQ3LDIzIEBACiAgICAgICAgIG1haW5GcmFtZS0+cmVtb3ZlRWRp
dGluZ1N0eWxlRnJvbUJvZHlFbGVtZW50KCk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2dldF90YXJnZXRfbGlzdDoKKyAqIEBidWZmZXI6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBU
aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxpc3Qgb2YgdGFyZ2V0cyB0aGlzIHRleHQgYnVmZmVy
IGNhbgorICogcHJvdmlkZSBmb3IgY2xpcGJvYXJkIGFuZCBhcyBETkQgc291cmNlLiBUaGUgdGFy
Z2V0cyBpbiB0aGUgbGlzdCBhcmUKKyAqIGFkZGVkIHdpdGggJWluZm8gdmFsdWVzIGZyb20gdGhl
ICNXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyBlbnVtLAorICogdXNpbmcgZ3RrX3RhcmdldF9saXN0
X2FkZCgpIGFuZAorICogZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3RhcmdldHMoKS4KKyAqCisg
KiBSZXR1cm4gdmFsdWU6IHRoZSAjR3RrVGFyZ2V0TGlzdAorICoqLworR3RrVGFyZ2V0TGlzdCog
d2Via2l0X3dlYl92aWV3X2dldF90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KSB7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBO
VUxMKTsKKyAgICAKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJL
SVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgcmV0dXJuIHdlYlZpZXdEYXRh
LT50YXJnZXRfbGlzdDsKIH0KKworfQpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5o
CShyZXZpc2lvbiAyODUxNikKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDEyIEBACiAgICAgV0VCS0lUX05BVklHQVRJT05f
UkVTUE9OU0VfRE9XTkxPQUQKIH0gV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlOwogCit0eXBlZGVm
IGVudW0KK3sKKyAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCA9IC0gMSwKKyAg
ICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCA9IC0gMgorfSBXZWJLaXRXZWJWaWV3
VGFyZ2V0SW5mbzsKIAotCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgewogICAgIEd0a0NvbnRhaW5l
ciBwYXJlbnQ7CiB9OwpAQCAtMTI1LDYgKzEyOSw5IEBACiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtp
dF93ZWJfdmlld19zZXRfZWRpdGFibGUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVh
biBmbGFnKTsKIAorV0VCS0lUX0FQSSBHdGtUYXJnZXRMaXN0Kgord2Via2l0X3dlYl92aWV3X2dl
dF90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRlLmgJKHJldmlzaW9uIDI4NTE2
KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNiArNjIsOCBAQAogCiAgICAgICAgIEhhc2hTZXQ8R3RrV2lkZ2V0Kj4gY2hpbGRyZW47
CiAgICAgICAgIGJvb2wgZWRpdGFibGU7CisKKyAgICAgICAgR3RrVGFyZ2V0TGlzdCogdGFyZ2V0
X2xpc3Q7CiAgICAgfTsKIAogICAgICNkZWZpbmUgV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFU
RShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBF
X1dFQl9GUkFNRSwgV2ViS2l0V2ViRnJhbWVQcml2YXRlKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwCShyZXZpc2lvbiAyODUxNikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsNDkg
QEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCiAKKyNpbmNsdWRlIDx3
ZWJraXR3ZWJ2aWV3Lmg+CisKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEgeworcHVibGljOgorICAgIFBh
c3RlYm9hcmRTZWxlY3Rpb25EYXRhKGdjaGFyKiB0ZXh0LCBnY2hhciogbWFya3VwKQorICAgICAg
ICA6IG1fdGV4dCh0ZXh0KQorICAgICAgICAsIG1fbWFya3VwKG1hcmt1cCkgeyB9CisKKyAgICB+
UGFzdGVib2FyZFNlbGVjdGlvbkRhdGEoKSB7CisgICAgICAgIGdfZnJlZShtX3RleHQpOworICAg
ICAgICBnX2ZyZWUobV9tYXJrdXApOworICAgIH0KKyAgICAKKyAgICBjb25zdCBnY2hhciogdGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQorICAgIGNvbnN0IGdjaGFyKiBtYXJrdXAoKSBj
b25zdCB7IHJldHVybiBtX21hcmt1cDsgfSAgICAKKworcHJpdmF0ZToKKyAgICBnY2hhciogbV90
ZXh0OworICAgIGdjaGFyKiBtX21hcmt1cDsKK307CisKK3N0YXRpYyB2b2lkIGNsaXBib2FyZF9n
ZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkICpjbGlwYm9hcmQsIEd0a1NlbGVjdGlvbkRhdGEg
KnNlbGVjdGlvbl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
dWludCBpbmZvLCBncG9pbnRlciBkYXRhKSB7CisgICAgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEq
IGNsaXBib2FyZERhdGEgPSByZWludGVycHJldF9jYXN0PFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRh
Kj4oZGF0YSk7CisgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOworICAgIGlmICgoZ2ludClpbmZv
ID09IFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKSB7CisgICAgICAgIGd0a19zZWxl
Y3Rpb25fZGF0YV9zZXQoc2VsZWN0aW9uX2RhdGEsIHNlbGVjdGlvbl9kYXRhLT50YXJnZXQsIDgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBn
dWNoYXIqPihjbGlwYm9hcmREYXRhLT5tYXJrdXAoKSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ191dGY4X3N0cmxlbihjbGlwYm9hcmREYXRhLT5tYXJrdXAoKSwgLTEpKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldF90ZXh0KHNlbGVjdGlvbl9k
YXRhLCBjbGlwYm9hcmREYXRhLT50ZXh0KCksIC0xKTsKK30KKworc3RhdGljIHZvaWQgY2xpcGJv
YXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCAqY2xpcGJvYXJkLCBncG9pbnRlciBk
YXRhKSB7CisgICAgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEqIGNsaXBib2FyZERhdGEgPSByZWlu
dGVycHJldF9jYXN0PFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKj4oZGF0YSk7CisgICAgQVNTRVJU
KGNsaXBib2FyZERhdGEpOworICAgIGRlbGV0ZSBjbGlwYm9hcmREYXRhOworfQorCiBQYXN0ZWJv
YXJkKiBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpCiB7CiAgICAgc3RhdGljIFBhc3Rl
Ym9hcmQqIHBhc3RlYm9hcmQgPSBuZXcgUGFzdGVib2FyZCgpOwpAQCAtNTMsMjAgKzkyLDMxIEBA
CiAKIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgR3RrVGFyZ2V0TGlzdCAqdGFyZ2V0X2xpc3Q7CisgICAgZ3RrX3RhcmdldF9saXN0X2FkZCh0
YXJnZXRfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdka19hdG9tX2ludGVybl9zdGF0
aWNfc3RyaW5nICgidGV4dC9odG1sIiksCisgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVEFS
R0VUX09USEVSX0FQUCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9XRUJfVklFV19U
QVJHRVRfSU5GT19IVE1MKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cyh0
YXJnZXRfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
V0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCk7CisgICAgbV90YXJnZXRzID0gZ3RrX3RhcmdldF90
YWJsZV9uZXdfZnJvbV9saXN0KHRhcmdldF9saXN0LCAmbV9uX3RhcmdldHMpOworICAgIGd0a190
YXJnZXRfbGlzdF91bnJlZih0YXJnZXRfbGlzdCk7CiB9CiAKIFBhc3RlYm9hcmQ6On5QYXN0ZWJv
YXJkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGd0a190YXJnZXRfdGFibGVfZnJl
ZShtX3RhcmdldHMsIG1fbl90YXJnZXRzKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwg
RnJhbWUqIGZyYW1lKQordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogc2Vs
ZWN0ZWRSYW5nZSwgYm9vbCwgRnJhbWUqIGZyYW1lKQogewotICAgIEd0a0NsaXBib2FyZCogY2xp
cGJvYXJkID0gZ3RrX2NsaXBib2FyZF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0X2Rl
ZmF1bHQoKSwgR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpOworICAgIGdjaGFyKiB0ZXh0ID0gZ19z
dHJkdXAoZnJhbWUtPnNlbGVjdGVkVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdjaGFyKiBt
YXJrdXAgPSBnX3N0cmR1cChjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSkudXRmOCgpLmRhdGEoKSk7CisgICAgUGFzdGVib2FyZFNlbGVjdGlvbkRh
dGEqIGRhdGEgPSBuZXcgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEodGV4dCwgbWFya3VwKTsKIAot
ICAgIFN0cmluZyB0ZXh0ID0gZnJhbWUtPnNlbGVjdGVkVGV4dCgpOwotICAgIGd0a19jbGlwYm9h
cmRfc2V0X3RleHQoY2xpcGJvYXJkLCB0ZXh0LnV0ZjgoKS5kYXRhKCksIHRleHQudXRmOCgpLmxl
bmd0aCgpKTsKKyAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0
X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJ
UEJPQVJEKTsgICAKKyAgICBndGtfY2xpcGJvYXJkX3NldF93aXRoX2RhdGEoY2xpcGJvYXJkLCBt
X3RhcmdldHMsIG1fbl90YXJnZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiLCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IsIGRh
dGEpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmLCBGcmFtZSopCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMjg1MTYpCisrKyBXZWJLaXQvZ3RrL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDIxIEBACiAyMDA3LTEyLTA3ICBMdWNh
IEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisJaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzMTEKKyAgICAgICAgW0d0a10gQ29weSByaWNoIHRleHQgdG8gY2xpcGJvYXJkIGFzIHRleHQv
cGxhaW4gYW5kIHRleHQvaHRtbC4KKworICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5o
OgorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdGFy
Z2V0X2xpc3QpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZpbmFsaXplKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19p
bml0KToKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKworMjAwNy0xMi0wNyAg
THVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBi
eSBBbHAgVG9rZXIuCiAKICAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzMzMKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODUxNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDctMTItMDcgIEx1Y2EgQnJ1bm8gIDxsZXRo
YWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMTEK
KyAgICAgICAgW0d0a10gQ29weSByaWNoIHRleHQgdG8gY2xpcGJvYXJkIGFzIHRleHQvcGxhaW4g
YW5kIHRleHQvaHRtbC4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9S
IENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNsaXBib2FyZF9nZXRfY29udGVudHNfY2IpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmRT
ZWxlY3Rpb25EYXRhKTogYWRkZWQgdG8ga2VlcCBzZWxlY3Rpb24gZGF0YSBmb3IgY2FsbGJhY2tz
CisgICAgICAgIChXZWJDb3JlOjpjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKToKKyAgICAgICAg
KFdlYkNvcmU6OmNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYik6CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOm1fdGFyZ2V0
cyk6IGd0ayBzdXBwb3J0CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOm1fbl90YXJnZXRz
KTogZ3RrIHN1cHBvcnQKKwogMjAwNy0xMi0wNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL1Bhc3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAkocmV2aXNpb24gMjg1MTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3Rrc2Vs
ZWN0aW9uLmg+CisjZW5kaWYKKwogLy8gRklYTUU6IFRoaXMgY2xhc3MgaXMgdG9vIGhpZ2gtbGV2
ZWwgdG8gYmUgaW4gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeSwgc2luY2UgaXQKIC8vIHVzZXMgdGhl
IERPTSBhbmQgbWFrZXMgY2FsbHMgdG8gRWRpdG9yLiBJdCBzaG91bGQgZWl0aGVyIGJlIGRpdmVz
dGVkIG9mIGl0cwogLy8ga25vd2xlZGdlIG9mIHRoZSBmcmFtZSBhbmQgZWRpdG9yIG9yIG1vdmVk
IGludG8gdGhlIGVkaXRpbmcgZGlyZWN0b3J5LgpAQCAtOTIsNiArOTYsMTEgQEAKICAgICBQYXN0
ZWJvYXJkKCk7CiAgICAgflBhc3RlYm9hcmQoKTsKIAorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBH
dGtUYXJnZXRFbnRyeSAqbV90YXJnZXRzOworICAgIGdpbnQgbV9uX3RhcmdldHM7CisjZW5kaWYK
KwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBQYXN0ZWJvYXJkKE5TUGFzdGVib2FyZCAqKTsKICAg
ICBSZXRhaW5QdHI8TlNQYXN0ZWJvYXJkPiBtX3Bhc3RlYm9hcmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17773</attachid>
            <date>2007-12-07 10:54:25 -0800</date>
            <delta_ts>2007-12-18 06:32:21 -0800</delta_ts>
            <desc>do not use webkit enum</desc>
            <filename>targets.patch</filename>
            <type>text/plain</type>
            <size>11737</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDI4NTE2KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Myw2ICs4MywxMiBAQAogICAgIExBU1RfU0lHTkFMCiB9OwogCitlbnVtIHsKKyAgICBQUk9Q
XzAsCisKKyAgICBQUk9QX1RBUkdFVF9MSVNUCit9OworCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBHX0RFRklORV9UWVBFKFdl
YktpdFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQpAQCAtMjY0
LDYgKzI3MCwxOSBAQAogICAgICAgICAoKmNhbGxiYWNrKSgqY3VycmVudCwgY2FsbGJhY2tEYXRh
KTsKIH0KIAorc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0
ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVj
KSB7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
OworCisgICAgc3dpdGNoKHByb3BfaWQpIHsKKyAgICBjYXNlIFBST1BfVEFSR0VUX0xJU1Q6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Rhcmdl
dF9saXN0KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXcoV2ViS2l0V2ViVmlldyopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTQyMSw2ICs0NDAsOSBAQAogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXdE
YXRhLT5tYWluRnJhbWUpOwogICAgIGRlbGV0ZSB3ZWJWaWV3RGF0YS0+dXNlckFnZW50OwogCisg
ICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCk7CisgICAg
d2ViVmlld0RhdGEtPnRhcmdldF9saXN0ID0gTlVMTDsKKwogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCkBAIC03
NDUsNiArNzY3LDkgQEAKICAgICBjb250YWluZXJDbGFzcy0+cmVtb3ZlID0gd2Via2l0X3dlYl92
aWV3X2NvbnRhaW5lcl9yZW1vdmU7CiAgICAgY29udGFpbmVyQ2xhc3MtPmZvcmFsbCA9IHdlYmtp
dF93ZWJfdmlld19jb250YWluZXJfZm9yYWxsOwogCisgICAgR09iamVjdENsYXNzKiBvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFzcyk7CisgICAgb2JqZWN0Q2xhc3MtPmdl
dF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHk7CisKICAgICAvKgogICAg
ICAqIG1ha2UgdXMgc2Nyb2xsYWJsZSAoZS5nLiBhZGRhYmxlIHRvIGEgR3RrU2Nyb2xsZWRXaW5k
b3cpCiAgICAgICovCkBAIC03ODIsNiArODA3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiY29weV9jbGlwYm9hcmQiLCAwKTsKICAgICBndGtfYmluZGluZ19lbnRyeV9h
ZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfSW5zZXJ0LCBHREtfU0hJRlRfTUFTSywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXN0ZV9jbGlwYm9hcmQiLCAwKTsKKworICAg
IC8qIFByb3BlcnRpZXMgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChv
YmplY3RDbGFzcywgUFJPUF9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQgKCJ0YXJnZXQtbGlzdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFyZ2V0IGxp
c3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBidWZmZXIgc3VwcG9ydHMgZm9yIGNsaXBi
b2FyZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFE
QUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFU
SUNfQkxVUkIpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCkBAIC04MDYsNiArODM5LDE1IEBACiAgICAgR1RLX1dJREdFVF9T
RVRfRkxBR1Mod2ViVmlldywgR1RLX0NBTl9GT0NVUyk7CiAgICAgd2ViVmlld0RhdGEtPm1haW5G
cmFtZSA9IFdFQktJVF9XRUJfRlJBTUUod2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwog
ICAgIHdlYlZpZXdEYXRhLT5lZGl0YWJsZSA9IGZhbHNlOworCisjaWYgR0xJQl9DSEVDS19WRVJT
SU9OKDIsMTAsMCkKKyAgICBHZGtBdG9tIHRleHRIdG1sID0gZ2RrX2F0b21faW50ZXJuX3N0YXRp
Y19zdHJpbmcoInRleHQvaHRtbCIpOworI2Vsc2UKKyAgICBHZGtBdG9tIHRleHRIdG1sID0gZ2Rr
X2F0b21faW50ZXJuKCJ0ZXh0L2h0bWwiLCBmYWxzZSk7CisjZW5kaWYKKyAgICB3ZWJWaWV3RGF0
YS0+dGFyZ2V0X2xpc3QgPSBndGtfdGFyZ2V0X2xpc3RfbmV3IChOVUxMLCAwKTsgIAorICAgIGd0
a190YXJnZXRfbGlzdF9hZGQgKHdlYlZpZXdEYXRhLT50YXJnZXRfbGlzdCwgdGV4dEh0bWwsIEdU
S19UQVJHRVRfT1RIRVJfQVBQLCBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCk7Cisg
ICAgZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3RhcmdldHMgKHdlYlZpZXdEYXRhLT50YXJnZXRf
bGlzdCwgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQpOwogfQogCiBHdGtXaWRnZXQq
IHdlYmtpdF93ZWJfdmlld19uZXcodm9pZCkKQEAgLTEwMDUsNCArMTA0NywyMyBAQAogICAgICAg
ICBtYWluRnJhbWUtPnJlbW92ZUVkaXRpbmdTdHlsZUZyb21Cb2R5RWxlbWVudCgpOwogfQogCisv
KioKKyAqIHdlYmtpdF93ZWJfdmlld19nZXRfdGFyZ2V0X2xpc3Q6CisgKiBAYnVmZmVyOiBhICNX
ZWJLaXRXZWJWaWV3CisgKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsaXN0IG9mIHRh
cmdldHMgdGhpcyB0ZXh0IGJ1ZmZlciBjYW4KKyAqIHByb3ZpZGUgZm9yIGNsaXBib2FyZCBhbmQg
YXMgRE5EIHNvdXJjZS4gVGhlIHRhcmdldHMgaW4gdGhlIGxpc3QgYXJlCisgKiBhZGRlZCB3aXRo
ICVpbmZvIHZhbHVlcyBmcm9tIHRoZSAjV2ViS2l0V2ViVmlld1RhcmdldEluZm8gZW51bSwKKyAq
IHVzaW5nIGd0a190YXJnZXRfbGlzdF9hZGQoKSBhbmQKKyAqIGd0a190YXJnZXRfbGlzdF9hZGRf
dGV4dF90YXJnZXRzKCkuCisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgI0d0a1RhcmdldExpc3QK
KyAqKi8KK0d0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfdGFyZ2V0X2xpc3QoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykgeworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7CisgICAgCisgICAgV2ViS2l0V2ViVmlld1ByaXZh
dGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOwor
ICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+dGFyZ2V0X2xpc3Q7CiB9CisKK30KSW5kZXg6IFdlYktp
dC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9X
ZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkocmV2aXNpb24gMjg1MTYpCisrKyBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSwxMiBAQAog
ICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0RPV05MT0FECiB9IFdlYktpdE5hdmlnYXRp
b25SZXNwb25zZTsKIAordHlwZWRlZiBlbnVtCit7CisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdF
VF9JTkZPX0hUTUwgPSAtIDEsCisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQg
PSAtIDIKK30gV2ViS2l0V2ViVmlld1RhcmdldEluZm87CiAKLQogc3RydWN0IF9XZWJLaXRXZWJW
aWV3IHsKICAgICBHdGtDb250YWluZXIgcGFyZW50OwogfTsKQEAgLTEyNSw2ICsxMjksOSBAQAog
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlIChXZWJLaXRXZWJW
aWV3KiB3ZWJfdmlldywgZ2Jvb2xlYW4gZmxhZyk7CiAKK1dFQktJVF9BUEkgR3RrVGFyZ2V0TGlz
dCoKK3dlYmtpdF93ZWJfdmlld19nZXRfdGFyZ2V0X2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmll
dyk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dl
YmtpdHByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJp
dmF0ZS5oCShyZXZpc2lvbiAyODUxNikKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDggQEAKIAogICAgICAgICBIYXNoU2V0
PEd0a1dpZGdldCo+IGNoaWxkcmVuOwogICAgICAgICBib29sIGVkaXRhYmxlOworCisgICAgICAg
IEd0a1RhcmdldExpc3QqIHRhcmdldF9saXN0OwogICAgIH07CiAKICAgICAjZGVmaW5lIFdFQktJ
VF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUob2JqKSAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSkp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNpb24gMjg1
MTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDUsNiArNDUsNTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvKiBGSVhN
RTogd2UgbXVzdCBnZXQgcmlkIG9mIHRoaXMgYW5kIHVzZSB0aGUgZW51bSBpbiB3ZWJraXR3ZWJ2
aWV3Lmggc29tZXdheSAqLwordHlwZWRlZiBlbnVtCit7CisgICAgV0VCS0lUX1dFQl9WSUVXX1RB
UkdFVF9JTkZPX0hUTUwgPSAtIDEsCisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RF
WFQgPSAtIDIKK30gV2ViS2l0V2ViVmlld1RhcmdldEluZm87CisKK2NsYXNzIFBhc3RlYm9hcmRT
ZWxlY3Rpb25EYXRhIHsKK3B1YmxpYzoKKyAgICBQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YShnY2hh
ciogdGV4dCwgZ2NoYXIqIG1hcmt1cCkKKyAgICAgICAgOiBtX3RleHQodGV4dCkKKyAgICAgICAg
LCBtX21hcmt1cChtYXJrdXApIHsgfQorCisgICAgflBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKCkg
eworICAgICAgICBnX2ZyZWUobV90ZXh0KTsKKyAgICAgICAgZ19mcmVlKG1fbWFya3VwKTsKKyAg
ICB9CisgICAgCisgICAgY29uc3QgZ2NoYXIqIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7
IH0KKyAgICBjb25zdCBnY2hhciogbWFya3VwKCkgY29uc3QgeyByZXR1cm4gbV9tYXJrdXA7IH0g
ICAgCisKK3ByaXZhdGU6CisgICAgZ2NoYXIqIG1fdGV4dDsKKyAgICBnY2hhciogbV9tYXJrdXA7
Cit9OworCitzdGF0aWMgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2Fy
ZCAqY2xpcGJvYXJkLCBHdGtTZWxlY3Rpb25EYXRhICpzZWxlY3Rpb25fZGF0YSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgaW5mbywgZ3BvaW50ZXIgZGF0YSkg
eworICAgIFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKiBjbGlwYm9hcmREYXRhID0gcmVpbnRlcnBy
ZXRfY2FzdDxQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YSo+KGRhdGEpOworICAgIEFTU0VSVChjbGlw
Ym9hcmREYXRhKTsKKyAgICBpZiAoKGdpbnQpaW5mbyA9PSBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSFRNTCkgeworICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbl9k
YXRhLCBzZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4oY2xpcGJvYXJkRGF0YS0+bWFy
a3VwKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdXRmOF9zdHJsZW4oY2xp
cGJvYXJkRGF0YS0+bWFya3VwKCksIC0xKSk7CisgICAgfSBlbHNlCisgICAgICAgIGd0a19zZWxl
Y3Rpb25fZGF0YV9zZXRfdGV4dChzZWxlY3Rpb25fZGF0YSwgY2xpcGJvYXJkRGF0YS0+dGV4dCgp
LCAtMSk7Cit9CisKK3N0YXRpYyB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYihHdGtD
bGlwYm9hcmQgKmNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSkgeworICAgIFBhc3RlYm9hcmRTZWxl
Y3Rpb25EYXRhKiBjbGlwYm9hcmREYXRhID0gcmVpbnRlcnByZXRfY2FzdDxQYXN0ZWJvYXJkU2Vs
ZWN0aW9uRGF0YSo+KGRhdGEpOworICAgIEFTU0VSVChjbGlwYm9hcmREYXRhKTsKKyAgICBkZWxl
dGUgY2xpcGJvYXJkRGF0YTsKK30KKwogUGFzdGVib2FyZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBh
c3RlYm9hcmQoKQogewogICAgIHN0YXRpYyBQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbmV3IFBh
c3RlYm9hcmQoKTsKQEAgLTUzLDIwICs5NywzNyBAQAogCiBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJk
KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLDEw
LDApCisgICAgR2RrQXRvbSB0ZXh0SHRtbCA9IGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5n
KCJ0ZXh0L2h0bWwiKTsKKyNlbHNlCisgICAgR2RrQXRvbSB0ZXh0SHRtbCA9IGdka19hdG9tX2lu
dGVybigidGV4dC9odG1sIiwgZmFsc2UpOworI2VuZGlmCisKKyAgICAvKiBGSVhNRTogdGhpcyBp
cyBhIGR1cGxpY2F0ZSBvZiB0aGUgV2ViS2l0V2ViVmlldyB0YXJnZXQgbGlzdCBwcm9wZXJ0eSAq
LworICAgIEd0a1RhcmdldExpc3QgKnRhcmdldF9saXN0ID0gZ3RrX3RhcmdldF9saXN0X25ldyhO
VUxMLCAwKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKHRhcmdldF9saXN0LCB0ZXh0SHRtbCwg
R1RLX1RBUkdFVF9PVEhFUl9BUFAsIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKTsK
KyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cyh0YXJnZXRfbGlzdCwgV0VCS0lU
X1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQpOworICAgIG1fdGFyZ2V0cyA9IGd0a190YXJnZXRf
dGFibGVfbmV3X2Zyb21fbGlzdCh0YXJnZXRfbGlzdCwgJm1fbl90YXJnZXRzKTsKKyAgICBndGtf
dGFyZ2V0X2xpc3RfdW5yZWYodGFyZ2V0X2xpc3QpOwogfQogCiBQYXN0ZWJvYXJkOjp+UGFzdGVi
b2FyZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBndGtfdGFyZ2V0X3RhYmxlX2Zy
ZWUobV90YXJnZXRzLCBtX25fdGFyZ2V0cyk7CiB9CiAKLXZvaWQgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUs
IEZyYW1lKiBmcmFtZSkKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNl
bGVjdGVkUmFuZ2UsIGJvb2wsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBHdGtDbGlwYm9hcmQqIGNs
aXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9k
ZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKKyAgICBnY2hhciogdGV4dCA9IGdf
c3RyZHVwKGZyYW1lLT5zZWxlY3RlZFRleHQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBnY2hhciog
bWFya3VwID0gZ19zdHJkdXAoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRl
Rm9ySW50ZXJjaGFuZ2UpLnV0ZjgoKS5kYXRhKCkpOworICAgIFBhc3RlYm9hcmRTZWxlY3Rpb25E
YXRhKiBkYXRhID0gbmV3IFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKHRleHQsIG1hcmt1cCk7CiAK
LSAgICBTdHJpbmcgdGV4dCA9IGZyYW1lLT5zZWxlY3RlZFRleHQoKTsKLSAgICBndGtfY2xpcGJv
YXJkX3NldF90ZXh0KGNsaXBib2FyZCwgdGV4dC51dGY4KCkuZGF0YSgpLCB0ZXh0LnV0ZjgoKS5s
ZW5ndGgoKSk7CisgICAgLyogRklYTUU6IG9idGFpbiB0aGUgV2ViS2l0V2ViVmlldyBkaXNwbGF5
CisgICAgICogdGhpcyBtdXN0IGJlIGRvbmUgaW4gZWFjaCBtZXRob2Qgb2YgdGhpcyBjbGFzcyB1
c2luZworICAgICAqLworICAgIEd0a0NsaXBib2FyZCogY2xpcGJvYXJkID0gZ3RrX2NsaXBib2Fy
ZF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgR0RLX1NFTEVDVElP
Tl9DTElQQk9BUkQpOyAgIAorICAgIGd0a19jbGlwYm9hcmRfc2V0X3dpdGhfZGF0YShjbGlwYm9h
cmQsIG1fdGFyZ2V0cywgbV9uX3RhcmdldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNsaXBib2FyZF9nZXRfY29udGVudHNfY2IsIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19j
YiwgZGF0YSk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYsIEZyYW1lKikKSW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODUyMSkKKysrIFdlYktpdC9n
dGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsMjEgQEAKIDIwMDctMTItMDcg
IEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYzMTEKKyAgICAgICAgW0d0a10gQ29weSByaWNoIHRleHQgdG8gY2xpcGJv
YXJkIGFzIHRleHQvcGxhaW4gYW5kIHRleHQvaHRtbC4KKworICAgICAgICAqIFdlYlZpZXcvd2Vi
a2l0cHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfdGFyZ2V0X2xpc3QpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZpbmFsaXpl
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19pbml0KToKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwor
MjAwNy0xMi0wNyAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCiAKICAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMzMKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODUxNikKKysrIFdlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDctMTItMDcgIEx1Y2Eg
QnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzMTEKKyAgICAgICAgW0d0a10gQ29weSByaWNoIHRleHQgdG8gY2xpcGJvYXJkIGFz
IHRleHQvcGxhaW4gYW5kIHRleHQvaHRtbC4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENB
U0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJk
R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNsaXBib2FyZF9nZXRfY29udGVudHNfY2IpOgor
ICAgICAgICAoV2ViQ29yZTo6Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKTogYWRkZWQgdG8ga2VlcCBzZWxlY3Rpb24gZGF0YSBm
b3IgY2FsbGJhY2tzCisgICAgICAgIChXZWJDb3JlOjpjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2Ni
KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYik6CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOm1fdGFyZ2V0cyk6IGd0ayBzdXBwb3J0CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Om1fbl90YXJnZXRzKTogZ3RrIHN1cHBvcnQKKwogMjAwNy0xMi0wNyAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL1Bhc3RlYm9hcmQuaAkocmV2aXNpb24gMjg1MTYpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRl
IDxndGsvZ3Rrc2VsZWN0aW9uLmg+CisjZW5kaWYKKwogLy8gRklYTUU6IFRoaXMgY2xhc3MgaXMg
dG9vIGhpZ2gtbGV2ZWwgdG8gYmUgaW4gdGhlIHBsYXRmb3JtIGRpcmVjdG9yeSwgc2luY2UgaXQK
IC8vIHVzZXMgdGhlIERPTSBhbmQgbWFrZXMgY2FsbHMgdG8gRWRpdG9yLiBJdCBzaG91bGQgZWl0
aGVyIGJlIGRpdmVzdGVkIG9mIGl0cwogLy8ga25vd2xlZGdlIG9mIHRoZSBmcmFtZSBhbmQgZWRp
dG9yIG9yIG1vdmVkIGludG8gdGhlIGVkaXRpbmcgZGlyZWN0b3J5LgpAQCAtOTIsNiArOTYsMTEg
QEAKICAgICBQYXN0ZWJvYXJkKCk7CiAgICAgflBhc3RlYm9hcmQoKTsKIAorI2lmIFBMQVRGT1JN
KEdUSykKKyAgICBHdGtUYXJnZXRFbnRyeSAqbV90YXJnZXRzOworICAgIGdpbnQgbV9uX3Rhcmdl
dHM7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBQYXN0ZWJvYXJkKE5TUGFzdGVi
b2FyZCAqKTsKICAgICBSZXRhaW5QdHI8TlNQYXN0ZWJvYXJkPiBtX3Bhc3RlYm9hcmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17972</attachid>
            <date>2007-12-18 06:32:21 -0800</date>
            <delta_ts>2007-12-20 04:23:01 -0800</delta_ts>
            <desc>PasteboardHelper and use the right clipboard</desc>
            <filename>targets.patch</filename>
            <type>text/plain</type>
            <size>23004</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0
ay5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJk
SGVscGVyR3RrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgTHVjYSBCcnVubyA8bGV0aGFsbWFuODhAZ21haWwuY29tPgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUGFzdGVib2FyZEhlbHBlckd0a19oCisjZGVmaW5l
IFBhc3RlYm9hcmRIZWxwZXJHdGtfaAorCisvKiAKKyAqIEZJWE1FOiB0aGlzIGlzIGZvciBXZWJD
b3JlIHN1cHBvcnQgYW5kIG11c3QgYmUgcmVtb3ZlZCBvbmNlCisgKiBhIGJldHRlciBzb2x1dGlv
biBpcyBmb3VuZAorICovCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9h
cmRIZWxwZXIuaCIKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXN0ZWJvYXJkSGVscGVyR3Rr
IDogcHVibGljIFBhc3RlYm9hcmRIZWxwZXIgeworcHVibGljOgorICAgIFBhc3RlYm9hcmRIZWxw
ZXJHdGsoKSB7IH0KKyAgICB2aXJ0dWFsIEd0a0NsaXBib2FyZCogZ2V0Q2xpcGJvYXJkKEZyYW1l
KikgY29uc3Q7CisgICAgdmlydHVhbCBHdGtUYXJnZXRMaXN0KiBnZXRDb3B5VGFyZ2V0TGlzdChG
cmFtZSopIGNvbnN0OworICAgIHZpcnR1YWwgR3RrVGFyZ2V0TGlzdCogZ2V0UGFzdGVUYXJnZXRM
aXN0KEZyYW1lKikgY29uc3Q7Cit9OworCit9CisKKyNlbmRpZiAvLyBQYXN0ZWJvYXJkSGVscGVy
R3RrX2gKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJk
SGVscGVyR3RrLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
UGFzdGVib2FyZEhlbHBlckd0ay5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEx1Y2EgQnJ1bm8gPGxldGhhbG1hbjg4QGdtYWlsLmNv
bT4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKKworI2luY2x1ZGUgIndlYmtpdHdlYmZy
YW1lLmgiCisjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgorI2luY2x1ZGUgIndlYmtpdHByaXZh
dGUuaCIKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQKK3sKKworR3RrQ2xpcGJvYXJkKiBQYXN0ZWJvYXJkSGVscGVy
R3RrOjpnZXRDbGlwYm9hcmQoRnJhbWUqIGZyYW1lKSBjb25zdCB7CisgICAgV2ViS2l0V2ViVmll
dyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KGtpdChmcmFtZSkpOwor
ICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9jbGlwYm9hcmQgKEdUS19XSURHRVQgKHdlYlZpZXcp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdES19TRUxFQ1RJT05fQ0xJ
UEJPQVJEKTsKK30KKworR3RrVGFyZ2V0TGlzdCogUGFzdGVib2FyZEhlbHBlckd0azo6Z2V0Q29w
eVRhcmdldExpc3QoRnJhbWUqIGZyYW1lKSBjb25zdCB7CisgICAgV2ViS2l0V2ViVmlldyogd2Vi
VmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KGtpdChmcmFtZSkpOworICAgIHJl
dHVybiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xpc3Qod2ViVmlldyk7Cit9CisK
K0d0a1RhcmdldExpc3QqIFBhc3RlYm9hcmRIZWxwZXJHdGs6OmdldFBhc3RlVGFyZ2V0TGlzdChG
cmFtZSogZnJhbWUpIGNvbnN0IHsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0
X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcoa2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIHdlYmtpdF93
ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3Qod2ViVmlldyk7Cit9CisKK30KSW5kZXg6IFdl
YktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyODgyOCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDctMTItMTggIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMTEKKyAgICAgICAgW0d0
a10gQ29weSByaWNoIHRleHQgdG8gY2xpcGJvYXJkIGFzIHRleHQvcGxhaW4gYW5kIHRleHQvaHRt
bC4KKworICAgICAgICBBZGQgY29weSBhbmQgcGFzdGUgdGFyZ2V0cyBmb3IgdGhlIFdlYlZpZXcg
YW5kIGltcGxlbWVudCB0aGUgV2ViQ29yZTo6UGFzdGVib2FyZEhlbHBlci4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6Z2V0Q2xpcGJvYXJkKToKKyAgICAgICAgKFdl
YktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6Z2V0Q29weVRhcmdldExpc3QpOgorICAgICAgICAo
V2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVyR3RrOjpnZXRQYXN0ZVRhcmdldExpc3QpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaDogQWRkZWQuCisgICAgICAg
ICogV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKHdlYmtpdF9pbml0KTogc2V0
IHRoZSBQYXN0ZWJvYXJkSGVscGVyR3RrIGFzIFdlYkNvcmU6OlBhc3RlYm9hcmQgaGVscGVyCisg
ICAgICAgICogV2ViVmlldy93ZWJraXRwcml2YXRlLmg6CisgICAgICAgIChfV2ViS2l0V2ViVmll
d1ByaXZhdGU6OmNvcHlfdGFyZ2V0X2xpc3QpOiBhZGRlZAorICAgICAgICAoX1dlYktpdFdlYlZp
ZXdQcml2YXRlOjpwYXN0ZV90YXJnZXRfbGlzdCk6IGFkZGVkCisgICAgICAgICogV2ViVmlldy93
ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkp
OiBhZGRlZAorICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZpbmFsaXplKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0KTogY3JlYXRlIHByb3BlcnRpZXMgZm9yIENPUFlfVEFS
R0VUIGFuZCBQQVNURV9UQVJHRVQgYW5kIGNyZWF0ZSB0aGUgY29weSBhbmQgcGFzdGUgdGFyZ2V0
IGxpc3RzCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xpc3QpOiBh
ZGRlZAorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCk6IGFk
ZGVkCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6CisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xpc3QpOiBhZGRlZAorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCk6IGFkZGVkCisKIDIwMDctMTItMTQgIEp1YW4g
QS4gU3VhcmV6IFJvbWVybyAgPGphc3VhcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWxwIFRva2VyLgpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAko
cmV2aXNpb24gMjg4MjgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgorI2luY2x1ZGUg
IlBhc3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0
YS5oIgpAQCAtNzUsMTAgKzc2LDMyIEBACiAgICAgTEFTVF9TSUdOQUwKIH07CiAKK2VudW0gewor
ICAgIFBST1BfMCwKKworICAgIFBST1BfQ09QWV9UQVJHRVRfTElTVCwKKyAgICBQUk9QX1BBU1RF
X1RBUkdFVF9MSVNUCit9OworCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNb
TEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBHX0RFRklORV9UWVBFKFdlYktpdFdlYlZpZXcsIHdl
YmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQogCitzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1Zh
bHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpIHsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7CisKKyAgICBzd2l0Y2gocHJvcF9pZCkgewor
ICAgIGNhc2UgUFJPUF9DT1BZX1RBUkdFVF9MSVNUOgorICAgICAgICBnX3ZhbHVlX3NldF9ib3hl
ZCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KHdlYlZpZXcpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1BBU1RFX1RBUkdFVF9MSVNUOgorICAgICAg
ICBnX3ZhbHVlX3NldF9ib3hlZCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJn
ZXRfbGlzdCh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKwogc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19leHBv
c2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50RXhwb3NlKiBldmVudCkKIHsKICAg
ICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShXRUJL
SVRfV0VCX1ZJRVcod2lkZ2V0KSkpOwpAQCAtNDI1LDcgKzQ0OCw5IEBACiAgICAgZGVsZXRlIHdl
YlZpZXdEYXRhLT5zZXR0aW5nczsKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3RGF0YS0+bWFp
bkZyYW1lKTsKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3RGF0YS0+aW1Db250ZXh0KTsKLSAg
ICBkZWxldGUgd2ViVmlld0RhdGEtPnVzZXJBZ2VudDsKKyAgICBndGtfdGFyZ2V0X2xpc3RfdW5y
ZWYod2ViVmlld0RhdGEtPmNvcHlfdGFyZ2V0X2xpc3QpOworICAgIGd0a190YXJnZXRfbGlzdF91
bnJlZih3ZWJWaWV3RGF0YS0+cGFzdGVfdGFyZ2V0X2xpc3QpOworICAgIGRlbGV0ZSB3ZWJWaWV3
RGF0YS0+dXNlckFnZW50OyAgCiAKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdf
cGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0KQEAgLTc2NCw2ICs3ODksOSBAQAog
CiAgICAgR19PQkpFQ1RfQ0xBU1Mod2ViVmlld0NsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfd2Vi
X3ZpZXdfZmluYWxpemU7CiAKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpF
Q1RfQ0xBU1Mod2ViVmlld0NsYXNzKTsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0g
d2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eTsKKwogICAgIEd0a1dpZGdldENsYXNzKiB3aWRn
ZXRDbGFzcyA9IEdUS19XSURHRVRfQ0xBU1Mod2ViVmlld0NsYXNzKTsKICAgICB3aWRnZXRDbGFz
cy0+cmVhbGl6ZSA9IHdlYmtpdF93ZWJfdmlld19yZWFsaXplOwogICAgIHdpZGdldENsYXNzLT5l
eHBvc2VfZXZlbnQgPSB3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50OwpAQCAtODE3LDYgKzg0
NSwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvcHlfY2xpcGJvYXJk
IiwgMCk7CiAgICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbChiaW5kaW5nX3NldCwgR0RL
X0luc2VydCwgR0RLX1NISUZUX01BU0ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicGFzdGVfY2xpcGJvYXJkIiwgMCk7CisKKyAgICAvKiBQcm9wZXJ0aWVzICovCisgICAgR1Bh
cmFtRmxhZ3MgZmxhZ3MgPSAoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9T
VEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKTsKKyAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0NPUFlf
VEFSR0VUX0xJU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfYm94ZWQoImNvcHktdGFyZ2V0LWxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUYXJnZXQgbGlzdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBsaXN0IG9m
IHRhcmdldHMgdGhpcyBidWZmZXIgc3VwcG9ydHMgZm9yIGNvcHlpbmcgdG8gdGhlIGNsaXBib2Fy
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR1RLX1RZUEVfVEFSR0VUX0xJU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfUEFTVEVfVEFSR0VUX0xJU1QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoInBhc3Rl
LXRhcmdldC1saXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVGFyZ2V0IGxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgbGlzdCBvZiB0YXJnZXRzIHRoaXMgYnVm
ZmVyIHN1cHBvcnRzIGZvciBwYXN0aW5nIHRvIHRoZSBjbGlwYm9hcmQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19UWVBFX1RBUkdF
VF9MSVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZsYWdzKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCkBAIC04NDIsNiArODg2LDIyIEBACiAgICAgR1RLX1dJREdF
VF9TRVRfRkxBR1Mod2ViVmlldywgR1RLX0NBTl9GT0NVUyk7CiAgICAgd2ViVmlld0RhdGEtPm1h
aW5GcmFtZSA9IFdFQktJVF9XRUJfRlJBTUUod2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykp
OwogICAgIHdlYlZpZXdEYXRhLT5lZGl0YWJsZSA9IGZhbHNlOworCisjaWYgR0xJQl9DSEVDS19W
RVJTSU9OKDIsMTAsMCkKKyAgICBHZGtBdG9tIHRleHRIdG1sID0gZ2RrX2F0b21faW50ZXJuX3N0
YXRpY19zdHJpbmcoInRleHQvaHRtbCIpOworI2Vsc2UKKyAgICBHZGtBdG9tIHRleHRIdG1sID0g
Z2RrX2F0b21faW50ZXJuKCJ0ZXh0L2h0bWwiLCBmYWxzZSk7CisjZW5kaWYKKyAgICAvKiBUYXJn
ZXRzIGZvciBjb3B5ICovCisgICAgd2ViVmlld0RhdGEtPmNvcHlfdGFyZ2V0X2xpc3QgPSBndGtf
dGFyZ2V0X2xpc3RfbmV3IChOVUxMLCAwKTsgIAorICAgIGd0a190YXJnZXRfbGlzdF9hZGQgKHdl
YlZpZXdEYXRhLT5jb3B5X3RhcmdldF9saXN0LCB0ZXh0SHRtbCwgR1RLX1RBUkdFVF9PVEhFUl9B
UFAsIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKTsKKyAgICBndGtfdGFyZ2V0X2xp
c3RfYWRkX3RleHRfdGFyZ2V0cyAod2ViVmlld0RhdGEtPmNvcHlfdGFyZ2V0X2xpc3QsIFdFQktJ
VF9XRUJfVklFV19UQVJHRVRfSU5GT19URVhUKTsKKworICAgIC8qIFRhcmdldHMgZm9yIHBhc3Rp
bmcgKi8KKyAgICB3ZWJWaWV3RGF0YS0+cGFzdGVfdGFyZ2V0X2xpc3QgPSBndGtfdGFyZ2V0X2xp
c3RfbmV3IChOVUxMLCAwKTsgIAorICAgIGd0a190YXJnZXRfbGlzdF9hZGQgKHdlYlZpZXdEYXRh
LT5wYXN0ZV90YXJnZXRfbGlzdCwgdGV4dEh0bWwsIEdUS19UQVJHRVRfT1RIRVJfQVBQLCBXRUJL
SVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCk7CisgICAgZ3RrX3RhcmdldF9saXN0X2FkZF90
ZXh0X3RhcmdldHMgKHdlYlZpZXdEYXRhLT5wYXN0ZV90YXJnZXRfbGlzdCwgV0VCS0lUX1dFQl9W
SUVXX1RBUkdFVF9JTkZPX1RFWFQpOworCiB9CiAKIEd0a1dpZGdldCogd2Via2l0X3dlYl92aWV3
X25ldyh2b2lkKQpAQCAtMTAzMCw0ICsxMDkwLDQyIEBACiAgICAgICAgIG1haW5GcmFtZS0+cmVt
b3ZlRWRpdGluZ1N0eWxlRnJvbUJvZHlFbGVtZW50KCk7CiB9CiAKKy8qKgorICogd2Via2l0X3dl
Yl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0OgorICogQGJ1ZmZlcjogYSAjV2ViS2l0V2ViVmll
dworICoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGlzdCBvZiB0YXJnZXRzIHRoaXMg
dGV4dCBidWZmZXIgY2FuCisgKiBwcm92aWRlIGZvciBjbGlwYm9hcmQgY29weWluZyBhbmQgYXMg
RE5EIHNvdXJjZS4gVGhlIHRhcmdldHMgaW4gdGhlIGxpc3QgYXJlCisgKiBhZGRlZCB3aXRoICVp
bmZvIHZhbHVlcyBmcm9tIHRoZSAjV2ViS2l0V2ViVmlld1RhcmdldEluZm8gZW51bSwKKyAqIHVz
aW5nIGd0a190YXJnZXRfbGlzdF9hZGQoKSBhbmQKKyAqIGd0a190YXJnZXRfbGlzdF9hZGRfdGV4
dF90YXJnZXRzKCkuCisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgI0d0a1RhcmdldExpc3QKKyAq
Ki8KK0d0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KSB7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKKyAgICAKKyAgICBXZWJLaXRXZWJWaWV3UHJp
dmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7
CisgICAgcmV0dXJuIHdlYlZpZXdEYXRhLT5jb3B5X3RhcmdldF9saXN0OwogfQorCisvKioKKyAq
IHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3Q6CisgKiBAYnVmZmVyOiBhICNX
ZWJLaXRXZWJWaWV3CisgKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsaXN0IG9mIHRh
cmdldHMgdGhpcyB0ZXh0IGJ1ZmZlciBjYW4KKyAqIHByb3ZpZGUgZm9yIGNsaXBib2FyZCBwYXN0
aW5nIGFuZCBhcyBETkQgZGVzdGluYXRpb24uIFRoZSB0YXJnZXRzIGluIHRoZSBsaXN0IGFyZQor
ICogYWRkZWQgd2l0aCAlaW5mbyB2YWx1ZXMgZnJvbSB0aGUgI1dlYktpdFdlYlZpZXdUYXJnZXRJ
bmZvIGVudW0sCisgKiB1c2luZyBndGtfdGFyZ2V0X2xpc3RfYWRkKCkgYW5kCisgKiBndGtfdGFy
Z2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cygpLgorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlICNH
dGtUYXJnZXRMaXN0CisgKiovCitHdGtUYXJnZXRMaXN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bh
c3RlX3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpIHsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOworICAgIAorICAg
IFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRf
UFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1cm4gd2ViVmlld0RhdGEtPnBhc3RlX3RhcmdldF9s
aXN0OworfQorCit9CkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuY3BwCShyZXZp
c2lvbiAyODgyOCkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
R3RrLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsu
aCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEwMiw0ICsxMDQsNiBAQAogICAg
IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnNldERhdGFiYXNlUGF0aChkYXRh
YmFzZURpcmVjdG9yeSk7CiAgICAgZ19mcmVlKGRhdGFiYXNlRGlyZWN0b3J5KTsKICNlbmRpZgor
CisgICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+c2V0SGVscGVyKG5ldyBXZWJL
aXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGsoKSk7CiB9CkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcv
d2Via2l0d2Vidmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3
ZWJ2aWV3LmgJKHJldmlzaW9uIDI4ODI4KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdl
YnZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsMTIgQEAKICAgICBXRUJLSVRfTkFW
SUdBVElPTl9SRVNQT05TRV9ET1dOTE9BRAogfSBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2U7CiAK
K3R5cGVkZWYgZW51bQoreworICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MID0g
LSAxLAorICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19URVhUID0gLSAyCit9IFdlYktp
dFdlYlZpZXdUYXJnZXRJbmZvOwogCi0KIHN0cnVjdCBfV2ViS2l0V2ViVmlldyB7CiAgICAgR3Rr
Q29udGFpbmVyIHBhcmVudDsKIH07CkBAIC0xMjUsNiArMTI5LDEyIEBACiBXRUJLSVRfQVBJIHZv
aWQKIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
LCBnYm9vbGVhbiBmbGFnKTsKIAorV0VCS0lUX0FQSSBHdGtUYXJnZXRMaXN0Kgord2Via2l0X3dl
Yl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOworCitX
RUJLSVRfQVBJIEd0a1RhcmdldExpc3QqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3Rhcmdl
dF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYK
SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaAkocmV2aXNpb24gMjg4MjgpCisrKyBX
ZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2
ICs2NCw5IEBACiAgICAgICAgIEhhc2hTZXQ8R3RrV2lkZ2V0Kj4gY2hpbGRyZW47CiAgICAgICAg
IGJvb2wgZWRpdGFibGU7CiAgICAgICAgIEd0a0lNQ29udGV4dCogaW1Db250ZXh0OworCisgICAg
ICAgIEd0a1RhcmdldExpc3QqIGNvcHlfdGFyZ2V0X2xpc3Q7CisgICAgICAgIEd0a1RhcmdldExp
c3QqIHBhc3RlX3RhcmdldF9saXN0OwogICAgIH07CiAKICAgICAjZGVmaW5lIFdFQktJVF9XRUJf
RlJBTUVfR0VUX1BSSVZBVEUob2JqKSAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChv
YmopLCBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSkpCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNpb24gMjg4MjgpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNiArMzQsNTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvKiBGSVhNRTogd2Ug
bXVzdCBnZXQgcmlkIG9mIHRoaXMgYW5kIHVzZSB0aGUgZW51bSBpbiB3ZWJraXR3ZWJ2aWV3Lmgg
c29tZXdheSAqLwordHlwZWRlZiBlbnVtCit7CisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9J
TkZPX0hUTUwgPSAtIDEsCisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQgPSAt
IDIKK30gV2ViS2l0V2ViVmlld1RhcmdldEluZm87CisKK2NsYXNzIFBhc3RlYm9hcmRTZWxlY3Rp
b25EYXRhIHsKK3B1YmxpYzoKKyAgICBQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YShnY2hhciogdGV4
dCwgZ2NoYXIqIG1hcmt1cCkKKyAgICAgICAgOiBtX3RleHQodGV4dCkKKyAgICAgICAgLCBtX21h
cmt1cChtYXJrdXApIHsgfQorCisgICAgflBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKCkgeworICAg
ICAgICBnX2ZyZWUobV90ZXh0KTsKKyAgICAgICAgZ19mcmVlKG1fbWFya3VwKTsKKyAgICB9Cisg
ICAgCisgICAgY29uc3QgZ2NoYXIqIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAg
ICBjb25zdCBnY2hhciogbWFya3VwKCkgY29uc3QgeyByZXR1cm4gbV9tYXJrdXA7IH0gICAgCisK
K3ByaXZhdGU6CisgICAgZ2NoYXIqIG1fdGV4dDsKKyAgICBnY2hhciogbV9tYXJrdXA7Cit9Owor
CitzdGF0aWMgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCAqY2xp
cGJvYXJkLCBHdGtTZWxlY3Rpb25EYXRhICpzZWxlY3Rpb25fZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgaW5mbywgZ3BvaW50ZXIgZGF0YSkgeworICAg
IFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKiBjbGlwYm9hcmREYXRhID0gcmVpbnRlcnByZXRfY2Fz
dDxQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YSo+KGRhdGEpOworICAgIEFTU0VSVChjbGlwYm9hcmRE
YXRhKTsKKyAgICBpZiAoKGdpbnQpaW5mbyA9PSBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9f
SFRNTCkgeworICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbl9kYXRhLCBz
ZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4oY2xpcGJvYXJkRGF0YS0+bWFya3VwKCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdXRmOF9zdHJsZW4oY2xpcGJvYXJk
RGF0YS0+bWFya3VwKCksIC0xKSk7CisgICAgfSBlbHNlCisgICAgICAgIGd0a19zZWxlY3Rpb25f
ZGF0YV9zZXRfdGV4dChzZWxlY3Rpb25fZGF0YSwgY2xpcGJvYXJkRGF0YS0+dGV4dCgpLCAtMSk7
Cit9CisKK3N0YXRpYyB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYihHdGtDbGlwYm9h
cmQgKmNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSkgeworICAgIFBhc3RlYm9hcmRTZWxlY3Rpb25E
YXRhKiBjbGlwYm9hcmREYXRhID0gcmVpbnRlcnByZXRfY2FzdDxQYXN0ZWJvYXJkU2VsZWN0aW9u
RGF0YSo+KGRhdGEpOworICAgIEFTU0VSVChjbGlwYm9hcmREYXRhKTsKKyAgICBkZWxldGUgY2xp
cGJvYXJkRGF0YTsKK30KKworCiBQYXN0ZWJvYXJkKiBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpCiB7CiAgICAgc3RhdGljIFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQgPSBuZXcgUGFzdGVi
b2FyZCgpOwpAQCAtNDcsMTUgKzkyLDI2IEBACiAKIFBhc3RlYm9hcmQ6On5QYXN0ZWJvYXJkKCkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGRlbGV0ZSBtX2hlbHBlcjsKIH0KIAordm9p
ZCBQYXN0ZWJvYXJkOjpzZXRIZWxwZXIoUGFzdGVib2FyZEhlbHBlciogaGVscGVyKQoreworICAg
IG1faGVscGVyID0gaGVscGVyOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9u
KFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSog
ZnJhbWUpCiB7Ci0gICAgR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBndGtfY2xpcGJvYXJkX2dl
dF9mb3JfZGlzcGxheShnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBHREtfU0VMRUNUSU9OX0NM
SVBCT0FSRCk7Ci0KLSAgICBTdHJpbmcgdGV4dCA9IGZyYW1lLT5zZWxlY3RlZFRleHQoKTsKLSAg
ICBndGtfY2xpcGJvYXJkX3NldF90ZXh0KGNsaXBib2FyZCwgdGV4dC51dGY4KCkuZGF0YSgpLCB0
ZXh0LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgZ2NoYXIqIHRleHQgPSBnX3N0cmR1cChmcmFtZS0+
c2VsZWN0ZWRUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgZ2NoYXIqIG1hcmt1cCA9IGdfc3Ry
ZHVwKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdl
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YSogZGF0YSA9IG5l
dyBQYXN0ZWJvYXJkU2VsZWN0aW9uRGF0YSh0ZXh0LCBtYXJrdXApOworIAorICAgIGdpbnQgbl90
YXJnZXRzOworICAgIEd0a1RhcmdldEVudHJ5KiB0YXJnZXRzID0gZ3RrX3RhcmdldF90YWJsZV9u
ZXdfZnJvbV9saXN0KG1faGVscGVyLT5nZXRDb3B5VGFyZ2V0TGlzdChmcmFtZSksICZuX3Rhcmdl
dHMpOworICAgIEd0a0NsaXBib2FyZCogY2xpcGJvYXJkID0gbV9oZWxwZXItPmdldENsaXBib2Fy
ZChmcmFtZSk7CisgICAgZ3RrX2NsaXBib2FyZF9zZXRfd2l0aF9kYXRhKGNsaXBib2FyZCwgdGFy
Z2V0cywgbl90YXJnZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9h
cmRfZ2V0X2NvbnRlbnRzX2NiLCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IsIGRhdGEpOwor
ICAgIGd0a190YXJnZXRfdGFibGVfZnJlZSh0YXJnZXRzLCBuX3RhcmdldHMpOwogfQogCiB2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSop
CkBAIC0xMDQsNyArMTYwLDcgQEAKICNlbHNlCiAgICAgR2RrQXRvbSB0ZXh0SHRtbCA9IGdka19h
dG9tX2ludGVybigidGV4dC9odG1sIiwgZmFsc2UpOwogI2VuZGlmCi0gICAgR3RrQ2xpcGJvYXJk
KiBjbGlwYm9hcmQgPSBndGtfY2xpcGJvYXJkX2dldF9mb3JfZGlzcGxheShnZGtfZGlzcGxheV9n
ZXRfZGVmYXVsdCgpLCBHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCk7CisgICAgR3RrQ2xpcGJvYXJk
KiBjbGlwYm9hcmQgPSBtX2hlbHBlci0+Z2V0Q2xpcGJvYXJkKGZyYW1lKTsKICAgICBjaG9zZVBs
YWluVGV4dCA9IGZhbHNlOwogCiAgICAgaWYgKEd0a1NlbGVjdGlvbkRhdGEqIGRhdGEgPSBndGtf
Y2xpcGJvYXJkX3dhaXRfZm9yX2NvbnRlbnRzKGNsaXBib2FyZCwgdGV4dEh0bWwpKSB7CkBAIC0x
MzUsOSArMTkxLDkgQEAKICAgICByZXR1cm4gMDsKIH0KIAotU3RyaW5nIFBhc3RlYm9hcmQ6OnBs
YWluVGV4dChGcmFtZSopCitTdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZyYW1lKiBmcmFt
ZSkKIHsKLSAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zv
cl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJP
QVJEKTsKKyAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9IG1faGVscGVyLT5nZXRDbGlwYm9h
cmQoZnJhbWUpOwogCiAgICAgZ2NoYXIqIHV0ZjggPSBndGtfY2xpcGJvYXJkX3dhaXRfZm9yX3Rl
eHQoY2xpcGJvYXJkKTsKIApAQCAtMTQ5LDQgKzIwNSw1IEBACiAKICAgICByZXR1cm4gdGV4dDsK
IH0KKwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBMdWNh
IEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBQYXN0ZWJvYXJkSGVscGVyX2gKKyNkZWZpbmUgUGFzdGVib2FyZEhlbHBlcl9o
CisKKy8qIAorICogRklYTUU6IHRoaXMgaXMgZm9yIFdlYkNvcmUgc3VwcG9ydCBhbmQgbXVzdCBi
ZSByZW1vdmVkIG9uY2UKKyAqIGEgYmV0dGVyIHNvbHV0aW9uIGlzIGZvdW5kCisgKi8KKworI2lu
Y2x1ZGUgIkZyYW1lLmgiCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUGFzdGVib2FyZEhlbHBlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UGFzdGVib2FyZEhlbHBlcigpIHt9OworCisgICAgdmlydHVhbCBHdGtDbGlwYm9hcmQqIGdldENs
aXBib2FyZChGcmFtZSopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEd0a1RhcmdldExpc3QqIGdl
dENvcHlUYXJnZXRMaXN0KEZyYW1lKikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgR3RrVGFyZ2V0
TGlzdCogZ2V0UGFzdGVUYXJnZXRMaXN0KEZyYW1lKikgY29uc3QgPSAwOworfTsKKworfQorCisj
ZW5kaWYgLy8gUGFzdGVib2FyZEhlbHBlcl9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkocmV2
aXNpb24gMjg4MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxQYXN0ZWJvYXJkSGVscGVyLmg+Cisj
ZW5kaWYKKwogLy8gRklYTUU6IFRoaXMgY2xhc3MgaXMgdG9vIGhpZ2gtbGV2ZWwgdG8gYmUgaW4g
dGhlIHBsYXRmb3JtIGRpcmVjdG9yeSwgc2luY2UgaXQKIC8vIHVzZXMgdGhlIERPTSBhbmQgbWFr
ZXMgY2FsbHMgdG8gRWRpdG9yLiBJdCBzaG91bGQgZWl0aGVyIGJlIGRpdmVzdGVkIG9mIGl0cwog
Ly8ga25vd2xlZGdlIG9mIHRoZSBmcmFtZSBhbmQgZWRpdG9yIG9yIG1vdmVkIGludG8gdGhlIGVk
aXRpbmcgZGlyZWN0b3J5LgpAQCAtODgsNiArOTIsMTAgQEAKICAgICBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdlPiwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogICAgIFN0cmluZyBw
bGFpblRleHQoRnJhbWUqID0gMCk7CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgdm9pZCBzZXRI
ZWxwZXIoUGFzdGVib2FyZEhlbHBlciopOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgUGFzdGVi
b2FyZCgpOwogICAgIH5QYXN0ZWJvYXJkKCk7CkBAIC0xMDAsNiArMTA4LDExIEBACiAjaWYgUExB
VEZPUk0oV0lOKQogICAgIEhXTkQgbV9vd25lcjsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RL
KQorICAgIFBhc3RlYm9hcmRIZWxwZXIqIG1faGVscGVyOworI2VuZGlmCisKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMjg4MjgpCisrKyBXZWJDb3JlL1dlYkNv
cmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC05NTEsNiArOTUxLDcgQEAKIGd0ay1wb3J0IHsKICAg
ICBIRUFERVJTICs9IFwKICAgICAgICAgLi4vV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmggXAorICAgICAgICAuLi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LmggXAogICAgICAgICAu
Li9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0ZGVmaW5lcy5oIFwKICAgICAgICAgLi4vV2ViS2l0
L2d0ay9XZWJWaWV3L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggXApAQCAtOTYzLDcgKzk2NCw4IEBA
CiAgICAgICAgIC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oIFwK
ICAgICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBc
CiAgICAgICAgIC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaCBcCi0gICAgICAgIC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50R3RrLmgKKyAgICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRHdGsuaCBcCisgICAgICAgIC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVi
b2FyZEhlbHBlckd0ay5oCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1N0cmluZ1RydW5jYXRvci5jcHAgXAogICAgICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHAgXApAQCAtMTAzOCw3ICsxMDQwLDggQEAKICAgICAgICAgLi4vV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcCBcCiAgICAgICAgIC4uL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBcCiAgICAgICAgIC4uL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIFwKLSAgICAgICAgLi4v
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCisgICAgICAg
IC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBcCisg
ICAgICAgIC4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5j
cHAKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBVEFCQVNFPTEpIHsKSW5kZXg6IFdl
YkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biAyODgyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMDctMTItMTggIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMTEKKwlbR3RrXSBDb3B5IHJpY2ggdGV4
dCB0byBjbGlwYm9hcmQgYXMgdGV4dC9wbGFpbiBhbmQgdGV4dC9odG1sLgorCisJR2V0IHRoZSBy
aWdodCBjbGlwYm9hcmQgaGF2aW5nIHRoZSBXZWJWaWV3IGRpc3BsYXkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkOjpzZXRIZWxwZXIpOiBhZGRlZCBmb3IgR1RLCQorCShXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjptX2hlbHBlcik6IHByaXZhdGUgYWRkZWQgZm9yIEdUSworICAgICAgICAq
IHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmRTZWxlY3Rpb25EYXRhKTogYWRkZWQgdG8gc3VwcG9ydCBHVEsgc2VsZWN0aW9uIGRhdGEg
Y2FsbGJhY2sKKyAgICAgICAgKFdlYkNvcmU6OmNsaXBib2FyZF9nZXRfY29udGVudHNfY2IpOiBh
ZGRlZAorICAgICAgICAoV2ViQ29yZTo6Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKTogYWRk
ZWQKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6On5QYXN0ZWJvYXJkKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnNldEhlbHBlcik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6IGNvcHkgcmljaCB0ZXh0CisJKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OmRvY3VtZW50RnJhZ21lbnQpOiAKKwkoV2ViQ29yZTo6UGFzdGVib2FyZDo6cGxhaW5U
ZXh0KTogCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaDogQWRkZWQu
CisKIDIwMDctMTItMTcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18005</attachid>
            <date>2007-12-20 04:23:01 -0800</date>
            <delta_ts>2007-12-22 15:08:45 -0800</delta_ts>
            <desc>coding style issues</desc>
            <filename>targets.patch</filename>
            <type>text/plain</type>
            <size>22991</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0
ay5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJk
SGVscGVyR3RrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgTHVjYSBCcnVubyA8bGV0aGFsbWFuODhAZ21haWwuY29tPgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUGFzdGVib2FyZEhlbHBlckd0a19oCisjZGVmaW5l
IFBhc3RlYm9hcmRIZWxwZXJHdGtfaAorCisvKiAKKyAqIEZJWE1FOiB0aGlzIGlzIGZvciBXZWJD
b3JlIHN1cHBvcnQgYW5kIG11c3QgYmUgcmVtb3ZlZCBvbmNlCisgKiBhIGJldHRlciBzb2x1dGlv
biBpcyBmb3VuZAorICovCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhc3RlYm9h
cmRIZWxwZXIuaCIKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQYXN0ZWJvYXJkSGVscGVyR3Rr
IDogcHVibGljIFBhc3RlYm9hcmRIZWxwZXIgeworcHVibGljOgorICAgIFBhc3RlYm9hcmRIZWxw
ZXJHdGsoKSB7IH0KKyAgICB2aXJ0dWFsIEd0a0NsaXBib2FyZCogZ2V0Q2xpcGJvYXJkKEZyYW1l
KikgY29uc3Q7CisgICAgdmlydHVhbCBHdGtUYXJnZXRMaXN0KiBnZXRDb3B5VGFyZ2V0TGlzdChG
cmFtZSopIGNvbnN0OworICAgIHZpcnR1YWwgR3RrVGFyZ2V0TGlzdCogZ2V0UGFzdGVUYXJnZXRM
aXN0KEZyYW1lKikgY29uc3Q7Cit9OworCit9CisKKyNlbmRpZiAvLyBQYXN0ZWJvYXJkSGVscGVy
R3RrX2gKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJk
SGVscGVyR3RrLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
UGFzdGVib2FyZEhlbHBlckd0ay5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEx1Y2EgQnJ1bm8gPGxldGhhbG1hbjg4QGdtYWlsLmNv
bT4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKKworI2luY2x1ZGUgIndlYmtpdHdlYmZy
YW1lLmgiCisjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgorI2luY2x1ZGUgIndlYmtpdHByaXZh
dGUuaCIKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQKK3sKKworR3RrQ2xpcGJvYXJkKiBQYXN0ZWJvYXJkSGVscGVy
R3RrOjpnZXRDbGlwYm9hcmQoRnJhbWUqIGZyYW1lKSBjb25zdCB7CisgICAgV2ViS2l0V2ViVmll
dyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KGtpdChmcmFtZSkpOwor
ICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9jbGlwYm9hcmQoR1RLX1dJREdFVCAod2ViVmlldyks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREtfU0VMRUNUSU9OX0NMSVBC
T0FSRCk7Cit9CisKK0d0a1RhcmdldExpc3QqIFBhc3RlYm9hcmRIZWxwZXJHdGs6OmdldENvcHlU
YXJnZXRMaXN0KEZyYW1lKiBmcmFtZSkgY29uc3QgeworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhraXQoZnJhbWUpKTsKKyAgICByZXR1
cm4gd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KHdlYlZpZXcpOworfQorCitH
dGtUYXJnZXRMaXN0KiBQYXN0ZWJvYXJkSGVscGVyR3RrOjpnZXRQYXN0ZVRhcmdldExpc3QoRnJh
bWUqIGZyYW1lKSBjb25zdCB7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KGtpdChmcmFtZSkpOworICAgIHJldHVybiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0KHdlYlZpZXcpOworfQorCit9CkluZGV4OiBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2
aXNpb24gMjg4ODYpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMyIEBACisyMDA3LTEyLTE4ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzExCisgICAgICAgIFtHdGtd
IENvcHkgcmljaCB0ZXh0IHRvIGNsaXBib2FyZCBhcyB0ZXh0L3BsYWluIGFuZCB0ZXh0L2h0bWwu
CisKKyAgICAgICAgQWRkIGNvcHkgYW5kIHBhc3RlIHRhcmdldHMgZm9yIHRoZSBXZWJWaWV3IGFu
ZCBpbXBsZW1lbnQgdGhlIFdlYkNvcmU6OlBhc3RlYm9hcmRIZWxwZXIuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGs6OmdldENsaXBib2FyZCk6CisgICAgICAgIChXZWJL
aXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGs6OmdldENvcHlUYXJnZXRMaXN0KToKKyAgICAgICAgKFdl
YktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6Z2V0UGFzdGVUYXJnZXRMaXN0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmg6IEFkZGVkLgorICAgICAgICAq
IFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHA6CisgICAgICAgICh3ZWJraXRfaW5pdCk6IHNldCB0
aGUgUGFzdGVib2FyZEhlbHBlckd0ayBhcyBXZWJDb3JlOjpQYXN0ZWJvYXJkIGhlbHBlcgorICAg
ICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAoX1dlYktpdFdlYlZpZXdQ
cml2YXRlOjpjb3B5X3RhcmdldF9saXN0KTogYWRkZWQKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3
UHJpdmF0ZTo6cGFzdGVfdGFyZ2V0X2xpc3QpOiBhZGRlZAorICAgICAgICAqIFdlYlZpZXcvd2Vi
a2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KTog
YWRkZWQKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19maW5hbGl6ZSk6CisgICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6IGNyZWF0ZSBwcm9wZXJ0aWVzIGZvciBDT1BZX1RBUkdF
VCBhbmQgUEFTVEVfVEFSR0VUIGFuZCBjcmVhdGUgdGhlIGNvcHkgYW5kIHBhc3RlIHRhcmdldCBs
aXN0cworICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KTogYWRk
ZWQKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOiBhZGRl
ZAorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5oOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KTogYWRkZWQKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOiBhZGRlZAorCiAyMDA3LTEyLTE5ICBDaHJpc3Rp
YW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPiAKIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbHAgVG9rZXIuCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShyZXZp
c2lvbiAyODg4NikKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCisjaW5jbHVkZSAiUGFz
dGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgi
CkBAIC03NSwxMCArNzYsMzIgQEAKICAgICBMQVNUX1NJR05BTAogfTsKIAorZW51bSB7CisgICAg
UFJPUF8wLAorCisgICAgUFJPUF9DT1BZX1RBUkdFVF9MSVNULAorICAgIFBST1BfUEFTVEVfVEFS
R0VUX0xJU1QKK307CisKIHN0YXRpYyBndWludCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMQVNU
X1NJR05BTF0gPSB7IDAsIH07CiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViVmlldywgd2Via2l0
X3dlYl92aWV3LCBHVEtfVFlQRV9DT05UQUlORVIpCiAKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
dmlld19nZXRfcHJvcGVydHkoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUg
KnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykgeworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKKworICAgIHN3aXRjaChwcm9wX2lkKSB7CisgICAg
Y2FzZSBQUk9QX0NPUFlfVEFSR0VUX0xJU1Q6CisgICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZh
bHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xpc3Qod2ViVmlldykpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfUEFTVEVfVEFSR0VUX0xJU1Q6CisgICAgICAgIGdf
dmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9s
aXN0KHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2V4cG9zZV9l
dmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRFeHBvc2UqIGV2ZW50KQogewogICAgIEZy
YW1lKiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdFQktJVF9X
RUJfVklFVyh3aWRnZXQpKSk7CkBAIC00MjUsNyArNDQ4LDkgQEAKICAgICBkZWxldGUgd2ViVmll
d0RhdGEtPnNldHRpbmdzOwogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXdEYXRhLT5tYWluRnJh
bWUpOwogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXdEYXRhLT5pbUNvbnRleHQpOwotICAgIGRl
bGV0ZSB3ZWJWaWV3RGF0YS0+dXNlckFnZW50OworICAgIGd0a190YXJnZXRfbGlzdF91bnJlZih3
ZWJWaWV3RGF0YS0+Y29weV90YXJnZXRfbGlzdCk7CisgICAgZ3RrX3RhcmdldF9saXN0X3VucmVm
KHdlYlZpZXdEYXRhLT5wYXN0ZV90YXJnZXRfbGlzdCk7CisgICAgZGVsZXRlIHdlYlZpZXdEYXRh
LT51c2VyQWdlbnQ7ICAKIAogICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJl
bnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQpAQCAtNzY0LDYgKzc4OSw5IEBACiAKICAg
ICBHX09CSkVDVF9DTEFTUyh3ZWJWaWV3Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF93ZWJfdmll
d19maW5hbGl6ZTsKIAorICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9D
TEFTUyh3ZWJWaWV3Q2xhc3MpOworICAgIG9iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5OworCiAgICAgR3RrV2lkZ2V0Q2xhc3MqIHdpZGdldENs
YXNzID0gR1RLX1dJREdFVF9DTEFTUyh3ZWJWaWV3Q2xhc3MpOwogICAgIHdpZGdldENsYXNzLT5y
ZWFsaXplID0gd2Via2l0X3dlYl92aWV3X3JlYWxpemU7CiAgICAgd2lkZ2V0Q2xhc3MtPmV4cG9z
ZV9ldmVudCA9IHdlYmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQ7CkBAIC04MTcsNiArODQ1LDIy
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29weV9jbGlwYm9hcmQiLCAw
KTsKICAgICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfSW5z
ZXJ0LCBHREtfU0hJRlRfTUFTSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YXN0ZV9jbGlwYm9hcmQiLCAwKTsKKworICAgIC8qIFByb3BlcnRpZXMgKi8KKyAgICBHUGFyYW1G
bGFncyBmbGFncyA9IChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFEQUJMRXxHX1BBUkFNX1NUQVRJ
Q19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIpOworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfQ09QWV9UQVJH
RVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19ib3hlZCgiY29weS10YXJnZXQtbGlzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhcmdldCBsaXN0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxpc3Qgb2YgdGFy
Z2V0cyB0aGlzIGJ1ZmZlciBzdXBwb3J0cyBmb3IgY29weWluZyB0byB0aGUgY2xpcGJvYXJkIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VEtfVFlQRV9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbGFncykpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9QQVNURV9UQVJHRVRfTElTVCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hlZCgicGFzdGUtdGFy
Z2V0LWxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJUYXJnZXQgbGlzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBidWZmZXIg
c3VwcG9ydHMgZm9yIHBhc3RpbmcgdG8gdGhlIGNsaXBib2FyZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfVEFSR0VUX0xJ
U1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ3MpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKQEAgLTg0Miw2ICs4ODYsMjIgQEAKICAgICBHVEtfV0lER0VUX1NF
VF9GTEFHUyh3ZWJWaWV3LCBHVEtfQ0FOX0ZPQ1VTKTsKICAgICB3ZWJWaWV3RGF0YS0+bWFpbkZy
YW1lID0gV0VCS0lUX1dFQl9GUkFNRSh3ZWJraXRfd2ViX2ZyYW1lX25ldyh3ZWJWaWV3KSk7CiAg
ICAgd2ViVmlld0RhdGEtPmVkaXRhYmxlID0gZmFsc2U7CisKKyNpZiBHTElCX0NIRUNLX1ZFUlNJ
T04oMiwxMCwwKQorICAgIEdka0F0b20gdGV4dEh0bWwgPSBnZGtfYXRvbV9pbnRlcm5fc3RhdGlj
X3N0cmluZygidGV4dC9odG1sIik7CisjZWxzZQorICAgIEdka0F0b20gdGV4dEh0bWwgPSBnZGtf
YXRvbV9pbnRlcm4oInRleHQvaHRtbCIsIGZhbHNlKTsKKyNlbmRpZgorICAgIC8qIFRhcmdldHMg
Zm9yIGNvcHkgKi8KKyAgICB3ZWJWaWV3RGF0YS0+Y29weV90YXJnZXRfbGlzdCA9IGd0a190YXJn
ZXRfbGlzdF9uZXcoTlVMTCwgMCk7ICAKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKHdlYlZpZXdE
YXRhLT5jb3B5X3RhcmdldF9saXN0LCB0ZXh0SHRtbCwgR1RLX1RBUkdFVF9PVEhFUl9BUFAsIFdF
QktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRk
X3RleHRfdGFyZ2V0cyh3ZWJWaWV3RGF0YS0+Y29weV90YXJnZXRfbGlzdCwgV0VCS0lUX1dFQl9W
SUVXX1RBUkdFVF9JTkZPX1RFWFQpOworCisgICAgLyogVGFyZ2V0cyBmb3IgcGFzdGluZyAqLwor
ICAgIHdlYlZpZXdEYXRhLT5wYXN0ZV90YXJnZXRfbGlzdCA9IGd0a190YXJnZXRfbGlzdF9uZXco
TlVMTCwgMCk7ICAKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKHdlYlZpZXdEYXRhLT5wYXN0ZV90
YXJnZXRfbGlzdCwgdGV4dEh0bWwsIEdUS19UQVJHRVRfT1RIRVJfQVBQLCBXRUJLSVRfV0VCX1ZJ
RVdfVEFSR0VUX0lORk9fSFRNTCk7CisgICAgZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3Rhcmdl
dHMod2ViVmlld0RhdGEtPnBhc3RlX3RhcmdldF9saXN0LCBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fVEVYVCk7CisKIH0KIAogR3RrV2lkZ2V0KiB3ZWJraXRfd2ViX3ZpZXdfbmV3KHZvaWQp
CkBAIC0xMTA2LDQgKzExNjYsNDIgQEAKICAgICAgICAgbWFpbkZyYW1lLT5yZW1vdmVFZGl0aW5n
U3R5bGVGcm9tQm9keUVsZW1lbnQoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2NvcHlfdGFyZ2V0X2xpc3Q6CisgKiBAYnVmZmVyOiBhICNXZWJLaXRXZWJWaWV3CisgKgorICog
VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyB0ZXh0IGJ1ZmZl
ciBjYW4KKyAqIHByb3ZpZGUgZm9yIGNsaXBib2FyZCBjb3B5aW5nIGFuZCBhcyBETkQgc291cmNl
LiBUaGUgdGFyZ2V0cyBpbiB0aGUgbGlzdCBhcmUKKyAqIGFkZGVkIHdpdGggJWluZm8gdmFsdWVz
IGZyb20gdGhlICNXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyBlbnVtLAorICogdXNpbmcgZ3RrX3Rh
cmdldF9saXN0X2FkZCgpIGFuZAorICogZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3RhcmdldHMo
KS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSAjR3RrVGFyZ2V0TGlzdAorICoqLworR3RrVGFy
Z2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpIHsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIE5VTEwpOworICAgIAorICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJW
aWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1
cm4gd2ViVmlld0RhdGEtPmNvcHlfdGFyZ2V0X2xpc3Q7CiB9CisKKy8qKgorICogd2Via2l0X3dl
Yl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdDoKKyAqIEBidWZmZXI6IGEgI1dlYktpdFdlYlZp
ZXcKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxpc3Qgb2YgdGFyZ2V0cyB0aGlz
IHRleHQgYnVmZmVyIGNhbgorICogcHJvdmlkZSBmb3IgY2xpcGJvYXJkIHBhc3RpbmcgYW5kIGFz
IERORCBkZXN0aW5hdGlvbi4gVGhlIHRhcmdldHMgaW4gdGhlIGxpc3QgYXJlCisgKiBhZGRlZCB3
aXRoICVpbmZvIHZhbHVlcyBmcm9tIHRoZSAjV2ViS2l0V2ViVmlld1RhcmdldEluZm8gZW51bSwK
KyAqIHVzaW5nIGd0a190YXJnZXRfbGlzdF9hZGQoKSBhbmQKKyAqIGd0a190YXJnZXRfbGlzdF9h
ZGRfdGV4dF90YXJnZXRzKCkuCisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgI0d0a1RhcmdldExp
c3QKKyAqKi8KK0d0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0
X2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldykgeworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7CisgICAgCisgICAgV2ViS2l0V2Vi
Vmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKHdl
YlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+cGFzdGVfdGFyZ2V0X2xpc3Q7Cit9CisK
K30KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHAJKHJldmlzaW9uIDI4ODg2
KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlckd0ay5oIgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTAyLDQgKzEwNCw2IEBACiAgICAgV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJhc2VQYXRoKGRhdGFiYXNlRGlyZWN0
b3J5KTsKICAgICBnX2ZyZWUoZGF0YWJhc2VEaXJlY3RvcnkpOwogI2VuZGlmCisKKyAgICBQYXN0
ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT5zZXRIZWxwZXIobmV3IFdlYktpdDo6UGFzdGVi
b2FyZEhlbHBlckd0aygpKTsKIH0KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAko
cmV2aXNpb24gMjg4ODYpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSwxMiBAQAogICAgIFdFQktJVF9OQVZJR0FUSU9OX1JF
U1BPTlNFX0RPV05MT0FECiB9IFdlYktpdE5hdmlnYXRpb25SZXNwb25zZTsKIAordHlwZWRlZiBl
bnVtCit7CisgICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwgPSAtIDEsCisgICAg
V0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQgPSAtIDIKK30gV2ViS2l0V2ViVmlld1Rh
cmdldEluZm87CiAKLQogc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKICAgICBHdGtDb250YWluZXIg
cGFyZW50OwogfTsKQEAgLTEzNyw2ICsxNDEsMTIgQEAKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X3dlYl92aWV3X3NldF9lZGl0YWJsZSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGdib29sZWFu
IGZsYWcpOwogCitXRUJLSVRfQVBJIEd0a1RhcmdldExpc3QqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2NvcHlfdGFyZ2V0X2xpc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldyk7CisKK1dFQktJVF9BUEkg
R3RrVGFyZ2V0TGlzdCoKK3dlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QoV2Vi
S2l0V2ViVmlldyogd2ViVmlldyk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2Vi
S2l0L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYlZpZXcvd2Via2l0cHJpdmF0ZS5oCShyZXZpc2lvbiAyODg4NikKKysrIFdlYktpdC9ndGsv
V2ViVmlldy93ZWJraXRwcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDkgQEAK
ICAgICAgICAgSGFzaFNldDxHdGtXaWRnZXQqPiBjaGlsZHJlbjsKICAgICAgICAgYm9vbCBlZGl0
YWJsZTsKICAgICAgICAgR3RrSU1Db250ZXh0KiBpbUNvbnRleHQ7CisKKyAgICAgICAgR3RrVGFy
Z2V0TGlzdCogY29weV90YXJnZXRfbGlzdDsKKyAgICAgICAgR3RrVGFyZ2V0TGlzdCogcGFzdGVf
dGFyZ2V0X2xpc3Q7CiAgICAgfTsKIAogICAgICNkZWZpbmUgV0VCS0lUX1dFQl9GUkFNRV9HRVRf
UFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJ
VF9UWVBFX1dFQl9GUkFNRSwgV2ViS2l0V2ViRnJhbWVQcml2YXRlKSkKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCShyZXZpc2lvbiAyODg4NikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw1MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8qIEZJWE1FOiB3ZSBtdXN0IGdldCBy
aWQgb2YgdGhpcyBhbmQgdXNlIHRoZSBlbnVtIGluIHdlYmtpdHdlYnZpZXcuaCBzb21ld2F5ICov
Cit0eXBlZGVmIGVudW0KK3sKKyAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCA9
IC0gMSwKKyAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCA9IC0gMgorfSBXZWJL
aXRXZWJWaWV3VGFyZ2V0SW5mbzsKKworY2xhc3MgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEgewor
cHVibGljOgorICAgIFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKGdjaGFyKiB0ZXh0LCBnY2hhciog
bWFya3VwKQorICAgICAgICA6IG1fdGV4dCh0ZXh0KQorICAgICAgICAsIG1fbWFya3VwKG1hcmt1
cCkgeyB9CisKKyAgICB+UGFzdGVib2FyZFNlbGVjdGlvbkRhdGEoKSB7CisgICAgICAgIGdfZnJl
ZShtX3RleHQpOworICAgICAgICBnX2ZyZWUobV9tYXJrdXApOworICAgIH0KKyAgICAKKyAgICBj
b25zdCBnY2hhciogdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQorICAgIGNvbnN0IGdj
aGFyKiBtYXJrdXAoKSBjb25zdCB7IHJldHVybiBtX21hcmt1cDsgfSAgICAKKworcHJpdmF0ZToK
KyAgICBnY2hhciogbV90ZXh0OworICAgIGdjaGFyKiBtX21hcmt1cDsKK307CisKK3N0YXRpYyB2
b2lkIGNsaXBib2FyZF9nZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkICpjbGlwYm9hcmQsIEd0
a1NlbGVjdGlvbkRhdGEgKnNlbGVjdGlvbl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKSB7CisgICAgUGFzdGVib2Fy
ZFNlbGVjdGlvbkRhdGEqIGNsaXBib2FyZERhdGEgPSByZWludGVycHJldF9jYXN0PFBhc3RlYm9h
cmRTZWxlY3Rpb25EYXRhKj4oZGF0YSk7CisgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOworICAg
IGlmICgoZ2ludClpbmZvID09IFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MKSB7Cisg
ICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2VsZWN0aW9uX2RhdGEsIHNlbGVjdGlvbl9k
YXRhLT50YXJnZXQsIDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBndWNoYXIqPihjbGlwYm9hcmREYXRhLT5tYXJrdXAoKSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ191dGY4X3N0cmxlbihjbGlwYm9hcmREYXRhLT5tYXJr
dXAoKSwgLTEpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldF90
ZXh0KHNlbGVjdGlvbl9kYXRhLCBjbGlwYm9hcmREYXRhLT50ZXh0KCksIC0xKTsKK30KKworc3Rh
dGljIHZvaWQgY2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCAqY2xpcGJv
YXJkLCBncG9pbnRlciBkYXRhKSB7CisgICAgUGFzdGVib2FyZFNlbGVjdGlvbkRhdGEqIGNsaXBi
b2FyZERhdGEgPSByZWludGVycHJldF9jYXN0PFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKj4oZGF0
YSk7CisgICAgQVNTRVJUKGNsaXBib2FyZERhdGEpOworICAgIGRlbGV0ZSBjbGlwYm9hcmREYXRh
OworfQorCisKIFBhc3RlYm9hcmQqIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkKIHsK
ICAgICBzdGF0aWMgUGFzdGVib2FyZCogcGFzdGVib2FyZCA9IG5ldyBQYXN0ZWJvYXJkKCk7CkBA
IC00NywxNSArOTIsMjYgQEAKIAogUGFzdGVib2FyZDo6flBhc3RlYm9hcmQoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgZGVsZXRlIG1faGVscGVyOwogfQogCit2b2lkIFBhc3RlYm9h
cmQ6OnNldEhlbHBlcihQYXN0ZWJvYXJkSGVscGVyKiBoZWxwZXIpCit7CisgICAgbV9oZWxwZXIg
PSBoZWxwZXI7Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNl
bGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNw
bGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsK
LQotICAgIFN0cmluZyB0ZXh0ID0gZnJhbWUtPnNlbGVjdGVkVGV4dCgpOwotICAgIGd0a19jbGlw
Ym9hcmRfc2V0X3RleHQoY2xpcGJvYXJkLCB0ZXh0LnV0ZjgoKS5kYXRhKCksIHRleHQudXRmOCgp
Lmxlbmd0aCgpKTsKKyAgICBnY2hhciogdGV4dCA9IGdfc3RyZHVwKGZyYW1lLT5zZWxlY3RlZFRl
eHQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBnY2hhciogbWFya3VwID0gZ19zdHJkdXAoY3JlYXRl
TWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpLnV0ZjgoKS5k
YXRhKCkpOworICAgIFBhc3RlYm9hcmRTZWxlY3Rpb25EYXRhKiBkYXRhID0gbmV3IFBhc3RlYm9h
cmRTZWxlY3Rpb25EYXRhKHRleHQsIG1hcmt1cCk7CisgCisgICAgZ2ludCBuX3RhcmdldHM7Cisg
ICAgR3RrVGFyZ2V0RW50cnkqIHRhcmdldHMgPSBndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xp
c3QobV9oZWxwZXItPmdldENvcHlUYXJnZXRMaXN0KGZyYW1lKSwgJm5fdGFyZ2V0cyk7CisgICAg
R3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBtX2hlbHBlci0+Z2V0Q2xpcGJvYXJkKGZyYW1lKTsK
KyAgICBndGtfY2xpcGJvYXJkX3NldF93aXRoX2RhdGEoY2xpcGJvYXJkLCB0YXJnZXRzLCBuX3Rh
cmdldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZF9nZXRfY29u
dGVudHNfY2IsIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYiwgZGF0YSk7CisgICAgZ3RrX3Rh
cmdldF90YWJsZV9mcmVlKHRhcmdldHMsIG5fdGFyZ2V0cyk7CiB9CiAKIHZvaWQgUGFzdGVib2Fy
ZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKQEAgLTEwNCw3
ICsxNjAsNyBAQAogI2Vsc2UKICAgICBHZGtBdG9tIHRleHRIdG1sID0gZ2RrX2F0b21faW50ZXJu
KCJ0ZXh0L2h0bWwiLCBmYWxzZSk7CiAjZW5kaWYKLSAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2Fy
ZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9kZWZhdWx0
KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKKyAgICBHdGtDbGlwYm9hcmQqIGNsaXBib2Fy
ZCA9IG1faGVscGVyLT5nZXRDbGlwYm9hcmQoZnJhbWUpOwogICAgIGNob3NlUGxhaW5UZXh0ID0g
ZmFsc2U7CiAKICAgICBpZiAoR3RrU2VsZWN0aW9uRGF0YSogZGF0YSA9IGd0a19jbGlwYm9hcmRf
d2FpdF9mb3JfY29udGVudHMoY2xpcGJvYXJkLCB0ZXh0SHRtbCkpIHsKQEAgLTEzNSw5ICsxOTEs
OSBAQAogICAgIHJldHVybiAwOwogfQogCi1TdHJpbmcgUGFzdGVib2FyZDo6cGxhaW5UZXh0KEZy
YW1lKikKK1N0cmluZyBQYXN0ZWJvYXJkOjpwbGFpblRleHQoRnJhbWUqIGZyYW1lKQogewotICAg
IEd0a0NsaXBib2FyZCogY2xpcGJvYXJkID0gZ3RrX2NsaXBib2FyZF9nZXRfZm9yX2Rpc3BsYXko
Z2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpOworICAg
IEd0a0NsaXBib2FyZCogY2xpcGJvYXJkID0gbV9oZWxwZXItPmdldENsaXBib2FyZChmcmFtZSk7
CiAKICAgICBnY2hhciogdXRmOCA9IGd0a19jbGlwYm9hcmRfd2FpdF9mb3JfdGV4dChjbGlwYm9h
cmQpOwogCkBAIC0xNDksNCArMjA1LDUgQEAKIAogICAgIHJldHVybiB0ZXh0OwogfQorCiB9Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEx1Y2EgQnJ1bm8gPGxl
dGhhbG1hbjg4QGdtYWlsLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFBhc3RlYm9hcmRIZWxwZXJfaAorI2RlZmluZSBQYXN0ZWJvYXJkSGVscGVyX2gKKworLyogCisg
KiBGSVhNRTogdGhpcyBpcyBmb3IgV2ViQ29yZSBzdXBwb3J0IGFuZCBtdXN0IGJlIHJlbW92ZWQg
b25jZQorICogYSBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmQKKyAqLworCisjaW5jbHVkZSAiRnJh
bWUuaCIKKworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBQYXN0ZWJvYXJkSGVscGVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QYXN0ZWJvYXJk
SGVscGVyKCkge307CisKKyAgICB2aXJ0dWFsIEd0a0NsaXBib2FyZCogZ2V0Q2xpcGJvYXJkKEZy
YW1lKikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgR3RrVGFyZ2V0TGlzdCogZ2V0Q29weVRhcmdl
dExpc3QoRnJhbWUqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBHdGtUYXJnZXRMaXN0KiBnZXRQ
YXN0ZVRhcmdldExpc3QoRnJhbWUqKSBjb25zdCA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBQ
YXN0ZWJvYXJkSGVscGVyX2gKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCShyZXZpc2lvbiAyODg4
NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCisjaWYg
UExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPFBhc3RlYm9hcmRIZWxwZXIuaD4KKyNlbmRpZgorCiAv
LyBGSVhNRTogVGhpcyBjbGFzcyBpcyB0b28gaGlnaC1sZXZlbCB0byBiZSBpbiB0aGUgcGxhdGZv
cm0gZGlyZWN0b3J5LCBzaW5jZSBpdAogLy8gdXNlcyB0aGUgRE9NIGFuZCBtYWtlcyBjYWxscyB0
byBFZGl0b3IuIEl0IHNob3VsZCBlaXRoZXIgYmUgZGl2ZXN0ZWQgb2YgaXRzCiAvLyBrbm93bGVk
Z2Ugb2YgdGhlIGZyYW1lIGFuZCBlZGl0b3Igb3IgbW92ZWQgaW50byB0aGUgZWRpdGluZyBkaXJl
Y3RvcnkuCkBAIC04OCw2ICs5MiwxMCBAQAogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBhc3NSZWZQdHI8UmFuZ2U+LCBib29sIGFsbG93
UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7CiAgICAgU3RyaW5nIHBsYWluVGV4dChG
cmFtZSogPSAwKTsKIAorI2lmIFBMQVRGT1JNKEdUSykKKyAgICB2b2lkIHNldEhlbHBlcihQYXN0
ZWJvYXJkSGVscGVyKik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBQYXN0ZWJvYXJkKCk7CiAg
ICAgflBhc3RlYm9hcmQoKTsKQEAgLTEwMCw2ICsxMDgsMTEgQEAKICNpZiBQTEFURk9STShXSU4p
CiAgICAgSFdORCBtX293bmVyOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCisgICAgUGFz
dGVib2FyZEhlbHBlciogbV9oZWxwZXI7CisjZW5kaWYKKwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUucHJvCShyZXZpc2lvbiAyODg4NikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTk1MSw2ICs5NTEsNyBAQAogZ3RrLXBvcnQgewogICAgIEhFQURFUlMg
Kz0gXAogICAgICAgICAuLi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuaCBcCisg
ICAgICAgIC4uL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaCBcCiAgICAg
ICAgIC4uL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXQuaCBcCiAgICAgICAgIC4uL1dlYktpdC9n
dGsvV2ViVmlldy93ZWJraXRkZWZpbmVzLmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL1dlYlZp
ZXcvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBcCkBAIC05NjMsNyArOTY0LDggQEAKICAgICAgICAg
Li4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmggXAogICAgICAgICAu
Li9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwKICAgICAgICAg
Li4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIFwKLSAg
ICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaAor
ICAgICAgICAuLi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5o
IFwKKyAgICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVy
R3RrLmgKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5n
VHJ1bmNhdG9yLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBc
CkBAIC0xMDM4LDcgKzEwNDAsOCBAQAogICAgICAgICAuLi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0RyYWdDbGllbnRHdGsuY3BwIFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAotICAgICAgICAuLi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKyAgICAgICAgLi4vV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIFwKKyAgICAgICAgLi4v
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcAogfQogCiBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQUJBU0U9MSkgewpJbmRleDogV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODg2KQor
KysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAw
Ny0xMi0xOCAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMxMQorCVtHdGtdIENvcHkgcmljaCB0ZXh0IHRvIGNsaXBi
b2FyZCBhcyB0ZXh0L3BsYWluIGFuZCB0ZXh0L2h0bWwuCisKKwlHZXQgdGhlIHJpZ2h0IGNsaXBi
b2FyZCBoYXZpbmcgdGhlIFdlYlZpZXcgZGlzcGxheS4KKworICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OnNldEhlbHBlcik6IGFkZGVkIGZvciBHVEsJCisJKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6Om1faGVscGVyKTogcHJpdmF0ZSBhZGRlZCBmb3IgR1RLCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZFNlbGVj
dGlvbkRhdGEpOiBhZGRlZCB0byBzdXBwb3J0IEdUSyBzZWxlY3Rpb24gZGF0YSBjYWxsYmFjawor
ICAgICAgICAoV2ViQ29yZTo6Y2xpcGJvYXJkX2dldF9jb250ZW50c19jYik6IGFkZGVkCisgICAg
ICAgIChXZWJDb3JlOjpjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IpOiBhZGRlZAorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6flBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0SGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Ondy
aXRlU2VsZWN0aW9uKTogY29weSByaWNoIHRleHQKKwkoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZG9j
dW1lbnRGcmFnbWVudCk6IAorCShXZWJDb3JlOjpQYXN0ZWJvYXJkOjpwbGFpblRleHQpOiAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oOiBBZGRlZC4KKwogMjAwNy0x
Mi0xOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE9saXZlciBIdW50Lgo=
</data>
<flag name="review"
          id="7810"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>