<?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>138956</bug_id>
          
          <creation_ts>2014-11-21 03:00:00 -0800</creation_ts>
          <short_desc>Implement yellow highlight for WebKit1 data detectors</short_desc>
          <delta_ts>2014-12-01 17:50:54 -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>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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1050407</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-21 03:00:00 -0800</bug_when>
    <thetext>Implement yellow highlight for WebKit1 data detectors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050408</commentid>
    <comment_count>1</comment_count>
      <attachid>242033</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-21 03:00:28 -0800</bug_when>
    <thetext>Created attachment 242033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050409</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-21 03:01:15 -0800</bug_when>
    <thetext>This depends on https://bugs.webkit.org/show_bug.cgi?id=138954 so it will not build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050410</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-21 03:03:19 -0800</bug_when>
    <thetext>Attachment 242033 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebView.mm:8567:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/mac/WebView/WebViewInternal.h:259:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050540</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-21 12:31:50 -0800</bug_when>
    <thetext>This needs some adjustments just like https://bugs.webkit.org/show_bug.cgi?id=138955</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050703</commentid>
    <comment_count>5</comment_count>
      <attachid>242115</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-22 00:05:59 -0800</bug_when>
    <thetext>Created attachment 242115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050704</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-22 00:06:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/18992185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050705</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-22 00:07:38 -0800</bug_when>
    <thetext>Attachment 242115 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebView.mm:8569:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/mac/WebView/WebViewInternal.h:260:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051535</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-01 12:48:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/176599</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051646</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-01 15:56:32 -0800</bug_when>
    <thetext>iOS build fixes in http://trac.webkit.org/changeset/176608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051694</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-01 17:50:54 -0800</bug_when>
    <thetext>Mac build fixes in http://trac.webkit.org/changeset/176618</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242033</attachid>
            <date>2014-11-21 03:00:28 -0800</date>
            <delta_ts>2014-11-22 00:05:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138956-20141121030044.patch</filename>
            <type>text/plain</type>
            <size>11633</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjQ4NjcxNTUw
MzI3Yjk1NDY2ODU0Yzk2MTE4OTc4MzVmMmRhOWNiNS4uZGMxZmUxNjIyMzcyNzA1YjI4OTRiN2M5
OGNmMmQ2Mzk4ZTUxMDQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0
LTExLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB5ZWxsb3cgaGlnaGxpZ2h0IGZvciBXZWJLaXQxIGRhdGEgZGV0ZWN0b3JzCisg
ICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE4OTkyMTg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJBY3Rpb25NZW51Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkFjdGlvbk1lbnVD
b250cm9sbGVyIHByZXBhcmVGb3JNZW51OndpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV2ViQWN0
aW9uTWVudUNvbnRyb2xsZXIgZGlkQ2xvc2VNZW51OndpdGhFdmVudDpdKToKKyAgICAgICAgKC1b
V2ViQWN0aW9uTWVudUNvbnRyb2xsZXIgX2RlZmF1bHRNZW51SXRlbXNGb3JEYXRhRGV0ZWN0ZWRU
ZXh0XSk6CisgICAgICAgICgtW1dlYkFjdGlvbk1lbnVDb250cm9sbGVyIF9zaG93VGV4dEluZGlj
YXRvcl0pOgorICAgICAgICAoLVtXZWJBY3Rpb25NZW51Q29udHJvbGxlciBfaGlkZVRleHRJbmRp
Y2F0b3JdKToKKyAgICAgICAgKC1bV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIgX2Rpc21pc3NBY3Rp
b25NZW51UG9wb3ZlcnNdKToKKyAgICAgICAgQ29weSB0aGUgV2ViS2l0MiBXS0FjdGlvbk1lbnVD
b250cm9sbGVyIFRleHRJbmRpY2F0b3IgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaW50byBXZWJB
Y3Rpb25NZW51Q29udHJvbGxlci4gVGhlIG9ubHkgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBpcwor
ICAgICAgICB0aGF0IHdlIGJ1aWxkIHRoZSBUZXh0SW5kaWNhdG9yIHJpZ2h0IGF0IG1lbnUgY29u
c3RydWN0aW9uIHRpbWUKKyAgICAgICAgaW5zdGVhZCBvZiBpbiB0aGUgV2ViIHByb2Nlc3MuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3NldFRl
eHRJbmRpY2F0b3I6ZmFkZU91dDphbmltYXRpb25Db21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yXSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgS2VlcCBhIFRleHRJbmRpY2F0
b3JXaW5kb3cgb24gV2ViVmlldywganVzdCBsaWtlIFdLVmlldyBkb2VzLgorCiAyMDE0LTExLTIw
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENhbmNl
bCBEYXRhRGV0ZWN0b3JzIG1lbnUgZWFybGllciBpZiB3ZSBrbm93IGl0IGNhbid0IGJlIHByZXNl
bnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rpb25NZW51
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rpb25NZW51Q29u
dHJvbGxlci5oCmluZGV4IGQ1ZTRjNzRhMTgwN2ZlZjJkOGRiOGVmNGRjYzYyMmQ1Y2FkNzljMDUu
LjlmYjdmMmY3YjQ5MmI4ZTVkMGQ2MzkzY2M1Y2Q5M2MyMGNjZDQ0MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFjdGlvbk1lbnVDb250cm9sbGVyLmgKQEAgLTM0
LDYgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmFuZ2U7CitjbGFzcyBU
ZXh0SW5kaWNhdG9yOwogfQogCiBAaW50ZXJmYWNlIFdlYkFjdGlvbk1lbnVDb250cm9sbGVyIDog
TlNPYmplY3QgPE5TU2hhcmluZ1NlcnZpY2VEZWxlZ2F0ZSwgTlNTaGFyaW5nU2VydmljZVBpY2tl
ckRlbGVnYXRlPiB7CkBAIC00NCw2ICs0NSw5IEBAIGNsYXNzIFJhbmdlOwogICAgIFJldGFpblB0
cjxOU1NoYXJpbmdTZXJ2aWNlUGlja2VyPiBfc2hhcmluZ1NlcnZpY2VQaWNrZXI7CiAgICAgUmV0
YWluUHRyPEREQWN0aW9uQ29udGV4dD4gX2N1cnJlbnRBY3Rpb25Db250ZXh0OwogICAgIFJlZlB0
cjxXZWJDb3JlOjpSYW5nZT4gX2N1cnJlbnREZXRlY3RlZERhdGFSYW5nZTsKKyAgICBCT09MIF9p
c1Nob3dpbmdUZXh0SW5kaWNhdG9yOworICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3I7CisgICAgQk9PTCBfaGFzQWN0aXZh
dGVkQWN0aW9uQ29udGV4dDsKIH0KIAogLSAoaWQpaW5pdFdpdGhXZWJWaWV3OihXZWJWaWV3ICop
d2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9u
TWVudUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFjdGlvbk1l
bnVDb250cm9sbGVyLm1tCmluZGV4IGQxNTM0ZDg5ZDI0MDdkNWQwNmI1NmNiNWUwZGFhNWQxMDZk
NzlhOGQuLjk1ZTkxN2IwMTJkMjFiZDYzNGQxNWE2M2UzZjcyNmFiNjBiNzFhMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rpb25NZW51Q29udHJvbGxlci5t
bQpAQCAtNjEsNiArNjEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dENoZWNr
ZXJDbGllbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtY2xhc3MuaD4KICNp
bXBvcnQgPG9iamMvb2JqYy5oPgpAQCAtMTM5LDYgKzE0MCwxMiBAQCBzdHJ1Y3QgRGljdGlvbmFy
eVBvcHVwSW5mbyB7CiAgICAgaWYgKG1lbnUgIT0gYWN0aW9uTWVudSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgaWYgKF90eXBlID09IFdlYkFjdGlvbk1lbnVEYXRhRGV0ZWN0ZWRJdGVtICYmIF9j
dXJyZW50QWN0aW9uQ29udGV4dCAmJiBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCkgeworICAg
ICAgICBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107CisgICAgICAg
IF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0ID0gTk87CisgICAgfQorCisgICAgW3NlbGYgX2Rp
c21pc3NBY3Rpb25NZW51UG9wb3ZlcnNdOwogICAgIFthY3Rpb25NZW51IHJlbW92ZUFsbEl0ZW1z
XTsKIAogICAgIFdlYkVsZW1lbnREaWN0aW9uYXJ5ICpoaXRUZXN0UmVzdWx0ID0gW3NlbGYgcGVy
Zm9ybUhpdFRlc3RBdFBvaW50OmV2ZW50LmxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMTUxLDkgKzE1
OCwxMiBAQCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7CiAgICAgZm9yIChOU01lbnVJdGVt
ICppdGVtIGluIG1lbnVJdGVtcykKICAgICAgICAgW2FjdGlvbk1lbnUgYWRkSXRlbTppdGVtXTsK
IAotICAgIGlmIChfdHlwZSA9PSBXZWJBY3Rpb25NZW51RGF0YURldGVjdGVkSXRlbSAmJiBfY3Vy
cmVudEFjdGlvbkNvbnRleHQgJiYgIVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRV
c2VBY3Rpb25zV2l0aENvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkgewotICAg
ICAgICBbbWVudSBjYW5jZWxUcmFja2luZ107Ci0gICAgICAgIFttZW51IHJlbW92ZUFsbEl0ZW1z
XTsKKyAgICBpZiAoX3R5cGUgPT0gV2ViQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0ZW0gJiYgX2N1
cnJlbnRBY3Rpb25Db250ZXh0KSB7CisgICAgICAgIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0
ID0gWUVTOworICAgICAgICBpZiAoIVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRV
c2VBY3Rpb25zV2l0aENvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkgeworICAg
ICAgICAgICAgW21lbnUgY2FuY2VsVHJhY2tpbmddOworICAgICAgICAgICAgW21lbnUgcmVtb3Zl
QWxsSXRlbXNdOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0yMTksMTEgKzIyOSwxNiBAQCBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7CiAgICAgaWYgKG1lbnUgIT0gX3dlYlZpZXcuYWN0
aW9uTWVudSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKF90eXBlID09IFdlYkFjdGlvbk1l
bnVEYXRhRGV0ZWN0ZWRJdGVtICYmIF9jdXJyZW50QWN0aW9uQ29udGV4dCkKKyAgICBpZiAoX3R5
cGUgPT0gV2ViQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0ZW0gJiYgX2N1cnJlbnRBY3Rpb25Db250
ZXh0ICYmIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0KSB7CiAgICAgICAgIFtnZXREREFjdGlv
bnNNYW5hZ2VyQ2xhc3MoKSBkaWRVc2VBY3Rpb25zXTsKKyAgICAgICAgX2hhc0FjdGl2YXRlZEFj
dGlvbkNvbnRleHQgPSBOTzsKKyAgICB9CiAKICAgICBfdHlwZSA9IFdlYkFjdGlvbk1lbnVOb25l
OwogICAgIF9zaGFyaW5nU2VydmljZVBpY2tlciA9IG5pbDsKKyAgICBfY3VycmVudERldGVjdGVk
RGF0YVRleHRJbmRpY2F0b3IgPSBuaWw7CisgICAgX2N1cnJlbnREZXRlY3RlZERhdGFSYW5nZSA9
IG5pbDsKKyAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBuaWw7CiB9CiAKICNwcmFnbWEgbWFy
ayBMaW5rIGFjdGlvbnMKQEAgLTU3MiwxNiArNTg3LDIyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFRvUGhvdG9PbkRpc2soTlNTdHJpbmcgKnN1Z2dlc3RlZEZpbGVuYW1lKQogICAgIGlmICghYWN0
aW9uQ29udGV4dCB8fCAhZGV0ZWN0ZWREYXRhUmFuZ2UpCiAgICAgICAgIHJldHVybiBAWyBdOwog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBoaWRlL3Nob3cgdGhlIHllbGxvdyBoaWdobGlnaHQg
aGVyZS4KKyAgICBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNh
dG9yOjpjcmVhdGVXaXRoUmFuZ2UoKmRldGVjdGVkRGF0YVJhbmdlLCBUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlQW5kQ3Jvc3NmYWRlKTsKKwogICAgIF9jdXJyZW50
QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFs
dE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0
aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKKyAgICAgICAgW3NlbGYgX3Nob3dUZXh0SW5kaWNhdG9y
XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKKyAgICAgICAgW3NlbGYg
X2hpZGVUZXh0SW5kaWNhdG9yXTsKICAgICB9XTsKICAgICBfY3VycmVudERldGVjdGVkRGF0YVJh
bmdlID0gZGV0ZWN0ZWREYXRhUmFuZ2U7CiAKICAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNl
dEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3dl
YlZpZXcgY29udmVydFJlY3Q6ZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsK
IAotICAgIHJldHVybiBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJd
IG1lbnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFj
dGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKKyAgICBOU0FycmF5ICpt
ZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1l
bnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFjdGlv
bkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKKyAgICBpZiAobWVudUl0ZW1z
LmNvdW50ID09IDEgJiYgX2N1cnJlbnREZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQorICAgICAg
ICBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3ItPnNldFByZXNlbnRhdGlvblRyYW5z
aXRpb24oVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkJvdW5jZSk7CisgICAg
cmV0dXJuIG1lbnVJdGVtczsKIH0KIAogLSAodm9pZClfY29weVNlbGVjdGlvbjooaWQpc2VuZGVy
CkBAIC04OTYsNCArOTE3LDM1IEBAIHN0YXRpYyBEaWN0aW9uYXJ5UG9wdXBJbmZvIHBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwRm9yUmFuZ2UoRnJhbWUqIGZyYW1lLCBSYW5nZSYKICAgICByZXR1cm4g
QFsgXTsKIH0KIAorI3ByYWdtYSBtYXJrIFRleHQgSW5kaWNhdG9yCisKKy0gKHZvaWQpX3Nob3dU
ZXh0SW5kaWNhdG9yCit7CisgICAgaWYgKF9pc1Nob3dpbmdUZXh0SW5kaWNhdG9yKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoX3R5cGUgPT0gV2ViQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0
ZW0gJiYgX2N1cnJlbnREZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKSB7CisgICAgICAgIFtfd2Vi
VmlldyBfc2V0VGV4dEluZGljYXRvcjpfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3Iu
Z2V0KCkgZmFkZU91dDpOTyBhbmltYXRpb25Db21wbGV0aW9uSGFuZGxlcjpeIHsgfV07CisgICAg
ICAgIF9pc1Nob3dpbmdUZXh0SW5kaWNhdG9yID0gWUVTOworICAgIH0KK30KKworLSAodm9pZClf
aGlkZVRleHRJbmRpY2F0b3IKK3sKKyAgICBpZiAoIV9pc1Nob3dpbmdUZXh0SW5kaWNhdG9yKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbX3dlYlZpZXcgX2NsZWFyVGV4dEluZGljYXRvcl07Cisg
ICAgX2lzU2hvd2luZ1RleHRJbmRpY2F0b3IgPSBOTzsKK30KKworLSAodm9pZClfZGlzbWlzc0Fj
dGlvbk1lbnVQb3BvdmVycworeworICAgIEREQWN0aW9uc01hbmFnZXIgKmFjdGlvbnNNYW5hZ2Vy
ID0gW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdOworICAgIGlmIChb
YWN0aW9uc01hbmFnZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0QnViYmxl
Q2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOildKQorICAgICAgICBbYWN0aW9uc01hbmFnZXIgcmVx
dWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOworCisgICAgW3NlbGYgX2hp
ZGVUZXh0SW5kaWNhdG9yXTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGE3OWZiNmIxMGMyNDA3M2MwZDg2OTc5NDYxNjI3MDhlMTBlMDYxOTcuLjIwYjJm
MjViZmRmYjk2NGE4OTk4Mjk3MGU3NzQ2Njk4MDk0ZmYyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTIxMCw2ICsyMTAsOCBAQAogI2ltcG9ydCAiV2ViTlNQcmludE9w
ZXJhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCAiV2ViUERGVmlldy5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9OU1ZpZXdTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgorI2ltcG9y
dCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaD4KICNlbHNlCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJl
LmgiCkBAIC04NTM3LDcgKzg1MzksNyBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlv
bkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQogICAgIHJl
dHVybiBOU01ha2VSZWN0KHJlY3Qub3JpZ2luLngsIFtzZWxmIGJvdW5kc10uc2l6ZS5oZWlnaHQg
LSByZWN0Lm9yaWdpbi55IC0gcmVjdC5zaXplLmhlaWdodCwgcmVjdC5zaXplLndpZHRoLCByZWN0
LnNpemUuaGVpZ2h0KTsKIH0KIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFD
KQogLSAodm9pZClwcmVwYXJlRm9yTWVudTooTlNNZW51ICopbWVudSB3aXRoRXZlbnQ6KE5TRXZl
bnQgKilldmVudAogewogICAgIGlmIChtZW51ICE9IHNlbGYuYWN0aW9uTWVudSkKQEAgLTg1NjEs
NiArODU2MywyNCBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENG
UnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQogCiAgICAgW19wcml2YXRlLT5h
Y3Rpb25NZW51Q29udHJvbGxlciBkaWRDbG9zZU1lbnU6bWVudSB3aXRoRXZlbnQ6ZXZlbnRdOwog
fQorCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yICopdGV4dEluZGlj
YXRvciBmYWRlT3V0OihCT09MKWZhZGVPdXQgYW5pbWF0aW9uQ29tcGxldGlvbkhhbmRsZXI6KHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4pY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoIXRleHRJ
bmRpY2F0b3IpIHsKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBudWxs
cHRyOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFfcHJpdmF0ZS0+dGV4dElu
ZGljYXRvcldpbmRvdykKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3cgPSBz
dGQ6Om1ha2VfdW5pcXVlPFRleHRJbmRpY2F0b3JXaW5kb3c+KHNlbGYpOworCisgICAgX3ByaXZh
dGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwg
ZmFkZU91dCwgV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKKy0gKHZvaWQpX2Ns
ZWFyVGV4dEluZGljYXRvcgoreworICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOm51bGxwdHIg
ZmFkZU91dDpOTyBhbmltYXRpb25Db21wbGV0aW9uSGFuZGxlcjpeIHsgfV07Cit9CiAjZW5kaWYK
IAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IGY0NDdh
MDEyNmNiZjE0OWViMzFmZjhkN2ZjZWM1ZGQ3YWQwMTQzNWEuLjkzNGU5ZjhkOTA5Y2FjYWQ3ODk4
MmYzODVhNDVlZDZjZTJmMmU0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWx0ZXJu
YXRpdmVUZXh0VUlDb250cm9sbGVyOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBQYWdlOwor
Y2xhc3MgVGV4dEluZGljYXRvcldpbmRvdzsKIH0KIAogQGNsYXNzIFdlYkFjdGlvbk1lbnVDb250
cm9sbGVyOwpAQCAtMTQ3LDYgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgV2ViTm9kZUhpZ2hsaWdo
dCAqY3VycmVudE5vZGVIaWdobGlnaHQ7CiAKICAgICBXZWJBY3Rpb25NZW51Q29udHJvbGxlciAq
YWN0aW9uTWVudUNvbnRyb2xsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3c+IHRleHRJbmRpY2F0b3JXaW5kb3c7CiAKICAgICBCT09MIGFsbG93c1Vu
ZG87CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5k
ZXggODk3MDRjOThlYzJiNmQwZGQ5NWNiNjY0MTc2NGJhZGE2ZjRhMDk2NS4uNGNmNmRlMTc5NTQw
OGM1ZDdhYmExM2UwOThmNDJjYmU1YjM3MWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtYXV0by5oPgogI2lt
cG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5k
ZXggMzc3NmY1NTE2OGMwN2Q2NGU3ZDQwZjY1MjA0YzZhYjQ1OWNiZWU1Ni4uZThkNzQ1NzhhMzg3
NGRjZDA5YTljNTI2NmQ2MzUxNGYxNjk2YzQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC00MSwyMCArNDEsMjEgQEAKICNpbXBvcnQgPFdlYkNv
cmUvTGF5b3V0TWlsZXN0b25lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+Ci0K
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPGZ1bmN0aW9uYWw+CisjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFbGVtZW50OwogY2xh
c3MgRXZlbnQ7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiBjbGFzcyBI
aXN0b3J5SXRlbTsKLWNsYXNzIFVSTDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQYWdl
OwogY2xhc3MgUmVuZGVyQm94OwotY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKK2NsYXNzIFRleHRJ
bmRpY2F0b3I7CitjbGFzcyBVUkw7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiB9CiAK
QEAgLTI1NCw0ICsyNTUsOSBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsKIC0gKE5T
UG9pbnQpX2NvbnZlcnRQb2ludEZyb21Sb290VmlldzooTlNQb2ludClwb2ludDsKIC0gKE5TUmVj
dClfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6KE5TUmVjdClyZWN0OwogCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjoo
V2ViQ29yZTo6VGV4dEluZGljYXRvciopdGV4dEluZGljYXRvciBmYWRlT3V0OihCT09MKWZhZGVP
dXQgYW5pbWF0aW9uQ29tcGxldGlvbkhhbmRsZXI6KHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pY29t
cGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3I7CisjZW5kaWYKKwog
QGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242115</attachid>
            <date>2014-11-22 00:05:59 -0800</date>
            <delta_ts>2014-12-01 12:32:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138956-20141122000616.patch</filename>
            <type>text/plain</type>
            <size>27915</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI5ODIwYzI2MWYxZjg3
YTlhMjJhOTk3OTFiNmM2ZDMzNWQ0N2EyMS4uODFkMTAxM2EyYWFmZWYxNTVhNThjNzE4ZWFmY2Qy
NDI5MDZmOGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTExLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB5
ZWxsb3cgaGlnaGxpZ2h0IGZvciBXZWJLaXQxIGRhdGEgZGV0ZWN0b3JzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg5NTYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzE4OTkyMTg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGFnZS9UZXh0SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3I6OlRleHRJbmRpY2F0b3IpOgorICAgICAgICAqIHBhZ2UvVGV4
dEluZGljYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcjo6c2VsZWN0aW9u
UmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRv
cjo6dGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEluZGljYXRvcjo6c2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcjo6dGV4dEJvdW5kaW5nUmVjdElu
V2luZG93Q29vcmRpbmF0ZXMpOiBEZWxldGVkLgorICAgICAgICBTdG9yZSBUZXh0SW5kaWNhdG9y
IHJlY3RzIGluIHNjcmVlbiBjb29yZGluYXRlcywgc2luY2UgdGhhdCdzIHdoYXQgd2UKKyAgICAg
ICAgd2FudCBhbnl3YXksIGFuZCB0aGlzIG1ha2VzIGl0IGVhc2llciB0byBzaGFyZSB0aGlzIGNv
ZGUgYmV0d2VlbiB0aGUgV2ViS2l0cy4KKworICAgICAgICAqIHBhZ2UvbWFjL1RleHRJbmRpY2F0
b3JXaW5kb3cubW06CisgICAgICAgICgtW1dlYlRleHRJbmRpY2F0b3JWaWV3IGluaXRXaXRoRnJh
bWU6dGV4dEluZGljYXRvcjptYXJnaW46XSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgQXZvaWQgc29tZSByZWN0IGNv
bnZlcnNpb24gYmVjYXVzZSB0aGUgVGV4dEluZGljYXRvciByZWN0cyBhcmUgYWxyZWFkeSBpbiBz
Y3JlZW4gY29vcmRpbmF0ZXMuCisKIDIwMTQtMTEtMjEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlckVsZW1lbnQ6OnJlbW92ZUNoaWxkKCkgZG9lc24n
dCBuZWVkIGEgcmV0dXJuIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDdiODlmZjIyNDEzOTFh
YTE0MTFiNjQ4NzczOTYxYzZiMTk4M2E5ZjkuLjg5NmMyZjRiOTBmMTQ4Yzg0ZTFmNDQxZWJkOTIw
MThkNmM5YjU4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxNC0xMS0y
MiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgeWVsbG93IGhpZ2hsaWdodCBmb3IgV2ViS2l0MSBkYXRhIGRldGVjdG9ycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTU2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xODk5MjE4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkFjdGlvbk1lbnVDb250cm9sbGVyLm1tOgorICAgICAgICAo
LVtXZWJBY3Rpb25NZW51Q29udHJvbGxlciB3ZWJWaWV3OndpbGxIYW5kbGVNb3VzZURvd246XSk6
CisgICAgICAgICgtW1dlYkFjdGlvbk1lbnVDb250cm9sbGVyIHdlYlZpZXc6ZGlkSGFuZGxlU2Ny
b2xsV2hlZWw6XSk6CisgICAgICAgICgtW1dlYkFjdGlvbk1lbnVDb250cm9sbGVyIHByZXBhcmVG
b3JNZW51OndpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIg
ZGlkQ2xvc2VNZW51OndpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV2ViQWN0aW9uTWVudUNvbnRy
b2xsZXIgX2RlZmF1bHRNZW51SXRlbXNGb3JEYXRhRGV0ZWN0ZWRUZXh0XSk6CisgICAgICAgICgt
W1dlYkFjdGlvbk1lbnVDb250cm9sbGVyIF9zaG93VGV4dEluZGljYXRvcl0pOgorICAgICAgICAo
LVtXZWJBY3Rpb25NZW51Q29udHJvbGxlciBfaGlkZVRleHRJbmRpY2F0b3JdKToKKyAgICAgICAg
KC1bV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIgX2Rpc21pc3NBY3Rpb25NZW51UG9wb3ZlcnNdKToK
KyAgICAgICAgQ29weSB0aGUgV2ViS2l0MiBXS0FjdGlvbk1lbnVDb250cm9sbGVyIFRleHRJbmRp
Y2F0b3IgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaW50byBXZWJBY3Rpb25NZW51Q29udHJvbGxl
ci4gVGhlIG9ubHkgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBpcworICAgICAgICB0aGF0IHdlIGJ1
aWxkIHRoZSBUZXh0SW5kaWNhdG9yIHJpZ2h0IGF0IG1lbnUgY29uc3RydWN0aW9uIHRpbWUKKyAg
ICAgICAgaW5zdGVhZCBvZiBpbiB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzY3JvbGxXaGVlbDpdKToK
KyAgICAgICAgTGV0IHRoZSBXZWJBY3Rpb25NZW51Q29udHJvbGxlciBrbm93IHRoYXQgd2UncmUg
aGFuZGxpbmcgYSBzY3JvbGwuCisKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VEb3duOl0p
OgorICAgICAgICBMZXQgdGhlIFdlYkFjdGlvbk1lbnVDb250cm9sbGVyIGtub3cgdGhhdCB3ZSdy
ZSBoYW5kbGluZyBhIG1vdXNlRG93bi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjpmYWRlT3V0OmFuaW1hdGlvbkNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0
b3JdKToKKyAgICAgICAgKC1bV2ViVmlldyBfYWN0aW9uTWVudUNvbnRyb2xsZXJdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6XSk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0Rh
dGEubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgS2Vl
cCBhIFRleHRJbmRpY2F0b3JXaW5kb3cgb24gV2ViVmlldywganVzdCBsaWtlIFdLVmlldyBkb2Vz
LgorICAgICAgICBFeHBvc2UgdGhlIFdlYkFjdGlvbk1lbnVDb250cm9sbGVyIG9uIFdlYlZpZXcg
KGludGVybmFsbHkpLgorCiAyMDE0LTExLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNzYzNTEpOiBQYXJ0cyBvZiBhcHBs
ZS5jb20vY29udGFjdCBhcmVuJ3QgTG9va3VwLWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNGFkYzYxZjhh
ZDdkZWEyZjAxNWMzYTljZTIxZGIxY2YzZjkyOWU2Li45MmFmMzIyNmU5YjRlNGUzYzNlNmQxM2Q1
NTQyNTY0Yzg1NjRiMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMTEtMjIg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IHllbGxvdyBoaWdobGlnaHQgZm9yIFdlYktpdDEgZGF0YSBkZXRlY3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODk1NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg5OTIxODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUZXh0SW5kaWNhdG9yRGF0YT46OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dEluZGljYXRvckRhdGE+OjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKToKKyAgICAgICAg
KFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAgICAgQWRqdXN0IHRvIHRo
ZSBmYWN0IHRoYXQgVGV4dEluZGljYXRvciBrZWVwcyBzY3JlZW4tcmVsYXRpdmUgcmVjdHMuCisK
IDIwMTQtMTEtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjE3NjQxNSk6IENhbiBnZXQgc3R1Y2ssIHVuYWJsZSB0byBpbnZv
a2UgYW55IERhdGFEZXRlY3RvcnMgcG9wb3ZlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0
b3IuY3BwCmluZGV4IDJlYTZiMjEwOTUzYmNlMjY4OWI4NDc3NmU1Nzc5YmMzMWUyMDEyZjYuLjQ5
ZTVmN2UxZWIzM2Y4NzNmMDU5NzVmZmE3ZTdjNzU5MmQ5NzdkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9UZXh0SW5kaWNhdG9yLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIFBhc3NSZWZQdHI8VGV4dElu
ZGljYXRvcj4gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoRnJhbWUm
IGZyYW1lCiAKICAgICAvLyBTdG9yZSB0aGUgc2VsZWN0aW9uIHJlY3QgaW4gd2luZG93IGNvb3Jk
aW5hdGVzLCB0byBiZSB1c2VkIHN1YnNlcXVlbnRseQogICAgIC8vIHRvIGRldGVybWluZSBpZiB0
aGUgaW5kaWNhdG9yIGFuZCBzZWxlY3Rpb24gc3RpbGwgcHJlY2lzZWx5IG92ZXJsYXAuCi0gICAg
SW50UmVjdCBzZWxlY3Rpb25SZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IGZyYW1lLnZpZXcoKS0+
Y29udGVudHNUb1dpbmRvdyhzZWxlY3Rpb25SZWN0KTsKKyAgICBJbnRSZWN0IHNlbGVjdGlvblJl
Y3RJblNjcmVlbkNvb3JkaW5hdGVzID0gZnJhbWUudmlldygpLT5jb250ZW50c1RvU2NyZWVuKHNl
bGVjdGlvblJlY3QpOwogCiAgICAgVmVjdG9yPEZsb2F0UmVjdD4gdGV4dFJlY3RzOwogICAgIGZy
YW1lLnNlbGVjdGlvbigpLmdldENsaXBwZWRWaXNpYmxlVGV4dFJlY3RhbmdsZXModGV4dFJlY3Rz
KTsKQEAgLTE1MSwyMyArMTUxLDIzIEBAIFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4gVGV4dElu
ZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoRnJhbWUmIGZyYW1lCiAgICAgLy8g
VGhlIGJvdW5kaW5nIHJlY3Qgb2YgYWxsIHRoZSB0ZXh0IHJlY3RzIGNhbiBiZSBkaWZmZXJlbnQg
dGhhbiB0aGUgc2VsZWN0aW9uCiAgICAgLy8gcmVjdCB3aGVuIHRoZSBzZWxlY3Rpb24gc3BhbnMg
bXVsdGlwbGUgbGluZXM7IHRoZSBpbmRpY2F0b3IgZG9lc24ndCBhY3R1YWxseQogICAgIC8vIGNh
cmUgd2hlcmUgdGhlIHNlbGVjdGlvbiBoaWdobGlnaHQgZ29lcywganVzdCB3aGVyZSB0aGUgdGV4
dCBhY3R1YWxseSBpcy4KLSAgICBGbG9hdFJlY3QgdGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29v
cmRpbmF0ZXM7Ci0gICAgVmVjdG9yPEZsb2F0UmVjdD4gdGV4dFJlY3RzSW5XaW5kb3dDb29yZGlu
YXRlczsKKyAgICBGbG9hdFJlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXM7
CisgICAgVmVjdG9yPEZsb2F0UmVjdD4gdGV4dFJlY3RzSW5TY3JlZW5Db29yZGluYXRlczsKICAg
ICBmb3IgKGNvbnN0IEZsb2F0UmVjdCYgdGV4dFJlY3QgOiB0ZXh0UmVjdHMpIHsKLSAgICAgICAg
RmxvYXRSZWN0IHRleHRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyA9IGZyYW1lLnZpZXcoKS0+Y29u
dGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0KHRleHRSZWN0KSk7Ci0gICAgICAgIHRleHRS
ZWN0c0luV2luZG93Q29vcmRpbmF0ZXMuYXBwZW5kKHRleHRSZWN0SW5XaW5kb3dDb29yZGluYXRl
cyk7Ci0gICAgICAgIHRleHRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLnVuaXRlKHRl
eHRSZWN0SW5XaW5kb3dDb29yZGluYXRlcyk7CisgICAgICAgIEZsb2F0UmVjdCB0ZXh0UmVjdElu
U2NyZWVuQ29vcmRpbmF0ZXMgPSBmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9TY3JlZW4oZW5jbG9z
aW5nSW50UmVjdCh0ZXh0UmVjdCkpOworICAgICAgICB0ZXh0UmVjdHNJblNjcmVlbkNvb3JkaW5h
dGVzLmFwcGVuZCh0ZXh0UmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpOworICAgICAgICB0ZXh0Qm91
bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcy51bml0ZSh0ZXh0UmVjdEluU2NyZWVuQ29vcmRp
bmF0ZXMpOwogICAgIH0KIAogICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHRleHRSZWN0c0luQm91bmRp
bmdSZWN0Q29vcmRpbmF0ZXM7Ci0gICAgZm9yIChhdXRvIHJlY3QgOiB0ZXh0UmVjdHNJbldpbmRv
d0Nvb3JkaW5hdGVzKSB7Ci0gICAgICAgIHJlY3QubW92ZUJ5KC10ZXh0Qm91bmRpbmdSZWN0SW5X
aW5kb3dDb29yZGluYXRlcy5sb2NhdGlvbigpKTsKKyAgICBmb3IgKGF1dG8gcmVjdCA6IHRleHRS
ZWN0c0luU2NyZWVuQ29vcmRpbmF0ZXMpIHsKKyAgICAgICAgcmVjdC5tb3ZlQnkoLXRleHRCb3Vu
ZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLmxvY2F0aW9uKCkpOwogICAgICAgICB0ZXh0UmVj
dHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzLmFwcGVuZChyZWN0KTsKICAgICB9CiAKICAgICBU
ZXh0SW5kaWNhdG9yRGF0YSBkYXRhOwotICAgIGRhdGEuc2VsZWN0aW9uUmVjdEluV2luZG93Q29v
cmRpbmF0ZXMgPSBzZWxlY3Rpb25SZWN0SW5XaW5kb3dDb29yZGluYXRlczsKLSAgICBkYXRhLnRl
eHRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzID0gdGV4dEJvdW5kaW5nUmVjdEluV2lu
ZG93Q29vcmRpbmF0ZXM7CisgICAgZGF0YS5zZWxlY3Rpb25SZWN0SW5TY3JlZW5Db29yZGluYXRl
cyA9IHNlbGVjdGlvblJlY3RJblNjcmVlbkNvb3JkaW5hdGVzOworICAgIGRhdGEudGV4dEJvdW5k
aW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29y
ZGluYXRlczsKICAgICBkYXRhLnRleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMgPSB0
ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzOwogICAgIGRhdGEuY29udGVudEltYWdl
U2NhbGVGYWN0b3IgPSBmcmFtZS5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgZGF0
YS5jb250ZW50SW1hZ2UgPSBpbmRpY2F0b3JCaXRtYXA7CkBAIC0xODAsNyArMTgwLDcgQEAgUGFz
c1JlZlB0cjxUZXh0SW5kaWNhdG9yPiBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoU2VsZWN0aW9u
SW5GcmFtZShGcmFtZSYgZnJhbWUKIFRleHRJbmRpY2F0b3I6OlRleHRJbmRpY2F0b3IoY29uc3Qg
VGV4dEluZGljYXRvckRhdGEmIGRhdGEpCiAgICAgOiBtX2RhdGEoZGF0YSkKIHsKLSAgICBBU1NF
UlQobV9kYXRhLmNvbnRlbnRJbWFnZVNjYWxlRmFjdG9yICE9IDEgfHwgbV9kYXRhLmNvbnRlbnRJ
bWFnZS0+c2l6ZSgpID09IGVuY2xvc2luZ0ludFJlY3QobV9kYXRhLnNlbGVjdGlvblJlY3RJbldp
bmRvd0Nvb3JkaW5hdGVzKS5zaXplKCkpOworICAgIEFTU0VSVChtX2RhdGEuY29udGVudEltYWdl
U2NhbGVGYWN0b3IgIT0gMSB8fCBtX2RhdGEuY29udGVudEltYWdlLT5zaXplKCkgPT0gZW5jbG9z
aW5nSW50UmVjdChtX2RhdGEuc2VsZWN0aW9uUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMpLnNpemUo
KSk7CiAKICAgICBpZiAodGV4dEluZGljYXRvcnNGb3JUZXh0UmVjdHNPdmVybGFwKG1fZGF0YS50
ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzKSkgewogICAgICAgICBtX2RhdGEudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlc1swXSA9IHVuaW9uUmVjdChtX2RhdGEudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1RleHRJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGlj
YXRvci5oCmluZGV4IGJlMTBhMzMzM2YyZmVlMjM1NzEzZWY3MDhmMGEyZDgxZjRjNjhkMjQuLjQ3
YmE2YzMyMzc5OGU2Mzk2NDM4OGFhNmU5MTZiYTc0NDZiODFlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
VGV4dEluZGljYXRvci5oCkBAIC01MSw4ICs1MSw4IEBAIGVudW0gY2xhc3MgVGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb24gewogfTsKIAogc3RydWN0IFRleHRJbmRpY2F0b3JEYXRh
IHsKLSAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXM7Ci0gICAg
RmxvYXRSZWN0IHRleHRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzOworICAgIEZsb2F0
UmVjdCBzZWxlY3Rpb25SZWN0SW5TY3JlZW5Db29yZGluYXRlczsKKyAgICBGbG9hdFJlY3QgdGV4
dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXM7CiAgICAgVmVjdG9yPEZsb2F0UmVjdD4g
dGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKICAgICBmbG9hdCBjb250ZW50SW1h
Z2VTY2FsZUZhY3RvcjsKICAgICBSZWZQdHI8SW1hZ2U+IGNvbnRlbnRJbWFnZVdpdGhIaWdobGln
aHQ7CkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIH5UZXh0SW5kaWNhdG9yKCk7CiAK
LSAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEuc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXM7IH0KLSAgICBG
bG9hdFJlY3QgdGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGEudGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXM7IH0KKyAgICBG
bG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuc2VsZWN0aW9uUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KKyAgICBGbG9hdFJl
Y3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBt
X2RhdGEudGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzOyB9
CiAgICAgZmxvYXQgY29udGVudEltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuY29udGVudEltYWdlU2NhbGVGYWN0b3I7IH0KICAgICBJbWFnZSAqY29udGVudEltYWdlV2l0
aEhpZ2hsaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5jb250ZW50SW1hZ2VXaXRoSGlnaGxp
Z2h0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5k
aWNhdG9yV2luZG93Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldp
bmRvdy5tbQppbmRleCAwYWM0MjZjNzU3NmFjZGY0YTg5YzY1NWFhNDA3ZTMzZGY0YmFjMTQ4Li4x
ZjliZTA3YmM5ZDY4YzAwMjg3OWI3NGRlY2Q4NTJlZDI0MmE5MTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTE3MSw3ICsxNzEsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAgICAgW3RleHRMYXllciBzZXRDb250ZW50
czooaWQpY29udGVudHNJbWFnZS5nZXQoKV07CiAKICAgICAgICAgRmxvYXRSZWN0IGltYWdlUmVj
dCA9IHRleHRSZWN0OwotICAgICAgICBpbWFnZVJlY3QubW92ZShfdGV4dEluZGljYXRvci0+dGV4
dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKS5sb2NhdGlvbigpIC0gX3RleHRJbmRp
Y2F0b3ItPnNlbGVjdGlvblJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCkubG9jYXRpb24oKSk7Cisg
ICAgICAgIGltYWdlUmVjdC5tb3ZlKF90ZXh0SW5kaWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5T
Y3JlZW5Db29yZGluYXRlcygpLmxvY2F0aW9uKCkgLSBfdGV4dEluZGljYXRvci0+c2VsZWN0aW9u
UmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMoKS5sb2NhdGlvbigpKTsKICAgICAgICAgW3RleHRMYXll
ciBzZXRDb250ZW50c1JlY3Q6Q0dSZWN0TWFrZShpbWFnZVJlY3QueCgpIC8gY29udGVudHNJbWFn
ZUxvZ2ljYWxTaXplLndpZHRoKCksIGltYWdlUmVjdC55KCkgLyBjb250ZW50c0ltYWdlTG9naWNh
bFNpemUuaGVpZ2h0KCksIGltYWdlUmVjdC53aWR0aCgpIC8gY29udGVudHNJbWFnZUxvZ2ljYWxT
aXplLndpZHRoKCksIGltYWdlUmVjdC5oZWlnaHQoKSAvIGNvbnRlbnRzSW1hZ2VMb2dpY2FsU2l6
ZS5oZWlnaHQoKSldOwogICAgICAgICBbdGV4dExheWVyIHNldENvbnRlbnRzR3Jhdml0eTprQ0FH
cmF2aXR5Q2VudGVyXTsKICAgICAgICAgW3RleHRMYXllciBzZXRDb250ZW50c1NjYWxlOl90ZXh0
SW5kaWNhdG9yLT5jb250ZW50SW1hZ2VTY2FsZUZhY3RvcigpXTsKQEAgLTI3OSwxNiArMjc5LDEy
IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihQYXNzUmVmUHRy
PFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0CiAgICAgaWYgKCFtX3RleHRJbmRpY2F0b3IpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIE5TUmVjdCBjb250ZW50UmVjdCA9IG1fdGV4dEluZGljYXRv
ci0+dGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKTsKLQorICAgIE5TUmVjdCBj
b250ZW50UmVjdCA9IG1fdGV4dEluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29v
cmRpbmF0ZXMoKTsKICAgICBDR0Zsb2F0IGhvcml6b250YWxNYXJnaW4gPSBzdGQ6Om1heChkcm9w
U2hhZG93Qmx1clJhZGl1cyAqIDIgKyBob3Jpem9udGFsQm9yZGVyLCBjb250ZW50UmVjdC5zaXpl
LndpZHRoICogMik7CiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbE1hcmdpbiA9IHN0ZDo6bWF4KGRyb3BT
aGFkb3dCbHVyUmFkaXVzICogMiArIHZlcnRpY2FsQm9yZGVyLCBjb250ZW50UmVjdC5zaXplLmhl
aWdodCAqIDIpOwogCiAgICAgY29udGVudFJlY3QgPSBOU0luc2V0UmVjdChjb250ZW50UmVjdCwg
LWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdpbik7Ci0gICAgTlNSZWN0IHdpbmRvd0Zy
YW1lUmVjdCA9IE5TSW50ZWdyYWxSZWN0KFttX3RhcmdldFZpZXcgY29udmVydFJlY3Q6Y29udGVu
dFJlY3QgdG9WaWV3Om5pbF0pOwotICAgIHdpbmRvd0ZyYW1lUmVjdCA9IFtbbV90YXJnZXRWaWV3
IHdpbmRvd10gY29udmVydFJlY3RUb1NjcmVlbjp3aW5kb3dGcmFtZVJlY3RdOwotICAgIE5TUmVj
dCB3aW5kb3dDb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDp3
aW5kb3dGcmFtZVJlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdOwotCisgICAg
TlNSZWN0IHdpbmRvd0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVS
ZWN0Ok5TSW50ZWdyYWxSZWN0KGNvbnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFza107CiAgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpOT10pOwogCiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6
W05TQ29sb3IgY2xlYXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJBY3Rpb25NZW51Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJBY3Rpb25NZW51Q29udHJvbGxlci5oCmluZGV4IGQ1ZTRjNzRhMTgwN2ZlZjJkOGRiOGVm
NGRjYzYyMmQ1Y2FkNzljMDUuLjY1NzkxMjVmZmYzYzA2Mjc3NzFmNWMzYWRmNzJjYTljYWNlYWRm
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9uTWVudUNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFjdGlvbk1lbnVD
b250cm9sbGVyLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgUmFuZ2U7CitjbGFzcyBUZXh0SW5kaWNhdG9yOwogfQogCiBAaW50ZXJmYWNlIFdlYkFjdGlv
bk1lbnVDb250cm9sbGVyIDogTlNPYmplY3QgPE5TU2hhcmluZ1NlcnZpY2VEZWxlZ2F0ZSwgTlNT
aGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlPiB7CkBAIC00NCw2ICs0NSw5IEBAIGNsYXNzIFJh
bmdlOwogICAgIFJldGFpblB0cjxOU1NoYXJpbmdTZXJ2aWNlUGlja2VyPiBfc2hhcmluZ1NlcnZp
Y2VQaWNrZXI7CiAgICAgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gX2N1cnJlbnRBY3Rpb25D
b250ZXh0OwogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gX2N1cnJlbnREZXRlY3RlZERhdGFS
YW5nZTsKKyAgICBCT09MIF9pc1Nob3dpbmdUZXh0SW5kaWNhdG9yOworICAgIFJlZlB0cjxXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yPiBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3I7Cisg
ICAgQk9PTCBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dDsKIH0KIAogLSAoaWQpaW5pdFdpdGhX
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldzsKQEAgLTUyLDQgKzU2LDcgQEAgY2xhc3MgUmFuZ2U7
CiAtICh2b2lkKXdpbGxPcGVuTWVudTooTlNNZW51ICopbWVudSB3aXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudDsKIC0gKHZvaWQpZGlkQ2xvc2VNZW51OihOU01lbnUgKiltZW51IHdpdGhFdmVudDoo
TlNFdmVudCAqKWV2ZW50OwogCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdp
bGxIYW5kbGVNb3VzZURvd246KE5TRXZlbnQgKilldmVudDsKKy0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXdlYlZpZXcgZGlkSGFuZGxlU2Nyb2xsV2hlZWw6KE5TRXZlbnQgKilldmVudDsKKwog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rpb25NZW51
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9uTWVudUNv
bnRyb2xsZXIubW0KaW5kZXggM2ZiMzRkNzczYmNlOWM5ZjQyMWFkZTM1NmE2M2Q5ZGVkZDU2OTg3
OC4uYTk3NmE5YmYxODUxYzk3NTkzMjA0ZDk2OWIyNzc2ZjcwZjBkMGE3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rpb25NZW51Q29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFjdGlvbk1lbnVDb250cm9sbGVyLm1tCkBA
IC02MSw2ICs2MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0Q2hlY2tlckNs
aWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1jbGFzcy5oPgogI2ltcG9y
dCA8b2JqYy9vYmpjLmg+CkBAIC0xMzAsNiArMTMxLDE5IEBAIHN0cnVjdCBEaWN0aW9uYXJ5UG9w
dXBJbmZvIHsKICAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoSGl0VGVzdFJlc3VsdDpfaGl0VGVzdFJlc3VsdF0gYXV0b3JlbGVhc2VdOwogfQogCistICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IHdpbGxIYW5kbGVNb3VzZURvd246KE5TRXZl
bnQgKilldmVudAoreworICAgIGlmIChfdHlwZSA9PSBXZWJBY3Rpb25NZW51RGF0YURldGVjdGVk
SXRlbSAmJiBfY3VycmVudEFjdGlvbkNvbnRleHQgJiYgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRl
eHQpIHsKKyAgICAgICAgW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIGRpZFVzZUFjdGlvbnNd
OworICAgICAgICBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCA9IE5POworICAgIH0KK30KKwor
LSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRIYW5kbGVTY3JvbGxXaGVlbDoo
TlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3NlbGYgX2Rpc21pc3NBY3Rpb25NZW51UG9wb3ZlcnNd
OworfQorCiAtICh2b2lkKXByZXBhcmVGb3JNZW51OihOU01lbnUgKiltZW51IHdpdGhFdmVudDoo
TlNFdmVudCAqKWV2ZW50CiB7CiAgICAgaWYgKCFfd2ViVmlldykKQEAgLTEzOSw2ICsxNTMsNyBA
QCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7CiAgICAgaWYgKG1lbnUgIT0gYWN0aW9uTWVu
dSkKICAgICAgICAgcmV0dXJuOwogCisgICAgW3NlbGYgX2Rpc21pc3NBY3Rpb25NZW51UG9wb3Zl
cnNdOwogICAgIFthY3Rpb25NZW51IHJlbW92ZUFsbEl0ZW1zXTsKIAogICAgIFdlYkVsZW1lbnRE
aWN0aW9uYXJ5ICpoaXRUZXN0UmVzdWx0ID0gW3NlbGYgcGVyZm9ybUhpdFRlc3RBdFBvaW50OmV2
ZW50LmxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMTUxLDkgKzE2NiwxMiBAQCBzdHJ1Y3QgRGljdGlv
bmFyeVBvcHVwSW5mbyB7CiAgICAgZm9yIChOU01lbnVJdGVtICppdGVtIGluIG1lbnVJdGVtcykK
ICAgICAgICAgW2FjdGlvbk1lbnUgYWRkSXRlbTppdGVtXTsKIAotICAgIGlmIChfdHlwZSA9PSBX
ZWJBY3Rpb25NZW51RGF0YURldGVjdGVkSXRlbSAmJiBfY3VycmVudEFjdGlvbkNvbnRleHQgJiYg
IVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENvbnRleHQ6
X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkgewotICAgICAgICBbbWVudSBjYW5jZWxUcmFj
a2luZ107Ci0gICAgICAgIFttZW51IHJlbW92ZUFsbEl0ZW1zXTsKKyAgICBpZiAoX3R5cGUgPT0g
V2ViQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0ZW0gJiYgX2N1cnJlbnRBY3Rpb25Db250ZXh0KSB7
CisgICAgICAgIF9oYXNBY3RpdmF0ZWRBY3Rpb25Db250ZXh0ID0gWUVTOworICAgICAgICBpZiAo
IVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENvbnRleHQ6
X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXSkgeworICAgICAgICAgICAgW21lbnUgY2FuY2Vs
VHJhY2tpbmddOworICAgICAgICAgICAgW21lbnUgcmVtb3ZlQWxsSXRlbXNdOworICAgICAgICB9
CiAgICAgfQogfQogCkBAIC0yMTksMTEgKzIzNywxNiBAQCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVw
SW5mbyB7CiAgICAgaWYgKG1lbnUgIT0gX3dlYlZpZXcuYWN0aW9uTWVudSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKF90eXBlID09IFdlYkFjdGlvbk1lbnVEYXRhRGV0ZWN0ZWRJdGVtICYm
IF9jdXJyZW50QWN0aW9uQ29udGV4dCkKKyAgICBpZiAoX3R5cGUgPT0gV2ViQWN0aW9uTWVudURh
dGFEZXRlY3RlZEl0ZW0gJiYgX2N1cnJlbnRBY3Rpb25Db250ZXh0ICYmIF9oYXNBY3RpdmF0ZWRB
Y3Rpb25Db250ZXh0KSB7CiAgICAgICAgIFtnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBkaWRV
c2VBY3Rpb25zXTsKKyAgICAgICAgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQgPSBOTzsKKyAg
ICB9CiAKICAgICBfdHlwZSA9IFdlYkFjdGlvbk1lbnVOb25lOwogICAgIF9zaGFyaW5nU2Vydmlj
ZVBpY2tlciA9IG5pbDsKKyAgICBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgPSBu
aWw7CisgICAgX2N1cnJlbnREZXRlY3RlZERhdGFSYW5nZSA9IG5pbDsKKyAgICBfY3VycmVudEFj
dGlvbkNvbnRleHQgPSBuaWw7CiB9CiAKICNwcmFnbWEgbWFyayBMaW5rIGFjdGlvbnMKQEAgLTU3
OCwxNiArNjAxLDIyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFRvUGhvdG9PbkRpc2soTlNTdHJp
bmcgKnN1Z2dlc3RlZEZpbGVuYW1lKQogICAgICAgICAgICAgcmV0dXJuIEBbIF07CiAgICAgfQog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBoaWRlL3Nob3cgdGhlIHllbGxvdyBoaWdobGlnaHQg
aGVyZS4KKyAgICBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNh
dG9yOjpjcmVhdGVXaXRoUmFuZ2UoKmRldGVjdGVkRGF0YVJhbmdlLCBUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlQW5kQ3Jvc3NmYWRlKTsKKwogICAgIF9jdXJyZW50
QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFs
dE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0
aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKKyAgICAgICAgW3NlbGYgX3Nob3dUZXh0SW5kaWNhdG9y
XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKKyAgICAgICAgW3NlbGYg
X2hpZGVUZXh0SW5kaWNhdG9yXTsKICAgICB9XTsKICAgICBfY3VycmVudERldGVjdGVkRGF0YVJh
bmdlID0gZGV0ZWN0ZWREYXRhUmFuZ2U7CiAKLSAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNl
dEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3dl
YlZpZXcgY29udmVydFJlY3Q6ZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsK
KyAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2ViVmlldy53
aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpkZXRlY3RlZERhdGFCb3VuZGluZ0JveF1dOwogCi0g
ICAgcmV0dXJuIFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVu
dUl0ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0aW9u
Q29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIE5TQXJyYXkgKm1lbnVJ
dGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0
ZW1zRm9yUmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0aW9uQ29u
dGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOworICAgIGlmIChtZW51SXRlbXMuY291
bnQgPT0gMSAmJiBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IpCisgICAgICAgIF9j
dXJyZW50RGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvci0+c2V0UHJlc2VudGF0aW9uVHJhbnNpdGlv
bihUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlKTsKKyAgICByZXR1
cm4gbWVudUl0ZW1zOwogfQogCiAtICh2b2lkKV9jb3B5U2VsZWN0aW9uOihpZClzZW5kZXIKQEAg
LTkwMiw0ICs5MzEsMzUgQEAgc3RhdGljIERpY3Rpb25hcnlQb3B1cEluZm8gcGVyZm9ybURpY3Rp
b25hcnlMb29rdXBGb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJgogICAgIHJldHVybiBAWyBd
OwogfQogCisjcHJhZ21hIG1hcmsgVGV4dCBJbmRpY2F0b3IKKworLSAodm9pZClfc2hvd1RleHRJ
bmRpY2F0b3IKK3sKKyAgICBpZiAoX2lzU2hvd2luZ1RleHRJbmRpY2F0b3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChfdHlwZSA9PSBXZWJBY3Rpb25NZW51RGF0YURldGVjdGVkSXRlbSAm
JiBfY3VycmVudERldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IpIHsKKyAgICAgICAgW193ZWJWaWV3
IF9zZXRUZXh0SW5kaWNhdG9yOl9jdXJyZW50RGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvci5nZXQo
KSBmYWRlT3V0Ok5PIGFuaW1hdGlvbkNvbXBsZXRpb25IYW5kbGVyOl4geyB9XTsKKyAgICAgICAg
X2lzU2hvd2luZ1RleHRJbmRpY2F0b3IgPSBZRVM7CisgICAgfQorfQorCistICh2b2lkKV9oaWRl
VGV4dEluZGljYXRvcgoreworICAgIGlmICghX2lzU2hvd2luZ1RleHRJbmRpY2F0b3IpCisgICAg
ICAgIHJldHVybjsKKworICAgIFtfd2ViVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yXTsKKyAgICBf
aXNTaG93aW5nVGV4dEluZGljYXRvciA9IE5POworfQorCistICh2b2lkKV9kaXNtaXNzQWN0aW9u
TWVudVBvcG92ZXJzCit7CisgICAgRERBY3Rpb25zTWFuYWdlciAqYWN0aW9uc01hbmFnZXIgPSBb
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl07CisgICAgaWYgKFthY3Rp
b25zTWFuYWdlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3RCdWJibGVDbG9z
dXJlVW5hbmNob3JPbkZhaWx1cmU6KV0pCisgICAgICAgIFthY3Rpb25zTWFuYWdlciByZXF1ZXN0
QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107CisKKyAgICBbc2VsZiBfaGlkZVRl
eHRJbmRpY2F0b3JdOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCAxNTZmMWYxNTU2OWY3OTUxODJmNmRjY2ZlOTJmMmQ3ZjNmNWViOGIwLi4y
NjdkYTM0NDY4OGFjNzBjZjNhNWYzNGY0MDVlNDE1MThiZjc0YzZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIkRP
TURvY3VtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiRE9NUmFuZ2VJbnRlcm5hbC5oIgorI2ltcG9ydCAiV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIu
aCIKICNpbXBvcnQgIldlYkFyY2hpdmUuaCIKICNpbXBvcnQgIldlYkNsaXBWaWV3LmgiCiAjaW1w
b3J0ICJXZWJET01PcGVyYXRpb25zSW50ZXJuYWwuaCIKQEAgLTM3MDAsNiArMzcwMSw4IEBAIHN0
YXRpYyB2b2lkIHNldE1lbnVUYXJnZXRzKE5TTWVudSogbWVudSkKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5ldmVudEhhbmRsZXIoKS53aGVlbEV2ZW50KGV2
ZW50KSkKICAgICAgICAgW3N1cGVyIHNjcm9sbFdoZWVsOmV2ZW50XTsKKworICAgIFtbW3NlbGYg
X3dlYlZpZXddIF9hY3Rpb25NZW51Q29udHJvbGxlcl0gd2ViVmlldzpbc2VsZiBfd2ViVmlld10g
ZGlkSGFuZGxlU2Nyb2xsV2hlZWw6ZXZlbnRdOwogI2Vsc2UKICAgICBpZiAoZnJhbWUpCiAgICAg
ICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS53aGVlbEV2ZW50KGV2ZW50KTsKQEAgLTM4MTIsNiAr
MzgxNSwxMCBAQCBzdGF0aWMgdm9pZCBzZXRNZW51VGFyZ2V0cyhOU01lbnUqIG1lbnUpCiAgICAg
Ly8gUmVjb3JkIHRoZSBtb3VzZSBkb3duIHBvc2l0aW9uIHNvIHdlIGNhbiBkZXRlcm1pbmUgZHJh
ZyBoeXN0ZXJlc2lzLgogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07CiAKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgW1tbc2VsZiBfd2ViVmlld10gX2FjdGlvbk1lbnVDb250cm9s
bGVyXSB3ZWJWaWV3OltzZWxmIF93ZWJWaWV3XSB3aWxsSGFuZGxlTW91c2VEb3duOmV2ZW50XTsK
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFRFWFRJTlBVVDogaWYgdGhlcmUg
aXMgbWFya2VkIHRleHQgYW5kIHRoZSBjdXJyZW50IGlucHV0CiAgICAgLy8gbWFuYWdlciB3YW50
cyB0byBoYW5kbGUgbW91c2UgZXZlbnRzLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0bwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDI5MGMxMTFjYmU3MWQ4ZTNiZjRlZDBiZTlk
OTExNzdiMGZiNWRlYmUuLmEwNmViZWJhY2ZhNzE2MDlhMWRiMWIwNzAwZmFkZTQ4NThmZDA4OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMCw2ICsyMTAsOCBAQAog
I2ltcG9ydCAiV2ViTlNQcmludE9wZXJhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCAiV2ViUERGVmll
dy5oIgogI2ltcG9ydCA8V2ViQ29yZS9OU1ZpZXdTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4
dEluZGljYXRvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaD4KICNlbHNlCiAj
aW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCkBAIC04NTM3LDcgKzg1MzksNyBAQCBzdGF0aWMgdm9p
ZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1
bkxvb3BBY3Rpdml0eQogICAgIHJldHVybiBOU01ha2VSZWN0KHJlY3Qub3JpZ2luLngsIFtzZWxm
IGJvdW5kc10uc2l6ZS5oZWlnaHQgLSByZWN0Lm9yaWdpbi55IC0gcmVjdC5zaXplLmhlaWdodCwg
cmVjdC5zaXplLndpZHRoLCByZWN0LnNpemUuaGVpZ2h0KTsKIH0KIAotI2lmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogLSAodm9pZClwcmVwYXJlRm9yTWVudTooTlNNZW51ICop
bWVudSB3aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewogICAgIGlmIChtZW51ICE9IHNlbGYu
YWN0aW9uTWVudSkKQEAgLTg1NjEsNiArODU2MywyOSBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4
dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0
eQogCiAgICAgW19wcml2YXRlLT5hY3Rpb25NZW51Q29udHJvbGxlciBkaWRDbG9zZU1lbnU6bWVu
dSB3aXRoRXZlbnQ6ZXZlbnRdOwogfQorCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihUZXh0
SW5kaWNhdG9yICopdGV4dEluZGljYXRvciBmYWRlT3V0OihCT09MKWZhZGVPdXQgYW5pbWF0aW9u
Q29tcGxldGlvbkhhbmRsZXI6KHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pY29tcGxldGlvbkhhbmRs
ZXIKK3sKKyAgICBpZiAoIXRleHRJbmRpY2F0b3IpIHsKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJ
bmRpY2F0b3JXaW5kb3cgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldpbmRvdykKKyAgICAgICAgX3ByaXZhdGUtPnRl
eHRJbmRpY2F0b3JXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbmRpY2F0b3JXaW5kb3c+
KHNlbGYpOworCisgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JXaW5kb3ctPnNldFRleHRJbmRp
Y2F0b3IodGV4dEluZGljYXRvciwgZmFkZU91dCwgV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcgoreworICAgIFtzZWxmIF9zZXRU
ZXh0SW5kaWNhdG9yOm51bGxwdHIgZmFkZU91dDpOTyBhbmltYXRpb25Db21wbGV0aW9uSGFuZGxl
cjpeIHsgfV07Cit9CisKKy0gKFdlYkFjdGlvbk1lbnVDb250cm9sbGVyICopX2FjdGlvbk1lbnVD
b250cm9sbGVyCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5hY3Rpb25NZW51Q29udHJvbGxlcjsK
K30KICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgK
aW5kZXggZjQ0N2EwMTI2Y2JmMTQ5ZWIzMWZmOGQ3ZmNlYzVkZDdhZDAxNDM1YS4uOTM0ZTlmOGQ5
MDljYWNhZDc4OTgyZjM4NWE0NWVkNmNlMmYyZTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNs
YXNzIFBhZ2U7CitjbGFzcyBUZXh0SW5kaWNhdG9yV2luZG93OwogfQogCiBAY2xhc3MgV2ViQWN0
aW9uTWVudUNvbnRyb2xsZXI7CkBAIC0xNDcsNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBXZWJO
b2RlSGlnaGxpZ2h0ICpjdXJyZW50Tm9kZUhpZ2hsaWdodDsKIAogICAgIFdlYkFjdGlvbk1lbnVD
b250cm9sbGVyICphY3Rpb25NZW51Q29udHJvbGxlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvdz4gdGV4dEluZGljYXRvcldpbmRvdzsKIAogICAgIEJP
T0wgYWxsb3dzVW5kbzsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbQppbmRleCA4OTcwNGM5OGVjMmI2ZDBkZDk1Y2I2NjQxNzY0YmFkYTZmNGEwOTY1Li40
Y2Y2ZGUxNzk1NDA4YzVkN2FiYTEzZTA5OGY0MmNiZTViMzcxYmE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1h
dXRvLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQg
PHd0Zi9NYWluVGhyZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50
ZXJuYWwuaAppbmRleCAzNzc2ZjU1MTY4YzA3ZDY0ZTdkNDBmNjUyMDRjNmFiNDU5Y2JlZTU2Li5i
YTYxNjE4NmZmNWM4ODZjYWZhN2ZhZTQ4MWQyZWZjM2I5NGNkY2JlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTQxLDI2ICs0MSwyOCBAQAogI2lt
cG9ydCA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRB
bHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlS2V5Ym9hcmRV
SU1vZGUuaD4KLQotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8ZnVuY3Rpb25hbD4KKyNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEVs
ZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNsYXNzIEZyYW1lOworY2xhc3MgSFRNTFZpZGVvRWxlbWVu
dDsKIGNsYXNzIEhpc3RvcnlJdGVtOwotY2xhc3MgVVJMOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsK
IGNsYXNzIFBhZ2U7CiBjbGFzcyBSZW5kZXJCb3g7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50Owor
Y2xhc3MgVGV4dEluZGljYXRvcjsKK2NsYXNzIFVSTDsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5h
dGl2ZTsKIH0KIAogY2xhc3MgV2ViU2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXI7CiAjZW5kaWYK
IAorQGNsYXNzIFdlYkFjdGlvbk1lbnVDb250cm9sbGVyOwogQGNsYXNzIFdlYkJhc2VQbHVnaW5Q
YWNrYWdlOwogQGNsYXNzIFdlYkRvd25sb2FkOwogQGNsYXNzIFdlYk5vZGVIaWdobGlnaHQ7CkBA
IC0yNTQsNCArMjU2LDEwIEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAoTlNQ
b2ludClfY29udmVydFBvaW50RnJvbVJvb3RWaWV3OihOU1BvaW50KXBvaW50OwogLSAoTlNSZWN0
KV9jb252ZXJ0UmVjdEZyb21Sb290VmlldzooTlNSZWN0KXJlY3Q7CiAKKyNpZiBQTEFURk9STShN
QUMpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yKil0ZXh0SW5kaWNhdG9yIGZhZGVPdXQ6KEJPT0wpZmFkZU91
dCBhbmltYXRpb25Db21wbGV0aW9uSGFuZGxlcjooc3RkOjpmdW5jdGlvbjx2b2lkICgpPiljb21w
bGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcjsKKy0gKFdlYkFjdGlv
bk1lbnVDb250cm9sbGVyICopX2FjdGlvbk1lbnVDb250cm9sbGVyOworI2VuZGlmCisKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggMmIzZmI1NjM5MDNlYWQ3NTBmYWU4MTBkOTg1MjMwMDM5NjA0M2NlNS4uZDJmZGExMmQyM2U2
Yjc4MDljNDc4ZTQ0YmNiMDZiMDRjNDQ3NDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE5NjMsOCArMTk2Myw4IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxCbG9iUGFydD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IEJsb2JQYXJ0JiBibG9iUGFyCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0SW5kaWNhdG9yRGF0
YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRJbmRpY2F0b3JE
YXRhJiB0ZXh0SW5kaWNhdG9yRGF0YSkKIHsKLSAgICBlbmNvZGVyIDw8IHRleHRJbmRpY2F0b3JE
YXRhLnNlbGVjdGlvblJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzOwotICAgIGVuY29kZXIgPDwgdGV4
dEluZGljYXRvckRhdGEudGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXM7CisgICAg
ZW5jb2RlciA8PCB0ZXh0SW5kaWNhdG9yRGF0YS5zZWxlY3Rpb25SZWN0SW5TY3JlZW5Db29yZGlu
YXRlczsKKyAgICBlbmNvZGVyIDw8IHRleHRJbmRpY2F0b3JEYXRhLnRleHRCb3VuZGluZ1JlY3RJ
blNjcmVlbkNvb3JkaW5hdGVzOwogICAgIGVuY29kZXIgPDwgdGV4dEluZGljYXRvckRhdGEudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKICAgICBlbmNvZGVyIDw8IHRleHRJbmRp
Y2F0b3JEYXRhLmNvbnRlbnRJbWFnZVNjYWxlRmFjdG9yOwogICAgIGVuY29kZXIuZW5jb2RlRW51
bSh0ZXh0SW5kaWNhdG9yRGF0YS5wcmVzZW50YXRpb25UcmFuc2l0aW9uKTsKQEAgLTE5ODIsMTAg
KzE5ODIsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPFRleHRJbmRpY2F0b3JEYXRhPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGUKIAogYm9vbCBBcmd1bWVudENvZGVy
PFRleHRJbmRpY2F0b3JEYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4
dEluZGljYXRvckRhdGEmIHRleHRJbmRpY2F0b3JEYXRhKQogewotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodGV4dEluZGljYXRvckRhdGEuc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dEluZGljYXRvckRhdGEuc2VsZWN0aW9uUmVj
dEluU2NyZWVuQ29vcmRpbmF0ZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHRleHRJbmRpY2F0b3JEYXRhLnRleHRCb3VuZGluZ1JlY3RJbldpbmRv
d0Nvb3JkaW5hdGVzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHRJbmRpY2F0b3JEYXRh
LnRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0ZXh0SW5kaWNhdG9yRGF0YS50ZXh0UmVj
dHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGE4NmIwOTYxMWE4ZmFm
OTFmMTRmNzM3NmNmMDJmNDBmNGFhMjViYWEuLjA1ZTMxNzc2Y2ZiMzQ0OGYzMmY3YjY4MmExNzQ4
NzI1MGQ3ZGMyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMzE4LDcgKzMxOCw3IEBAIGJvb2wgRmluZENvbnRy
b2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNT
aG93aW5nT3ZlCiAgICAgaWYgKCFpbmRpY2F0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIG1fZmluZEluZGljYXRvclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGluZGljYXRvci0+c2Vs
ZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSk7CisgICAgbV9maW5kSW5kaWNhdG9yUmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoaW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5TY3JlZW5Db29y
ZGluYXRlcygpKTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0VGV4dEluZGljYXRvcihpbmRpY2F0b3ItPmRhdGEoKSwgIWlzU2hvd2luZ092ZXJsYXkpKTsK
ICAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3IgPSB0cnVlOwogCkBAIC00NTAsNyArNDUwLDcg
QEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmLCBHcmFwaGljc0Nv
bnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY28KICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKEZy
YW1lKiBzZWxlY3RlZEZyYW1lID0gZnJhbWVXaXRoU2VsZWN0aW9uKG1fd2ViUGFnZS0+Y29yZVBh
Z2UoKSkpIHsKLSAgICAgICAgSW50UmVjdCBmaW5kSW5kaWNhdG9yUmVjdCA9IHNlbGVjdGVkRnJh
bWUtPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0KHNlbGVjdGVkRnJh
bWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbkJvdW5kcygpKSk7CisgICAgICAgIEludFJlY3QgZmlu
ZEluZGljYXRvclJlY3QgPSBzZWxlY3RlZEZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9TY3JlZW4o
ZW5jbG9zaW5nSW50UmVjdChzZWxlY3RlZEZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb25Cb3Vu
ZHMoKSkpOwogCiAgICAgICAgIGlmIChmaW5kSW5kaWNhdG9yUmVjdCAhPSBtX2ZpbmRJbmRpY2F0
b3JSZWN0KQogICAgICAgICAgICAgaGlkZUZpbmRJbmRpY2F0b3IoKTsK
</data>
<flag name="review"
          id="266990"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>