<?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>135072</bug_id>
          
          <creation_ts>2014-07-18 14:52:18 -0700</creation_ts>
          <short_desc>[iOS] Tapping &quot;Allow Website&quot; on a restricted page does not bring up the keypad</short_desc>
          <delta_ts>2014-07-18 17:20:21 -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>beidson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023365</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 14:52:18 -0700</bug_when>
    <thetext>[iOS] Tapping &quot;Allow Website&quot; on a restricted page does not bring up the keypad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023367</commentid>
    <comment_count>1</comment_count>
      <attachid>235149</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 15:09:19 -0700</bug_when>
    <thetext>Created attachment 235149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023389</commentid>
    <comment_count>2</comment_count>
      <attachid>235149</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-07-18 16:36:42 -0700</bug_when>
    <thetext>Comment on attachment 235149
Patch

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

r=me

&gt; Source/WebCore/platform/mac/ContentFilterMac.mm:250
&gt; +    @try {
&gt; +        if ([getWebFilterEvaluatorClass() conformsToProtocol:@protocol(NSSecureCoding)])
&gt; +            contentFilter.m_platformContentFilter = (WebFilterEvaluator *)[unarchiver decodeObjectOfClass:getWebFilterEvaluatorClass() forKey:platformContentFilterKey];
&gt; +        return true;
&gt; +    } @catch (NSException *exception) {

Do we really want to return true here if we fall through the if statement?  Seems like we&apos;d want something like this:

        if ([getWebFilterEvaluatorClass() conformsToProtocol:@protocol(NSSecureCoding)]) {
            contentFilter.m_platformContentFilter = (WebFilterEvaluator *)[unarchiver decodeObjectOfClass:getWebFilterEvaluatorClass() forKey:platformContentFilterKey];
            return true;
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023396</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 17:04:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 235149 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235149&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/platform/mac/ContentFilterMac.mm:250
&gt; &gt; +    @try {
&gt; &gt; +        if ([getWebFilterEvaluatorClass() conformsToProtocol:@protocol(NSSecureCoding)])
&gt; &gt; +            contentFilter.m_platformContentFilter = (WebFilterEvaluator *)[unarchiver decodeObjectOfClass:getWebFilterEvaluatorClass() forKey:platformContentFilterKey];
&gt; &gt; +        return true;
&gt; &gt; +    } @catch (NSException *exception) {
&gt; 
&gt; Do we really want to return true here if we fall through the if statement?  Seems like we&apos;d want something like this:
&gt; 
&gt;         if ([getWebFilterEvaluatorClass() conformsToProtocol:@protocol(NSSecureCoding)]) {
&gt;             contentFilter.m_platformContentFilter = (WebFilterEvaluator *)[unarchiver decodeObjectOfClass:getWebFilterEvaluatorClass() forKey:platformContentFilterKey];
&gt;             return true;
&gt;         }

I believe we do want to return true, because WebFilterEvaluator not conforming to NSSecureCoding does not represent a failure to decode the message, just that we are running against an older version of the framework implementing that class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023397</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 17:16:44 -0700</bug_when>
    <thetext>Brady also looked at this and gave me an okay on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023398</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 17:19:50 -0700</bug_when>
    <thetext>Committed r171252: &lt;http://trac.webkit.org/changeset/171252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023399</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-07-18 17:20:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/17528188&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235149</attachid>
            <date>2014-07-18 15:09:19 -0700</date>
            <delta_ts>2014-07-18 16:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135072-20140718150903.patch</filename>
            <type>text/plain</type>
            <size>33696</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU3M2E2ZDI5ZDA4ZDg1
YzgyMTIxY2NjMWY0ZjA3NGExMTI2MGU1Mi4uY2YyMGY4ZDIzMWI5NmZiNDUxMDNhYzQyYWJlMzYw
NWM5ZGViNzA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTA3LTE4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBUYXBwaW5nICJBbGxv
dyBXZWJzaXRlIiBvbiBhIHJlc3RyaWN0ZWQgcGFnZSBkb2VzIG5vdCBicmluZyB1cCB0aGUga2V5
cGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUw
NzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3NTI4MTg4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ29udGVudCBmaWx0
ZXJpbmcgaXMgbm90IHRlc3RhYmxlIGZyb20gV2ViS2l0LgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46IEV4cG9ydGVkIG5lY2Vzc2FyeSBDb250ZW50RmlsdGVyIHN5bWJvbHMuCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpmaW5pc2hlZExvYWRpbmcpOiBDYWxsZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjpyZXNwb25zZVJlY2VpdmVkKTogQ3JlYXRlZCBhIG5ldyBDb250ZW50RmlsdGVyLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRhdGFSZWNlaXZlZCk6IENhbGxlZCBGcmFtZUxv
YWRlckNsaWVudDo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZCgpLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OnNldENvbnRlbnRGaWx0ZXJGb3JCbG9ja2VkTG9hZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aGFuZGxlQ29udGVudEZpbHRl
clJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnQ6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQpOgorICAgICAgICAq
IGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6IFJlbW92ZWQgdGhlIGNoZWNrIGZvciB1bmJsb2Nr
IG5hdmlnYXRpb25zLCBhcyB0aGlzIGlzIG5vdworICAgICAgICBoYW5kbGVkIGF0IHRoZSBXZWJL
aXQgbGF5ZXIuCisgICAgICAgICogcGxhdGZvcm0vQ29udGVudEZpbHRlci5oOiBDb250ZW50Rmls
dGVyIG5vIGxvbmdlciBuZWVkcyB0byBiZSBSZWZDb3VudGVkLCBzbyBtYWRlIHZhcmlvdXMgY2hh
bmdlcyBpbiBvcmRlciB0bworICAgICAgICBtYWtlIGl0IGNvbXBhdGlibGUgd2l0aCB1bmlxdWVf
cHRyLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9Db250ZW50RmlsdGVySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6c2NoZW1lKTogQ2hhbmdlZCBmcm9tIGEgcHVibGljIG1lbWJlciBmdW5jdGlv
biB0byBhIHN0YXRpYyBpbmxpbmUgZnJlZSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXI6OmhhbmRsZVVuYmxvY2tSZXF1ZXN0QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwp
OiBSZW5hbWVkIGZyb20gcmVxdWVzdFVuYmxvY2tBbmREaXNwYXRjaElmU3VjY2Vzc2Z1bC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIpOiBBZGRlZCBhIGRlZmF1bHQgY29uc3Ry
dWN0b3IgZm9yIHVzZSBkdXJpbmcgbWVzc2FnZSBkZWNvZGluZy4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXI6OmFkZERhdGEpOiBSZW1vdmVkIGNhbGxzIHRvIHJlZigpIGFuZCBkZXJl
ZigpLiBUaGVzZSB3ZXJlIG5ldmVyIGFjdHVhbGx5IG5lZWRlZCBzaW5jZQorICAgICAgICB3ZSB3
ZXJlIGRpc3BhdGNoaW5nIHRoZSBibG9jayBzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdEYXRhKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RmlsdGVyOjplbmNvZGUpOiBFbmNvZGVkIG1fcGxhdGZvcm1Db250ZW50
RmlsdGVyIHRvIHRoZSBOU0tleWVkQXJjaGl2ZXIgaWYgaXQgY29uZm9ybXMgdG8gTlNTZWN1cmVD
b2RpbmcuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVyOjpkZWNvZGUpOiBEZWNvZGVk
IG1fcGxhdGZvcm1Db250ZW50RmlsdGVyIGZyb20gdGhlIE5TS2V5ZWRVbmFyY2hpdmVyIGlmIGl0
IGNvbmZvcm1zIHRvIE5TU2VjdXJlQ29kaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZp
bHRlcjo6Y3JlYXRlKTogRGVsZXRlZC4KKwogMjAxNC0wNy0xNSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBGaXggaXNzdWVzIGRyYXdpbmcg
c3Vic2FtcGxlZCBpbWFnZSBlbGVtZW50cyBhbmQgQ1NTIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDRlMDI2ZTc1ZTEzYjA3OTg1ZTZkNTQ3YjFhN2NlYTljNmVjZDIyNGUuLmJjYzA0MWEzMzA2
OTJkNWJlY2MwYTg5MjlmZGM3YTlhYjE1MjJmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxNC0wNy0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gVGFwcGluZyAiQWxsb3cgV2Vic2l0ZSIgb24gYSByZXN0cmljdGVkIHBhZ2Ug
ZG9lcyBub3QgYnJpbmcgdXAgdGhlIGtleXBhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MDcyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNzUy
ODE4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6IE92ZXJyaWRlIGNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWQoKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKTogUmVzZXQgY29udGVudEZpbHRlckZvckJsb2NrZWRMb2Fk
IHRvIG51bGxwdHIuCisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKTogQ2hlY2sgaWYgdGhpcyBpcyBuYXZpZ2F0aW9u
IHJlcHJlc2VudHMgYW4KKyAgICAgICAgdW5ibG9jayByZXF1ZXN0IGFuZCBpZ25vcmUgaWYgc28u
CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2Nv
bnRlbnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uOl0pOiBDYWxsZWQgQ29udGVudEZp
bHRlcjo6aGFuZGxlVW5ibG9ja1JlcXVlc3RBbmREaXNwYXRjaElmU3VjY2Vzc2Z1bCgpLgorICAg
ICAgICBJZiB0aGUgdW5ibG9jayBpcyBzdWNjZXNzZnVsLCByZWxvYWQgdGhlIG1haW4gZnJhbWUu
CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmg6CisKIDIwMTQtMDctMTUgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbT1NYXSBb
V0sxXSBDcmFzaCB3aGVuIGV4aXRpbmcgZnVsbHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDRiMTE5MmU4
MjIxMTExZGNiN2E3N2UxMjk0OTNhYTU5NTNkNmI0MWMuLjc2ZjA1Y2FhZjAxMThjZmNiNDU3ZjI4
ZWZjOTBkZWFkNTY5MmJkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNC0wNy0x
OCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gVGFwcGlu
ZyAiQWxsb3cgV2Vic2l0ZSIgb24gYSByZXN0cmljdGVkIHBhZ2UgZG9lcyBub3QgYnJpbmcgdXAg
dGhlIGtleXBhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM1MDcyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNzUyODE4OD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaDogRGVjbGFyZWQgYW4gQXJndW1lbnRDb2RlciBmb3IgV2ViQ29yZTo6Q29u
dGVudEZpbHRlci4KKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDb250ZW50RmlsdGVyPjo6ZW5jb2Rl
KTogRW5jb2RlZCB0aGUgQ29udGVudEZpbHRlciB1c2luZyBhIE5TS2V5ZWRBcmNoaXZlci4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDb250ZW50RmlsdGVyPjo6ZGVjb2RlKTogRGVjb2Rl
ZCB0aGUgQ29udGVudEZpbHRlciB1c2luZyBhIE5TS2V5ZWRVbmFyY2hpdmVyLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUpOiBDYWxsZWQg
V2ViRnJhbWVQcm94eTo6c2V0Q29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkKCkuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6IFJlc2V0IG1fY29udGVudEZpbHRlckZv
ckJsb2NrZWRMb2FkIHRvIG51bGxwdHIuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6
OmNvbnRlbnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKTogQ2FsbGVkIENvbnRlbnRG
aWx0ZXI6OmhhbmRsZVVuYmxvY2tSZXF1ZXN0QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwoKS4KKyAg
ICAgICAgSWYgdGhlIHVuYmxvY2sgaXMgc3VjY2Vzc2Z1bCwgcmVsb2FkIHRoZSBXZWJQYWdlUHJv
eHkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVQcm94eTo6c2V0Q29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKTogQ2hlY2sgaWYgdGhpcyBp
cyBuYXZpZ2F0aW9uIHJlcHJlc2VudHMgYW4gdW5ibG9jaworICAgICAgICByZXF1ZXN0IGFuZCBp
Z25vcmUgaWYgc28uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IERlZmluZWQgQ29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZCk6IFNlbnQgQ29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lIHRvIHRoZSBXZWJQYWdlUHJveHkuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE0
LTA3LTE1ICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXNwYXRjaCB0b3AgY29udGVudCBpbnNldCBjaGFuZ2VzIGltbWVkaWF0ZWx5IGlmIHN5
bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdmlldyBzdGF0ZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IDQ3YzliNDhiNjI4MDQ2YTE4N2Y4NjRiZjU5NGIwNzI5NGUwNTBkY2MuLjUwNmJm
MGY5MDZhMmY5ZTQxZGMwOWU2YThiZDI3YTc3OWUyNTI3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC0zNDU5LDMgKzM0NTksMTEgQEAgX19aTjdXZWJDb3JlOVBhZ2VHcm91cDE4Y2FwdGlvblBy
ZWZlcmVuY2VzRXYKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIF9fWk43V2ViQ29y
ZTRQYWdlMTFzZXRWaWV3TW9kZUVOUzBfOFZpZXdNb2RlRQogI2VuZGlmCisKKyNpZiBVU0UoQ09O
VEVOVF9GSUxURVJJTkcpCitfX1pON1dlYkNvcmUxM0NvbnRlbnRGaWx0ZXI0M2hhbmRsZVVuYmxv
Y2tSZXF1ZXN0QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWxFUktOU18xNVJlc291cmNlUmVxdWVzdEVO
U3QzX18xOGZ1bmN0aW9uSUZ2dkVFRQorX19aTjdXZWJDb3JlMTNDb250ZW50RmlsdGVyNmRlY29k
ZUVQMTdOU0tleWVkVW5hcmNoaXZlclJTMF8KK19fWk43V2ViQ29yZTEzQ29udGVudEZpbHRlckMx
RXYKK19fWk43V2ViQ29yZTEzQ29udGVudEZpbHRlckQxRXYKK19fWk5LN1dlYkNvcmUxM0NvbnRl
bnRGaWx0ZXI2ZW5jb2RlRVAxNU5TS2V5ZWRBcmNoaXZlcgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAxZDI1ODg3ODI1ODBiNWY4YjBkMmI1NTcz
YzUwNjIxZWRiYjNhOGQ4Li5jYTE5ZGI3NmM2YTFiZmYxYWU1OWQ2MzEyZDUxMDc5NjM5YTE1NmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQxMyw3ICs0
MTMsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpmaW5pc2hlZExvYWRpbmcoZG91YmxlIGZpbmlz
aFRpbWUpCiAgICAgICAgICAgICBkYXRhUmVjZWl2ZWQobV9tYWluUmVzb3VyY2UuZ2V0KCksIGRh
dGEsIGxlbmd0aCk7CiAKICAgICAgICAgaWYgKG1fY29udGVudEZpbHRlci0+ZGlkQmxvY2tEYXRh
KCkpCi0gICAgICAgICAgICBzZXRDb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQobV9jb250ZW50
RmlsdGVyKTsKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWQoV1RGOjptb3ZlKG1fY29udGVudEZpbHRlcikpOwogICAgIH0KICNlbmRp
ZgogCkBAIC02NjQsNyArNjY0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKIAogI2lmIFVT
RShDT05URU5UX0ZJTFRFUklORykKICAgICBpZiAocmVzcG9uc2UudXJsKCkucHJvdG9jb2xJc0lu
SFRUUEZhbWlseSgpICYmIENvbnRlbnRGaWx0ZXI6OmlzRW5hYmxlZCgpKQotICAgICAgICBtX2Nv
bnRlbnRGaWx0ZXIgPSBDb250ZW50RmlsdGVyOjpjcmVhdGUocmVzcG9uc2UpOworICAgICAgICBt
X2NvbnRlbnRGaWx0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRlbnRGaWx0ZXI+KHJlc3BvbnNl
KTsKICNlbmRpZgogCiAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLmNoZWNrQ29u
dGVudFBvbGljeShtX3Jlc3BvbnNlLCBbdGhpc10oUG9saWN5QWN0aW9uIHBvbGljeSkgewpAQCAt
ODc0LDcgKzg3NCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmRhdGFSZWNlaXZlZChDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEsIGluCiAgICAgICAgIGxvYWRXYXNC
bG9ja2VkQmVmb3JlRmluaXNoaW5nID0gbV9jb250ZW50RmlsdGVyLT5kaWRCbG9ja0RhdGEoKTsK
IAogICAgICAgICBpZiAobG9hZFdhc0Jsb2NrZWRCZWZvcmVGaW5pc2hpbmcpCi0gICAgICAgICAg
ICBzZXRDb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQobV9jb250ZW50RmlsdGVyKTsKKyAgICAg
ICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQo
V1RGOjptb3ZlKG1fY29udGVudEZpbHRlcikpOwogICAgIH0KICNlbmRpZgogCkBAIC0xNTY1LDM4
ICsxNTY1LDQgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9ubG9hZEV2ZW50cygpCiAg
ICAgYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+c3RvcERlZmVycmluZ0V2ZW50cygpOwogfQogCi0j
aWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0Q29udGVu
dEZpbHRlckZvckJsb2NrZWRMb2FkKFBhc3NSZWZQdHI8Q29udGVudEZpbHRlcj4gY29udGVudEZp
bHRlcikKLXsKLSAgICBBU1NFUlQoIW1fY29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkKTsKLSAg
ICBBU1NFUlQoY29udGVudEZpbHRlcik7Ci0gICAgQVNTRVJUKGNvbnRlbnRGaWx0ZXItPmRpZEJs
b2NrRGF0YSgpKTsKLSAgICBtX2NvbnRlbnRGaWx0ZXJGb3JCbG9ja2VkTG9hZCA9IGNvbnRlbnRG
aWx0ZXI7Ci19Ci0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6OmhhbmRsZUNvbnRlbnRGaWx0ZXJSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBGSVhNRTogUmVt
b3ZlIFBMQVRGT1JNKElPUyktZ3VhcmQgb25jZSB3ZSB1cHN0cmVhbSBDb250ZW50RmlsdGVySU9T
Lm1tIGFuZAotICAgIC8vIGltcGxlbWVudCBDb250ZW50RmlsdGVyOjpyZXF1ZXN0VW5ibG9ja0Fu
ZERpc3BhdGNoSWZTdWNjZXNzZnVsKCkgZm9yIE1hYy4KLSNpZiBQTEFURk9STShJT1MpCi0gICAg
aWYgKCFtX2NvbnRlbnRGaWx0ZXJGb3JCbG9ja2VkTG9hZCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoQ29udGVudEZpbHRlcjo6c2No
ZW1lKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UocmVxdWVzdC51cmwoKS5ob3N0KCksICJ1bmJsb2NrIikpIHsKLSAgICAgICAgLy8gVGVsbCB0
aGUgRnJhbWVMb2FkZXIgdG8gcmVsb2FkIGlmIHRoZSB1bmJsb2NrIGlzIHN1Y2Nlc3NmdWwuCi0g
ICAgICAgIG1fY29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkLT5yZXF1ZXN0VW5ibG9ja0FuZERp
c3BhdGNoSWZTdWNjZXNzZnVsKGJpbmQoJkZyYW1lTG9hZGVyOjpyZWxvYWQsICYobV9mcmFtZS0+
bG9hZGVyKCkpLCBmYWxzZSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDQxZmQ2Zjk4Zjk2NzZmMTZl
MzU0OTJlMzgyYjhiZGY1Mjc1NTcwNzYuLjQ1YzFlNGNjZmFhNzk5YWE0MzA4MzBiMTdiYzUxNjEy
MjVjNzc4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0yNTYs
MTEgKzI1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGNoZWNrTG9h
ZENvbXBsZXRlKCk7CiAKLSNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgICAgIHZvaWQg
c2V0Q29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkKFBhc3NSZWZQdHI8Q29udGVudEZpbHRlcj4p
OwotICAgICAgICBib29sIGhhbmRsZUNvbnRlbnRGaWx0ZXJSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOwotI2VuZGlmCi0KICAgICAgICAgLy8gVGhlIFVSTCBvZiB0aGUgZG9jdW1lbnQg
cmVzdWx0aW5nIGZyb20gdGhpcyBEb2N1bWVudExvYWRlci4KICAgICAgICAgVVJMIGRvY3VtZW50
VVJMKCkgY29uc3Q7CiAKQEAgLTQxNSw4ICs0MTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIE93blB0cjxBcHBsaWNhdGlvbkNhY2hlSG9zdD4gbV9hcHBsaWNhdGlvbkNhY2hlSG9z
dDsKIAogI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKLSAgICAgICAgUmVmUHRyPENvbnRlbnRG
aWx0ZXI+IG1fY29udGVudEZpbHRlcjsKLSAgICAgICAgUmVmUHRyPENvbnRlbnRGaWx0ZXI+IG1f
Y29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVyOwogI2VuZGlmCiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA1MzUxYmUyNGM4NmFlYTU5NzYz
ZDAzYzczZGE1OTE2YWZmZjEyYmIyLi41NGM5NmNkN2RlMTBmYWNhYWYzMzJlYjA4MmFjOGYzZjMx
YTdjNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
OTgsNiArOTgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFF1aWNrTG9va0hh
bmRsZTsKICNlbmRpZgogCisjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQorICAgIGNsYXNzIENv
bnRlbnRGaWx0ZXI7CisjZW5kaWYKKwogICAgIHR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkIChQ
b2xpY3lBY3Rpb24pPiBGcmFtZVBvbGljeUZ1bmN0aW9uOwogCiAgICAgY2xhc3MgRnJhbWVMb2Fk
ZXJDbGllbnQgewpAQCAtMzI5LDYgKzMzMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYg
VVNFKFFVSUNLX0xPT0spCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tI
YW5kbGUoUXVpY2tMb29rSGFuZGxlJikgeyB9CiAjZW5kaWYKKworI2lmIFVTRShDT05URU5UX0ZJ
TFRFUklORykKKyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQo
c3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+KSB7IH0KKyNlbmRpZgogICAgIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNw
cAppbmRleCBlNzcwODBlYjViM2Q0MzE5YTg5NDQxNjI3ZDNlZWE4NWVjZWQ0ZTgxLi4xZDFhYTNl
M2I5MDhlNjU0NDhmMDAwZDE3ZDc0ZmRjYjRkMzNmZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwCkBAIC00NiwxMCArNDYsNiBAQAogI2luY2x1ZGUgIlF1aWNrTG9v
ay5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0jaW5jbHVkZSAiQ29u
dGVudEZpbHRlci5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUG9saWN5Q2hl
Y2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCkBAIC0xMDksMTUgKzEwNSw2IEBAIHZv
aWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgRG9jdW1lCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoQ09OVEVOVF9G
SUxURVJJTkcpCi0gICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IG1fZnJh
bWUubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkgewotICAgICAgICBpZiAoZG9jdW1lbnRMb2Fk
ZXItPmhhbmRsZUNvbnRlbnRGaWx0ZXJSZXF1ZXN0KHJlcXVlc3QpKSB7Ci0gICAgICAgICAgICBj
b250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX2RlbGVnYXRlSXNEZWNp
ZGluZ05hdmlnYXRpb25Qb2xpY3kgPSB0cnVlOwogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50
KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVxdWVz
dCwgZm9ybVN0YXRlLCBbdGhpc10oUG9saWN5QWN0aW9uIGFjdGlvbikgewogICAgICAgICBjb250
aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShhY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGVudEZpbHRlci5oCmluZGV4IGQwZjgxYWYwZDNjZmRhYzA2ZDE0ZTM5MDA1NjFkMTc0NDhm
NzRkYjMuLjZlM2M5ZjljMTZkNGI2MzBlMWM4N2RmNGViNWVmMzlkYzBhYzc0NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgKQEAgLTMwLDU3ICszMCw2MiBAQAogCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKICNpZiBQTEFURk9STShJT1Mp
Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgTlNNdXRhYmxlRGF0YTsKK09C
SkNfQ0xBU1MgTlNEYXRhOworT0JKQ19DTEFTUyBOU0tleWVkQXJjaGl2ZXI7CitPQkpDX0NMQVNT
IE5TS2V5ZWRVbmFyY2hpdmVyOwogT0JKQ19DTEFTUyBXZWJGaWx0ZXJFdmFsdWF0b3I7CiAjZW5k
aWYKIAogI2RlZmluZSBIQVZFX05FX0ZJTFRFUl9TT1VSQ0UgVEFSR0VUX09TX0VNQkVEREVEIHx8
ICghVEFSR0VUX09TX0lQSE9ORSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTAwKQogCiAjaWYgSEFWRShORV9GSUxURVJfU09VUkNFKQotI2ltcG9ydCA8YXRvbWljPgog
I2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KIE9CSkNfQ0xBU1MgTkVGaWx0ZXJTb3VyY2U7
CitPQkpDX0NMQVNTIE5TTXV0YWJsZURhdGE7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCi1j
bGFzcyBDb250ZW50RmlsdGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvbnRlbnRG
aWx0ZXI+IHsKK2NsYXNzIENvbnRlbnRGaWx0ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbnRlbnRGaWx0ZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAg
ICAgc3RhdGljIGJvb2wgaXNFbmFibGVkKCk7CiAKLSAgICB2aXJ0dWFsIH5Db250ZW50RmlsdGVy
KCk7CisgICAgZXhwbGljaXQgQ29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgfkNvbnRlbnRGaWx0ZXIoKTsKIAogICAgIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKTsKICAgICB2b2lkIGZpbmlzaGVkQWRkaW5nRGF0YSgpOwogICAgIGJv
b2wgbmVlZHNNb3JlRGF0YSgpIGNvbnN0OwogICAgIGJvb2wgZGlkQmxvY2tEYXRhKCkgY29uc3Q7
CiAgICAgY29uc3QgY2hhciogZ2V0UmVwbGFjZW1lbnREYXRhKGludCYgbGVuZ3RoKSBjb25zdDsK
LSAgICAKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIENvbnRlbnRGaWx0ZXIoKTsKKyAgICB2
b2lkIGVuY29kZShOU0tleWVkQXJjaGl2ZXIgKikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKE5TS2V5ZWRVbmFyY2hpdmVyICosIENvbnRlbnRGaWx0ZXImKTsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oSU9TKQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzY2hlbWUoKTsKLSAgICB2b2lk
IHJlcXVlc3RVbmJsb2NrQW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwoRnVuY3Rpb248dm9pZCgpPik7
CisgICAgYm9vbCBoYW5kbGVVbmJsb2NrUmVxdWVzdEFuZERpc3BhdGNoSWZTdWNjZXNzZnVsKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAjZW5kaWYKIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb250ZW50RmlsdGVyKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLSAgICAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8V2ViRmlsdGVy
RXZhbHVhdG9yPiBtX3BsYXRmb3JtQ29udGVudEZpbHRlcjsKICAgICBSZXRhaW5QdHI8TlNEYXRh
PiBtX3JlcGxhY2VtZW50RGF0YTsKICNlbmRpZgogCiAjaWYgSEFWRShORV9GSUxURVJfU09VUkNF
KQotICAgIHN0ZDo6YXRvbWljPGxvbmc+IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXM7CisgICAgbG9u
ZyBtX25lRmlsdGVyU291cmNlU3RhdHVzOwogICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJjZT4g
bV9uZUZpbHRlclNvdXJjZTsKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fbmVGaWx0ZXJTb3VyY2VR
dWV1ZTsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGF0YT4gbV9vcmlnaW5hbERhdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29udGVudEZpbHRlcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db250ZW50RmlsdGVySU9TLm1tCmluZGV4IDQ4
YzI1YjAwZGUzZmYzMGFlZWQyMGRkYmUxNjgyYTM5NTJiZGM2MzMuLmVmMzg2YzNlMmY3YmNhNWNl
NGFmNTk0OTUzZTE1NjJlNjNhZjc4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9Db250ZW50RmlsdGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9Db250ZW50RmlsdGVySU9TLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9S
TShJT1MpICYmIFVTRShDT05URU5UX0ZJTFRFUklORykKIAorI2ltcG9ydCAiUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgiCiAKICNpZiBkZWZpbmVkKF9faGFz
X2luY2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPFdlYkNvbnRlbnRBbmFseXNpcy9XZWJGaWx0ZXJF
dmFsdWF0b3IuaD4pCkBAIC00MCwyMSArNDEsMjUgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNvbnN0IGNoYXIqIENvbnRlbnRGaWx0ZXI6OnNjaGVtZSgpCitzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHNjaGVtZSgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIgY29udGVudEZp
bHRlclNjaGVtZVtdID0gIngtYXBwbGUtY29udGVudC1maWx0ZXIiOwogICAgIHJldHVybiBjb250
ZW50RmlsdGVyU2NoZW1lOwogfQotICAgIAotdm9pZCBDb250ZW50RmlsdGVyOjpyZXF1ZXN0VW5i
bG9ja0FuZERpc3BhdGNoSWZTdWNjZXNzZnVsKEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCisK
K2Jvb2wgQ29udGVudEZpbHRlcjo6aGFuZGxlVW5ibG9ja1JlcXVlc3RBbmREaXNwYXRjaElmU3Vj
Y2Vzc2Z1bChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBmdW5jdGlvbikKIHsKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcyhzY2hl
bWUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZXF1YWxJZ25vcmluZ0Nh
c2UocmVxdWVzdC51cmwoKS5ob3N0KCksICJ1bmJsb2NrIikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIFttX3BsYXRmb3JtQ29udGVudEZpbHRlciB1bmJsb2NrV2l0aENvbXBsZXRpb246
XihCT09MIHVuYmxvY2tlZCwgTlNFcnJvciAqKSB7Ci0gICAgICAgIGlmICh1bmJsb2NrZWQpIHsK
LSAgICAgICAgICAgIFdlYlRocmVhZFJ1biheewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgICAgICBpZiAodW5ibG9ja2VkKQorICAg
ICAgICAgICAgZnVuY3Rpb24oKTsKICAgICB9XTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0NvbnRlbnRGaWx0ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29u
dGVudEZpbHRlck1hYy5tbQppbmRleCAxZWY1MGU4NGFmNDU5OWFkZGU1YzAyMjIzMzUzNDgwYjky
OTQ1Nzc5Li5iMTFhZWE4NjBhZjEyMTMxYjQ0MzY5ODRhMTYwZGQ2ZjM5YzdjZDE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQpAQCAtODUs
OSArODUsMTIgQEAgU09GVF9MSU5LX0NMQVNTKE5ldHdvcmtFeHRlbnNpb24sIE5FRmlsdGVyU291
cmNlKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPENvbnRlbnRGaWx0ZXI+
IENvbnRlbnRGaWx0ZXI6OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
K0NvbnRlbnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIoKQorI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJD
RSkKKyAgICA6IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMoTkVGaWx0ZXJTb3VyY2VTdGF0dXNOZWVk
c01vcmVEYXRhKQorICAgICwgbV9uZUZpbHRlclNvdXJjZVF1ZXVlKDApCisjZW5kaWYKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENvbnRlbnRGaWx0ZXIocmVzcG9uc2UpKTsKIH0KIAogQ29u
dGVudEZpbHRlcjo6Q29udGVudEZpbHRlcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKQEAgLTE1MCwxMSArMTUzLDkgQEAgdm9pZCBDb250ZW50RmlsdGVyOjphZGREYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgLy8gYWRkaXRpb25hbCBjb3B5LgogICAgIFtt
X29yaWdpbmFsRGF0YSBhcHBlbmRCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhdOwogCi0gICAgcmVm
KCk7CiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3QgbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUgPSBk
aXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApOwogICAgIFttX25lRmlsdGVyU291cmNlIGFkZERh
dGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGhdIHdpdGhD
b21wbGV0aW9uUXVldWU6bV9uZUZpbHRlclNvdXJjZVF1ZXVlIGNvbXBsZXRpb25IYW5kbGVyOl4o
TkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RhdGEgKikgewogICAgICAgICBtX25lRmls
dGVyU291cmNlU3RhdHVzID0gc3RhdHVzOwotICAgICAgICBkZXJlZigpOwogICAgICAgICBkaXNw
YXRjaF9zZW1hcGhvcmVfc2lnbmFsKG5lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKICAgICB9XTsK
IApAQCAtMTc5LDExICsxODAsOSBAQCB2b2lkIENvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5n
RGF0YSgpCiAgICAgaWYgKCFtX25lRmlsdGVyU291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICByZWYoKTsKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBuZUZpbHRlclNvdXJjZVNlbWFwaG9y
ZSA9IGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCk7CiAgICAgW21fbmVGaWx0ZXJTb3VyY2Ug
ZGF0YUNvbXBsZXRlV2l0aENvbXBsZXRpb25RdWV1ZTptX25lRmlsdGVyU291cmNlUXVldWUgY29t
cGxldGlvbkhhbmRsZXI6XihORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGF0YSAqKSB7
CiAgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgPSBzdGF0dXM7Ci0gICAgICAgIGRlcmVm
KCk7CiAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobmVGaWx0ZXJTb3VyY2VTZW1h
cGhvcmUpOwogICAgIH1dOwogCkBAIC0yMzQsNiArMjMzLDI3IEBAIGNvbnN0IGNoYXIqIENvbnRl
bnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YShpbnQmIGxlbmd0aCkgY29uc3QKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFtvcmlnaW5hbERhdGEgYnl0ZXNdKTsKIH0KIAor
c3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1Db250ZW50RmlsdGVyS2V5ID0gQCJwbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIiOworCit2b2lkIENvbnRlbnRGaWx0ZXI6OmVuY29kZShOU0tleWVk
QXJjaGl2ZXIgKmFyY2hpdmVyKSBjb25zdAoreworICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVh
dG9yQ2xhc3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TU2VjdXJlQ29kaW5nKV0p
CisgICAgICAgIFthcmNoaXZlciBlbmNvZGVPYmplY3Q6bV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIu
Z2V0KCkgZm9yS2V5OnBsYXRmb3JtQ29udGVudEZpbHRlcktleV07Cit9CisKK2Jvb2wgQ29udGVu
dEZpbHRlcjo6ZGVjb2RlKE5TS2V5ZWRVbmFyY2hpdmVyICp1bmFyY2hpdmVyLCBDb250ZW50Rmls
dGVyJiBjb250ZW50RmlsdGVyKQoreworICAgIEB0cnkgeworICAgICAgICBpZiAoW2dldFdlYkZp
bHRlckV2YWx1YXRvckNsYXNzKCkgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChOU1NlY3Vy
ZUNvZGluZyldKQorICAgICAgICAgICAgY29udGVudEZpbHRlci5tX3BsYXRmb3JtQ29udGVudEZp
bHRlciA9IChXZWJGaWx0ZXJFdmFsdWF0b3IgKilbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNs
YXNzOmdldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgZm9yS2V5OnBsYXRmb3JtQ29udGVudEZp
bHRlcktleV07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlv
biAqZXhjZXB0aW9uKSB7CisgICAgICAgIExPR19FUlJPUigiVGhlIHBsYXRmb3JtIGNvbnRlbnQg
ZmlsdGVyIGJlaW5nIGRlY29kZWQgaXMgbm90IGEgV2ViRmlsdGVyRXZhbHVhdG9yLiIpOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gVVNFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggN2MxNWEz
NjZmN2YwNGMzN2Y5Yzk1ZWYyYmI2ZjhhYzBhYjc0OWFkNy4uZjU3ZmYxZjYzODJjZGEzZDA4NDQy
MDNkNTA1ZjI3MGNiYzRmZDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMzUsNiArMjM1LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKFdlYkNv
cmU6OlF1aWNrTG9va0hhbmRsZSYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZv
aWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29u
dGVudEZpbHRlcj4pIG92ZXJyaWRlOworCiAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiBtX3dlYkZy
YW1lOwogCiAgICAgUmV0YWluUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXI+IG1fcG9saWN5TGlz
dGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDQyNWNiZDQ0MmRjYTFmMDFjYjQ2MDk5MjNmNWM4
ZTNhMDJiYzk1N2EuLmViNTc0YTY5MmZlZmI3MThmZmU4MTMxMzM4Yzc5MzdhYTdjZWM5MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCkBAIC02NjcsNiArNjY3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCiB7CiAgICAgQVNTRVJUKCFt
X3dlYkZyYW1lLT5fcHJpdmF0ZS0+cHJvdmlzaW9uYWxVUkwpOwogICAgIG1fd2ViRnJhbWUtPl9w
cml2YXRlLT5wcm92aXNpb25hbFVSTCA9IGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPmxvYWRlcigp
LnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAgbV93ZWJG
cmFtZS0+X3ByaXZhdGUtPmNvbnRlbnRGaWx0ZXJGb3JCbG9ja2VkTG9hZCA9IG51bGxwdHI7CiAK
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICNp
ZiAhUExBVEZPUk0oSU9TKQpAQCAtODgxLDYgKzg4MiwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUs
IEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24pCiB7CisgICAgaWYgKFttX3dlYkZyYW1lIF9j
b250ZW50RmlsdGVyRGlkSGFuZGxlTmF2aWdhdGlvbkFjdGlvbjpyZXF1ZXN0XSkgeworICAgICAg
ICBmdW5jdGlvbihQb2xpY3lJZ25vcmUpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
V2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAgICAgW1t3
ZWJWaWV3IF9wb2xpY3lEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3CiAgICAgICAg
ICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5
KGFjdGlvbiwgZm9ybVN0YXRlKQpAQCAtMjIzOCw2ICsyMjQ0LDExIEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpZENyZWF0ZVF1aWNrTG9va0hhbmRsZShXZWJDb3JlOjpRdWlja0xvb2tI
YW5kbGUmIGhhCiB9CiAjZW5kaWYKIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZpbHRl
cj4gY29udGVudEZpbHRlcikKK3sKKyAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+Y29udGVudEZp
bHRlckZvckJsb2NrZWRMb2FkID0gV1RGOjptb3ZlKGNvbnRlbnRGaWx0ZXIpOworfQorCiBAaW1w
bGVtZW50YXRpb24gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lcgogCiArICh2b2lkKWluaXRpYWxpemUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGI3ODFjYWFiMmUxNmJjMmFl
YTg4OGE0MzAwMjJkODQxY2FmYjI1ODguLjk2ZTI4OTgyNGFjNWE4N2QzZjk5MmQ2ZTBlN2M1ZDgx
NjlkNWExNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTAwMSw2
ICsxMDAxLDIyIEBAIC0gKHZvaWQpX2NvbW1pdERhdGE6KE5TRGF0YSAqKWRhdGEKICAgICBfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5jb21taXREYXRhKChj
b25zdCBjaGFyICopW2RhdGEgYnl0ZXNdLCBbZGF0YSBsZW5ndGhdKTsKIH0KIAorLSAoQk9PTClf
Y29udGVudEZpbHRlckRpZEhhbmRsZU5hdmlnYXRpb25BY3Rpb246KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCAmKXJlcXVlc3QKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKENv
bnRlbnRGaWx0ZXIgKmNvbnRlbnRGaWx0ZXIgPSBfcHJpdmF0ZS0+Y29udGVudEZpbHRlckZvckJs
b2NrZWRMb2FkLmdldCgpKSB7CisgICAgICAgIFJldGFpblB0cjxXZWJGcmFtZT4gcmV0YWluZWRN
YWluRnJhbWUgPSBbW3NlbGYgd2ViVmlld10gbWFpbkZyYW1lXTsKKyAgICAgICAgcmV0dXJuIGNv
bnRlbnRGaWx0ZXItPmhhbmRsZVVuYmxvY2tSZXF1ZXN0QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwo
cmVxdWVzdCwgW3JldGFpbmVkTWFpbkZyYW1lXSB7CisgICAgICAgICAgICBXZWJUaHJlYWRSdW4o
XiB7CisgICAgICAgICAgICAgICAgW3JldGFpbmVkTWFpbkZyYW1lIHJlbG9hZF07CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gTk87Cit9
CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkZyYW1lIChXZWJQcml2YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCAzMzdmMzBlMGNi
OGY2YzFjNzg4YTZkMGI0Y2FiNzg2NTUwMTNlZjdhLi5kZjllZmFkZDg4ODY3NmYxNzI0MmVkNzM0
M2VmNzViYWVjZTdhMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
SW50ZXJuYWwuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJXZWJGcmFtZVByaXZhdGUu
aCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9D
b250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRBY3Rpb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVNlbGVj
dGlvbi5oPgpAQCAtOTAsNyArOTEsOCBAQCBXZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3
ZWJGcmFtZSk7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwcm92aXNpb25hbFVSTDsKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgQk9PTCBpc0NvbW1pdHRpbmc7Ci0jZW5kaWYgICAgCisjZW5kaWYK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZpbHRlcj4gY29udGVudEZpbHRl
ckZvckJsb2NrZWRMb2FkOwogfQogQGVuZAogCkBAIC0xODIsNiArMTg0LDggQEAgV2ViVmlldyAq
Z2V0V2ViVmlldyhXZWJGcmFtZSAqd2ViRnJhbWUpOwogCiAtICh2b2lkKV9jb21taXREYXRhOihO
U0RhdGEgKilkYXRhOwogCistIChCT09MKV9jb250ZW50RmlsdGVyRGlkSGFuZGxlTmF2aWdhdGlv
bkFjdGlvbjooY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JilyZXF1ZXN0OworCiBAZW5k
CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYkludGVybmFsRnJhbWVMb2FkRGVsZWdhdGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMjg3
NzdhZTgxMzZmODU4Nzk5NTEyN2YwNDU0ZWZjZmYwY2U5OTYyMy4uM2ZjOTEyYzQ2NjZjNDY0NDc1
NzQ2MzM3ZjIxOTM2MzYzZDQ2ZjQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBzdHJ1Y3QgVmlld3BvcnRB
cmd1bWVudHM7CiB9CiAjZW5kaWYKIAorI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbnRlbnRGaWx0ZXI7Cit9CisjZW5kaWYKKwogbmFtZXNw
YWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtPiB7CkBAIC00MzYsNiArNDQyLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6QmxvYlBhcnQ+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6QmxvYlBhcnQmKTsKIH07CiAKKyNpZiBVU0UoQ09O
VEVOVF9GSUxURVJJTkcpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXI+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlciYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb250ZW50RmlsdGVyJik7Cit9OworI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIElQQwogCiAjZW5kaWYgLy8gV2ViQ29yZUFyZ3VtZW50Q29kZXJz
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0KaW5kZXggODM2Mjg5Njk4ODkxMDVjNTA3MGExMWEwNmE2ZjcwYjQ0MzEyZjdm
Mi4uOTk0YjFlZGM1YTMyMDFmNTFhMjY1Y2QyYWEyN2Y0MTM1YjNjNTNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
QEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIldl
YktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8u
aD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9L
ZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0zMDAsNCArMzAxLDI5IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxLZXlwcmVzc0NvbW1hbmQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBLZXlwcmVzc0NvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRD
b2RlcjxDb250ZW50RmlsdGVyPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQ29udGVudEZpbHRlciYgY29udGVudEZpbHRlcikKK3sKKyAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlRGF0YT4gZGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7Cisg
ICAgUmV0YWluUHRyPE5TS2V5ZWRBcmNoaXZlcj4gYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXll
ZEFyY2hpdmVyIGFsbG9jXSBpbml0Rm9yV3JpdGluZ1dpdGhNdXRhYmxlRGF0YTpkYXRhLmdldCgp
XSk7CisgICAgW2FyY2hpdmVyIHNldFJlcXVpcmVzU2VjdXJlQ29kaW5nOllFU107CisgICAgY29u
dGVudEZpbHRlci5lbmNvZGUoYXJjaGl2ZXIuZ2V0KCkpOworICAgIFthcmNoaXZlciBmaW5pc2hF
bmNvZGluZ107CisgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgcmVpbnRlcnByZXRfY2FzdDxDRkRh
dGFSZWY+KGRhdGEuZ2V0KCkpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0
ZXI+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb250ZW50RmlsdGVyJiBjb250
ZW50RmlsdGVyKQoreworICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGE7CisgICAgaWYgKCFJ
UEM6OmRlY29kZShkZWNvZGVyLCBkYXRhKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
UmV0YWluUHRyPE5TS2V5ZWRVbmFyY2hpdmVyPiB1bmFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5
ZWRVbmFyY2hpdmVyIGFsbG9jXSBpbml0Rm9yUmVhZGluZ1dpdGhEYXRhOihOU0RhdGEgKilkYXRh
LmdldCgpXSk7CisgICAgW3VuYXJjaGl2ZXIgc2V0UmVxdWlyZXNTZWN1cmVDb2Rpbmc6WUVTXTsK
KyAgICBpZiAoIUNvbnRlbnRGaWx0ZXI6OmRlY29kZSh1bmFyY2hpdmVyLmdldCgpLCBjb250ZW50
RmlsdGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgW3VuYXJjaGl2ZXIgZmluaXNo
RGVjb2RpbmddOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bQppbmRleCBhZGZlMzNlYjA2Y2Q3ZGU4ODI4ODllODg5NTI1MjUzNzc4Yzg3NTAyLi4zODI0ODg0
YzAwMmU5ZWE1NzdhNTFmMTU5OTFhMGU2MDc0MzczMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC03Miw0ICs3Miwx
MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYg
bmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaAogICAgIH0KIH0KIAordm9pZCBXZWJQYWdlUHJv
eHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250
ZW50RmlsdGVyJiBjb250ZW50RmlsdGVyLCB1aW50NjRfdCBmcmFtZUlEKQoreworICAgIGlmIChX
ZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCisgICAg
ICAgIGZyYW1lLT5zZXRDb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQoc3RkOjptYWtlX3VuaXF1
ZTxXZWJDb3JlOjpDb250ZW50RmlsdGVyPihjb250ZW50RmlsdGVyKSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBjYzViZjk5MjhhYTM5
YWUzYjMwODFjYTk0MDI3OGRmZmUwZTFiOGIxLi4xZGQwYjZiNjdhNTcxZDBhYWY1MmY2ZTBjOWRi
M2U1ZWZlNDRmZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCkBAIC0xMjcsNiArMTI3LDkgQEAgYm9vbCBXZWJGcmFtZVByb3h5Ojppc0Rpc3BsYXlpbmdQ
REZEb2N1bWVudCgpIGNvbnN0CiB2b2lkIFdlYkZyYW1lUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIG1fZnJhbWVMb2FkU3RhdGUuZGlkU3Rh
cnRQcm92aXNpb25hbExvYWQodXJsKTsKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisgICAg
bV9jb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBudWxscHRyOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViRnJhbWVQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKGNvbnN0IFN0cmluZyYgdXJsKQpAQCAtMjMwLDQgKzIzMywyMCBAQCB2b2lkIFdlYkZyYW1l
UHJveHk6OnNldFVucmVhY2hhYmxlVVJMKGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwpCiAg
ICAgbV9mcmFtZUxvYWRTdGF0ZS5zZXRVbnJlYWNoYWJsZVVSTCh1bnJlYWNoYWJsZVVSTCk7CiB9
CiAKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCitib29sIFdlYkZyYW1lUHJveHk6OmNvbnRl
bnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKG1fY29udGVu
dEZpbHRlckZvckJsb2NrZWRMb2FkKSB7CisgICAgICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHJl
dGFpbmVkUGFnZSA9IG1fcGFnZTsKKyAgICAgICAgcmV0dXJuIG1fY29udGVudEZpbHRlckZvckJs
b2NrZWRMb2FkLT5oYW5kbGVVbmJsb2NrUmVxdWVzdEFuZERpc3BhdGNoSWZTdWNjZXNzZnVsKHJl
cXVlc3QsIFtyZXRhaW5lZFBhZ2VdIHsKKyAgICAgICAgICAgIHJldGFpbmVkUGFnZS0+cmVsb2Fk
KGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0N2RlNzM0MDBiNzUyNmQyYmI0NDZlYWQzYWRiMzJk
OWY0MzI2NTdjLi4wZjEwMmRlNjE3M2NiMzUzNDBlZTQ1ZWM2NDJjNThkYmU2Yzc4MjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTM1LDYgKzM1LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAorI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnRlbnRGaWx0ZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSVBDIHsKICAgICBjbGFzcyBBcmd1
bWVudERlY29kZXI7CiAgICAgY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTExMyw2ICsxMTcsMTEgQEAg
cHVibGljOgogICAgIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSogc2V0VXBQb2xpY3lMaXN0
ZW5lclByb3h5KHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIFdlYkZvcm1TdWJtaXNzaW9uTGlz
dGVuZXJQcm94eSogc2V0VXBGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkodWludDY0X3QgbGlz
dGVuZXJJRCk7CiAKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisgICAgdm9pZCBzZXRDb250
ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXI+IGNvbnRlbnRGaWx0ZXIpIHsgbV9jb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBX
VEY6Om1vdmUoY29udGVudEZpbHRlcik7IH0KKyAgICBib29sIGNvbnRlbnRGaWx0ZXJEaWRIYW5k
bGVOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UsIHVp
bnQ2NF90IGZyYW1lSUQpOwogCkBAIC0xMjYsNiArMTM1LDEwIEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0aWZpY2F0ZUluZm87CiAgICAgUmVmUHRyPFdl
YkZyYW1lTGlzdGVuZXJQcm94eT4gbV9hY3RpdmVMaXN0ZW5lcjsKICAgICB1aW50NjRfdCBtX2Zy
YW1lSUQ7CisKKyNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI+IG1fY29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTRjM2U5NTVjNTY3OTA1MTYxYzEzMWE5ZDU5Y2Uy
YmNmOWRjOTg3MC4uNzg1N2YyOGVkYTc5YjUxYTg0YWE0M2U3OGFiNzhjM2JiYjFhMjJjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI4NTksNiArMjg1
OSwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYQogICAgICAgICBsaXN0ZW5lci0+c2V0TmF2
aWdhdGlvbklEKG5ld05hdmlnYXRpb25JRCk7CiAgICAgfQogCisjaWYgVVNFKENPTlRFTlRfRklM
VEVSSU5HKQorICAgIGlmIChmcmFtZS0+Y29udGVudEZpbHRlckRpZEhhbmRsZU5hdmlnYXRpb25B
Y3Rpb24ocmVxdWVzdCkpIHsKKyAgICAgICAgcmVjZWl2ZWRQb2xpY3lBY3Rpb24gPSB0cnVlOwor
ICAgICAgICBwb2xpY3lBY3Rpb24gPSBQb2xpY3lJZ25vcmU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKKwogICAgIEFTU0VSVCghbV9pbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24pOwogCiAgICAgbV9pbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQ4YjdiZDZmZjEz
MmNlYjY0OTk4MWYwOWQyOWM0Yjc0MjdjOTkzNjQuLjJiMDBlNDY4ZThlYTMyODQzNDc0OTc4M2Uw
NWRhZWI0YzhlNWE5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTEyNjgsNiArMTI2OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZEZv
clF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoY29uc3QgUXVpY2tMb29rRG9jdW1lbnREYXRh
Jik7CiAjZW5kaWYKIAorI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKKyAgICB2b2lkIGNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVy
JiwgdWludDY0X3QgZnJhbWVJRCk7CisjZW5kaWYKKwogICAgIHVpbnQ2NF90IGdlbmVyYXRlTmF2
aWdhdGlvbklEKCk7CiAKICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlIHByZWZlcmVuY2VzU3RvcmUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDI1YmVlNTg0ZTRkNDdlNjg0NDk2NTk0MjI2Yjg1NDI5YTI4NjM5NzUu
LjNhMjk2YmMxODJhNTIzNDM5NDNjZGJlM2ZiMjk5NGFjYzgxMWI2OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDAzLDQg
KzQwMyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkU3RhcnRMb2FkRm9y
UXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyB1dGkp
CiAgICAgRGlkRmluaXNoTG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoV2ViS2l0
OjpRdWlja0xvb2tEb2N1bWVudERhdGEgZGF0YSkKICNlbmRpZgorCisjaWYgVVNFKENPTlRFTlRf
RklMVEVSSU5HKQorICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3Jl
OjpDb250ZW50RmlsdGVyIGNvbnRlbnRGaWx0ZXIsIHVpbnQ2NF90IGZyYW1lSUQpCisjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZTU2MzE4NmVjNDkwMGIx
ZTIwOWRmZGZlY2I1NzYwZTZiMGE3ZDNhYi4uZmFkNzM2MGY3NzhiMmIwMjQ3ZDQyN2UwZTgxZmRk
YWNhMzIyZjc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE2MjEs
NCArMTYyMSwxMiBAQCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dAogICAgIHJldHVybiBjb250ZXh0
LnJlbGVhc2UoKTsKIH0KIAorI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI+IGNvbnRlbnRGaWx0ZXIpCit7CisgICAgaWYgKFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHdlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6Q29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKCpj
b250ZW50RmlsdGVyLCBtX2ZyYW1lLT5mcmFtZUlEKCkpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiOTBlMDIz
YzQ5OGM3NWIxYjU5ZDRhMGU4OGEwZTJlMzQ4MDgyZWFjLi45NTIxY2I3ZmU3YTZlNTc0OTBjMmNi
OWE3OTMyMDk3MDU3M2E2MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0y
MjcsNiArMjI3LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVF1aWNr
TG9va0hhbmRsZShXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGUmKSBvdmVycmlkZTsKICNlbmRpZgog
CisjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKQorICAgIHZpcnR1YWwgdm9pZCBjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPikg
b3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQ
bHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1
Z2luVmlldzsK
</data>
<flag name="review"
          id="259698"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>