<?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>114597</bug_id>
          
          <creation_ts>2013-04-14 16:20:45 -0700</creation_ts>
          <short_desc>Move Mac specific snapshotting code into its own file</short_desc>
          <delta_ts>2013-04-14 16:30:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875417</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-14 16:20:45 -0700</bug_when>
    <thetext>Move Mac specific snapshotting code into its own file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875418</commentid>
    <comment_count>1</comment_count>
      <attachid>198014</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-14 16:22:39 -0700</bug_when>
    <thetext>Created attachment 198014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875419</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-14 16:30:51 -0700</bug_when>
    <thetext>Committed r148413: &lt;http://trac.webkit.org/changeset/148413&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198014</attachid>
            <date>2013-04-14 16:22:39 -0700</date>
            <delta_ts>2013-04-14 16:23:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114597-20130414162214.patch</filename>
            <type>text/plain</type>
            <size>26075</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODQxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTA0LTE0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBNYWMgc3BlY2lmaWMgc25hcHNo
b3R0aW5nIGNvZGUgaW50byBpdHMgb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9N
Lm1tOgorICAgICAgICAoLVtET01SYW5nZSByZW5kZXJlZEltYWdlRm9yY2luZ0JsYWNrVGV4dDpd
KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9tYWMvRnJhbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bm9kZUltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvbWFjL0Zy
YW1lU25hcHNob3R0aW5nTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvbWFjL0ZyYW1lU25h
cHNob3R0aW5nTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmltYWdlRnJvbVJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6c2VsZWN0aW9uSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
cmFuZ2VJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzbmFwc2hvdERyYWdJbWFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZE1hYzo6ZHJhZ05TSW1hZ2UpOgorICAgICAgICBNb3ZlIHRoZSBmb3VyIE1hYyBzcGVj
aWZpYyBzbmFwc2hvdHRpbmcgZnVuY3Rpb25zIGluIEZyYW1lLmggaW50byBGcmFtZVNuYXBzaG90
dGluZ01hYy5oL21tIGFuZCB0dXJuCisgICAgICAgIHRoZW0gaW50byBmcmVlIHN0YW5kaW5nIGZ1
bmN0aW9ucy4KKwogMjAxMy0wNC0xNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgSGF3dGZpeCBNYWMgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
cmV2aXNpb24gMTQ4Mzc5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTI5Myw2ICsyOTMsNyBAQCBfX1pON1dlYkNvcmUxNERvY3VtZW50TG9hZGVy
MThhZGRBcmNoaXZlCiBfX1pON1dlYkNvcmUxNEZvcm1Db250cm9sbGVyMjJnZXRSZWZlcmVuY2Vk
RmlsZVBhdGhzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3Zl
cmZsb3dFRUUKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXIzMmRpZENhbmNlbEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRVJLTlNfMjNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUUKIF9fWk43V2Vi
Q29yZTE0Y29va2llc0VuYWJsZWRFUktOU18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVSS05TXzRL
VVJMRVM1XworX19aTjdXZWJDb3JlMTRzZWxlY3Rpb25JbWFnZUVQTlNfNUZyYW1lRWIKIF9fWk43
V2ViQ29yZTE2U2NyaXB0Q29udHJvbGxlcjE3amF2YVNjcmlwdENvbnRleHRFdgogX19aTjdXZWJD
b3JlMTdzZXRDb29raWVzRnJvbURPTUVSS05TXzIxTmV0d29ya1N0b3JhZ2VTZXNzaW9uRVJLTlNf
NEtVUkxFUzVfUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMU5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjIxZGVmYXVsdFN0b3JhZ2VTZXNzaW9uRXYKQEAgLTE0ODcsNyArMTQ4OCw2IEBAIF9fWk5L
N1dlYkNvcmU0Tm9kZTl0ZXh0UmVjdHNFUk4zV1RGNlZlY3QKIF9fWk5LN1dlYkNvcmU1Q29sb3I3
Z2V0UkdCQUVSZFMxX1MxX1MxXwogX19aTks3V2ViQ29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBf
X1pOSzdXZWJDb3JlNUZyYW1lMTNvd25lclJlbmRlcmVyRXYKLV9fWk5LN1dlYkNvcmU1RnJhbWUx
NHNlbGVjdGlvbkltYWdlRWIKIF9fWk5LN1dlYkNvcmU1RnJhbWUxNWNvbnRlbnRSZW5kZXJlckV2
CiBfX1pOSzdXZWJDb3JlNUZyYW1lMTVsYXllclRyZWVBc1RleHRFagogX19aTks3V2ViQ29yZTVG
cmFtZTE2ZnJhbWVTY2FsZUZhY3RvckV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDgzNzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE5OTUsNiArMTk5NSw4IEBACiAJCTdBRkQ0QThCMTEzMUMyNzYwMDM1Qjg4MyAvKiBT
Y3JpcHRCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QUZENEE4QTExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdBRkQ0RkY0
MTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEZGMzExMzI3N0I2MDAzNUI4ODMg
LyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDNTIyRDRCMTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JP
dmVybGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDNTIyRDQ5MTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLzsgfTsK
KwkJN0NFMzBEQTkxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFMzBEQTcxNzFC
NjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLm1tICovOyB9OworCQk3Q0UzMERB
QTE3MUI2M0QyMDBFQzMzRTEgLyogRnJhbWVTbmFwc2hvdHRpbmdNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTMwREE4MTcxQjYzRDIwMEVDMzNF
MSAvKiBGcmFtZVNuYXBzaG90dGluZ01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdFMTJFOTBGMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21G
aWx0ZXJNZXNoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RTEyRTkwRDE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdl
bmVyYXRvci5oICovOyB9OwogCQk3RTEyRTkxMDE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmls
dGVyTWVzaEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdl
bmVyYXRvci5jcHAgKi87IH07CiAJCTdFMzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVBy
aW9yaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NDI4LDYgKzg0MzAsOCBAQAog
CQk3QzYxMzZGNzE3MTBDMzUyMDBGRjRBNTcgLyogSW5GaWxlc0NvbXBpbGVyLnBtICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVy
bDsgbmFtZSA9IEluRmlsZXNDb21waWxlci5wbTsgcGF0aCA9IHNjcmlwdHMvSW5GaWxlc0NvbXBp
bGVyLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzYxMzZGODE3MTBDMzUyMDBG
RjRBNTcgLyogSW5GaWxlc1BhcnNlci5wbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IG5hbWUgPSBJbkZpbGVzUGFyc2Vy
LnBtOyBwYXRoID0gc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzYxMzZGOTE3MTBDMzUyMDBGRjRBNTcgLyogU3RhdGljU3RyaW5nLnBtICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucGVybDsgbmFtZSA9IFN0YXRpY1N0cmluZy5wbTsgcGF0aCA9IHNjcmlwdHMvU3RhdGljU3Ry
aW5nLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0UzMERBNzE3MUI2M0QyMDBF
QzMzRTEgLyogRnJhbWVTbmFwc2hvdHRpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0NFMzBEQTgxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0
aW5nTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lU25hcHNob3R0
aW5nTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMTJFOTBEMTVGQTVEM0Ew
MDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaDsgcGF0aCA9IGZpbHRl
cnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJN
ZXNoR2VuZXJhdG9yLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzNDRDAwMTI3RjM0MEQwMEJF
OEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFB1cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzE3LDYg
KzE1NzIxLDggQEAKIAkJCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gKi8sCiAJCQkJOTNDMDlBN0UwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxl
ck1hYy5tbSAqLywKIAkJCQk2NUJGMDIzQzA5NzQ4MTkwMDBDNDMxOTYgLyogRnJhbWVNYWMubW0g
Ki8sCisJCQkJN0NFMzBEQTgxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFj
LmggKi8sCisJCQkJN0NFMzBEQTcxNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5n
TWFjLm1tICovLAogCQkJCTFDMjY0OTdCMEQ3RTI0RUMwMEJEMTBGMiAvKiBQYWdlTWFjLmNwcCAq
LywKIAkJCQlFMUMyRjI0ODE1MzNBMjEyMDA4M0Y5NzQgLyogU2V0dGluZ3NNYWMubW0gKi8sCiAJ
CQkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLywKQEAg
LTIzMzA2LDYgKzIzMzEyLDcgQEAKIAkJCQk4QzZFQTYxQTExRUY3RTA0MDBGRDhFRTMgLyogUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQ0IwRUY4NkQ0
NzAwOUQwQ0FGIC8qIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3Q0UzMERBQTE3MUI2M0QyMDBFQzMzRTEgLyogRnJhbWVTbmFwc2hvdHRpbmdN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hl
bWVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJEMEJGOTMxMkE0MkJGNTAwNzJGRDQz
IC8qIFNjb3BlZEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUMwMUJFMEMyNzRE
QUMwMDlGNEVDOSAvKiBTY3JlZW4uaCBpbiBIZWFkZXJzICovLApAQCAtMjYzMzUsNiArMjYzNDIs
NyBAQAogCQkJCUJDRUE0ODg4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUaGVtZU1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFFNTAwODQ4MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5kZXJUaGVt
ZU1hY1NoYXJlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUQ1MDgyNDVFNTkwMDFFOUFC
QyAvKiBSZW5kZXJUcmVlQXNUZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDRTMwREE5MTcx
QjYzRDIwMEVDMzNFMSAvKiBGcmFtZVNuYXBzaG90dGluZ01hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUU0NDYxNDUxMENENjhBMzUwMEZBREE3NSAvKiBSZW5kZXJWaWRlby5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0VBNDg2NzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVmlldy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODcxREZFNTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyV2lkZ2V0
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T00ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0J
KHJldmlzaW9uIDE0ODM3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJET01SYW5nZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJGb250LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgorI2ltcG9ydCAiRnJh
bWVTbmFwc2hvdHRpbmdNYWMuaCIKICNpbXBvcnQgIkhUTUxFbGVtZW50LmgiCiAjaW1wb3J0ICJI
VE1MTmFtZXMuaCIKICNpbXBvcnQgIkhUTUxQYXJzZXJJZGlvbXMuaCIKQEAgLTMyOCw3ICszMjks
NyBAQCAtIChOU0ltYWdlICopcmVuZGVyZWRJbWFnZUZvcmNpbmdCbGFja1RlCiAgICAgaWYgKCFm
cmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHJldHVybiBmcmFtZS0+cmFuZ2VJbWFn
ZShyYW5nZSwgZm9yY2VCbGFja1RleHQpOworICAgIHJldHVybiBXZWJDb3JlOjpyYW5nZUltYWdl
KGZyYW1lLCByYW5nZSwgZm9yY2VCbGFja1RleHQpOwogfQogCiAtIChOU0FycmF5ICopdGV4dFJl
Y3RzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCShyZXZpc2lvbiAxNDgzNzkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCwxMiArMTkwLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTdHJpbmcgc2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxl
bWVudChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzLCBFbGVtZW50Kiwgc2l6ZV90KiByZXN1
bHREaXN0YW5jZSwgYm9vbCogcmVzdWx0SXNJbkNlbGxBYm92ZSk7CiAgICAgICAgIFN0cmluZyBt
YXRjaExhYmVsc0FnYWluc3RFbGVtZW50KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYWJlbHMsIEVs
ZW1lbnQqKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgTlNJbWFnZSogc2VsZWN0aW9u
SW1hZ2UoYm9vbCBmb3JjZUJsYWNrVGV4dCA9IGZhbHNlKSBjb25zdDsKLSAgICAgICAgTlNJbWFn
ZSogcmFuZ2VJbWFnZShSYW5nZSosIGJvb2wgZm9yY2VCbGFja1RleHQgPSBmYWxzZSkgY29uc3Q7
Ci0gICAgICAgIE5TSW1hZ2UqIHNuYXBzaG90RHJhZ0ltYWdlKE5vZGUqLCBOU1JlY3QqIGltYWdl
UmVjdCwgTlNSZWN0KiBlbGVtZW50UmVjdCkgY29uc3Q7Ci0gICAgICAgIE5TSW1hZ2UqIGltYWdl
RnJvbVJlY3QoTlNSZWN0KSBjb25zdDsKLSNlbmRpZgogICAgICAgICB2b2lkIHN1c3BlbmRBY3Rp
dmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogICAgICAgICB2b2lkIHJlc3VtZUFjdGl2ZURP
TU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAgIGJvb2wgYWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zU3VzcGVuZGVkQ291bnQgPiAwOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9GcmFtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9GcmFtZU1hYy5tbQkocmV2aXNpb24gMTQ4Mzc5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRnJhbWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1OCArMjgsMTUgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiRnJhbWUuaCIKIAotI2ltcG9ydCAiQmxvY2tFeGNlcHRp
b25zLmgiCi0jaW1wb3J0ICJDb2xvck1hYy5oIgotI2ltcG9ydCAiQ3Vyc29yLmgiCi0jaW1wb3J0
ICJET01JbnRlcm5hbC5oIgotI2ltcG9ydCAiRXZlbnQuaCIKKyNpbXBvcnQgIkRvY3VtZW50Lmgi
CiAjaW1wb3J0ICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2ltcG9ydCAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbXBvcnQgIkZyYW1lU25hcHNob3R0aW5nTWFjLmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcu
aCIKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgotI2ltcG9ydCAiSFRNTE5hbWVzLmgiCi0j
aW1wb3J0ICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgotI2ltcG9ydCAiSGl0VGVzdFJlcXVlc3Qu
aCIKLSNpbXBvcnQgIkhpdFRlc3RSZXN1bHQuaCIKLSNpbXBvcnQgIktleWJvYXJkRXZlbnQuaCIK
LSNpbXBvcnQgIkxvZ2dpbmcuaCIKLSNpbXBvcnQgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMuaCIKLSNpbXBvcnQgIlBhZ2UuaCIKLSNpbXBvcnQgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgotI2ltcG9ydCAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCi0jaW1wb3J0ICJSZWd1bGFyRXhwcmVz
c2lvbi5oIgotI2ltcG9ydCAiUmVuZGVyVGFibGVDZWxsLmgiCi0jaW1wb3J0ICJSZW5kZXJWaWV3
LmgiCi0jaW1wb3J0ICJTY3JvbGxiYXIuaCIKLSNpbXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCi0j
aW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKLSNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQot
QGludGVyZmFjZSBOU1ZpZXcgKFdlYkNvcmVIVE1MRG9jdW1lbnRWaWV3KQotLSAodm9pZClkcmF3
U2luZ2xlUmVjdDooTlNSZWN0KXJlY3Q7Ci1AZW5kCi0gCi11c2luZyBuYW1lc3BhY2Ugc3RkOwor
I2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKLQotTlNJbWFnZSogRnJhbWU6OmltYWdlRnJvbVJlY3QoTlNS
ZWN0IHJlY3QpIGNvbnN0Ci17Ci0gICAgUGFpbnRCZWhhdmlvciBvbGRCZWhhdmlvciA9IG1fdmll
dy0+cGFpbnRCZWhhdmlvcigpOwotICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihvbGRCZWhh
dmlvciB8IFBhaW50QmVoYXZpb3JGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpOwotICAgIAotICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICAKLSAgICBOU0ltYWdlKiByZXN1bHRJ
bWFnZSA9IFtbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTpyZWN0LnNpemVdIGF1dG9yZWxl
YXNlXTsKLSAgICAKLSAgICBpZiAocmVjdC5zaXplLndpZHRoICE9IDAgJiYgcmVjdC5zaXplLmhl
aWdodCAhPSAwKSB7Ci0gICAgICAgIFtyZXN1bHRJbWFnZSBzZXRGbGlwcGVkOllFU107Ci0gICAg
ICAgIFtyZXN1bHRJbWFnZSBsb2NrRm9jdXNdOwotCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCBn
cmFwaGljc0NvbnRleHQoKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRD
b250ZXh0XSBncmFwaGljc1BvcnRdKTsgICAgICAgIAotICAgICAgICBncmFwaGljc0NvbnRleHQu
c2F2ZSgpOwotICAgICAgICBncmFwaGljc0NvbnRleHQudHJhbnNsYXRlKC1yZWN0Lm9yaWdpbi54
LCAtcmVjdC5vcmlnaW4ueSk7Ci0gICAgICAgIG1fdmlldy0+cGFpbnRDb250ZW50cygmZ3JhcGhp
Y3NDb250ZXh0LCBJbnRSZWN0KHJlY3QpKTsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnJlc3Rv
cmUoKTsKLQotICAgICAgICBbcmVzdWx0SW1hZ2UgdW5sb2NrRm9jdXNdOwotICAgICAgICBbcmVz
dWx0SW1hZ2Ugc2V0RmxpcHBlZDpOT107Ci0gICAgfQotICAgIAotICAgIG1fdmlldy0+c2V0UGFp
bnRCZWhhdmlvcihvbGRCZWhhdmlvcik7Ci0gICAgcmV0dXJuIHJlc3VsdEltYWdlOwotICAgIAot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgCi0gICAgbV92aWV3LT5zZXRQYWlu
dEJlaGF2aW9yKG9sZEJlaGF2aW9yKTsKLSAgICByZXR1cm4gbmlsOwotfQotCi1OU0ltYWdlKiBG
cmFtZTo6c2VsZWN0aW9uSW1hZ2UoYm9vbCBmb3JjZUJsYWNrVGV4dCkgY29uc3QKLXsKLSAgICBt
X3ZpZXctPnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkgfCAoZm9y
Y2VCbGFja1RleHQgPyBQYWludEJlaGF2aW9yRm9yY2VCbGFja1RleHQgOiAwKSk7Ci0gICAgbV9k
b2MtPnVwZGF0ZUxheW91dCgpOwotICAgIE5TSW1hZ2UqIHJlc3VsdCA9IGltYWdlRnJvbVJlY3Qo
c2VsZWN0aW9uKCktPmJvdW5kcygpKTsKLSAgICBtX3ZpZXctPnNldFBhaW50QmVoYXZpb3IoUGFp
bnRCZWhhdmlvck5vcm1hbCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotTlNJbWFnZSAqRnJh
bWU6OnJhbmdlSW1hZ2UoUmFuZ2UqIHJhbmdlLCBib29sIGZvcmNlQmxhY2tUZXh0KSBjb25zdAot
ewotICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yU2VsZWN0aW9uT25s
eSB8IChmb3JjZUJsYWNrVGV4dCA/IFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dCA6IDApKTsK
LSAgICBtX2RvYy0+dXBkYXRlTGF5b3V0KCk7Ci0gICAgUmVuZGVyVmlldyogdmlldyA9IGNvbnRl
bnRSZW5kZXJlcigpOwotICAgIGlmICghdmlldykKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IFBvc2l0aW9uIHN0YXJ0ID0gcmFuZ2UtPnN0YXJ0UG9zaXRpb24oKTsKLSAgICBQb3NpdGlvbiBj
YW5kaWRhdGUgPSBzdGFydC5kb3duc3RyZWFtKCk7Ci0gICAgaWYgKGNhbmRpZGF0ZS5kZXByZWNh
dGVkTm9kZSgpICYmIGNhbmRpZGF0ZS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpKQotICAg
ICAgICBzdGFydCA9IGNhbmRpZGF0ZTsKLQotICAgIFBvc2l0aW9uIGVuZCA9IHJhbmdlLT5lbmRQ
b3NpdGlvbigpOwotICAgIGNhbmRpZGF0ZSA9IGVuZC51cHN0cmVhbSgpOwotICAgIGlmIChjYW5k
aWRhdGUuZGVwcmVjYXRlZE5vZGUoKSAmJiBjYW5kaWRhdGUuZGVwcmVjYXRlZE5vZGUoKS0+cmVu
ZGVyZXIoKSkKLSAgICAgICAgZW5kID0gY2FuZGlkYXRlOwotCi0gICAgaWYgKHN0YXJ0LmlzTnVs
bCgpIHx8IGVuZC5pc051bGwoKSB8fCBzdGFydCA9PSBlbmQpCi0gICAgICAgIHJldHVybiBuaWw7
Ci0KLSAgICBSZW5kZXJPYmplY3QqIHNhdmVkU3RhcnRSZW5kZXJlcjsKLSAgICBpbnQgc2F2ZWRT
dGFydE9mZnNldDsKLSAgICBSZW5kZXJPYmplY3QqIHNhdmVkRW5kUmVuZGVyZXI7Ci0gICAgaW50
IHNhdmVkRW5kT2Zmc2V0OwotICAgIHZpZXctPmdldFNlbGVjdGlvbihzYXZlZFN0YXJ0UmVuZGVy
ZXIsIHNhdmVkU3RhcnRPZmZzZXQsIHNhdmVkRW5kUmVuZGVyZXIsIHNhdmVkRW5kT2Zmc2V0KTsK
LQotICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXJlciA9IHN0YXJ0LmRlcHJlY2F0ZWROb2Rl
KCktPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFzdGFydFJlbmRlcmVyKQotICAgICAgICByZXR1cm4g
bmlsOwotCi0gICAgUmVuZGVyT2JqZWN0KiBlbmRSZW5kZXJlciA9IGVuZC5kZXByZWNhdGVkTm9k
ZSgpLT5yZW5kZXJlcigpOwotICAgIGlmICghZW5kUmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICB2aWV3LT5zZXRTZWxlY3Rpb24oc3RhcnRSZW5kZXJlciwgc3RhcnQuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgZW5kUmVuZGVyZXIsIGVuZC5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBSZW5kZXJWaWV3OjpSZXBhaW50Tm90aGluZyk7Ci0gICAgTlNJbWFnZSogcmVzdWx0
ID0gaW1hZ2VGcm9tUmVjdCh2aWV3LT5zZWxlY3Rpb25Cb3VuZHMoKSk7Ci0gICAgdmlldy0+c2V0
U2VsZWN0aW9uKHNhdmVkU3RhcnRSZW5kZXJlciwgc2F2ZWRTdGFydE9mZnNldCwgc2F2ZWRFbmRS
ZW5kZXJlciwgc2F2ZWRFbmRPZmZzZXQsIFJlbmRlclZpZXc6OlJlcGFpbnROb3RoaW5nKTsKLQot
ICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yTm9ybWFsKTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1OU0ltYWdlKiBGcmFtZTo6c25hcHNob3REcmFnSW1hZ2UoTm9k
ZSogbm9kZSwgTlNSZWN0KiBpbWFnZVJlY3QsIE5TUmVjdCogZWxlbWVudFJlY3QpIGNvbnN0Ci17
Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgaWYg
KCFyZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICByZW5kZXJlci0+dXBk
YXRlRHJhZ1N0YXRlKHRydWUpOyAgICAvLyBtYXJrIGRyYWdnZWQgbm9kZXMgKHNvIHRoZXkgcGlj
ayB1cCB0aGUgcmlnaHQgQ1NTKQotICAgIG1fZG9jLT51cGRhdGVMYXlvdXQoKTsgICAgICAgIC8v
IGZvcmNlcyBzdHlsZSByZWNhbGMgLSBuZWVkZWQgc2luY2UgY2hhbmdpbmcgdGhlIGRyYWcgc3Rh
dGUgbWlnaHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbXBs
eSBuZXcgc3R5bGVzLCBwbHVzIEpTIGNvdWxkIGhhdmUgY2hhbmdlZCBvdGhlciB0aGluZ3MKLQot
Ci0gICAgLy8gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCBtYXkgaGF2ZSBibG93biBhd2F5IHRoZSBv
cmlnaW5hbCBSZW5kZXJPYmplY3QuCi0gICAgcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwot
ICAgIGlmICghcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBMYXlvdXRSZWN0
IHRvcExldmVsUmVjdDsKLSAgICBOU1JlY3QgcGFpbnRpbmdSZWN0ID0gcGl4ZWxTbmFwcGVkSW50
UmVjdChyZW5kZXJlci0+cGFpbnRpbmdSb290UmVjdCh0b3BMZXZlbFJlY3QpKTsKLQotICAgIG1f
dmlldy0+c2V0Tm9kZVRvRHJhdyhub2RlKTsgICAgICAgICAgICAgIC8vIGludm9rZSBzcGVjaWFs
IHN1Yi10cmVlIGRyYXdpbmcgbW9kZQotICAgIE5TSW1hZ2UqIHJlc3VsdCA9IGltYWdlRnJvbVJl
Y3QocGFpbnRpbmdSZWN0KTsKLSAgICByZW5kZXJlci0+dXBkYXRlRHJhZ1N0YXRlKGZhbHNlKTsK
LSAgICBtX2RvYy0+dXBkYXRlTGF5b3V0KCk7Ci0gICAgbV92aWV3LT5zZXROb2RlVG9EcmF3KDAp
OwotCi0gICAgaWYgKGVsZW1lbnRSZWN0KQotICAgICAgICAqZWxlbWVudFJlY3QgPSBwaXhlbFNu
YXBwZWRJbnRSZWN0KHRvcExldmVsUmVjdCk7Ci0gICAgaWYgKGltYWdlUmVjdCkKLSAgICAgICAg
KmltYWdlUmVjdCA9IHBhaW50aW5nUmVjdDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBEcmFn
SW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShOb2RlKiBub2RlKQogewogICAgIG1fZG9jLT51cGRh
dGVMYXlvdXQoKTsgLy8gZm9yY2VzIHN0eWxlIHJlY2FsYwpAQCAtMTkxLDcgKzQ4LDcgQEAgRHJh
Z0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9kZSogbm9kZQogICAgIE5TUmVjdCBwYWludGlu
Z1JlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlbmRlcmVyLT5wYWludGluZ1Jvb3RSZWN0KHRv
cExldmVsUmVjdCkpOwogCiAgICAgbV92aWV3LT5zZXROb2RlVG9EcmF3KG5vZGUpOyAvLyBpbnZv
a2Ugc3BlY2lhbCBzdWItdHJlZSBkcmF3aW5nIG1vZGUKLSAgICBOU0ltYWdlKiByZXN1bHQgPSBp
bWFnZUZyb21SZWN0KHBhaW50aW5nUmVjdCk7CisgICAgTlNJbWFnZSogcmVzdWx0ID0gaW1hZ2VG
cm9tUmVjdCh0aGlzLCBwYWludGluZ1JlY3QpOwogICAgIG1fdmlldy0+c2V0Tm9kZVRvRHJhdygw
KTsKIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0yMDEsNyArNTgsNyBAQCBEcmFnSW1hZ2VSZWYg
RnJhbWU6OmRyYWdJbWFnZUZvclNlbGVjdGlvCiB7CiAgICAgaWYgKCFzZWxlY3Rpb24oKS0+aXNS
YW5nZSgpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBzZWxlY3Rpb25JbWFnZSgp
OworICAgIHJldHVybiBzZWxlY3Rpb25JbWFnZSh0aGlzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVTbmFwc2hvdHRpbmdN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9GcmFtZVNuYXBzaG90
dGluZ01hYy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVT
bmFwc2hvdHRpbmdNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBGcmFtZVNuYXBzaG90dGluZ01hY19oCisjZGVmaW5lIEZyYW1lU25hcHNob3R0
aW5nTWFjX2gKKworT0JKQ19DTEFTUyBOU0ltYWdlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEZyYW1lOworY2xhc3MgUmFuZ2U7CitjbGFzcyBOb2RlOworCitOU0ltYWdlKiBzZWxl
Y3Rpb25JbWFnZShGcmFtZSosIGJvb2wgZm9yY2VCbGFja1RleHQgPSBmYWxzZSk7CitOU0ltYWdl
KiByYW5nZUltYWdlKEZyYW1lKiwgUmFuZ2UqLCBib29sIGZvcmNlQmxhY2tUZXh0ID0gZmFsc2Up
OworTlNJbWFnZSogc25hcHNob3REcmFnSW1hZ2UoRnJhbWUqLCBOb2RlKiwgTlNSZWN0KiBpbWFn
ZVJlY3QsIE5TUmVjdCogZWxlbWVudFJlY3QpOworTlNJbWFnZSogaW1hZ2VGcm9tUmVjdChGcmFt
ZSosIE5TUmVjdCk7CisKK30KKworI2VuZGlmIC8vIEZyYW1lU25hcHNob3R0aW5nTWFjX2gKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lU25hcHNob3R0aW5nTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lU25hcHNob3R0aW5nTWFjLm1t
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRnJhbWVTbmFwc2hvdHRp
bmdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDAgQEAKKy8vCisvLyAgRnJhbWVT
bmFwc2hvdHRpbmdNYWMubW0KKy8vICBXZWJDb3JlCisvLworLy8gIENyZWF0ZWQgYnkgU2FtIFdl
aW5pZyBvbiA0LzE0LzEzLgorLy8KKy8vCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RnJhbWVTbmFwc2hvdHRpbmdNYWMuaCIKKworI2ltcG9ydCAiQmxvY2tFeGNlcHRpb25zLmgiCisj
aW1wb3J0ICJEb2N1bWVudC5oIgorI2ltcG9ydCAiRnJhbWUuaCIKKyNpbXBvcnQgIkZyYW1lU2Vs
ZWN0aW9uLmgiCisjaW1wb3J0ICJGcmFtZVZpZXcuaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2ltcG9ydCAiUmFuZ2UuaCIKKyNpbXBvcnQgIlJlbmRlclZpZXcuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitOU0ltYWdlKiBpbWFnZUZyb21SZWN0KEZyYW1lKiBmcmFtZSwgTlNS
ZWN0IHJlY3QpCit7CisgICAgUGFpbnRCZWhhdmlvciBvbGRCZWhhdmlvciA9IGZyYW1lLT52aWV3
KCktPnBhaW50QmVoYXZpb3IoKTsKKyAgICBmcmFtZS0+dmlldygpLT5zZXRQYWludEJlaGF2aW9y
KG9sZEJlaGF2aW9yIHwgUGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycyk7Cisg
ICAgCisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIAorICAgIE5TSW1hZ2Uq
IHJlc3VsdEltYWdlID0gW1tbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOnJlY3Quc2l6ZV0g
YXV0b3JlbGVhc2VdOworICAgIAorICAgIGlmIChyZWN0LnNpemUud2lkdGggIT0gMCAmJiByZWN0
LnNpemUuaGVpZ2h0ICE9IDApIHsKKyAgICAgICAgW3Jlc3VsdEltYWdlIHNldEZsaXBwZWQ6WUVT
XTsKKyAgICAgICAgW3Jlc3VsdEltYWdlIGxvY2tGb2N1c107CisKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0IGdyYXBoaWNzQ29udGV4dCgoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOyAgICAgICAgCisgICAgICAgIGdyYXBoaWNz
Q29udGV4dC5zYXZlKCk7CisgICAgICAgIGdyYXBoaWNzQ29udGV4dC50cmFuc2xhdGUoLXJlY3Qu
b3JpZ2luLngsIC1yZWN0Lm9yaWdpbi55KTsKKyAgICAgICAgZnJhbWUtPnZpZXcoKS0+cGFpbnRD
b250ZW50cygmZ3JhcGhpY3NDb250ZXh0LCBJbnRSZWN0KHJlY3QpKTsKKyAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LnJlc3RvcmUoKTsKKworICAgICAgICBbcmVzdWx0SW1hZ2UgdW5sb2NrRm9jdXNd
OworICAgICAgICBbcmVzdWx0SW1hZ2Ugc2V0RmxpcHBlZDpOT107CisgICAgfQorICAgIAorICAg
IGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3IpOworICAgIHJldHVy
biByZXN1bHRJbWFnZTsKKyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IAorICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3IpOworICAg
IHJldHVybiBuaWw7Cit9CisKK05TSW1hZ2UqIHNlbGVjdGlvbkltYWdlKEZyYW1lKiBmcmFtZSwg
Ym9vbCBmb3JjZUJsYWNrVGV4dCkKK3sKKyAgICBmcmFtZS0+dmlldygpLT5zZXRQYWludEJlaGF2
aW9yKFBhaW50QmVoYXZpb3JTZWxlY3Rpb25Pbmx5IHwgKGZvcmNlQmxhY2tUZXh0ID8gUGFpbnRC
ZWhhdmlvckZvcmNlQmxhY2tUZXh0IDogMCkpOworICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRh
dGVMYXlvdXQoKTsKKyAgICBOU0ltYWdlKiByZXN1bHQgPSBpbWFnZUZyb21SZWN0KGZyYW1lLCBm
cmFtZS0+c2VsZWN0aW9uKCktPmJvdW5kcygpKTsKKyAgICBmcmFtZS0+dmlldygpLT5zZXRQYWlu
dEJlaGF2aW9yKFBhaW50QmVoYXZpb3JOb3JtYWwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K05TSW1hZ2UgKnJhbmdlSW1hZ2UoRnJhbWUqIGZyYW1lLCBSYW5nZSogcmFuZ2UsIGJvb2wgZm9y
Y2VCbGFja1RleHQpCit7CisgICAgZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWlu
dEJlaGF2aW9yU2VsZWN0aW9uT25seSB8IChmb3JjZUJsYWNrVGV4dCA/IFBhaW50QmVoYXZpb3JG
b3JjZUJsYWNrVGV4dCA6IDApKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
KCk7CisgICAgUmVuZGVyVmlldyogdmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKKyAg
ICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBQb3NpdGlvbiBzdGFydCA9
IHJhbmdlLT5zdGFydFBvc2l0aW9uKCk7CisgICAgUG9zaXRpb24gY2FuZGlkYXRlID0gc3RhcnQu
ZG93bnN0cmVhbSgpOworICAgIGlmIChjYW5kaWRhdGUuZGVwcmVjYXRlZE5vZGUoKSAmJiBjYW5k
aWRhdGUuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSkKKyAgICAgICAgc3RhcnQgPSBjYW5k
aWRhdGU7CisKKyAgICBQb3NpdGlvbiBlbmQgPSByYW5nZS0+ZW5kUG9zaXRpb24oKTsKKyAgICBj
YW5kaWRhdGUgPSBlbmQudXBzdHJlYW0oKTsKKyAgICBpZiAoY2FuZGlkYXRlLmRlcHJlY2F0ZWRO
b2RlKCkgJiYgY2FuZGlkYXRlLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkpCisgICAgICAg
IGVuZCA9IGNhbmRpZGF0ZTsKKworICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxs
KCkgfHwgc3RhcnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgUmVuZGVyT2Jq
ZWN0KiBzYXZlZFN0YXJ0UmVuZGVyZXI7CisgICAgaW50IHNhdmVkU3RhcnRPZmZzZXQ7CisgICAg
UmVuZGVyT2JqZWN0KiBzYXZlZEVuZFJlbmRlcmVyOworICAgIGludCBzYXZlZEVuZE9mZnNldDsK
KyAgICB2aWV3LT5nZXRTZWxlY3Rpb24oc2F2ZWRTdGFydFJlbmRlcmVyLCBzYXZlZFN0YXJ0T2Zm
c2V0LCBzYXZlZEVuZFJlbmRlcmVyLCBzYXZlZEVuZE9mZnNldCk7CisKKyAgICBSZW5kZXJPYmpl
Y3QqIHN0YXJ0UmVuZGVyZXIgPSBzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOwor
ICAgIGlmICghc3RhcnRSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIFJlbmRl
ck9iamVjdCogZW5kUmVuZGVyZXIgPSBlbmQuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsK
KyAgICBpZiAoIWVuZFJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgdmlldy0+
c2V0U2VsZWN0aW9uKHN0YXJ0UmVuZGVyZXIsIHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCksIGVuZFJlbmRlcmVyLCBlbmQuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgUmVuZGVyVmll
dzo6UmVwYWludE5vdGhpbmcpOworICAgIE5TSW1hZ2UqIHJlc3VsdCA9IGltYWdlRnJvbVJlY3Qo
ZnJhbWUsIHZpZXctPnNlbGVjdGlvbkJvdW5kcygpKTsKKyAgICB2aWV3LT5zZXRTZWxlY3Rpb24o
c2F2ZWRTdGFydFJlbmRlcmVyLCBzYXZlZFN0YXJ0T2Zmc2V0LCBzYXZlZEVuZFJlbmRlcmVyLCBz
YXZlZEVuZE9mZnNldCwgUmVuZGVyVmlldzo6UmVwYWludE5vdGhpbmcpOworCisgICAgZnJhbWUt
PnZpZXcoKS0+c2V0UGFpbnRCZWhhdmlvcihQYWludEJlaGF2aW9yTm9ybWFsKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCisKK05TSW1hZ2UqIHNuYXBzaG90RHJhZ0ltYWdlKEZyYW1lKiBmcmFt
ZSwgTm9kZSogbm9kZSwgTlNSZWN0KiBpbWFnZVJlY3QsIE5TUmVjdCogZWxlbWVudFJlY3QpCit7
CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYg
KCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICByZW5kZXJlci0+dXBk
YXRlRHJhZ1N0YXRlKHRydWUpOyAgICAvLyBtYXJrIGRyYWdnZWQgbm9kZXMgKHNvIHRoZXkgcGlj
ayB1cCB0aGUgcmlnaHQgQ1NTKQorICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQo
KTsgIC8vIGZvcmNlcyBzdHlsZSByZWNhbGMgLSBuZWVkZWQgc2luY2UgY2hhbmdpbmcgdGhlIGRy
YWcgc3RhdGUgbWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBpbXBseSBuZXcgc3R5bGVzLCBwbHVzIEpTIGNvdWxkIGhhdmUgY2hhbmdlZCBvdGhlciB0aGlu
Z3MKKworCisgICAgLy8gRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCBtYXkgaGF2ZSBibG93biBhd2F5
IHRoZSBvcmlnaW5hbCBSZW5kZXJPYmplY3QuCisgICAgcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJl
cigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBMYXlv
dXRSZWN0IHRvcExldmVsUmVjdDsKKyAgICBOU1JlY3QgcGFpbnRpbmdSZWN0ID0gcGl4ZWxTbmFw
cGVkSW50UmVjdChyZW5kZXJlci0+cGFpbnRpbmdSb290UmVjdCh0b3BMZXZlbFJlY3QpKTsKKwor
ICAgIGZyYW1lLT52aWV3KCktPnNldE5vZGVUb0RyYXcobm9kZSk7IC8vIGludm9rZSBzcGVjaWFs
IHN1Yi10cmVlIGRyYXdpbmcgbW9kZQorICAgIE5TSW1hZ2UqIHJlc3VsdCA9IGltYWdlRnJvbVJl
Y3QoZnJhbWUsIHBhaW50aW5nUmVjdCk7CisgICAgcmVuZGVyZXItPnVwZGF0ZURyYWdTdGF0ZShm
YWxzZSk7CisgICAgZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworICAgIGZyYW1l
LT52aWV3KCktPnNldE5vZGVUb0RyYXcoMCk7CisKKyAgICBpZiAoZWxlbWVudFJlY3QpCisgICAg
ICAgICplbGVtZW50UmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QodG9wTGV2ZWxSZWN0KTsKKyAg
ICBpZiAoaW1hZ2VSZWN0KQorICAgICAgICAqaW1hZ2VSZWN0ID0gcGFpbnRpbmdSZWN0OworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQkocmV2aXNpb24gMTQ4Mzc5
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiRWRpdG9yLmgiCiAjaW1wb3J0ICJG
aWxlTGlzdC5oIgogI2ltcG9ydCAiRnJhbWUuaCIKKyNpbXBvcnQgIkZyYW1lU25hcHNob3R0aW5n
TWFjLmgiCiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiUGFnZS5oIgogI2ltcG9ydCAiUGFz
dGVib2FyZC5oIgpAQCAtNDUsNyArNDYsNiBAQAogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKIAotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtNDE4LDcgKzQxOCw3IEBAIE5TSW1h
Z2UgKkNsaXBib2FyZE1hYzo6ZHJhZ05TSW1hZ2UoTlNQb2kKICAgICAgICAgaWYgKG1fZnJhbWUp
IHsKICAgICAgICAgICAgIE5TUmVjdCBpbWFnZVJlY3Q7CiAgICAgICAgICAgICBOU1JlY3QgZWxl
bWVudFJlY3Q7Ci0gICAgICAgICAgICByZXN1bHQgPSBtX2ZyYW1lLT5zbmFwc2hvdERyYWdJbWFn
ZShtX2RyYWdJbWFnZUVsZW1lbnQuZ2V0KCksICZpbWFnZVJlY3QsICZlbGVtZW50UmVjdCk7Cisg
ICAgICAgICAgICByZXN1bHQgPSBzbmFwc2hvdERyYWdJbWFnZShtX2ZyYW1lLCBtX2RyYWdJbWFn
ZUVsZW1lbnQuZ2V0KCksICZpbWFnZVJlY3QsICZlbGVtZW50UmVjdCk7CiAgICAgICAgICAgICAv
LyBDbGllbnQgc3BlY2lmaWVzIHBvaW50IHJlbGF0aXZlIHRvIGVsZW1lbnQsIG5vdCB0aGUgd2hv
bGUgaW1hZ2UsIHdoaWNoIG1heSBpbmNsdWRlIGNoaWxkCiAgICAgICAgICAgICAvLyBsYXllcnMg
c3ByZWFkIG91dCBhbGwgb3ZlciB0aGUgcGxhY2UuCiAgICAgICAgICAgICBsb2MueCA9IGVsZW1l
bnRSZWN0Lm9yaWdpbi54IC0gaW1hZ2VSZWN0Lm9yaWdpbi54ICsgbV9kcmFnTG9jLngoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODQxMikKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA0LTE0ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBNYWMgc3BlY2lmaWMg
c25hcHNob3R0aW5nIGNvZGUgaW50byBpdHMgb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDU5NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgX3NlbGVjdGlvbkRyYWdnaW5nSW1hZ2VdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgc2VsZWN0aW9uSW1hZ2VGb3JjaW5nQmxhY2tUZXh0Ol0pOgorCiAyMDEz
LTA0LTE0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IENTU09NIGNsYXNzZXMgdG8gdXNpbmcgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQgb3ZlciBTdHls
ZVByb3BlcnR5U2V0LgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCShyZXZpc2lvbiAxNDgzNzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBACiAjaW1wb3J0ICJXZWJW
aWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBv
cnQgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NhY2hlZElt
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NhY2hlZFJlc291cmNlQ2xpZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg+CkBAIC04MCw3ICs4MSw2IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRleHRNZW51Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRleHRNZW51Q29udHJvbGxlci5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CkBAIC05NSw2ICs5NSw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0ZyYW1lU2VsZWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lU25hcHNo
b3R0aW5nTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MQ29udmVydGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxOYW1lcy5oPgpAQCAt
MTA2LDggKzEwNyw4IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmFuZ2UuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
clZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC0xODA5LDcgKzE4MTAs
NyBAQCAtIChOU0ltYWdlICopX3NlbGVjdGlvbkRyYWdnaW5nSW1hZ2UKIHsKICAgICBpZiAoIVtz
ZWxmIF9oYXNTZWxlY3Rpb25dKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIE5TSW1hZ2UgKmRy
YWdJbWFnZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSktPnNlbGVjdGlvbkltYWdlKCk7CisgICAgTlNJ
bWFnZSAqZHJhZ0ltYWdlID0gc2VsZWN0aW9uSW1hZ2UoY29yZShbc2VsZiBfZnJhbWVdKSk7CiAg
ICAgW2RyYWdJbWFnZSBfd2ViX2Rpc3NvbHZlVG9GcmFjdGlvbjpXZWJEcmFnSW1hZ2VBbHBoYV07
CiAgICAgcmV0dXJuIGRyYWdJbWFnZTsKIH0KQEAgLTU5MjUsNyArNTkyNiw3IEBAIC0gKE5TSW1h
Z2UgKilzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1QKIHsKICAgICBpZiAoIVtzZWxmIF9oYXNT
ZWxlY3Rpb25dKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBjb3JlKFtzZWxmIF9m
cmFtZV0pLT5zZWxlY3Rpb25JbWFnZShmb3JjZUJsYWNrVGV4dCk7CisgICAgcmV0dXJuIHNlbGVj
dGlvbkltYWdlKGNvcmUoW3NlbGYgX2ZyYW1lXSksIGZvcmNlQmxhY2tUZXh0KTsKIH0KIAogLSAo
TlNSZWN0KXNlbGVjdGlvbkltYWdlUmVjdAo=
</data>
<flag name="review"
          id="219876"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>