<?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>137358</bug_id>
          
          <creation_ts>2014-10-02 13:43:33 -0700</creation_ts>
          <short_desc>[iOS] Teach WKPDFView to navigate to pageNumber links</short_desc>
          <delta_ts>2014-10-02 16:05:53 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038960</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 13:43:33 -0700</bug_when>
    <thetext>[iOS] Teach WKPDFView to navigate to pageNumber links</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038969</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 14:05:14 -0700</bug_when>
    <thetext>rdar://problem/18334903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038976</commentid>
    <comment_count>2</comment_count>
      <attachid>239137</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 14:18:15 -0700</bug_when>
    <thetext>Created attachment 239137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038977</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-02 14:20:20 -0700</bug_when>
    <thetext>Attachment 239137 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKPDFView.mm:356:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 9 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>1038981</commentid>
    <comment_count>4</comment_count>
      <attachid>239137</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-10-02 14:27:27 -0700</bug_when>
    <thetext>Comment on attachment 239137
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKPDFView.mm:359
&gt; +        urlString = String::format(&quot;#page%lu&quot;, pageNumber);

I&apos;m not sure String::format is the best way to do this. I realize that this isn&apos;t performance critical code, but still probably not a great example to set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038985</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 14:30:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 239137 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239137&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WKPDFView.mm:359
&gt; &gt; +        urlString = String::format(&quot;#page%lu&quot;, pageNumber);
&gt; 
&gt; I&apos;m not sure String::format is the best way to do this. I realize that this isn&apos;t performance critical code, but still probably not a great example to set.

What&apos;s the alternative? append &apos;0&apos; + pageNumber as a character literal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038986</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 14:39:16 -0700</bug_when>
    <thetext>Oh never mind, WTFString has a bunch of number conversion functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038991</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-02 14:51:21 -0700</bug_when>
    <thetext>Committed r174232: &lt;http://trac.webkit.org/changeset/174232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039020</commentid>
    <comment_count>8</comment_count>
      <attachid>239137</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-02 16:05:53 -0700</bug_when>
    <thetext>Comment on attachment 239137
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/ios/WKPDFView.mm:359
&gt;&gt;&gt; +        urlString = String::format(&quot;#page%lu&quot;, pageNumber);
&gt;&gt; 
&gt;&gt; I&apos;m not sure String::format is the best way to do this. I realize that this isn&apos;t performance critical code, but still probably not a great example to set.
&gt; 
&gt; What&apos;s the alternative? append &apos;0&apos; + pageNumber as a character literal?

One alternative is to use StringBuilder and appendNumber. I don’t think it’s higher performance than String::format, but it does avoid the assumption that NSUInteger is always unsigned long, which this code makes by using %lu for it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239137</attachid>
            <date>2014-10-02 14:18:15 -0700</date>
            <delta_ts>2014-10-02 16:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137358-20141002141816.patch</filename>
            <type>text/plain</type>
            <size>18865</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzAwMDgwY2RiNzIxNDVi
NTFmM2IzZDdkNTYwM2JkYTI1MjE4MTRlNy4uYWVhZmNjMjMzMzU2NzA2M2RjY2Y3ZDIxNGU3YWJk
YjM3ZmZlYjE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTEwLTAyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBUZWFjaCBXS1BERlZp
ZXcgdG8gbmF2aWdhdGUgdG8gcGFnZU51bWJlciBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlYXQgUERGIHBhZ2VOdW1iZXIgYW5ub3RhdGlv
bnMgYXMgaWYgdGhleSB3ZXJlIGZyYWdtZW50IG5hdmlnYXRpb25zIGluIGFuIEhUTUwgZG9jdW1l
bnQuIEZvciBhIGdpdmVuIHBhZ2UKKyAgICAgICAgbnVtYmVyIE4sIGNyZWF0ZSBhIGZyYWdtZW50
IGNhbGxlZCAiI3BhZ2VOIiBhbmQgdGVsbCBXZWJLaXQgdG8gbmF2aWdhdGUgdG8gaXQuIEJ5IGRv
aW5nIHRoaXMgd2UgY3JlYXRlIGhpc3RvcnkKKyAgICAgICAgZW50cmllcyBmb3IgZWFjaCBwYWdl
TnVtYmVyIG5hdmlnYXRpb24gYW5kIGFsbG93IGZvciBwcm9wZXIgYmFjay9mb3J3YXJkLiBXaGVu
IG5hdmlnYXRpbmcgdG8gYSBwYWdlLCByZXNldCB0bworICAgICAgICB0aGUgaW5pdGlhbCBzY2Fs
ZSBmYWN0b3IgYW5kIHNjcm9sbCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBOdGggcGFnZS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3pvb21Ub1BvaW50OmF0U2NhbGU6YW5pbWF0ZWQ6XSk6IEFkZGVkIGFuIGFuaW1h
dGVkIHBhcmFtZXRlci4gSWYgYW5pbWF0ZWQgaXMgTk8sIHVzZSBhIGR1cmF0aW9uIG9mIDAuCisg
ICAgICAgICgtW1dLV2ViVmlldyBfem9vbVRvUmVjdDphdFNjYWxlOm9yaWdpbjphbmltYXRlZDpd
KTogQWRkZWQgYW4gYW5pbWF0ZWQgcGFyYW1ldGVyIGFuZCBwYXNzZWQgaXQgdG8gX3pvb21Ub1Bv
aW50OmF0U2NhbGU6YW5pbWF0ZWQ6LgorICAgICAgICAoLVtXS1dlYlZpZXcgX3pvb21PdXRXaXRo
T3JpZ2luOmFuaW1hdGVkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF96b29tVG9S
ZWN0OndpdGhPcmlnaW46Zml0RW50aXJlUmVjdDptaW5pbXVtU2NhbGU6bWF4aW11bVNjYWxlOm1p
bmltdW1TY3JvbGxEaXN0YW5jZTpdKTogQ2FsbGVkIF96b29tVG9SZWN0OmF0U2NhbGU6b3JpZ2lu
OmFuaW1hdGVkOiwKKyAgICAgICAgc2V0dGluZyBhbmltYXRlZCB0byBZRVMuCisgICAgICAgICgt
W1dLV2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpdKTogQ2Fs
bGVkIHdlYl9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOiBvbiBfY3VzdG9tQ29udGVudFZpZXcu
CisgICAgICAgICgtW1dLV2ViVmlldyBfem9vbVRvUG9pbnQ6YXRTY2FsZTpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF96b29tVG9SZWN0OmF0U2NhbGU6b3JpZ2luOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3pvb21PdXRXaXRoT3JpZ2luOl0pOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUp
OiBDYWxsZWQgX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUgb24gbV93ZWJW
aWV3LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfem9vbU91dFdpdGhPcmlnaW46XSk6IENhbGxlZCBfem9vbU91dFdp
dGhPcmlnaW46YW5pbWF0ZWQ6IG9uIG1fd2ViVmlldywgc2V0dGluZyBhbmltYXRlZCB0byBZRVMu
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbToKKyAgICAg
ICAgKC1bV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yIGhpZGVdKTogQWRkZWQgYSBtZXRob2QgdG8g
aGlkZSB0aGUgcGFnZSBudW1iZXIgaW5kaWNhdG9yLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tQREZWaWV3Lm1tOgorICAgICAgICAoLVtXS1BERlZpZXcgd2ViX3NldENvbnRlbnRQcm92aWRl
ckRhdGE6c3VnZ2VzdGVkRmlsZW5hbWU6XSk6IEFkZGVkIGEgRklYTUUgZm9yIHJlc3RvcmluZyBz
Y3JvbGwgcG9zaXRpb24gYW5kIHBhZ2Ugc2NhbGUgd2hlbiBsb2FkaW5nIGZyb20gdGhlIGJhY2sv
Zm9yd2FyZCBsaXN0LgorICAgICAgICAoLVtXS1BERlZpZXcgc2Nyb2xsVmlld0RpZFNjcm9sbDpd
KTogU3RvcHBlZCBzaG93aW5nIHRoZSBwYWdlIG51bWJlciBpbmRpY2F0b3IgaWYgYSBzYW1lLWRv
Y3VtZW50IG5hdmlnYXRpb24gaXMgb2NjdXJyaW5nICh0byBtYXRjaCBVSVdlYlBERlZpZXcpLgor
ICAgICAgICAoLVtXS1BERlZpZXcgX3VwZGF0ZVBhZ2VOdW1iZXJJbmRpY2F0b3JdKTogRGl0dG8u
CisgICAgICAgICgtW1dLUERGVmlldyB3ZWJfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbjpdKToK
KyAgICAgICAgKC1bV0tQREZWaWV3IF9yZXNldFpvb21BbmltYXRlZDpdKTogRm9yIHNhbWUtZG9j
dW1lbnQgbmF2aWdhdGlvbnMgb2YgdHlwZSBrV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uU2Vzc2lv
blN0YXRlUG9wLCBleHRyYWN0ZWQgdGhlIHBhZ2UgaW5kZXggZnJvbSB0aGUgVVJMIGZyYWdtZW50
CisgICAgICAgIGlkZW50aWZpZXIsIGhpZCB0aGUgcGFnZSBudW1iZXIgaW5kaWNhdG9yLCByZXNl
dCB0aGUgem9vbSAod2l0aG91dCBhbiBhbmltYXRpb24gdG8gbWF0Y2ggVUlXZWJQREZWaWV3KSwg
YW5kIHNjcm9sbGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdpdmVuIHBhZ2UuCisgICAgICAg
ICgtW1dLUERGVmlldyByZXNldFpvb206XSk6IENhbGxlZCBfcmVzZXRab29tQW5pbWF0ZWQ6LCBz
ZXR0aW5nIGFuaW1hdGVkIHRvIFlFUy4KKyAgICAgICAgKC1bV0tQREZWaWV3IGFubm90YXRpb246
d2FzVG91Y2hlZEF0UG9pbnQ6Y29udHJvbGxlcjpdKTogSWYgdGhlcmUgaXMgYSBub24temVybyBw
YWdlTnVtYmVyIGluIHRoZSBsaW5rIGFubm90YXRpb24sIGNvbnN0cnVjdCBhICIjcGFnZU4iIGZy
YWdtZW50IGFuZCBuYXZpZ2F0ZSB0byBpdC4KKwogMjAxNC0wOS0yOSAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDJkM2Y4OTQwZjNmYmFj
YjAxYjA3YzRhN2NiYjkwYzliZDQ4NzYxNS4uOGFmNGE2NTQ0ZWYxNWY5ODY4ZWMyYTNmNzgwNWUw
YTg2YjFiYzU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgIldLTmF2aWdhdGlvbkludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS1ByZWZlcmVuY2VzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJv
Y2Vzc1Bvb2xJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW1wb3J0
ICJXS1VJRGVsZWdhdGUuaCIKICNpbXBvcnQgIldLVUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBv
cnQgIldLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTk3MywxNCArOTc0LDE4
IEBAIC0gKFBhc3NSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90
CiAgICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoc2xvdElELCBpbWFnZVNp
emUsIGltYWdlU2l6ZS53aWR0aCgpICogaW1hZ2VTaXplLmhlaWdodCgpICogNCk7CiB9CiAKLS0g
KHZvaWQpX3pvb21Ub1BvaW50OihXZWJDb3JlOjpGbG9hdFBvaW50KXBvaW50IGF0U2NhbGU6KGRv
dWJsZSlzY2FsZQorLSAodm9pZClfem9vbVRvUG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9p
bnQgYXRTY2FsZTooZG91YmxlKXNjYWxlIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7Ci0gICAg
ZG91YmxlIG1heGltdW1ab29tRHVyYXRpb24gPSAwLjQ7Ci0gICAgZG91YmxlIG1pbmltdW1ab29t
RHVyYXRpb24gPSAwLjE7Ci0gICAgZG91YmxlIHpvb21EdXJhdGlvbkZhY3RvciA9IDAuMzsKLQor
ICAgIENGVGltZUludGVydmFsIGR1cmF0aW9uID0gMDsKICAgICBDR0Zsb2F0IHpvb21TY2FsZSA9
IGNvbnRlbnRab29tU2NhbGUoc2VsZik7Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24gPSBz
dGQ6Om1pbihmYWJzKGxvZyh6b29tU2NhbGUpIC0gbG9nKHNjYWxlKSkgKiB6b29tRHVyYXRpb25G
YWN0b3IgKyBtaW5pbXVtWm9vbUR1cmF0aW9uLCBtYXhpbXVtWm9vbUR1cmF0aW9uKTsKKworICAg
IGlmIChhbmltYXRlZCkgeworICAgICAgICBjb25zdCBkb3VibGUgbWF4aW11bVpvb21EdXJhdGlv
biA9IDAuNDsKKyAgICAgICAgY29uc3QgZG91YmxlIG1pbmltdW1ab29tRHVyYXRpb24gPSAwLjE7
CisgICAgICAgIGNvbnN0IGRvdWJsZSB6b29tRHVyYXRpb25GYWN0b3IgPSAwLjM7CisKKyAgICAg
ICAgZHVyYXRpb24gPSBzdGQ6Om1pbihmYWJzKGxvZyh6b29tU2NhbGUpIC0gbG9nKHNjYWxlKSkg
KiB6b29tRHVyYXRpb25GYWN0b3IgKyBtaW5pbXVtWm9vbUR1cmF0aW9uLCBtYXhpbXVtWm9vbUR1
cmF0aW9uKTsKKyAgICB9CiAKICAgICBpZiAoc2NhbGUgIT0gem9vbVNjYWxlKQogICAgICAgICBf
cGFnZS0+d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKQEAgLTk4OCw3ICs5OTMsNyBA
QCAtICh2b2lkKV96b29tVG9Qb2ludDooV2ViQ29yZTo6RmxvYXRQb2ludClwb2ludCBhdFNjYWxl
Oihkb3VibGUpc2NhbGUKICAgICBbX3Njcm9sbFZpZXcgX3pvb21Ub0NlbnRlcjpwb2ludCBzY2Fs
ZTpzY2FsZSBkdXJhdGlvbjpkdXJhdGlvbl07CiB9CiAKLS0gKHZvaWQpX3pvb21Ub1JlY3Q6KFdl
YkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IGF0U2NhbGU6KGRvdWJsZSlzY2FsZSBvcmlnaW46
KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luCistICh2b2lkKV96b29tVG9SZWN0OihXZWJDb3Jl
OjpGbG9hdFJlY3QpdGFyZ2V0UmVjdCBhdFNjYWxlOihkb3VibGUpc2NhbGUgb3JpZ2luOihXZWJD
b3JlOjpGbG9hdFBvaW50KW9yaWdpbiBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewogICAgIC8v
IEZJTVhFOiBTb21lIG9mIHRoaXMgY291bGQgYmUgc2hhcmVkIHdpdGggX3Njcm9sbFRvUmVjdC4K
ICAgICBjb25zdCBkb3VibGUgdmlzaWJsZVJlY3RTY2FsZUNoYW5nZSA9IGNvbnRlbnRab29tU2Nh
bGUoc2VsZikgLyBzY2FsZTsKQEAgLTEwMTQsNyArMTAxOSw3IEBAIC0gKHZvaWQpX3pvb21Ub1Jl
Y3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IGF0U2NhbGU6KGRvdWJsZSlzY2FsZSBv
cmlnaW46CiAgICAgdmlzaWJsZVJlY3RBZnRlclpvb20ubW92ZSgtdG9wTGVmdE9ic2N1cmVkSW5z
ZXRBZnRlclpvb20pOwogICAgIHZpc2libGVSZWN0QWZ0ZXJab29tLmV4cGFuZCh0b3BMZWZ0T2Jz
Y3VyZWRJbnNldEFmdGVyWm9vbSArIGJvdHRvbVJpZ2h0T2JzY3VyZWRJbnNldEFmdGVyWm9vbSk7
CiAKLSAgICBbc2VsZiBfem9vbVRvUG9pbnQ6dmlzaWJsZVJlY3RBZnRlclpvb20uY2VudGVyKCkg
YXRTY2FsZTpzY2FsZV07CisgICAgW3NlbGYgX3pvb21Ub1BvaW50OnZpc2libGVSZWN0QWZ0ZXJa
b29tLmNlbnRlcigpIGF0U2NhbGU6c2NhbGUgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCiBzdGF0
aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50T2Zmc2V0KFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29udGVudE9mZnNldCwgV2ViQ29yZTo6RmxvYXRTaXplIGNvbnRlbnRTaXplLCBX
ZWJDb3JlOjpGbG9hdFNpemUgdW5vYnNjdXJlZENvbnRlbnRTaXplKQpAQCAtMTA4Nyw5ICsxMDky
LDkgQEAgLSAoQk9PTClfc2Nyb2xsVG9SZWN0OihXZWJDb3JlOjpGbG9hdFJlY3QpdGFyZ2V0UmVj
dCBvcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLSAo
dm9pZClfem9vbU91dFdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luCistICh2
b2lkKV96b29tT3V0V2l0aE9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClvcmlnaW4gYW5pbWF0
ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKLSAgICBbc2VsZiBfem9vbVRvUG9pbnQ6b3JpZ2luIGF0U2Nh
bGU6W19zY3JvbGxWaWV3IG1pbmltdW1ab29tU2NhbGVdXTsKKyAgICBbc2VsZiBfem9vbVRvUG9p
bnQ6b3JpZ2luIGF0U2NhbGU6W19zY3JvbGxWaWV3IG1pbmltdW1ab29tU2NhbGVdIGFuaW1hdGVk
OmFuaW1hdGVkXTsKIH0KIAogLy8gZm9jdXNlZEVsZW1lbnRSZWN0IGFuZCBzZWxlY3Rpb25SZWN0
IGFyZSBib3RoIGluIGRvY3VtZW50IGNvb3JkaW5hdGVzLgpAQCAtMTIyOSw3ICsxMjM0LDcgQEAg
LSAoQk9PTClfem9vbVRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgd2l0aE9y
aWdpbjooV2ViQ29yZTo6RmxvYXRQb2kKICAgICAgICAgaWYgKFtzZWxmIF9zY3JvbGxUb1JlY3Q6
dGFyZ2V0UmVjdCBvcmlnaW46b3JpZ2luIG1pbmltdW1TY3JvbGxEaXN0YW5jZTptaW5pbXVtU2Ny
b2xsRGlzdGFuY2VdKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmICh0
YXJnZXRTY2FsZSAhPSBjdXJyZW50U2NhbGUpIHsKLSAgICAgICAgW3NlbGYgX3pvb21Ub1JlY3Q6
dGFyZ2V0UmVjdCBhdFNjYWxlOnRhcmdldFNjYWxlIG9yaWdpbjpvcmlnaW5dOworICAgICAgICBb
c2VsZiBfem9vbVRvUmVjdDp0YXJnZXRSZWN0IGF0U2NhbGU6dGFyZ2V0U2NhbGUgb3JpZ2luOm9y
aWdpbiBhbmltYXRlZDpZRVNdOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBA
IC0xNDM2LDYgKzE0NDEsMTEgQEAgLSAodm9pZClfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cwog
ICAgICAgICBpblN0YWJsZVN0YXRlOmlzU3RhYmxlU3RhdGUgaXNDaGFuZ2luZ09ic2N1cmVkSW5z
ZXRzSW50ZXJhY3RpdmVseTpfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseV07
CiB9CiAKKy0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWU6KFdl
YktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGUKK3sKKyAgICBb
X2N1c3RvbUNvbnRlbnRWaWV3IHdlYl9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOnRvQVBJKG5h
dmlnYXRpb25UeXBlKV07Cit9CisKIC0gKHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOihO
U0RpY3Rpb25hcnkgKilrZXlib2FyZEluZm8gYWRqdXN0U2Nyb2xsVmlldzooQk9PTClhZGp1c3RT
Y3JvbGxWaWV3CiB7CiAgICAgTlNWYWx1ZSAqZW5kRnJhbWVWYWx1ZSA9IFtrZXlib2FyZEluZm8g
b2JqZWN0Rm9yS2V5OlVJS2V5Ym9hcmRGcmFtZUVuZFVzZXJJbmZvS2V5XTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApp
bmRleCAxZWZhMTg1MWU2NmEwOWE2N2E4OTBhZmJlOWNiM2M0NjJjZDQxZTliLi45ZDlmZmQ1YjRh
MTA3NzRhZGQyYzk2YjAwMDRmMDhkZWRhMjBhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCisjaW1wb3J0ICJTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZS5oIgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCkBAIC04NCw3ICs4NSw3IEBAIHN0cnVjdCBQcmludEluZm87CiAtIChCT09MKV9z
Y3JvbGxUb1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0YXJnZXRSZWN0IG9yaWdpbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClvcmlnaW4gbWluaW11bVNjcm9sbERpc3RhbmNlOihmbG9hdCltaW5pbXVt
U2Nyb2xsRGlzdGFuY2U7CiAtICh2b2lkKV96b29tVG9Gb2N1c1JlY3Q6KFdlYkNvcmU6OkZsb2F0
UmVjdClmb2N1c2VkRWxlbWVudFJlY3Qgc2VsZWN0aW9uUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0
KXNlbGVjdGlvblJlY3RJbkRvY3VtZW50Q29vcmRpbmF0ZXMgZm9udFNpemU6KGZsb2F0KWZvbnRT
aXplIG1pbmltdW1TY2FsZTooZG91YmxlKW1pbmltdW1TY2FsZSBtYXhpbXVtU2NhbGU6KGRvdWJs
ZSltYXhpbXVtU2NhbGUgYWxsb3dTY2FsaW5nOihCT09MKWFsbG93U2NhbGluZyBmb3JjZVNjcm9s
bDooQk9PTClmb3JjZVNjcm9sbDsKIC0gKEJPT0wpX3pvb21Ub1JlY3Q6KFdlYkNvcmU6OkZsb2F0
UmVjdCl0YXJnZXRSZWN0IHdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIGZp
dEVudGlyZVJlY3Q6KEJPT0wpZml0RW50aXJlUmVjdCBtaW5pbXVtU2NhbGU6KGRvdWJsZSltaW5p
bXVtU2NhbGUgbWF4aW11bVNjYWxlOihkb3VibGUpbWF4aW11bVNjYWxlIG1pbmltdW1TY3JvbGxE
aXN0YW5jZTooZmxvYXQpbWluaW11bVNjcm9sbERpc3RhbmNlOwotLSAodm9pZClfem9vbU91dFdp
dGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luOworLSAodm9pZClfem9vbU91dFdp
dGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpb3JpZ2luIGFuaW1hdGVkOihCT09MKWFuaW1h
dGVkOwogCiAtICh2b2lkKV9zZXRIYXNDdXN0b21Db250ZW50VmlldzooQk9PTCloYXNDdXN0b21D
b250ZW50VmlldyBsb2FkZWRNSU1FVHlwZTooY29uc3QgV1RGOjpTdHJpbmcmKW1pbWVUeXBlOwog
LSAodm9pZClfZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXJXaXRo
U3VnZ2VzdGVkRmlsZW5hbWU6KGNvbnN0IFdURjo6U3RyaW5nJilzdWdnZXN0ZWRGaWxlbmFtZSBk
YXRhOihOU0RhdGEgKilkYXRhOwpAQCAtOTUsNiArOTYsOCBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwog
CiAtICh2b2lkKV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzOwogCistICh2b2lkKV9kaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmln
YXRpb25UeXBlKW5hdmlnYXRpb25UeXBlOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFVJRWRnZUluc2V0cyBfY29tcHV0ZWRDb250ZW50SW5zZXQ7CiAjZW5kaWYKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250
ZW50UHJvdmlkZXIuaAppbmRleCBmNTRiYzFmMmVhNzE1MWEzMzI0OTZmMjk1ZTdkYzQ1ZWQxZjFl
MDgyLi5kZWJlYTZiYWEwYWQ1ZWI3YjY3NzUzMjMzMTc4ZmM3ZGY0YTlhMDllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3Q29udGVudFByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQ
cm92aWRlci5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbXBv
cnQgPFdlYktpdC9XS1BhZ2VMb2FkVHlwZXMuaD4KKwogQGNsYXNzIE5TRGF0YTsKIEBjbGFzcyBV
SVNjcm9sbFZpZXc7CiBAY2xhc3MgVUlWaWV3OwpAQCAtNDcsNiArNDksNyBAQCBzdHJ1Y3QgVUlF
ZGdlSW5zZXRzOwogLSAodm9pZCl3ZWJfc2V0T3ZlcmxhaWRBY2Nlc3NvcnlWaWV3c0luc2V0OihD
R1NpemUpaW5zZXQ7CiAtICh2b2lkKXdlYl9jb21wdXRlZENvbnRlbnRJbnNldERpZENoYW5nZTsK
IC0gKHZvaWQpd2ViX3NldEZpeGVkT3ZlcmxheVZpZXc6KFVJVmlldyAqKWZpeGVkT3ZlcmxheVZp
ZXc7CistICh2b2lkKXdlYl9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOihXS1NhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlKW5hdmlnYXRpb25UeXBlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDQ0Yjg2NDFl
MTY0YTBjMmNlM2UwYTdhMDZjMDRkYWRlZGJiOTAyMzQuLjQyZDI5NjEyZDU0ZWFiYTM0MjlhOGU0
NWJiMTM5ZmI0YWRjMmMyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNjkyLDggKzY5Miw5IEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKQogewogfQogCi12b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSkKIHsKKyAgICBbbV93ZWJWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lOm5hdmlnYXRpb25UeXBlXTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggNTMwMjg1
MzEzZWJkYWRiZGZlYjE4ZDQ1YWE4NDViODY4MDhiMmI3Mi4uMTYxM2FlNzU0ZDNmMGRjODkzNTlm
YzdlNDUxYjlkNTUzY2ViY2QzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQpAQCAtNDk0LDcgKzQ5NCw3IEBAIC0gKEJPT0wpX3pvb21Ub1JlY3Q6
KENHUmVjdCl0YXJnZXRSZWN0IHdpdGhPcmlnaW46KENHUG9pbnQpb3JpZ2luIGZpdEVudGlyZVJl
Y3Q6CiAKIC0gKHZvaWQpX3pvb21PdXRXaXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbgogewotICAg
IHJldHVybiBbX3dlYlZpZXcgX3pvb21PdXRXaXRoT3JpZ2luOm9yaWdpbl07CisgICAgcmV0dXJu
IFtfd2ViVmlldyBfem9vbU91dFdpdGhPcmlnaW46b3JpZ2luIGFuaW1hdGVkOllFU107CiB9CiAK
IC0gKHZvaWQpX2FwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZTooTlNOb3RpZmljYXRpb24qKW5v
dGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BE
RlBhZ2VOdW1iZXJJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLmgKaW5kZXggODBiYWI2ZjVhMWM3ZDc0MmZkOGRjM2Q0YzA5
NGI3ZmMwOWZjYWJmYS4uYjg0MGUzODU3OWUxOGZlZTU5MzU0ZmI2ZmI2NTMxNmQ4N2NmOTk1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJ
bmRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51
bWJlckluZGljYXRvci5oCkBAIC0zNCw2ICszNCw3IEBACiAKIC0gKHZvaWQpbW92ZVRvUG9pbnQ6
KENHUG9pbnQpcG9pbnQgYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQ7CiAtICh2b2lkKXNob3c7Cist
ICh2b2lkKWhpZGU7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQppbmRleCBjZmEzMDA1ZTY3MWQ5
YWYzZmJkYzNhMTg3MWRiZWNhZGQ4OGUxZjE5Li41M2MzNjY0NjU5MGE3Yjc1ZjEwYzgzYzVmYTNi
YzFiODRlNzM5Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
UERGUGFnZU51bWJlckluZGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQpAQCAtMTIyLDYgKzEyMiwxMSBAQCAtICh2
b2lkKXNob3cKICAgICAgICAgX3RpbWVyID0gW05TVGltZXIgc2NoZWR1bGVkVGltZXJXaXRoVGlt
ZUludGVydmFsOmluZGljYXRvclRpbWVvdXQgdGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KGhpZGU6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107CiB9CiAKKy0gKHZvaWQpaGlkZQorewor
ICAgIFtzZWxmIGhpZGU6bmlsXTsKK30KKwogLSAodm9pZCloaWRlOihOU1RpbWVyICopdGltZXIK
IHsKICAgICBbVUlWaWV3IGFuaW1hdGVXaXRoRHVyYXRpb246aW5kaWNhdG9yRmFkZUR1cmF0aW9u
IGFuaW1hdGlvbnM6XnsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0K
aW5kZXggYmUwNDFmN2I0ZjcyNWNjMzkxYWRmNzRlMDg4OGEyYjIxMDg2YzAwMS4uYzAxZWRmMDM4
ZmE0MzVhNGEyNGJiNjVhZjgzNWZmZjgwMTViZjMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElP
UykKIAorI2ltcG9ydCAiU2Vzc2lvblN0YXRlLmgiCiAjaW1wb3J0ICJXS1BERlBhZ2VOdW1iZXJJ
bmRpY2F0b3IuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlUHJveHkuaCIKQEAgLTU3LDYgKzU4LDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBSZXRh
aW5QdHI8VUlQREZQYWdlPiBwYWdlOwogfSBQREZQYWdlSW5mbzsKIAorQGludGVyZmFjZSBXS1BE
RlZpZXcgKCkKKy0gKHZvaWQpX3Jlc2V0Wm9vbUFuaW1hdGVkOihCT09MKWFuaW1hdGVkOworQGVu
ZAorCiBAaW1wbGVtZW50YXRpb24gV0tQREZWaWV3IHsKICAgICBSZXRhaW5QdHI8VUlQREZEb2N1
bWVudD4gX3BkZkRvY3VtZW50OwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX3N1Z2dlc3RlZEZp
bGVuYW1lOwpAQCAtNzIsNiArNzcsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tQREZWaWV3IHsKICAg
ICBVSVZpZXcgKl9maXhlZE92ZXJsYXlWaWV3OwogCiAgICAgQk9PTCBfaXNTdGFydGluZ1pvb207
CisgICAgQk9PTCBfaXNQZXJmb3JtaW5nU2FtZURvY3VtZW50TmF2aWdhdGlvbjsKIH0KIAogLSAo
aW5zdGFuY2V0eXBlKXdlYl9pbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldwpAQCAtMTI5LDYgKzEzNSw4IEBAIC0gKHZvaWQpd2ViX3NldENvbnRl
bnRQcm92aWRlckRhdGE6KE5TRGF0YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5n
ICopCiAgICAgUmV0YWluUHRyPENHUERGRG9jdW1lbnRSZWY+IGNnUERGRG9jdW1lbnQgPSBhZG9w
dENGKENHUERGRG9jdW1lbnRDcmVhdGVXaXRoUHJvdmlkZXIoZGF0YVByb3ZpZGVyLmdldCgpKSk7
CiAgICAgX3BkZkRvY3VtZW50ID0gYWRvcHROUyhbW1VJUERGRG9jdW1lbnQgYWxsb2NdIGluaXRX
aXRoQ0dQREZEb2N1bWVudDpjZ1BERkRvY3VtZW50LmdldCgpXSk7CiAKKyAgICAvLyBGSVhNRTog
cmVzdG9yZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGFuZCBwYWdlIHNjYWxlIGlmIG5hdmlnYXRpbmcg
ZnJvbSB0aGUgYmFjay9mb3J3YXJkIGxpc3QuCisKICAgICBbc2VsZiBfY29tcHV0ZVBhZ2VBbmRE
b2N1bWVudEZyYW1lc107CiAgICAgW3NlbGYgX3JldmFsaWRhdGVWaWV3c107CiB9CkBAIC0xNDcs
NyArMTU1LDkgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsOihVSVNjcm9sbFZpZXcgKilz
Y3JvbGxWaWV3CiAgICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIF9yZXZhbGlkYXRlVmlld3Nd
OwotICAgIFtfcGFnZU51bWJlckluZGljYXRvciBzaG93XTsKKworICAgIGlmICghX2lzUGVyZm9y
bWluZ1NhbWVEb2N1bWVudE5hdmlnYXRpb24pCisgICAgICAgIFtfcGFnZU51bWJlckluZGljYXRv
ciBzaG93XTsKIH0KIAogLSAodm9pZClfcmV2YWxpZGF0ZVZpZXdzCkBAIC0yMDEsNiArMjExLDkg
QEAgLSAoQ0dQb2ludClfb2Zmc2V0Rm9yUGFnZU51bWJlckluZGljYXRvcgogCiAtICh2b2lkKV91
cGRhdGVQYWdlTnVtYmVySW5kaWNhdG9yCiB7CisgICAgaWYgKF9pc1BlcmZvcm1pbmdTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIV9wYWdlTnVtYmVy
SW5kaWNhdG9yKQogICAgICAgICBfcGFnZU51bWJlckluZGljYXRvciA9IGFkb3B0TlMoW1tXS1BE
RlBhZ2VOdW1iZXJJbmRpY2F0b3IgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVyb10pOwog
CkBAIC0yMjksNiArMjQyLDM2IEBAIC0gKHZvaWQpd2ViX3NldEZpeGVkT3ZlcmxheVZpZXc6KFVJ
VmlldyAqKWZpeGVkT3ZlcmxheVZpZXcKICAgICAgICAgW19maXhlZE92ZXJsYXlWaWV3IGFkZFN1
YnZpZXc6X3BhZ2VOdW1iZXJJbmRpY2F0b3IuZ2V0KCldOwogfQogCistICh2b2lkKXdlYl9kaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uOihXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKW5hdmln
YXRpb25UeXBlCit7CisgICAgLy8gQ2hlY2sgZm9yIGtXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25T
ZXNzaW9uU3RhdGVQb3AgaW5zdGVhZCBvZiBrV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uQW5jaG9y
TmF2aWdhdGlvbiBzaW5jZSB0aGUKKyAgICAvLyBsYXR0ZXIgaXMgb25seSBjYWxsZWQgb25jZSB3
aGVuIG5hdmlnYXRpbmcgdG8gdGhlIHNhbWUgYW5jaG9yIGluIHN1Y2Nlc3Npb24uIElmIHRoZSB1
c2VyIG5hdmlnYXRlcyB0byBhIHBhZ2UKKyAgICAvLyB0aGVuIHNjcm9sbHMgYmFjayBhbmQgY2xp
Y2tzIG9uIHRoZSBzYW1lIGxpbmsgYSBzZWNvbmQgdGltZSwgd2Ugd2FudCB0byBuYXZpZ2F0ZSBh
Z2Fpbi4KKyAgICBpZiAobmF2aWdhdGlvblR5cGUgIT0ga1dLU2FtZURvY3VtZW50TmF2aWdhdGlv
blNlc3Npb25TdGF0ZVBvcCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IHJlc3Rv
cmUgdGhlIHNjcm9sbCBwb3NpdGlvbiBhbmQgcGFnZSBzY2FsZSBpZiBuYXZpZ2F0aW5nIGJhY2sg
ZnJvbSBhIGZyYWdtZW50LgorCisgICAgTlNTdHJpbmcgKmZyYWdtZW50ID0gX3dlYlZpZXcuVVJM
LmZyYWdtZW50OworICAgIGlmICghW2ZyYWdtZW50IGhhc1ByZWZpeDpAInBhZ2UiXSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTlNJbnRlZ2VyIHBhZ2VJbmRleCA9IFtbZnJhZ21lbnQgc3Vic3Ry
aW5nRnJvbUluZGV4OjRdIGludGVnZXJWYWx1ZV0gLSAxOworICAgIGlmIChwYWdlSW5kZXggPCAw
IHx8IHN0YXRpY19jYXN0PHN0ZDo6c2l6ZV90PihwYWdlSW5kZXgpID49IF9wYWdlcy5zaXplKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIF9pc1BlcmZvcm1pbmdTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uID0gWUVTOworCisgICAgW19wYWdlTnVtYmVySW5kaWNhdG9yIGhpZGVdOworICAgIFtzZWxm
IF9yZXNldFpvb21BbmltYXRlZDpOT107CisKKyAgICAvLyBFbnN1cmUgdGhhdCB0aGUgcGFnZSBt
YXJnaW4gaXMgdmlzaWJsZSBiZWxvdyB0aGUgY29udGVudCBpbnNldC4KKyAgICBjb25zdCBDR0Zs
b2F0IHZlcnRpY2FsT2Zmc2V0ID0gX3BhZ2VzW3BhZ2VJbmRleF0uZnJhbWUub3JpZ2luLnkgLSBf
d2ViVmlldy5fY29tcHV0ZWRDb250ZW50SW5zZXQudG9wIC0gcGRmUGFnZU1hcmdpbjsKKyAgICBb
X3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpDR1BvaW50TWFrZShfc2Nyb2xsVmlldy5jb250
ZW50T2Zmc2V0LngsIHZlcnRpY2FsT2Zmc2V0KSBhbmltYXRlZDpOT107CisKKyAgICBfaXNQZXJm
b3JtaW5nU2FtZURvY3VtZW50TmF2aWdhdGlvbiA9IE5POworfQorCiAtICh2b2lkKV9jb21wdXRl
UGFnZUFuZERvY3VtZW50RnJhbWVzCiB7CiAgICAgTlNVSW50ZWdlciBwYWdlQ291bnQgPSBbX3Bk
ZkRvY3VtZW50IG51bWJlck9mUGFnZXNdOwpAQCAtMjY0LDYgKzMwNywxNyBAQCAtICh2b2lkKV9j
b21wdXRlUGFnZUFuZERvY3VtZW50RnJhbWVzCiAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRT
aXplOm5ld0ZyYW1lLnNpemVdOwogfQogCistICh2b2lkKV9yZXNldFpvb21BbmltYXRlZDooQk9P
TClhbmltYXRlZAoreworICAgIF9pc1N0YXJ0aW5nWm9vbSA9IFlFUzsKKworICAgIENHUmVjdCBz
Y3JvbGxWaWV3Qm91bmRzID0gX3Njcm9sbFZpZXcuYm91bmRzOworICAgIENHUG9pbnQgY2VudGVy
T2ZQYWdlSW5Eb2N1bWVudENvb3JkaW5hdGVzID0gW19zY3JvbGxWaWV3IGNvbnZlcnRQb2ludDpD
R1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKHNjcm9sbFZpZXdCb3VuZHMpLCBDR1JlY3RHZXRNaWRZ
KHNjcm9sbFZpZXdCb3VuZHMpKSB0b1ZpZXc6c2VsZl07CisgICAgW193ZWJWaWV3IF96b29tT3V0
V2l0aE9yaWdpbjpjZW50ZXJPZlBhZ2VJbkRvY3VtZW50Q29vcmRpbmF0ZXMgYW5pbWF0ZWQ6YW5p
bWF0ZWRdOworCisgICAgX2lzU3RhcnRpbmdab29tID0gTk87Cit9CisKICNwcmFnbWEgbWFyayBV
SVBERlBhZ2VWaWV3RGVsZWdhdGUKIAogLSAodm9pZCl6b29tOihVSVBERlBhZ2VWaWV3ICopcGFn
ZVZpZXcgdG86KENHUmVjdCl0YXJnZXRSZWN0IGF0UG9pbnQ6KENHUG9pbnQpb3JpZ2luIGtpbmQ6
KFVJUERGT2JqZWN0S2luZClraW5kCkBAIC0yODUsMTMgKzMzOSw3IEBAIC0gKHZvaWQpem9vbToo
VUlQREZQYWdlVmlldyAqKXBhZ2VWaWV3IHRvOihDR1JlY3QpdGFyZ2V0UmVjdCBhdFBvaW50OihD
R1BvaW50KW9yCiAKIC0gKHZvaWQpcmVzZXRab29tOihVSVBERlBhZ2VWaWV3ICopcGFnZVZpZXcK
IHsKLSAgICBfaXNTdGFydGluZ1pvb20gPSBZRVM7Ci0gICAgCi0gICAgQ0dSZWN0IHNjcm9sbFZp
ZXdCb3VuZHMgPSBfc2Nyb2xsVmlldy5ib3VuZHM7Ci0gICAgQ0dQb2ludCBjZW50ZXJPZlBhZ2VJ
bkRvY3VtZW50Q29vcmRpbmF0ZXMgPSBbX3Njcm9sbFZpZXcgY29udmVydFBvaW50OkNHUG9pbnRN
YWtlKENHUmVjdEdldE1pZFgoc2Nyb2xsVmlld0JvdW5kcyksIENHUmVjdEdldE1pZFkoc2Nyb2xs
Vmlld0JvdW5kcykpIHRvVmlldzpzZWxmXTsKLSAgICBbX3dlYlZpZXcgX3pvb21PdXRXaXRoT3Jp
Z2luOmNlbnRlck9mUGFnZUluRG9jdW1lbnRDb29yZGluYXRlc107Ci0KLSAgICBfaXNTdGFydGlu
Z1pvb20gPSBOTzsKKyAgICBbc2VsZiBfcmVzZXRab29tQW5pbWF0ZWQ6WUVTXTsKIH0KIAogI3By
YWdtYSBtYXJrIFVJUERGQW5ub3RhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZQpAQCAtMzA0LDEyICsz
NTIsMTUgQEAgLSAodm9pZClhbm5vdGF0aW9uOihVSVBERkFubm90YXRpb24gKilhbm5vdGF0aW9u
IHdhc1RvdWNoZWRBdFBvaW50OihDR1BvaW50KXBvaW4KICAgICAgICAgcmV0dXJuOwogCiAgICAg
VUlQREZMaW5rQW5ub3RhdGlvbiAqbGlua0Fubm90YXRpb24gPSAoVUlQREZMaW5rQW5ub3RhdGlv
biAqKWFubm90YXRpb247Ci0gICAgU3RyaW5nIHVybFN0cmluZyA9IGxpbmtBbm5vdGF0aW9uLnVy
bC5hYnNvbHV0ZVN0cmluZzsKKyAgICBTdHJpbmcgdXJsU3RyaW5nOworICAgIGlmIChOU1VSTCAq
dXJsID0gbGlua0Fubm90YXRpb24udXJsKQorICAgICAgICB1cmxTdHJpbmcgPSB1cmwuYWJzb2x1
dGVTdHJpbmc7CisgICAgZWxzZSBpZiAoTlNVSW50ZWdlciBwYWdlTnVtYmVyID0gbGlua0Fubm90
YXRpb24ucGFnZU51bWJlcikKKyAgICAgICAgdXJsU3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIiNw
YWdlJWx1IiwgcGFnZU51bWJlcik7CisKICAgICBpZiAodXJsU3RyaW5nLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFN1cHBvcnQgcGFnZU51bWJlciBuYXZpZ2F0
aW9ucwotCiAgICAgQ0dQb2ludCBkb2N1bWVudFBvaW50ID0gW2NvbnRyb2xsZXIucGFnZVZpZXcg
Y29udmVydFBvaW50OnBvaW50IHRvVmlldzpzZWxmXTsKICAgICBDR1BvaW50IHNjcmVlblBvaW50
ID0gW3NlbGYud2luZG93IGNvbnZlcnRQb2ludDpbc2VsZiBjb252ZXJ0UG9pbnQ6ZG9jdW1lbnRQ
b2ludCB0b1ZpZXc6bmlsXSB0b1dpbmRvdzpuaWxdOwogICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90
IGRpc3BhdGNoT2Zmc2V0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86
Om5hbm9zZWNvbmRzPihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCkpLmNvdW50KCk7Cg==
</data>
<flag name="review"
          id="263846"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>