<?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>147181</bug_id>
          
          <creation_ts>2015-07-21 19:08:30 -0700</creation_ts>
          <short_desc>[iOS] Add an explicit API to allow media documents to (temporarily) play inline</short_desc>
          <delta_ts>2015-07-23 15:31:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1111187</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-21 19:08:30 -0700</bug_when>
    <thetext>[iOS] Add an explicit API to allow media documents to (temporarily) play inline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111196</commentid>
    <comment_count>1</comment_count>
      <attachid>257240</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-21 19:42:13 -0700</bug_when>
    <thetext>Created attachment 257240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111414</commentid>
    <comment_count>2</comment_count>
      <attachid>257240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-22 14:13:53 -0700</bug_when>
    <thetext>Comment on attachment 257240
Patch

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

So much plumbing!

&gt; Source/WebCore/dom/Document.h:1019
&gt; +    void registerForAllowMediaDocumentInlinePlaybackChangedCallbacks(HTMLMediaElement*);
&gt; +    void unregisterForAllowMediaDocumentInlinePlaybackChangedCallbacks(HTMLMediaElement*);

These should take HTMLMediaElement&amp;;

&gt; Source/WebCore/page/Page.h:464
&gt; +    WEBCORE_EXPORT bool allowMediaDocumentInlinePlayback() const { return m_allowMediaDocumentInlinePlayback; }

This function name is a verb phrase, so sounds like it “allows” something. But really it just returns a boolean. That’s why so many Cocoa names of methods like this function use the word “should” or something like that to make it sound like a boolean predicate and not a verb.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:215
&gt; +@property (nonatomic, getter=_allowMediaDocumentInlinePlayback, setter=_setAllowMediaDocumentInlinePlayback:) BOOL _allowMediaDocumentInlinePlayback;

This function name is a verb phrase, so sounds like it will “allow” something. But really it just returns a boolean. That’s why so many Cocoa names of methods like this function use the word “should” or something like that to make it sound like a boolean predicate and not a verb. Or at least “allows” by analogy with “requires” on the line above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111463</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-22 15:54:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 257240 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257240&amp;action=review
&gt; 
&gt; So much plumbing!

I know!! :-/

&gt; &gt; Source/WebCore/dom/Document.h:1019
&gt; &gt; +    void registerForAllowMediaDocumentInlinePlaybackChangedCallbacks(HTMLMediaElement*);
&gt; &gt; +    void unregisterForAllowMediaDocumentInlinePlaybackChangedCallbacks(HTMLMediaElement*);
&gt; 
&gt; These should take HTMLMediaElement&amp;;

Roger.

&gt; &gt; Source/WebCore/page/Page.h:464
&gt; &gt; +    WEBCORE_EXPORT bool allowMediaDocumentInlinePlayback() const { return m_allowMediaDocumentInlinePlayback; }
&gt; 
&gt; This function name is a verb phrase, so sounds like it “allows” something.
&gt; But really it just returns a boolean. That’s why so many Cocoa names of
&gt; methods like this function use the word “should” or something like that to
&gt; make it sound like a boolean predicate and not a verb.

Yeah; allows...? doesAllow...? shouldAllow...? 

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:215
&gt; &gt; +@property (nonatomic, getter=_allowMediaDocumentInlinePlayback, setter=_setAllowMediaDocumentInlinePlayback:) BOOL _allowMediaDocumentInlinePlayback;
&gt; 
&gt; This function name is a verb phrase, so sounds like it will “allow”
&gt; something. But really it just returns a boolean. That’s why so many Cocoa
&gt; names of methods like this function use the word “should” or something like
&gt; that to make it sound like a boolean predicate and not a verb. Or at least
&gt; “allows” by analogy with “requires” on the line above.

I&apos;ll pick a more appropriate name here and post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111467</commentid>
    <comment_count>4</comment_count>
      <attachid>257307</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-22 16:23:17 -0700</bug_when>
    <thetext>Created attachment 257307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111468</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-22 16:24:28 -0700</bug_when>
    <thetext>I went with &apos;allows&apos; rather than &apos;shouldAllow&apos; or &apos;doesAllow&apos;, because the property is already super long without an extra non-imperative verb on the front.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111472</commentid>
    <comment_count>6</comment_count>
      <attachid>257308</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-22 16:52:58 -0700</bug_when>
    <thetext>Created attachment 257308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111693</commentid>
    <comment_count>7</comment_count>
      <attachid>257363</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-23 12:35:37 -0700</bug_when>
    <thetext>Created attachment 257363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111734</commentid>
    <comment_count>8</comment_count>
      <attachid>257363</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-07-23 14:04:56 -0700</bug_when>
    <thetext>Comment on attachment 257363
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:-3885
&gt; -    

Unnecessary!

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:3991
&gt; +void WebPageProxy::setAllowsMediaDocumentInlinePlayback(bool flag)

I would prefer a more descriptive variable name than &apos;flag.&apos;

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3011
&gt; +void WebPage::setAllowsMediaDocumentInlinePlayback(bool flag)

Boo flag

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.messages.in:98
&gt; +    SetAllowsMediaDocumentInlinePlayback(bool flag)

Boooooooo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111748</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-07-23 14:16:52 -0700</bug_when>
    <thetext>Committed r187251: &lt;http://trac.webkit.org/changeset/187251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111785</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-07-23 15:31:57 -0700</bug_when>
    <thetext>It looks like you had partially renamed flag to allows.  Build fix committed to http://trac.webkit.org/changeset/187263</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257240</attachid>
            <date>2015-07-21 19:42:13 -0700</date>
            <delta_ts>2015-07-22 16:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147181-20150721194059.patch</filename>
            <type>text/plain</type>
            <size>16101</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiOGY0YzZmZGE4NzE4
YWIyYTZjNmY5ZjIyZTBlNjdhNjcyYWE1Ny4uNGQyNjM1N2JhNWFmN2FmZjNlOWRhYzA0YmUzMzVk
MjZmODgyOWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhbiBleHBs
aWNpdCBBUEkgdG8gYWxsb3cgbWVkaWEgZG9jdW1lbnRzIHRvICh0ZW1wb3JhcmlseSkgcGxheSBp
bmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsaXN0ZW5lcnMgZm9yIHRoZSBuZXcgYWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sg
QVBJLiBXaGVuIHRoaXMgdmFsdWUgYmVjb21lcworICAgICAgICBOTywgZm9yY2UgYW55IHBsYXlp
bmcgTWVkaWFEb2N1bWVudHMgdG8gZW50ZXIgZnVsbHNjcmVlbiBtb2RlLgorCisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWdpc3RlckZv
ckFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNrcyk6IEFkZGVk
IHJlZ2lzdHJhdGlvbiBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5yZWdp
c3RlckZvckFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNrcyk6
IEFkZGVkIGRlcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjphbGxvd01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWQpOiBOb3RpZnkgYWxsIGxp
c3RlbmVycy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVn
aXN0ZXJXaXRoRG9jdW1lbnQpOiBMaXN0ZW4gZm9yIGFsbG93TWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1bnJl
Z2lzdGVyV2l0aERvY3VtZW50KTogU3RvcCBsaXN0ZW5pbmcgdG8gc2FtZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
Q2hhbmdlZCk6IEVudGVyIGZ1bGxzY3JlZW4gbW9kZSBpZiB0aGUgdmFsdWUKKyAgICAgICAgICAg
IGNoYW5nZXMgdG8gZmFsc2UgZHVyaW5nIHBsYXliYWNrLgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1bGxzY3JlZW5G
b3JWaWRlb1BsYXliYWNrKTogRWFybHkgdHJ1ZSBpZiB0aGUgb3ZlcnJpZGUgdmFsdWUgaXMgc2V0
LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRB
bGxvd01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IE5vdGlmeSBhbGwgZG9jdW1lbnRzIG9m
IHRoZSBjaGFuZ2VkIHZhbHVlLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6YWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2spOiBTaW1wbGUgZ2V0
dGVyLgorCiAyMDE1LTA3LTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSb2xsb3V0IHIxODcwMjAgYW5kIHIxODcwMjE6IGJyZWFrcyBKU0MgQVBJIHRlc3RzIG9u
IGRlYnVnIGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyMTUxMWMwZjA3MmMzYmUyNTU2MWVjNzhiYmUz
OGY1ZmI5MjdkZWE4Li5kYTk3NDNiZDNhNjNlMzBmZWFhMDZjNDhhN2IzOTEzYjU5MTkxNzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDctMjEgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGFuIGV4cGxpY2l0IEFQSSB0byBh
bGxvdyBtZWRpYSBkb2N1bWVudHMgdG8gKHRlbXBvcmFyaWx5KSBwbGF5IGlubGluZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MTgxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgV0tXZWJWaWV3
KFByaXZhdGUpIEFQSSB3aGljaCBhbGxvd3MgTWVkaWFEb2N1bWVudHMgbG9hZGVkIGJ5IHRoZSB2
aWV3IHRvIHBsYXkgdGhlaXIgY29udGVudHMgaW5saW5lLCByZWdhcmRsZXNzCisgICAgICAgIG9m
IHdoZXRoZXIgaW5saW5lIHBsYXliYWNrIGlzIHJlc3RyaWN0ZWQgb24gdGhlIGN1cnJlbnQgZGV2
aWNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjazpd
KTogQWRkZWQuIFBhc3MgdGhyb3VnaCB0byBXZWJQYWdlUHJveHkuCisgICAgICAgICgtW1dLV2Vi
VmlldyBfYWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tdKTogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
YWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2spOiBTaW1wbGUgZ2V0dGVyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXli
YWNrKTogU2V0LCBhbmQgY29uZGl0aW9uYWxseSBwYXNzIHRoZSBuZXcgdmFsdWUgdG8gV2ViUGFn
ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRB
bGxvd01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNldCwgYW5kIGNvbmRpdGlvbmFsbHkg
bm90aWZ5IFdlYkNvcmUgcGFnZSBvZiB0aGUgY2hhbmdlLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFsbG93TWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrKTogU2ltcGxlIGdldHRlci4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIG5ldyBtZXNzYWdlcy4KKwogMjAx
NS0wNy0yMCAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRoYXQuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBzZWxlY3Rpb24tY2hhbmdlZCBzaWduYWwgdG8gdGhlIFdlYktpdDIgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCAxMDJiYzk1ODJlYTNjZWZmYWJmNjlhMzc0NTBjYzM5MGZi
MDFjZjE4Li4yYjY3MWNhMzcxMWI2ZjA3MTdiMDUxOWQ0MWEyMzY2NjgyM2Q2NDRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE2MTQsNiArMTYxNCwyNSBAQCBib29sIERvY3VtZW50Ojpo
aWRkZW4oKSBjb25zdAogICAgIHJldHVybiBwYWdlVmlzaWJpbGl0eVN0YXRlKCkgIT0gUGFnZVZp
c2liaWxpdHlTdGF0ZVZpc2libGU7CiB9CiAKKworI2lmIEVOQUJMRShWSURFTykKK3ZvaWQgRG9j
dW1lbnQ6OnJlZ2lzdGVyRm9yQWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2Vk
Q2FsbGJhY2tzKEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgbV9hbGxvd01lZGlh
RG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzLmFkZChlbGVtZW50KTsKK30KKwordm9pZCBE
b2N1bWVudDo6dW5yZWdpc3RlckZvckFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hh
bmdlZENhbGxiYWNrcyhIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQoreworICAgIG1fYWxsb3dN
ZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tFbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7Cit9CisK
K3ZvaWQgRG9jdW1lbnQ6OmFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZCgp
Cit7CisgICAgZm9yIChhdXRvKiBlbGVtZW50IDogbV9hbGxvd01lZGlhRG9jdW1lbnRJbmxpbmVQ
bGF5YmFja0VsZW1lbnRzKQorICAgICAgICBlbGVtZW50LT5hbGxvd01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFja0NoYW5nZWQoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTUF9ORVhUKQog
RE9NU2VjdXJpdHlQb2xpY3kmIERvY3VtZW50OjpzZWN1cml0eVBvbGljeSgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGU1YzA4MmZlYWQ4ZThhMzA2MmMyZDg1ZmFkOWYzZWZkYTg2YTI4ZjYu
LjMwYjMwNzlmM2E5N2ZiM2NkYjgxNzBiYTJiM2U3ZDhhZGI0N2RhNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMDE0LDYgKzEwMTQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJG
b3JWaXNpYmlsaXR5U3RhdGVDaGFuZ2VkQ2FsbGJhY2tzKEVsZW1lbnQqKTsKICAgICB2b2lkIHVu
cmVnaXN0ZXJGb3JWaXNpYmlsaXR5U3RhdGVDaGFuZ2VkQ2FsbGJhY2tzKEVsZW1lbnQqKTsKIAor
I2lmIEVOQUJMRShWSURFTykKKyAgICB2b2lkIHJlZ2lzdGVyRm9yQWxsb3dNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICB2
b2lkIHVucmVnaXN0ZXJGb3JBbGxvd01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRD
YWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHZvaWQgYWxsb3dNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7CisjZW5kaWYKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2hvdWxkQ3JlYXRlUmVuZGVyZXJzKGJvb2wpOwogICAgIGJvb2wgc2hvdWxkQ3JlYXRl
UmVuZGVyZXJzKCk7CiAKQEAgLTE1NTAsNiArMTU1Niw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1fdmlzaWJpbGl0eVN0YXRlQ2FsbGJhY2tFbGVtZW50czsK
KyNpZiBFTkFCTEUoVklERU8pCisgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9hbGxv
d01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzOworI2VuZGlmCiAKICAgICBIYXNo
TWFwPFN0cmluZ0ltcGwqLCBFbGVtZW50KiwgQ2FzZUZvbGRpbmdIYXNoPiBtX2VsZW1lbnRzQnlB
Y2Nlc3NLZXk7CiAgICAgYm9vbCBtX2FjY2Vzc0tleU1hcFZhbGlkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZDhkM2RjYzBmMDE3NTZlODRkNjU4MTUyZTQ2
ZjAxYzYyNzNmNTFhNi4uYjYxMDIyMWQxM2E3NTk3MDc3ZTU0M2Y4MDVmNTI5NmU3MWQ5ZjliNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01MTgsNiArNTE4
LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZWdpc3RlcldpdGhEb2N1bWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9u
Q2FsbGJhY2tzKHRoaXMpOwogI2VuZGlmCiAKKyAgICBkb2N1bWVudC5yZWdpc3RlckZvckFsbG93
TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNrcyh0aGlzKTsKKwogICAg
IGRvY3VtZW50LmFkZEF1ZGlvUHJvZHVjZXIodGhpcyk7CiAgICAgYWRkRWxlbWVudFRvRG9jdW1l
bnRNYXAoKnRoaXMsIGRvY3VtZW50KTsKIH0KQEAgLTU1MCw2ICs1NTIsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIGRvY3VtZW50LnVucmVnaXN0ZXJGb3JQYWdlQ2FjaGVTdXNwZW5zaW9uQ2FsbGJhY2tzKHRo
aXMpOwogI2VuZGlmCiAKKyAgICBkb2N1bWVudC51bnJlZ2lzdGVyRm9yQWxsb3dNZWRpYURvY3Vt
ZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOworCiAgICAgZG9jdW1lbnQu
cmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAgICByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50
TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBAIC0zODgyLDcgKzM4ODYsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmxheW91dFNpemVDaGFuZ2VkKCkKICAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5l
bnF1ZXVlVGFzayh0YXNrKTsKICNlbmRpZgogfQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFNlbGVjdGVkVGV4dFRyYWNrKFRleHRUcmFjayogdHJhY2tUb1NlbGVjdCkKIHsKICAg
ICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3QgPSB0ZXh0VHJhY2tzKCk7CkBAIC02NTIzLDYgKzY1
MjcsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTZXNzaW9uSW50ZXJuYWwoTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQogCiAjZW5kaWYKIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphbGxv
d01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWQoKQoreworICAgIGlmIChwb3RlbnRp
YWxseVBsYXlpbmcoKSAmJiBtX21lZGlhU2Vzc2lvbi0+cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlk
ZW9QbGF5YmFjaygqdGhpcykgJiYgIWlzRnVsbHNjcmVlbigpKQorICAgICAgICBlbnRlckZ1bGxz
Y3JlZW4oKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggYzQ2YTYxYWI4Mzc2NmQ5NGU2YTUyMWNlN2NlMzZjNTYwYmQ3NWNjMC4uZmEy
NjQyMDNhZWRjZjVhOWZkMGJmYTQyNGExZTE3NzAzMjNmN2MwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQ0OCw2ICs0NDgsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGxheW91dFNpemVDaGFuZ2VkKCk7CiAKKyAgICB2b2lkIGFsbG93TWVkaWFEb2N1bWVudElu
bGluZVBsYXliYWNrQ2hhbmdlZCgpOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKICAgICB2aXJ0dWFsIH5I
VE1MTWVkaWFFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcAppbmRleCA0NDY2MjgzOWExNDdkMzcwOGQ4MmIyMDUwM2EzMjUzMTM2NTkyODVkLi5k
N2ZkYzQxNzExMzMzNmZhOWE3NTYwZmM5NGYyMGNhNDI0NjYwYjU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTM0Nyw2ICszNDcsMTAgQEAgTWVk
aWFQbGF5ZXI6OlByZWxvYWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6ZWZmZWN0aXZlUHJlbG9hZEZv
ckVsZW1lbnQoY29uc3QgSFRNTE0KIAogYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJl
c0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1l
bnQpIGNvbnN0CiB7CisgICAgUGFnZSogcGFnZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5wYWdlKCk7
CisgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5pc01lZGlhRG9jdW1lbnQoKSAmJiAhZWxlbWVu
dC5kb2N1bWVudCgpLm93bmVyRWxlbWVudCgpICYmIHBhZ2UgJiYgcGFnZS0+YWxsb3dNZWRpYURv
Y3VtZW50SW5saW5lUGxheWJhY2soKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYg
KCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uUmVz
dHJpY3RzSW5saW5lVmlkZW9QbGF5YmFjaygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggODFiOTA5YmZmMmZmMWIzYmU3NGM2M2U0ZDM2NDhiYTA4
ODU4NTM2Yi4uYWFjMjBmMjdiZTZjZTU4N2U5ZDY1NWZlYjIyODMzOTg0OTBlYjBmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xNzM2LDQgKzE3MzYsMjAgQEAgV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
JiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dlcigpCiAgICAgcmV0dXJuICptX3Rlc3RUcmlnZ2VyOwog
fQogCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBQYWdlOjpzZXRBbGxvd01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjayhib29sIGZsYWcpCit7CisgICAgaWYgKG1fYWxsb3dNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2sgPT0gZmxhZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fYWxsb3dNZWRp
YURvY3VtZW50SW5saW5lUGxheWJhY2sgPSBmbGFnOworCisgICAgVmVjdG9yPFJlZjxEb2N1bWVu
dD4+IGRvY3VtZW50czsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLmdldCgp
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBk
b2N1bWVudHMuYXBwZW5kKCpmcmFtZS0+ZG9jdW1lbnQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGRv
Y3VtZW50IDogZG9jdW1lbnRzKQorICAgICAgICBkb2N1bWVudC0+YWxsb3dNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA4YmE2MzlkOTQwMzFiODgxYWQ3NTJjY2Q1YzdlZjExZmJi
Njc1Yjk2Li5mM2Y3MzkyODBmNzEyYjBiOWUyNGRkNmViZGYwYWViYmMwOThjMTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtNDYwLDYgKzQ2MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclRyaWdn
ZXIoKSB7IG1fdGVzdFRyaWdnZXIgPSBudWxscHRyOyB9CiAgICAgYm9vbCBleHBlY3RzV2hlZWxF
dmVudFRyaWdnZXJzKCkgY29uc3QgeyByZXR1cm4gISFtX3Rlc3RUcmlnZ2VyOyB9CiAKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhbGxvd01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dNZWRpYURvY3VtZW50SW5saW5l
UGxheWJhY2s7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93TWVkaWFEb2N1bWVu
dElubGluZVBsYXliYWNrKGJvb2wpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBpbml0R3JvdXAoKTsKIApAQCAtNjE5LDYgKzYyNCw3IEBAIHByaXZhdGU6CiAg
ICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlhUHJv
ZHVjZXI6OklzTm90UGxheWluZyB9OwogICAgIAogICAgIGJvb2wgbV91c2VyQ29udGVudEV4dGVu
c2lvbnNFbmFibGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9hbGxvd01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFjayB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpncm91
cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IDZkZjY5MzVlMjg0YzJhZDllYzU3MWY1YTZjYmZkNzNhMTU4ZDIyMGIuLmIyMzRkYjQ1
OGNlZjBkYTRkNGNhM2M3Njc2YjQxNzdhMGFjZWE1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNTk4LDYgKzI1OTgsMTYgQEAg
c3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9w
dGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICBfcGFnZS0+cHJlZmVyZW5jZXMoKS5zZXRSZXF1aXJl
c1VzZXJHZXN0dXJlRm9yTWVkaWFQbGF5YmFjayhmbGFnKTsKIH0KIAorLSAoQk9PTClfYWxsb3dN
ZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sKK3sKKyAgICByZXR1cm4gX3BhZ2UtPmFsbG93TWVk
aWFEb2N1bWVudElubGluZVBsYXliYWNrKCk7Cit9CisKKy0gKHZvaWQpX3NldEFsbG93TWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrOihCT09MKWZsYWcKK3sKKyAgICBfcGFnZS0+c2V0QWxsb3dN
ZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soZmxhZyk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mt
c3BlY2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhMzQ2
ODVlNzcyNGU4ODA0MzhhMTM4ZmVkMDk5NzhjZmM1ZjM4NTEwLi43NDhiMzA1YjIzMDIwMDdmYTYz
N2Q4NGY2N2Q0NDc4YjM4OTBjYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjEyLDYgKzIxMiw3IEBAIFdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNLZXkgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X21l
ZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSwgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9t
YXRpY2FsbHk6KSBCT09MIF9tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgZ2V0dGVyPV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrLCBz
ZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2s6KSBCT09MIF9yZXF1
aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrOworQHByb3BlcnR5IChub25hdG9taWMsIGdl
dHRlcj1fYWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2ssIHNldHRlcj1fc2V0QWxsb3dN
ZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s6KSBCT09MIF9hbGxvd01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFjazsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGZiZjJkOTRmMjFjN2RjOTRmYWZhMDdjNDFhMDU2NjcxNjE5OTJiOGMuLmEx
ZTJjMjRlMWUyYzE1NmY0ZmYyMDRhNDAyODQ5ZTZkYTQ1ZjlkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zOTgyLDYgKzM5ODIsMjAgQEAgUmVmUHRy
PFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyKCkKIHsKICAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOwog
fQorCitib29sIFdlYlBhZ2VQcm94eTo6YWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2so
KSBjb25zdAoreworICAgIHJldHVybiBtX2FsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
OworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxh
eWJhY2soYm9vbCBmbGFnKQoreworICAgIGlmIChtX2FsbG93TWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrID09IGZsYWcpCisgICAgICAgIHJldHVybjsKKyAgICBtX2FsbG93TWVkaWFEb2N1bWVu
dElubGluZVBsYXliYWNrID0gZmxhZzsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0QWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soZmxhZyksIG1fcGFn
ZUlEKTsKK30KICNlbmRpZgogCiAvLyBCYWNrRm9yd2FyZExpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiZGNlN2NkOGUyMzg2MzZkNTM4ZWU4MWNkZDBiNzJl
YjQ1YmE5MGRkLi45MzYyZjE3YzExMDZkM2JiYTk2ZTliZTE3ZGZkNWJhYWViNDY4YjM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMzMsNiArMzMzLDkgQEAg
cHVibGljOgogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk+IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKworICAgIGJv
b2wgYWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soKSBjb25zdDsKKyAgICB2b2lkIHNl
dEFsbG93TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wpOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE1NzQsNiArMTU3Nyw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dh
c0V2ZXJJbldpbmRvdzsKICNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBtX2FsbG93TWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0
Rm9yZWdyb3VuZFByaW9yaXR5OwogICAgIFByb2Nlc3NUaHJvdHRsZXI6OkZvcmVncm91bmRBY3Rp
dml0eVRva2VuIG1fYWN0aXZpdHlUb2tlbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5NjliYTI5ZGQ2ZjYxYTliMjk2YjE3
YmU0M2VkMzY5NGVkOWMyMTIuLjQ1MGFhZjY0MTA5YTMyYTNhYzI0ZWU5YWEyYTBiZDA5ODZjMGFm
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTMwMDcsNiArMzAwNywxMSBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXZWJQYWdl
Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6c2V0
QWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBmbGFnKQoreworICAgIG1fcGFn
ZS0+c2V0QWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soZmxhZyk7Cit9CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDA1ZWVkOGI3YzNjYzQyMTljMDQ1ODcxNGE2YmI5OTIz
N2Y4NDIxMDUuLjBkYzI4MWY0YTAyZmYwNDIzNWViODhjZThkNzlkNGEyNWIzOTA2MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjM2LDYgKzIz
Niw4IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisgICAgdm9pZCBzZXRBbGxvd01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sKTsKKyAgICBib29sIGFsbG93TWVkaWFEb2N1
bWVudElubGluZVBsYXliYWNrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjazsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBA
IC0xMjU4LDYgKzEyNjAsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JVST4g
bV9pbnNwZWN0b3JVSTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyAgICBib29sIG1fYWxs
b3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sgeyBmYWxzZSB9OwogI2VuZGlmCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gbV9m
dWxsU2NyZWVuTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzE2NDhlZDFhZmQ2NWZjNTI0ZjZlNDg4
MThhMjY5YWE3MGM2MjNhMS4uMjZiOTkxYmMwODE3OTcwZTMyOGY0NzYyM2I1ZmQwMGRkYThjYmY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTk1LDYgKzk1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShTdHJpbmcgY29u
dGVudFNpemVDYXRlZ29yeSkKICAgICBFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2soU3Ry
aW5nIG5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgR2V0TG9va3VwQ29udGV4dEF0UG9p
bnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgU2V0
QWxsb3dNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBmbGFnKQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257307</attachid>
            <date>2015-07-22 16:23:17 -0700</date>
            <delta_ts>2015-07-22 16:52:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147181-20150722162202.patch</filename>
            <type>text/plain</type>
            <size>16165</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiOGY0YzZmZGE4NzE4
YWIyYTZjNmY5ZjIyZTBlNjdhNjcyYWE1Ny4uNDAyZmRiZGNmYWNjMzNiMjAwOGQ3YmRkNjlkNTI5
NDM3M2EwZTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhbiBleHBs
aWNpdCBBUEkgdG8gYWxsb3cgbWVkaWEgZG9jdW1lbnRzIHRvICh0ZW1wb3JhcmlseSkgcGxheSBp
bmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsaXN0ZW5lcnMgZm9yIHRoZSBuZXcgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
IEFQSS4gV2hlbiB0aGlzIHZhbHVlIGJlY29tZXMKKyAgICAgICAgTk8sIGZvcmNlIGFueSBwbGF5
aW5nIE1lZGlhRG9jdW1lbnRzIHRvIGVudGVyIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVnaXN0ZXJG
b3JBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKTogQWRk
ZWQgcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJl
Z2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNr
cyk6IEFkZGVkIGRlcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKTogTm90aWZ5IGFs
bCBsaXN0ZW5lcnMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnJlZ2lzdGVyV2l0aERvY3VtZW50KTogTGlzdGVuIGZvciBhbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2sgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnVucmVnaXN0ZXJXaXRoRG9jdW1lbnQpOiBTdG9wIGxpc3RlbmluZyB0byBzYW1lLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrQ2hhbmdlZCk6IEVudGVyIGZ1bGxzY3JlZW4gbW9kZSBpZiB0aGUgdmFsdWUKKyAgICAg
ICAgICAgIGNoYW5nZXMgdG8gZmFsc2UgZHVyaW5nIHBsYXliYWNrLgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1bGxz
Y3JlZW5Gb3JWaWRlb1BsYXliYWNrKTogRWFybHkgdHJ1ZSBpZiB0aGUgb3ZlcnJpZGUgdmFsdWUg
aXMgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2spOiBOb3RpZnkgYWxsIGRvY3Vt
ZW50cyBvZiB0aGUgY2hhbmdlZCB2YWx1ZS4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNp
bXBsZSBnZXR0ZXIuCisKIDIwMTUtMDctMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFJvbGxvdXQgcjE4NzAyMCBhbmQgcjE4NzAyMTogYnJlYWtzIEpTQyBBUEkg
dGVzdHMgb24gZGVidWcgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIxNTExYzBmMDcyYzNiZTI1NTYx
ZWM3OGJiZTM4ZjVmYjkyN2RlYTguLjFjMmE3MzUxODM1ZGRiMGYxY2E4NTg1ZmYzMmVlMGI3N2E5
MTdiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNS0wNy0yMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgYW4gZXhwbGljaXQg
QVBJIHRvIGFsbG93IG1lZGlhIGRvY3VtZW50cyB0byAodGVtcG9yYXJpbHkpIHBsYXkgaW5saW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBX
S1dlYlZpZXcoUHJpdmF0ZSkgQVBJIHdoaWNoIGFsbG93cyBNZWRpYURvY3VtZW50cyBsb2FkZWQg
YnkgdGhlIHZpZXcgdG8gcGxheSB0aGVpciBjb250ZW50cyBpbmxpbmUsIHJlZ2FyZGxlc3MKKyAg
ICAgICAgb2Ygd2hldGhlciBpbmxpbmUgcGxheWJhY2sgaXMgcmVzdHJpY3RlZCBvbiB0aGUgY3Vy
cmVudCBkZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBs
YXliYWNrOl0pOiBBZGRlZC4gUGFzcyB0aHJvdWdoIHRvIFdlYlBhZ2VQcm94eS4KKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tdKTogRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKTogU2ltcGxlIGdldHRl
ci4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2spOiBTZXQsIGFuZCBjb25kaXRpb25hbGx5IHBhc3MgdGhlIG5ldyB2YWx1
ZSB0byBXZWJQYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNldCwgYW5kIGNv
bmRpdGlvbmFsbHkgbm90aWZ5IFdlYkNvcmUgcGFnZSBvZiB0aGUgY2hhbmdlLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNpbXBsZSBnZXR0ZXIuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZCBuZXcgbWVz
c2FnZXMuCisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRoZSBXZWJL
aXQyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTAyYmM5NTgyZWEzY2VmZmFiZjY5
YTM3NDUwY2MzOTBmYjAxY2YxOC4uZDg2MzEyYjIyMDk0ZjUyNWExMDVhMmQ0ZGIwZjlkODdlMGFk
NjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNjE0LDYgKzE2MTQsMjUgQEAgYm9v
bCBEb2N1bWVudDo6aGlkZGVuKCkgY29uc3QKICAgICByZXR1cm4gcGFnZVZpc2liaWxpdHlTdGF0
ZSgpICE9IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwogfQogCisKKyNpZiBFTkFCTEUoVklE
RU8pCit2b2lkIERvY3VtZW50OjpyZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQ
bGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzLmFkZCgmZWxlbWVu
dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQp
Cit7CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tFbGVtZW50cy5yZW1v
dmUoJmVsZW1lbnQpOworfQorCit2b2lkIERvY3VtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2tDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBtX2FsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzKQorICAgICAgICBlbGVtZW50LT5h
bGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7Cit9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShDU1BfTkVYVCkKIERPTVNlY3VyaXR5UG9saWN5JiBEb2N1bWVudDo6c2VjdXJp
dHlQb2xpY3koKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlNWMwODJmZWFkOGU4YTMwNjJj
MmQ4NWZhZDlmM2VmZGE4NmEyOGY2Li4xYjNkMzg0MTU5MDZmMzlmNjA4OTg0YjhkZjU0MzM4MDJj
M2FlZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAxNCw2ICsxMDE0LDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENhbGxiYWNrcyhF
bGVtZW50Kik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENh
bGxiYWNrcyhFbGVtZW50Kik7CiAKKyNpZiBFTkFCTEUoVklERU8pCisgICAgdm9pZCByZWdpc3Rl
ckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRN
TE1lZGlhRWxlbWVudCYpOworICAgIHZvaWQgdW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYpOworICAg
IHZvaWQgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZCgpOworI2VuZGlm
CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3VsZENyZWF0ZVJlbmRlcmVycyhib29s
KTsKICAgICBib29sIHNob3VsZENyZWF0ZVJlbmRlcmVycygpOwogCkBAIC0xNTUwLDYgKzE1NTYs
OSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBIYXNoU2V0PEVsZW1lbnQqPiBtX3Zpc2liaWxp
dHlTdGF0ZUNhbGxiYWNrRWxlbWVudHM7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhhc2hTZXQ8
SFRNTE1lZGlhRWxlbWVudCo+IG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrRWxl
bWVudHM7CisjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIEVsZW1lbnQqLCBDYXNl
Rm9sZGluZ0hhc2g+IG1fZWxlbWVudHNCeUFjY2Vzc0tleTsKICAgICBib29sIG1fYWNjZXNzS2V5
TWFwVmFsaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBk
OGQzZGNjMGYwMTc1NmU4NGQ2NTgxNTJlNDZmMDFjNjI3M2Y1MWE2Li5mNmIxYzMxNjAwOTk4ZDU1
MjY2ZThkOTBiMjAyYmZjZWIyMGM5YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTUxOCw2ICs1MTgsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJl
Z2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC5yZWdp
c3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAjZW5kaWYKIAorICAg
IGRvY3VtZW50LnJlZ2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hh
bmdlZENhbGxiYWNrcygqdGhpcyk7CisKICAgICBkb2N1bWVudC5hZGRBdWRpb1Byb2R1Y2VyKHRo
aXMpOwogICAgIGFkZEVsZW1lbnRUb0RvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC01NTAsNiArNTUyLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aERv
Y3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC51bnJlZ2lzdGVyRm9yUGFn
ZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICNlbmRpZgogCisgICAgZG9jdW1lbnQu
dW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxs
YmFja3MoKnRoaXMpOworCiAgICAgZG9jdW1lbnQucmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsK
ICAgICByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC0zODgyLDcgKzM4ODYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxheW91dFNpemVDaGFu
Z2VkKCkKICAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayh0YXNrKTsKICNlbmRpZgog
fQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFRyYWNrKFRl
eHRUcmFjayogdHJhY2tUb1NlbGVjdCkKIHsKICAgICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3Qg
PSB0ZXh0VHJhY2tzKCk7CkBAIC02NTIzLDYgKzY1MjcsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRTZXNzaW9uSW50ZXJuYWwoTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogCiAjZW5kaWYK
IAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2tDaGFuZ2VkKCkKK3sKKyAgICBpZiAocG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9tZWRpYVNl
c3Npb24tPnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKnRoaXMpICYmICFpc0Z1
bGxzY3JlZW4oKSkKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuKCk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGM0NmE2MWFiODM3NjZk
OTRlNmE1MjFjZTdjZTM2YzU2MGJkNzVjYzAuLmNlNTQyMTE2NWI4ZjJiMzNjNGRjYjgxMDM4YTAw
NmNiZWYxNTZhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00
NDgsNiArNDQ4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwog
CisgICAgdm9pZCBhbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7CisK
IHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYsIGJvb2wpOwogICAgIHZpcnR1YWwgfkhUTUxNZWRpYUVsZW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDQ0NjYyODM5YTE0
N2QzNzA4ZDgyYjIwNTAzYTMyNTMxMzY1OTI4NWQuLjVkYmU4NTcyYmJmZjg0MWQ0ZmMxYTRlMzcx
ZTViNjRkM2QwMmFlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtMzQ3LDYgKzM0NywxMCBAQCBNZWRpYVBsYXllcjo6UHJlbG9hZCBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjplZmZlY3RpdmVQcmVsb2FkRm9yRWxlbWVudChjb25zdCBIVE1MTQogCiBi
b29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJh
Y2soY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKKyAgICBQYWdlKiBw
YWdlID0gZWxlbWVudC5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVu
dCgpLmlzTWVkaWFEb2N1bWVudCgpICYmICFlbGVtZW50LmRvY3VtZW50KCkub3duZXJFbGVtZW50
KCkgJiYgcGFnZSAmJiBwYWdlLT5hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFj
aygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
ODFiOTA5YmZmMmZmMWIzYmU3NGM2M2U0ZDM2NDhiYTA4ODU4NTM2Yi4uMTYwNjM5MGMxYjAzMWMz
M2M3ZTBkMzU0NTkwZWE5ZDUzMjIzYWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNzM2LDQg
KzE3MzYsMjAgQEAgV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dl
cigpCiAgICAgcmV0dXJuICptX3Rlc3RUcmlnZ2VyOwogfQogCisjaWYgRU5BQkxFKFZJREVPKQor
dm9pZCBQYWdlOjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBmbGFn
KQoreworICAgIGlmIChtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayA9PSBmbGFn
KQorICAgICAgICByZXR1cm47CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2sgPSBmbGFnOworCisgICAgVmVjdG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50czsKKyAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBkb2N1bWVudHMuYXBwZW5kKCpmcmFt
ZS0+ZG9jdW1lbnQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogZG9jdW1lbnRzKQor
ICAgICAgICBkb2N1bWVudC0+YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdl
ZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOGJhNjM5ZDk0MDMxYjg4MWFkNzUyY2NkNWM3ZWYxMWZiYjY3NWI5Ni4uYWNkMzdiMjVhOGU0
YTdmYjU4NWUwMGRhNzU3MTAzZWEwOGQxY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ2MCw2ICs0
NjAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJUcmlnZ2VyKCkgeyBtX3Rlc3RUcmlnZ2Vy
ID0gbnVsbHB0cjsgfQogICAgIGJvb2wgZXhwZWN0c1doZWVsRXZlbnRUcmlnZ2VycygpIGNvbnN0
IHsgcmV0dXJuICEhbV90ZXN0VHJpZ2dlcjsgfQogCisjaWYgRU5BQkxFKFZJREVPKQorICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7IH0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhi
b29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdy
b3VwKCk7CiAKQEAgLTYxOSw2ICs2MjQsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmcgfTsKICAgICAKICAgICBib29sIG1fdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCB7IHRy
dWUgfTsKKyAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrIHsgZmFs
c2UgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNmRmNjkzNWUy
ODRjMmFkOWVjNTcxZjVhNmNiZmQ3M2ExNThkMjIwYi4uNzYwZmY5NGY0ZmVmMTZiZDRiNzg5MDRi
Mjg2NTI5NGZjZTgzYWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1OTgsNiArMjU5OCwxNiBAQCBzdGF0aWMgaW5saW5lIFdl
YktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRp
b25zKQogICAgIF9wYWdlLT5wcmVmZXJlbmNlcygpLnNldFJlcXVpcmVzVXNlckdlc3R1cmVGb3JN
ZWRpYVBsYXliYWNrKGZsYWcpOwogfQogCistIChCT09MKV9hbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2sKK3sKKyAgICByZXR1cm4gX3BhZ2UtPmFsbG93c01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFjaygpOworfQorCistICh2b2lkKV9zZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5l
UGxheWJhY2s6KEJPT0wpZmxhZworeworICAgIF9wYWdlLT5zZXRBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2soZmxhZyk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3BlY2lmaWMgbWV0
aG9kcwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhMzQ2ODVlNzcyNGU4ODA0
MzhhMTM4ZmVkMDk5NzhjZmM1ZjM4NTEwLi40ZTdkZGVkM2I5ZWEzNjNmZTQxOWQxZWE2NmRjYjEw
MjU4ZGUxNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjEyLDYgKzIxMiw3IEBAIFdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNLZXkgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X21lZGlhRGF0YUxvYWRz
QXV0b21hdGljYWxseSwgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBC
T09MIF9tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Z2V0dGVyPV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrLCBzZXR0ZXI9X3NldFJl
cXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rp
b25Gb3JNZWRpYVBsYXliYWNrOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1fYWxsb3dz
TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrLCBzZXR0ZXI9X3NldEFsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFjazopIEJPT0wgX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFj
azsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGZiZjJkOTRmMjFjN2RjOTRmYWZhMDdjNDFhMDU2NjcxNjE5OTJiOGMuLjUxMGQwYTM0MDE2
NTU4YmI3NTU5NzQzMTE5OGY5NGQyNWExNjY1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zOTgyLDYgKzM5ODIsMjAgQEAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKCkKIHsKICAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOwogfQorCitib29s
IFdlYlBhZ2VQcm94eTo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7Cit9CisK
K3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2so
Ym9vbCBmbGFnKQoreworICAgIGlmIChtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFj
ayA9PSBmbGFnKQorICAgICAgICByZXR1cm47CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2sgPSBmbGFnOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soZmxhZyksIG1fcGFnZUlE
KTsKK30KICNlbmRpZgogCiAvLyBCYWNrRm9yd2FyZExpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBiZGNlN2NkOGUyMzg2MzZkNTM4ZWU4MWNkZDBiNzJlYjQ1
YmE5MGRkLi45ZmY0ZmM3NGFkMmJiNmZkOGZjNGJiNDhjOTliZTA3ZjNjNzBkMzRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMzMsNiArMzMzLDkgQEAgcHVi
bGljOgogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk+IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKworICAgIGJvb2wg
YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkgY29uc3Q7CisgICAgdm9pZCBzZXRB
bGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQpAQCAtMTU3NCw2ICsxNTc3LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogICAgIGJvb2wgbV92aWV3V2Fz
RXZlckluV2luZG93OwogI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1fYWxsb3dzTWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0
Rm9yZWdyb3VuZFByaW9yaXR5OwogICAgIFByb2Nlc3NUaHJvdHRsZXI6OkZvcmVncm91bmRBY3Rp
dml0eVRva2VuIG1fYWN0aXZpdHlUb2tlbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5NjliYTI5ZGQ2ZjYxYTliMjk2YjE3
YmU0M2VkMzY5NGVkOWMyMTIuLjA0NTIwOWViMTU2MTI4Y2NmYTBkNDM2NDE2OTA1YWQ4NjU4ODIw
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTMwMDcsNiArMzAwNywxMSBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXZWJQYWdl
Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6c2V0
QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wgZmxhZykKK3sKKyAgICBtX3Bh
Z2UtPnNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhmbGFnKTsKK30KICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDVlZWQ4YjdjM2NjNDIxOWMwNDU4NzE0YTZiYjk5
MjM3Zjg0MjEwNS4uN2U5MTg1MWUwYTgwNDc1ZWZkOGIwYjM0NGFhOGNkYzE1MThkZWYwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzYsNiAr
MjM2LDggQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIqIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKyAgICB2b2lkIHNldEFsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sKTsKKyAgICBib29sIGFsbG93c01lZGlh
RG9jdW1lbnRJbmxpbmVQbGF5YmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzTWVkaWFEb2N1
bWVudElubGluZVBsYXliYWNrOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKQEAgLTEyNTgsNiArMTI2MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkluc3BlY3Rv
clVJPiBtX2luc3BlY3RvclVJOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcj4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOworICAgIGJvb2wg
bV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sgeyBmYWxzZSB9OwogI2VuZGlmCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdl
cj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzE2NDhlZDFhZmQ2NWZjNTI0
ZjZlNDg4MThhMjY5YWE3MGM2MjNhMS4uMzE1ZDBiMzg2NWIyOTdhYWQ4YWVmODkyMjc0YzhmMjdm
MzY1YzRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTk1LDYgKzk1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShTdHJp
bmcgY29udGVudFNpemVDYXRlZ29yeSkKICAgICBFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJh
Y2soU3RyaW5nIG5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgR2V0TG9va3VwQ29udGV4
dEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisg
ICAgU2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wgZmxhZykKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257308</attachid>
            <date>2015-07-22 16:52:58 -0700</date>
            <delta_ts>2015-07-23 12:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147181-20150722165143.patch</filename>
            <type>text/plain</type>
            <size>16083</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiOGY0YzZmZGE4NzE4
YWIyYTZjNmY5ZjIyZTBlNjdhNjcyYWE1Ny4uNDAyZmRiZGNmYWNjMzNiMjAwOGQ3YmRkNjlkNTI5
NDM3M2EwZTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhbiBleHBs
aWNpdCBBUEkgdG8gYWxsb3cgbWVkaWEgZG9jdW1lbnRzIHRvICh0ZW1wb3JhcmlseSkgcGxheSBp
bmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsaXN0ZW5lcnMgZm9yIHRoZSBuZXcgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
IEFQSS4gV2hlbiB0aGlzIHZhbHVlIGJlY29tZXMKKyAgICAgICAgTk8sIGZvcmNlIGFueSBwbGF5
aW5nIE1lZGlhRG9jdW1lbnRzIHRvIGVudGVyIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVnaXN0ZXJG
b3JBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKTogQWRk
ZWQgcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJl
Z2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNr
cyk6IEFkZGVkIGRlcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKTogTm90aWZ5IGFs
bCBsaXN0ZW5lcnMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnJlZ2lzdGVyV2l0aERvY3VtZW50KTogTGlzdGVuIGZvciBhbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2sgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnVucmVnaXN0ZXJXaXRoRG9jdW1lbnQpOiBTdG9wIGxpc3RlbmluZyB0byBzYW1lLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrQ2hhbmdlZCk6IEVudGVyIGZ1bGxzY3JlZW4gbW9kZSBpZiB0aGUgdmFsdWUKKyAgICAg
ICAgICAgIGNoYW5nZXMgdG8gZmFsc2UgZHVyaW5nIHBsYXliYWNrLgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1bGxz
Y3JlZW5Gb3JWaWRlb1BsYXliYWNrKTogRWFybHkgdHJ1ZSBpZiB0aGUgb3ZlcnJpZGUgdmFsdWUg
aXMgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2spOiBOb3RpZnkgYWxsIGRvY3Vt
ZW50cyBvZiB0aGUgY2hhbmdlZCB2YWx1ZS4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNp
bXBsZSBnZXR0ZXIuCisKIDIwMTUtMDctMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFJvbGxvdXQgcjE4NzAyMCBhbmQgcjE4NzAyMTogYnJlYWtzIEpTQyBBUEkg
dGVzdHMgb24gZGVidWcgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIxNTExYzBmMDcyYzNiZTI1NTYx
ZWM3OGJiZTM4ZjVmYjkyN2RlYTguLjFjMmE3MzUxODM1ZGRiMGYxY2E4NTg1ZmYzMmVlMGI3N2E5
MTdiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNS0wNy0yMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgYW4gZXhwbGljaXQg
QVBJIHRvIGFsbG93IG1lZGlhIGRvY3VtZW50cyB0byAodGVtcG9yYXJpbHkpIHBsYXkgaW5saW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBX
S1dlYlZpZXcoUHJpdmF0ZSkgQVBJIHdoaWNoIGFsbG93cyBNZWRpYURvY3VtZW50cyBsb2FkZWQg
YnkgdGhlIHZpZXcgdG8gcGxheSB0aGVpciBjb250ZW50cyBpbmxpbmUsIHJlZ2FyZGxlc3MKKyAg
ICAgICAgb2Ygd2hldGhlciBpbmxpbmUgcGxheWJhY2sgaXMgcmVzdHJpY3RlZCBvbiB0aGUgY3Vy
cmVudCBkZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBs
YXliYWNrOl0pOiBBZGRlZC4gUGFzcyB0aHJvdWdoIHRvIFdlYlBhZ2VQcm94eS4KKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tdKTogRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKTogU2ltcGxlIGdldHRl
ci4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2spOiBTZXQsIGFuZCBjb25kaXRpb25hbGx5IHBhc3MgdGhlIG5ldyB2YWx1
ZSB0byBXZWJQYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNldCwgYW5kIGNv
bmRpdGlvbmFsbHkgbm90aWZ5IFdlYkNvcmUgcGFnZSBvZiB0aGUgY2hhbmdlLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNpbXBsZSBnZXR0ZXIuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZCBuZXcgbWVz
c2FnZXMuCisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRoZSBXZWJL
aXQyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTAyYmM5NTgyZWEzY2VmZmFiZjY5
YTM3NDUwY2MzOTBmYjAxY2YxOC4uZDg2MzEyYjIyMDk0ZjUyNWExMDVhMmQ0ZGIwZjlkODdlMGFk
NjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNjE0LDYgKzE2MTQsMjUgQEAgYm9v
bCBEb2N1bWVudDo6aGlkZGVuKCkgY29uc3QKICAgICByZXR1cm4gcGFnZVZpc2liaWxpdHlTdGF0
ZSgpICE9IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwogfQogCisKKyNpZiBFTkFCTEUoVklE
RU8pCit2b2lkIERvY3VtZW50OjpyZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQ
bGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzLmFkZCgmZWxlbWVu
dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQp
Cit7CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tFbGVtZW50cy5yZW1v
dmUoJmVsZW1lbnQpOworfQorCit2b2lkIERvY3VtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2tDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBtX2FsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzKQorICAgICAgICBlbGVtZW50LT5h
bGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7Cit9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShDU1BfTkVYVCkKIERPTVNlY3VyaXR5UG9saWN5JiBEb2N1bWVudDo6c2VjdXJp
dHlQb2xpY3koKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlNWMwODJmZWFkOGU4YTMwNjJj
MmQ4NWZhZDlmM2VmZGE4NmEyOGY2Li4xYjNkMzg0MTU5MDZmMzlmNjA4OTg0YjhkZjU0MzM4MDJj
M2FlZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAxNCw2ICsxMDE0LDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENhbGxiYWNrcyhF
bGVtZW50Kik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENh
bGxiYWNrcyhFbGVtZW50Kik7CiAKKyNpZiBFTkFCTEUoVklERU8pCisgICAgdm9pZCByZWdpc3Rl
ckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRN
TE1lZGlhRWxlbWVudCYpOworICAgIHZvaWQgdW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYpOworICAg
IHZvaWQgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZCgpOworI2VuZGlm
CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3VsZENyZWF0ZVJlbmRlcmVycyhib29s
KTsKICAgICBib29sIHNob3VsZENyZWF0ZVJlbmRlcmVycygpOwogCkBAIC0xNTUwLDYgKzE1NTYs
OSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBIYXNoU2V0PEVsZW1lbnQqPiBtX3Zpc2liaWxp
dHlTdGF0ZUNhbGxiYWNrRWxlbWVudHM7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhhc2hTZXQ8
SFRNTE1lZGlhRWxlbWVudCo+IG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrRWxl
bWVudHM7CisjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIEVsZW1lbnQqLCBDYXNl
Rm9sZGluZ0hhc2g+IG1fZWxlbWVudHNCeUFjY2Vzc0tleTsKICAgICBib29sIG1fYWNjZXNzS2V5
TWFwVmFsaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBk
OGQzZGNjMGYwMTc1NmU4NGQ2NTgxNTJlNDZmMDFjNjI3M2Y1MWE2Li5mNmIxYzMxNjAwOTk4ZDU1
MjY2ZThkOTBiMjAyYmZjZWIyMGM5YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTUxOCw2ICs1MTgsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJl
Z2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC5yZWdp
c3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAjZW5kaWYKIAorICAg
IGRvY3VtZW50LnJlZ2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hh
bmdlZENhbGxiYWNrcygqdGhpcyk7CisKICAgICBkb2N1bWVudC5hZGRBdWRpb1Byb2R1Y2VyKHRo
aXMpOwogICAgIGFkZEVsZW1lbnRUb0RvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC01NTAsNiArNTUyLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aERv
Y3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC51bnJlZ2lzdGVyRm9yUGFn
ZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICNlbmRpZgogCisgICAgZG9jdW1lbnQu
dW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxs
YmFja3MoKnRoaXMpOworCiAgICAgZG9jdW1lbnQucmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsK
ICAgICByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC0zODgyLDcgKzM4ODYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxheW91dFNpemVDaGFu
Z2VkKCkKICAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayh0YXNrKTsKICNlbmRpZgog
fQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFRyYWNrKFRl
eHRUcmFjayogdHJhY2tUb1NlbGVjdCkKIHsKICAgICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3Qg
PSB0ZXh0VHJhY2tzKCk7CkBAIC02NTIzLDYgKzY1MjcsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRTZXNzaW9uSW50ZXJuYWwoTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogCiAjZW5kaWYK
IAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2tDaGFuZ2VkKCkKK3sKKyAgICBpZiAocG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9tZWRpYVNl
c3Npb24tPnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKnRoaXMpICYmICFpc0Z1
bGxzY3JlZW4oKSkKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuKCk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGM0NmE2MWFiODM3NjZk
OTRlNmE1MjFjZTdjZTM2YzU2MGJkNzVjYzAuLmNlNTQyMTE2NWI4ZjJiMzNjNGRjYjgxMDM4YTAw
NmNiZWYxNTZhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00
NDgsNiArNDQ4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwog
CisgICAgdm9pZCBhbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7CisK
IHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYsIGJvb2wpOwogICAgIHZpcnR1YWwgfkhUTUxNZWRpYUVsZW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDRhOTY5NDQ1YjQw
ZWMwYTlkMWJhMWUxZGQxMzcwNWY4MTY5NWE1ZDMuLmI3ZTU5NzI5ZTVlMTNkNzBmM2ZmMTE4NDJm
OThjZGFhZmMzZGVjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtMzQ0LDYgKzM0NCwxMCBAQCBNZWRpYVBsYXllcjo6UHJlbG9hZCBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjplZmZlY3RpdmVQcmVsb2FkRm9yRWxlbWVudChjb25zdCBIVE1MTQogCiBi
b29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJh
Y2soY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKKyAgICBQYWdlKiBw
YWdlID0gZWxlbWVudC5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVu
dCgpLmlzTWVkaWFEb2N1bWVudCgpICYmICFlbGVtZW50LmRvY3VtZW50KCkub3duZXJFbGVtZW50
KCkgJiYgcGFnZSAmJiBwYWdlLT5hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFj
aygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
ODFiOTA5YmZmMmZmMWIzYmU3NGM2M2U0ZDM2NDhiYTA4ODU4NTM2Yi4uMTYwNjM5MGMxYjAzMWMz
M2M3ZTBkMzU0NTkwZWE5ZDUzMjIzYWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNzM2LDQg
KzE3MzYsMjAgQEAgV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dl
cigpCiAgICAgcmV0dXJuICptX3Rlc3RUcmlnZ2VyOwogfQogCisjaWYgRU5BQkxFKFZJREVPKQor
dm9pZCBQYWdlOjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBmbGFn
KQoreworICAgIGlmIChtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayA9PSBmbGFn
KQorICAgICAgICByZXR1cm47CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2sgPSBmbGFnOworCisgICAgVmVjdG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50czsKKyAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBkb2N1bWVudHMuYXBwZW5kKCpmcmFt
ZS0+ZG9jdW1lbnQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogZG9jdW1lbnRzKQor
ICAgICAgICBkb2N1bWVudC0+YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdl
ZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOGJhNjM5ZDk0MDMxYjg4MWFkNzUyY2NkNWM3ZWYxMWZiYjY3NWI5Ni4uYWNkMzdiMjVhOGU0
YTdmYjU4NWUwMGRhNzU3MTAzZWEwOGQxY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ2MCw2ICs0
NjAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJUcmlnZ2VyKCkgeyBtX3Rlc3RUcmlnZ2Vy
ID0gbnVsbHB0cjsgfQogICAgIGJvb2wgZXhwZWN0c1doZWVsRXZlbnRUcmlnZ2VycygpIGNvbnN0
IHsgcmV0dXJuICEhbV90ZXN0VHJpZ2dlcjsgfQogCisjaWYgRU5BQkxFKFZJREVPKQorICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7IH0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhi
b29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdy
b3VwKCk7CiAKQEAgLTYxOSw2ICs2MjQsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmcgfTsKICAgICAKICAgICBib29sIG1fdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCB7IHRy
dWUgfTsKKyAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrIHsgZmFs
c2UgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggY2UwMWJkMzhj
MDZhMGMxMzE3ODIyN2UyNjUzMDQxYjYzY2FlMTE4NC4uMDY0Y2ZmYmU2MmNhZDE2NThkY2YzMzVk
NzdkOTNkYjk2YThjMmU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1NjksNiArMjU2OSwxOCBAQCBzdGF0aWMgaW5saW5lIFdl
YktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRp
b25zKQogICAgIHJldHVybiBuaWw7CiB9CiAKKyNwcmFnbWEgbWFyayBtZWRpYSBwbGF5YmFjayBy
ZXN0cmljdGlvbnMKKworLSAoQk9PTClfYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
Cit7CisgICAgcmV0dXJuIF9wYWdlLT5hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2so
KTsKK30KKworLSAodm9pZClfc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOihC
T09MKWZsYWcKK3sKKyAgICBfcGFnZS0+c2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXli
YWNrKGZsYWcpOworfQorCiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNpZmljIG1ldGhvZHMKIAogI2lm
IFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYWYxZjE5NzRlMGUxNGI2OWQxMTVjMWU3NThl
MTg5ZmFiNjk4Nzc1YS4uN2EwMmI2N2U2OGQxZTExYWIwZWQwNTQwZjA3OGQ1MTBkYTkyMzRhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTIwOCw2ICsyMDgsOSBAQCBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tTaG91bGRPcGVuRXh0ZXJuYWxVUkxzS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAogLSAodm9pZClf
c2F2ZUJhY2tGb3J3YXJkU25hcHNob3RGb3JJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilp
dGVtIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKworQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrLCBzZXR0
ZXI9X3NldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazopIEJPT0wgX2FsbG93c01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazsKKwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZmJmMmQ5NGYyMWM3ZGM5NGZhZmEw
N2M0MWEwNTY2NzE2MTk5MmI4Yy4uNTEwZDBhMzQwMTY1NThiYjc1NTk3NDMxMTk4Zjk0ZDI1YTE2
NjUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5
ODIsNiArMzk4MiwyMCBAQCBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBX
ZWJQYWdlUHJveHk6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQogewogICAgIHJldHVybiBtX3Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiB9CisKK2Jvb2wgV2ViUGFnZVByb3h5OjphbGxvd3NNZWRp
YURvY3VtZW50SW5saW5lUGxheWJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2FsbG93c01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldEFs
bG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sIGZsYWcpCit7CisgICAgaWYgKG1f
YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrID09IGZsYWcpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayA9IGZsYWc7CisKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEFsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFjayhmbGFnKSwgbV9wYWdlSUQpOworfQogI2VuZGlmCiAKIC8vIEJhY2tG
b3J3YXJkTGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJk
Y2U3Y2Q4ZTIzODYzNmQ1MzhlZTgxY2RkMGI3MmViNDViYTkwZGQuLjlmZjRmYzc0YWQyYmI2ZmQ4
ZmM0YmI0OGM5OWJlMDdmM2M3MGQzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTMzMyw2ICszMzMsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gdmlkZW9G
dWxsc2NyZWVuTWFuYWdlcigpOworCisgICAgYm9vbCBhbGxvd3NNZWRpYURvY3VtZW50SW5saW5l
UGxheWJhY2soKSBjb25zdDsKKyAgICB2b2lkIHNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQ
bGF5YmFjayhib29sKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0x
NTc0LDYgKzE1NzcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3Mg
bV92aWV3U3RhdGU7CiAgICAgYm9vbCBtX3ZpZXdXYXNFdmVySW5XaW5kb3c7CiAjaWYgUExBVEZP
Uk0oSU9TKQorICAgIGJvb2wgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk7CiAgICAg
UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4gbV9hY3Rpdml0eVRva2Vu
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNzk2OWJhMjlkZDZmNjFhOWIyOTZiMTdiZTQzZWQzNjk0ZWQ5YzIxMi4uMDQ1MjA5
ZWIxNTYxMjhjY2ZhMGQ0MzY0MTY5MDVhZDg2NTg4MjA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzAwNyw2ICszMDA3LDExIEBAIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpjcmVhdGUodGhpcyk7CiAgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5nZXQoKTsKIH0KKwordm9pZCBXZWJQYWdlOjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5l
UGxheWJhY2soYm9vbCBmbGFnKQoreworICAgIG1fcGFnZS0+c2V0QWxsb3dzTWVkaWFEb2N1bWVu
dElubGluZVBsYXliYWNrKGZsYWcpOworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAwNWVlZDhiN2MzY2M0MjE5YzA0NTg3MTRhNmJiOTkyMzdmODQyMTA1Li43ZTkxODUxZTBhODA0
NzVlZmQ4YjBiMzQ0YWE4Y2RjMTUxOGRlZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIzNiw2ICsyMzYsOCBAQCBwdWJsaWM6CiAKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciogdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcigpOworICAgIHZvaWQgc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXli
YWNrKGJvb2wpOworICAgIGJvb2wgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7IH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtMTI1OCw2ICsxMjYwLDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yVUk+IG1faW5zcGVjdG9yVUk7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBtX3Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI7CisgICAgYm9vbCBtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFjayB7IGZhbHNlIH07CiAjZW5kaWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCAzMTY0OGVkMWFmZDY1ZmM1MjRmNmU0ODgxOGEyNjlhYTcwYzYyM2ExLi4z
MTVkMGIzODY1YjI5N2FhZDhhZWY4OTIyNzRjOGYyN2YzNjVjNGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
OTUsNiArOTUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBD
b250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKFN0cmluZyBjb250ZW50U2l6ZUNhdGVnb3J5KQog
ICAgIEV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhTdHJpbmcgbmFtZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKICAgICBHZXRMb29rdXBDb250ZXh0QXRQb2ludChXZWJDb3JlOjpJbnRQb2lu
dCBwb2ludCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBTZXRBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2soYm9vbCBmbGFnKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lO
U1BFQ1RPUikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257363</attachid>
            <date>2015-07-23 12:35:37 -0700</date>
            <delta_ts>2015-07-23 14:04:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147181-20150723123422.patch</filename>
            <type>text/plain</type>
            <size>16160</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiOGY0YzZmZGE4NzE4
YWIyYTZjNmY5ZjIyZTBlNjdhNjcyYWE1Ny4uNDAyZmRiZGNmYWNjMzNiMjAwOGQ3YmRkNjlkNTI5
NDM3M2EwZTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBhbiBleHBs
aWNpdCBBUEkgdG8gYWxsb3cgbWVkaWEgZG9jdW1lbnRzIHRvICh0ZW1wb3JhcmlseSkgcGxheSBp
bmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsaXN0ZW5lcnMgZm9yIHRoZSBuZXcgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
IEFQSS4gV2hlbiB0aGlzIHZhbHVlIGJlY29tZXMKKyAgICAgICAgTk8sIGZvcmNlIGFueSBwbGF5
aW5nIE1lZGlhRG9jdW1lbnRzIHRvIGVudGVyIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVnaXN0ZXJG
b3JBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKTogQWRk
ZWQgcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJl
Z2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZENhbGxiYWNr
cyk6IEFkZGVkIGRlcmVnaXN0cmF0aW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKTogTm90aWZ5IGFs
bCBsaXN0ZW5lcnMuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnJlZ2lzdGVyV2l0aERvY3VtZW50KTogTGlzdGVuIGZvciBhbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2sgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnVucmVnaXN0ZXJXaXRoRG9jdW1lbnQpOiBTdG9wIGxpc3RlbmluZyB0byBzYW1lLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrQ2hhbmdlZCk6IEVudGVyIGZ1bGxzY3JlZW4gbW9kZSBpZiB0aGUgdmFsdWUKKyAgICAg
ICAgICAgIGNoYW5nZXMgdG8gZmFsc2UgZHVyaW5nIHBsYXliYWNrLgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1bGxz
Y3JlZW5Gb3JWaWRlb1BsYXliYWNrKTogRWFybHkgdHJ1ZSBpZiB0aGUgb3ZlcnJpZGUgdmFsdWUg
aXMgc2V0LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2spOiBOb3RpZnkgYWxsIGRvY3Vt
ZW50cyBvZiB0aGUgY2hhbmdlZCB2YWx1ZS4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNp
bXBsZSBnZXR0ZXIuCisKIDIwMTUtMDctMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFJvbGxvdXQgcjE4NzAyMCBhbmQgcjE4NzAyMTogYnJlYWtzIEpTQyBBUEkg
dGVzdHMgb24gZGVidWcgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDIxNTExYzBmMDcyYzNiZTI1NTYx
ZWM3OGJiZTM4ZjVmYjkyN2RlYTguLjFjMmE3MzUxODM1ZGRiMGYxY2E4NTg1ZmYzMmVlMGI3N2E5
MTdiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNS0wNy0yMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgYW4gZXhwbGljaXQg
QVBJIHRvIGFsbG93IG1lZGlhIGRvY3VtZW50cyB0byAodGVtcG9yYXJpbHkpIHBsYXkgaW5saW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcxODEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBX
S1dlYlZpZXcoUHJpdmF0ZSkgQVBJIHdoaWNoIGFsbG93cyBNZWRpYURvY3VtZW50cyBsb2FkZWQg
YnkgdGhlIHZpZXcgdG8gcGxheSB0aGVpciBjb250ZW50cyBpbmxpbmUsIHJlZ2FyZGxlc3MKKyAg
ICAgICAgb2Ygd2hldGhlciBpbmxpbmUgcGxheWJhY2sgaXMgcmVzdHJpY3RlZCBvbiB0aGUgY3Vy
cmVudCBkZXZpY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBs
YXliYWNrOl0pOiBBZGRlZC4gUGFzcyB0aHJvdWdoIHRvIFdlYlBhZ2VQcm94eS4KKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tdKTogRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKTogU2ltcGxlIGdldHRl
ci4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2spOiBTZXQsIGFuZCBjb25kaXRpb25hbGx5IHBhc3MgdGhlIG5ldyB2YWx1
ZSB0byBXZWJQYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNldCwgYW5kIGNv
bmRpdGlvbmFsbHkgbm90aWZ5IFdlYkNvcmUgcGFnZSBvZiB0aGUgY2hhbmdlLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayk6IFNpbXBsZSBnZXR0ZXIuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZCBuZXcgbWVz
c2FnZXMuCisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRoZSBXZWJL
aXQyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTAyYmM5NTgyZWEzY2VmZmFiZjY5
YTM3NDUwY2MzOTBmYjAxY2YxOC4uZDg2MzEyYjIyMDk0ZjUyNWExMDVhMmQ0ZGIwZjlkODdlMGFk
NjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNjE0LDYgKzE2MTQsMjUgQEAgYm9v
bCBEb2N1bWVudDo6aGlkZGVuKCkgY29uc3QKICAgICByZXR1cm4gcGFnZVZpc2liaWxpdHlTdGF0
ZSgpICE9IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwogfQogCisKKyNpZiBFTkFCTEUoVklE
RU8pCit2b2lkIERvY3VtZW50OjpyZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQ
bGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzLmFkZCgmZWxlbWVu
dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JBbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2tDaGFuZ2VkQ2FsbGJhY2tzKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQp
Cit7CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tFbGVtZW50cy5yZW1v
dmUoJmVsZW1lbnQpOworfQorCit2b2lkIERvY3VtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5s
aW5lUGxheWJhY2tDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBtX2FsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0VsZW1lbnRzKQorICAgICAgICBlbGVtZW50LT5h
bGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7Cit9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShDU1BfTkVYVCkKIERPTVNlY3VyaXR5UG9saWN5JiBEb2N1bWVudDo6c2VjdXJp
dHlQb2xpY3koKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlNWMwODJmZWFkOGU4YTMwNjJj
MmQ4NWZhZDlmM2VmZGE4NmEyOGY2Li4xYjNkMzg0MTU5MDZmMzlmNjA4OTg0YjhkZjU0MzM4MDJj
M2FlZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAxNCw2ICsxMDE0LDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENhbGxiYWNrcyhF
bGVtZW50Kik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yVmlzaWJpbGl0eVN0YXRlQ2hhbmdlZENh
bGxiYWNrcyhFbGVtZW50Kik7CiAKKyNpZiBFTkFCTEUoVklERU8pCisgICAgdm9pZCByZWdpc3Rl
ckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRN
TE1lZGlhRWxlbWVudCYpOworICAgIHZvaWQgdW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxsYmFja3MoSFRNTE1lZGlhRWxlbWVudCYpOworICAg
IHZvaWQgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdlZCgpOworI2VuZGlm
CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3VsZENyZWF0ZVJlbmRlcmVycyhib29s
KTsKICAgICBib29sIHNob3VsZENyZWF0ZVJlbmRlcmVycygpOwogCkBAIC0xNTUwLDYgKzE1NTYs
OSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBIYXNoU2V0PEVsZW1lbnQqPiBtX3Zpc2liaWxp
dHlTdGF0ZUNhbGxiYWNrRWxlbWVudHM7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhhc2hTZXQ8
SFRNTE1lZGlhRWxlbWVudCo+IG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrRWxl
bWVudHM7CisjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIEVsZW1lbnQqLCBDYXNl
Rm9sZGluZ0hhc2g+IG1fZWxlbWVudHNCeUFjY2Vzc0tleTsKICAgICBib29sIG1fYWNjZXNzS2V5
TWFwVmFsaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBk
OGQzZGNjMGYwMTc1NmU4NGQ2NTgxNTJlNDZmMDFjNjI3M2Y1MWE2Li5mNmIxYzMxNjAwOTk4ZDU1
MjY2ZThkOTBiMjAyYmZjZWIyMGM5YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTUxOCw2ICs1MTgsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJl
Z2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC5yZWdp
c3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAjZW5kaWYKIAorICAg
IGRvY3VtZW50LnJlZ2lzdGVyRm9yQWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hh
bmdlZENhbGxiYWNrcygqdGhpcyk7CisKICAgICBkb2N1bWVudC5hZGRBdWRpb1Byb2R1Y2VyKHRo
aXMpOwogICAgIGFkZEVsZW1lbnRUb0RvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC01NTAsNiArNTUyLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aERv
Y3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBkb2N1bWVudC51bnJlZ2lzdGVyRm9yUGFn
ZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICNlbmRpZgogCisgICAgZG9jdW1lbnQu
dW5yZWdpc3RlckZvckFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFja0NoYW5nZWRDYWxs
YmFja3MoKnRoaXMpOworCiAgICAgZG9jdW1lbnQucmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsK
ICAgICByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50TWFwKCp0aGlzLCBkb2N1bWVudCk7CiB9CkBA
IC0zODgyLDcgKzM4ODYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxheW91dFNpemVDaGFu
Z2VkKCkKICAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayh0YXNrKTsKICNlbmRpZgog
fQotICAgIAorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFRyYWNrKFRl
eHRUcmFjayogdHJhY2tUb1NlbGVjdCkKIHsKICAgICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3Qg
PSB0ZXh0VHJhY2tzKCk7CkBAIC02NTIzLDYgKzY1MjcsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRTZXNzaW9uSW50ZXJuYWwoTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogCiAjZW5kaWYK
IAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2tDaGFuZ2VkKCkKK3sKKyAgICBpZiAocG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9tZWRpYVNl
c3Npb24tPnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKnRoaXMpICYmICFpc0Z1
bGxzY3JlZW4oKSkKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuKCk7Cit9CisKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGM0NmE2MWFiODM3NjZk
OTRlNmE1MjFjZTdjZTM2YzU2MGJkNzVjYzAuLmNlNTQyMTE2NWI4ZjJiMzNjNGRjYjgxMDM4YTAw
NmNiZWYxNTZhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00
NDgsNiArNDQ4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsYXlvdXRTaXplQ2hhbmdlZCgpOwog
CisgICAgdm9pZCBhbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tDaGFuZ2VkKCk7CisK
IHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYsIGJvb2wpOwogICAgIHZpcnR1YWwgfkhUTUxNZWRpYUVsZW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDRhOTY5NDQ1YjQw
ZWMwYTlkMWJhMWUxZGQxMzcwNWY4MTY5NWE1ZDMuLmI3ZTU5NzI5ZTVlMTNkNzBmM2ZmMTE4NDJm
OThjZGFhZmMzZGVjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtMzQ0LDYgKzM0NCwxMCBAQCBNZWRpYVBsYXllcjo6UHJlbG9hZCBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjplZmZlY3RpdmVQcmVsb2FkRm9yRWxlbWVudChjb25zdCBIVE1MTQogCiBi
b29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJh
Y2soY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKKyAgICBQYWdlKiBw
YWdlID0gZWxlbWVudC5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVu
dCgpLmlzTWVkaWFEb2N1bWVudCgpICYmICFlbGVtZW50LmRvY3VtZW50KCkub3duZXJFbGVtZW50
KCkgJiYgcGFnZSAmJiBwYWdlLT5hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFj
aygqdGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
ODFiOTA5YmZmMmZmMWIzYmU3NGM2M2U0ZDM2NDhiYTA4ODU4NTM2Yi4uMTYwNjM5MGMxYjAzMWMz
M2M3ZTBkMzU0NTkwZWE5ZDUzMjIzYWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNzM2LDQg
KzE3MzYsMjAgQEAgV2hlZWxFdmVudFRlc3RUcmlnZ2VyJiBQYWdlOjplbnN1cmVUZXN0VHJpZ2dl
cigpCiAgICAgcmV0dXJuICptX3Rlc3RUcmlnZ2VyOwogfQogCisjaWYgRU5BQkxFKFZJREVPKQor
dm9pZCBQYWdlOjpzZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBmbGFn
KQoreworICAgIGlmIChtX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayA9PSBmbGFn
KQorICAgICAgICByZXR1cm47CisgICAgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2sgPSBmbGFnOworCisgICAgVmVjdG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50czsKKyAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9IG1fbWFpbkZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBkb2N1bWVudHMuYXBwZW5kKCpmcmFt
ZS0+ZG9jdW1lbnQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGRvY3VtZW50IDogZG9jdW1lbnRzKQor
ICAgICAgICBkb2N1bWVudC0+YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrQ2hhbmdl
ZCgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOGJhNjM5ZDk0MDMxYjg4MWFkNzUyY2NkNWM3ZWYxMWZiYjY3NWI5Ni4uYWNkMzdiMjVhOGU0
YTdmYjU4NWUwMGRhNzU3MTAzZWEwOGQxY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ2MCw2ICs0
NjAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJUcmlnZ2VyKCkgeyBtX3Rlc3RUcmlnZ2Vy
ID0gbnVsbHB0cjsgfQogICAgIGJvb2wgZXhwZWN0c1doZWVsRXZlbnRUcmlnZ2VycygpIGNvbnN0
IHsgcmV0dXJuICEhbV90ZXN0VHJpZ2dlcjsgfQogCisjaWYgRU5BQkxFKFZJREVPKQorICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7IH0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhi
b29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdy
b3VwKCk7CiAKQEAgLTYxOSw2ICs2MjQsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmcgfTsKICAgICAKICAgICBib29sIG1fdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCB7IHRy
dWUgfTsKKyAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrIHsgZmFs
c2UgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggY2UwMWJkMzhj
MDZhMGMxMzE3ODIyN2UyNjUzMDQxYjYzY2FlMTE4NC4uZjAwNmY4NGU2ZTQxZWRhMzE2MTAwNWIw
OWE1MWUxY2I2YzUwNmM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1NjksNiArMjU2OSwyNCBAQCBzdGF0aWMgaW5saW5lIFdl
YktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRp
b25zKQogICAgIHJldHVybiBuaWw7CiB9CiAKKyNwcmFnbWEgbWFyayBtZWRpYSBwbGF5YmFjayBy
ZXN0cmljdGlvbnMKKworLSAoQk9PTClfYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
Cit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBfcGFnZS0+YWxsb3dzTWVkaWFEb2N1
bWVudElubGluZVBsYXliYWNrKCk7CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgorfQor
CistICh2b2lkKV9zZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s6KEJPT0wpZmxh
ZworeworI2lmIFBMQVRGT1JNKElPUykKKyAgICBfcGFnZS0+c2V0QWxsb3dzTWVkaWFEb2N1bWVu
dElubGluZVBsYXliYWNrKGZsYWcpOworI2VuZGlmCit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3Bl
Y2lmaWMgbWV0aG9kcwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhZjFmMTk3
NGUwZTE0YjY5ZDExNWMxZTc1OGUxODlmYWI2OTg3NzVhLi43YTAyYjY3ZTY4ZDFlMTFhYjBlZDA1
NDBmMDc4ZDUxMGRhOTIzNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjA4LDYgKzIwOCw5IEBAIFdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNLZXkgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJy
YXkgKl9zY3JvbGxQZXJmb3JtYW5jZURhdGEgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwogCiAtICh2b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFj
a0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9hbGxvd3NNZWRpYURvY3VtZW50
SW5saW5lUGxheWJhY2ssIHNldHRlcj1fc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXli
YWNrOikgQk9PTCBfYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOworCiBAZW5kCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBm
YmYyZDk0ZjIxYzdkYzk0ZmFmYTA3YzQxYTA1NjY3MTYxOTkyYjhjLi41MTBkMGEzNDAxNjU1OGJi
NzU1OTc0MzExOThmOTRkMjVhMTY2NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMzk4Miw2ICszOTgyLDIwIEBAIFJlZlB0cjxXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk+IFdlYlBhZ2VQcm94eTo6dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigp
CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKIH0KKworYm9vbCBXZWJQ
YWdlUHJveHk6OmFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjaygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOworfQorCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wg
ZmxhZykKK3sKKyAgICBpZiAobV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sgPT0g
ZmxhZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrID0gZmxhZzsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGZsYWcpLCBtX3BhZ2VJRCk7Cit9
CiAjZW5kaWYKIAogLy8gQmFja0ZvcndhcmRMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYmRjZTdjZDhlMjM4NjM2ZDUzOGVlODFjZGQwYjcyZWI0NWJhOTBk
ZC4uOWZmNGZjNzRhZDJiYjZmZDhmYzRiYjQ4Yzk5YmUwN2YzYzcwZDM0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzMzLDYgKzMzMyw5IEBAIHB1YmxpYzoK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5PiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisKKyAgICBib29sIGFsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjaygpIGNvbnN0OworICAgIHZvaWQgc2V0QWxsb3dz
TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKQEAgLTE1NzQsNiArMTU3Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6Vmlld1N0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJ
bldpbmRvdzsKICNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBtX2FsbG93c01lZGlhRG9jdW1l
bnRJbmxpbmVQbGF5YmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Fsd2F5c1J1bnNBdEZvcmVn
cm91bmRQcmlvcml0eTsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHlU
b2tlbiBtX2FjdGl2aXR5VG9rZW47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3OTY5YmEyOWRkNmY2MWE5YjI5NmIxN2JlNDNl
ZDM2OTRlZDljMjEyLi4wNDUyMDllYjE1NjEyOGNjZmEwZDQzNjQxNjkwNWFkODY1ODgyMDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0z
MDA3LDYgKzMwMDcsMTEgQEAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciogV2ViUGFnZTo6dmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcigpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmdldCgpOwogfQorCit2b2lkIFdlYlBhZ2U6OnNldEFsbG93
c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sIGZsYWcpCit7CisgICAgbV9wYWdlLT5z
ZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soZmxhZyk7Cit9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDA1ZWVkOGI3YzNjYzQyMTljMDQ1ODcxNGE2YmI5OTIzN2Y4
NDIxMDUuLjdlOTE4NTFlMGE4MDQ3NWVmZDhiMGIzNDRhYThjZGMxNTE4ZGVmMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjM2LDYgKzIzNiw4
IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisgICAgdm9pZCBzZXRBbGxvd3NNZWRp
YURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCk7CisgICAgYm9vbCBhbGxvd3NNZWRpYURvY3Vt
ZW50SW5saW5lUGxheWJhY2soKSBjb25zdCB7IHJldHVybiBtX2FsbG93c01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjazsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBA
IC0xMjU4LDYgKzEyNjAsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JVST4g
bV9pbnNwZWN0b3JVSTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyAgICBib29sIG1fYWxs
b3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrIHsgZmFsc2UgfTsKICNlbmRpZgogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IG1f
ZnVsbFNjcmVlbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDMxNjQ4ZWQxYWZkNjVmYzUyNGY2ZTQ4
ODE4YTI2OWFhNzBjNjIzYTEuLjMxNWQwYjM4NjViMjk3YWFkOGFlZjg5MjI3NGM4ZjI3ZjM2NWM0
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC05NSw2ICs5NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogICAgIENvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoU3RyaW5nIGNv
bnRlbnRTaXplQ2F0ZWdvcnkpCiAgICAgRXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrKFN0
cmluZyBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIEdldExvb2t1cENvbnRleHRBdFBv
aW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFNl
dEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sIGZsYWcpCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQo=
</data>
<flag name="review"
          id="282522"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>