<?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>165268</bug_id>
          
          <creation_ts>2016-12-01 13:13:50 -0800</creation_ts>
          <short_desc>Every WKWebView initialization spends a few milliseconds hitting the disk</short_desc>
          <delta_ts>2016-12-01 14:37:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255391</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 13:13:50 -0800</bug_when>
    <thetext>Every WKWebView initialization spends a few milliseconds hitting the disk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255392</commentid>
    <comment_count>1</comment_count>
      <attachid>295883</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 13:14:17 -0800</bug_when>
    <thetext>Created attachment 295883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255394</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 13:16:31 -0800</bug_when>
    <thetext>By my measurement (on iOS), this cuts total time initializing 19 WKWebViews (after the first one) by ~4x (~8ms to ~2ms per view).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255423</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 13:40:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/29010113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255446</commentid>
    <comment_count>4</comment_count>
      <attachid>295891</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 13:56:59 -0800</bug_when>
    <thetext>Created attachment 295891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255460</commentid>
    <comment_count>5</comment_count>
      <attachid>295891</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-01 14:04:57 -0800</bug_when>
    <thetext>Comment on attachment 295891
Patch

If I were somebody else, I might say try to keep any calculated path that&apos;s a CString as a CString as long as possible.

But I guess they all get converted to Strings eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255463</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 14:07:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 295891 [details]
&gt; Patch
&gt; 
&gt; If I were somebody else, I might say try to keep any calculated path that&apos;s
&gt; a CString as a CString as long as possible.
&gt; 
&gt; But I guess they all get converted to Strings eventually.

Yep. Also, stringByResolvingSymlinksInPath is used for similar things all over the place and goes right back to String.

I think if we wanted to do that we might want to have a special type just for that purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255482</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 14:31:54 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/209212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255488</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-12-01 14:37:30 -0800</bug_when>
    <thetext>Build fix in https://trac.webkit.org/changeset/209214</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295883</attachid>
            <date>2016-12-01 13:14:17 -0800</date>
            <delta_ts>2016-12-01 13:56:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165268-20161201131354.patch</filename>
            <type>text/plain</type>
            <size>17364</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTUyZGFiMjM5MTU4NDk4
MzRhZDFiNDhmZTBmYTE4MjU4MTNjMzcwNC4uNGUyMGVlMjIwZTlmNDBkYmZmOTA3NjQ0NGQzNjU1
MjY0ZTJkMjQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTEyLTAxICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEV2ZXJ5IFdLV2Vi
VmlldyBpbml0aWFsaXphdGlvbiBzcGVuZHMgYSBmZXcgbWlsbGlzZWNvbmRzIGhpdHRpbmcgdGhl
IGRpc2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NTI2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKFdlYktpdDo6cmVzb2x2ZVBhdGhG
b3JTYW5kYm94RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6cmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAqIFNoYXJlZC9t
YWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6cmVzb2x2ZUFuZENy
ZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aCk6CisgICAg
ICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9y
eSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNh
bmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9oaWRkZW5QYWdlVGhyb3R0
bGluZ1RpbWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRo
c0ZvclNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oOgorCiAyMDE2LTExLTMwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIENvcnJlY3QgcGx1Z2luIHNhbmRib3ggYWZ0ZXIgcjIwODYxMQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggOWY3OWVmZWMzYzA3ZTJlNjY2ZDQ1
ZmQ2NmU4MGRjNTM0ZGYwZWQyZS4uZmI0OWFiY2I5NzMxYTBhMmM5Y2I5MmY4ZGZhMjI2ZjE2NzRk
YTA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC05MSw5
ICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICAKICAgICBzdGF0aWMgUmVmUHRyPFNhbmRi
b3hFeHRlbnNpb24+IGNyZWF0ZShjb25zdCBIYW5kbGUmKTsKLSAgICBzdGF0aWMgYm9vbCBjcmVh
dGVIYW5kbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYpOworICAgIHN0
YXRpYyBib29sIGNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKGNvbnN0IFN0cmluZyYg
cGF0aCwgVHlwZSwgSGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlKGNvbnN0
IFN0cmluZyYgcGF0aCwgVHlwZSwgSGFuZGxlJik7CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlSGFu
ZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgSGFuZGxlJik7IC8v
IFdpbGwgYXR0ZW1wdCB0byBjcmVhdGUgdGhlIGRpcmVjdG9yeS4KLSAgICBzdGF0aWMgU3RyaW5n
IGNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFR5cGUg
dHlwZSwgSGFuZGxlJik7CisgICAgc3RhdGljIFN0cmluZyBjcmVhdGVIYW5kbGVGb3JUZW1wb3Jh
cnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlLCBIYW5kbGUmKTsKICAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5z
aW9uQ2xhc3MsIEhhbmRsZSYpOwogICAgIH5TYW5kYm94RXh0ZW5zaW9uKCk7CiAKQEAgLTEzNiw4
ICsxMzcsMTIgQEAgaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0
dXJuIHRydWU7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5l
bnRseSgpIHsgcmV0dXJuIHRydWU7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNv
bnN1bWVQZXJtYW5lbnRseShjb25zdCBIYW5kbGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUg
U3RyaW5nIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
KSB7IHJldHVybiBwYXRoOyB9CitpbmxpbmUgU3RyaW5nIHJlc29sdmVQYXRoRm9yU2FuZGJveEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIHBhdGg7IH0KK2lubGluZSBTdHJp
bmcgcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBwYXRoKSB7IHJldHVybiBwYXRoOyB9CiAjZWxzZQogU3RyaW5nIHN0cmlu
Z0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKK1N0cmluZyBy
ZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBwYXRoKTsKK1N0cmlu
ZyByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIHBhdGgpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4
IDA1Y2JmMjdmMGNhYzU3NmE0OGJiNTYwMzMzN2U4ZjMxMzE2YTBjNjMuLjZiZTg0NmI1MWJiMmQ2
OTgyNzk0OTc5M2UwYzAyYzNiZWRmZjkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KQEAgLTIxNSwxOSArMjE1LDM3IEBAIFN0cmlu
ZyBzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChyZXNvbHZlU3ltbGlua3NJblBhdGgocGF0aC51dGY4
KCkpKTsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIHJlc29sdmVBbmRD
cmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKLSAgICBBU1NFUlQoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOworICAgIE5T
RXJyb3IgKmVycm9yID0gbmlsOworICAgIE5TU3RyaW5nICpuc1BhdGggPSBwYXRoOworCisgICAg
aWYgKCFbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0UGF0
aDpuc1BhdGggd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBl
cnJvcjomZXJyb3JdKSB7CisgICAgICAgIE5TTG9nKEAiY291bGQgbm90IGNyZWF0ZSBcIiVAXCIs
IGVycm9yICVAIiwgbnNQYXRoLCBlcnJvcik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQog
CisgICAgcmV0dXJuIHJlc29sdmVQYXRoRm9yU2FuZGJveEV4dGVuc2lvbihwYXRoKTsKK30KKwor
U3RyaW5nIHJlc29sdmVQYXRoRm9yU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgp
Cit7CiAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgYm90aCByZXNvbHZlU3ltbGlua3NJblBhdGgo
KSBhbmQgLXN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGg/CiAgICAgQ1N0cmluZyBmaWxlU3lzdGVt
UGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihbKE5TU3RyaW5nICopcGF0aCBzdHJpbmdC
eVN0YW5kYXJkaXppbmdQYXRoXSk7CiAgICAgaWYgKGZpbGVTeXN0ZW1QYXRoLmlzTnVsbCgpKSB7
CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBhIHZhbGlkIGZpbGUgc3lzdGVt
IHJlcHJlc2VudGF0aW9uIGZvciB0aGUgc3RyaW5nICclcycgb2YgbGVuZ3RoICVsdSIsIGZpbGVT
eXN0ZW1QYXRoLmRhdGEoKSwgZmlsZVN5c3RlbVBhdGgubGVuZ3RoKCkpOwotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgQ1N0cmluZyBzdGFu
ZGFyZGl6ZWRQYXRoID0gcmVzb2x2ZVN5bWxpbmtzSW5QYXRoKGZpbGVTeXN0ZW1QYXRoKTsKLSAg
ICBoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uID0gV0tTYW5kYm94RXh0ZW5zaW9uQ3JlYXRlKHN0
YW5kYXJkaXplZFBhdGguZGF0YSgpLCB3a1NhbmRib3hFeHRlbnNpb25UeXBlKHR5cGUpKTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChzdGFuZGFyZGl6ZWRQYXRoKTsKK30KKworYm9vbCBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChjb25zdCBT
dHJpbmcmIHBhdGgsIFR5cGUgdHlwZSwgSGFuZGxlJiBoYW5kbGUpCit7CisgICAgQVNTRVJUKCFo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKTsKKworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNp
b24gPSBXS1NhbmRib3hFeHRlbnNpb25DcmVhdGUocGF0aC51dGY4KCkuZGF0YSgpLCB3a1NhbmRi
b3hFeHRlbnNpb25UeXBlKHR5cGUpKTsKICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNp
b24pIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGEgc2FuZGJveCBleHRl
bnNpb24gZm9yICclcyciLCBwYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0yMzUsMTcgKzI1MywyMCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUgdHlwZSwgSGFuZGxlJiBoYW5kbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJl
YWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYgaGFuZGxlKQorYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYgaGFuZGxlKQogewotICAgIE5TRXJyb3Ig
KmVycm9yID0gbmlsOwotICAgIE5TU3RyaW5nICpuc1BhdGggPSBwYXRoOworICAgIEFTU0VSVCgh
aGFuZGxlLm1fc2FuZGJveEV4dGVuc2lvbik7CiAKLSAgICBpZiAoIVtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRQYXRoOm5zUGF0aCB3aXRoSW50ZXJtZWRp
YXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOiZlcnJvcl0pIHsKLSAgICAg
ICAgTlNMb2coQCJjb3VsZCBub3QgY3JlYXRlIFwiJUBcIiwgZXJyb3IgJUAiLCBuc1BhdGgsIGVy
cm9yKTsKKyAgICByZXR1cm4gY3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocmVzb2x2
ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKHBhdGgpLCB0eXBlLCBoYW5kbGUpOworfQorCitib29s
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQoreworICAg
IFN0cmluZyByZXNvbHZlZFBhdGggPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5
Rm9yU2FuZGJveEV4dGVuc2lvbihwYXRoKTsKKyAgICBpZiAocmVzb2x2ZWRQYXRoLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogCi0gICAgcmV0dXJuIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZShwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIGhh
bmRsZSk7CisgICAgcmV0dXJuIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRS
ZXNvbHZpbmdQYXRoKHJlc29sdmVkUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZFdyaXRlLCBo
YW5kbGUpOwogfQogCiBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVt
cG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlwZSB0eXBlLCBIYW5kbGUmIGhhbmRs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KaW5kZXggNDlkNGQ1YmQ1YTk5ZDRkOTgxMTE2YTA4YTEzMjdkNTAxY2JhYjk1
MS4uNGU4NzNlYWQ2NTE4NWY2NTlkOTYxMWE4YWY5OWRiMjNhM2RjNzc4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
QEAgLTE1OSw2ICsxNTksMTcgQEAgU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpjb29raWVTdG9yYWdl
RGlyZWN0b3J5KCkgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBtX3Jlc29sdmVk
UGF0aHMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94
RXh0ZW5zaW9uKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcmVzb3VyY2VQYXRoXSk7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgbV9yZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnkg
PSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihj
b29raWVTdG9yYWdlRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJD
YWNoZXNEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2Fu
ZGJveEV4dGVuc2lvbih3ZWJDb250ZW50Q2FjaGVzRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2
ZWRQYXRocy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVh
ZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihjb250YWluZXJUZW1wb3JhcnlEaXJl
Y3RvcnkoKSk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewogICAgIHBhcmFtZXRlcnMucHJlc2VudGVyQXBwbGljYXRpb25QaWQgPSBnZXRwaWQoKTsK
QEAgLTE4NiwxMSArMTk3LDIyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICNlbmRpZgogCiAg
ICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBjb25maWd1cmFibGU7IHdlIHNob3Vs
ZG4ndCBqdXN0IGJsaW5kbHkgYWxsb3cgcmVhZCBhY2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3MgYnVu
ZGxlLgotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSByZXNvdXJjZVBhdGhdOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6UmVhZE9ubHksIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQ
YXRoRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291
cmNlUGF0aCA9IG1fcmVzb2x2ZWRQYXRocy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGg7Cisg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFy
YW1ldGVycy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJl
YWRPbmx5LCBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhh
bmRsZSk7CiAKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBTdHJp
bmcoW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSk7CiAKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgaWYgKCFtX3Jlc29sdmVkUGF0aHMuY29va2llU3RvcmFnZURpcmVjdG9y
eS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhv
dXRSZXNvbHZpbmdQYXRoKG1fcmVzb2x2ZWRQYXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LCBT
YW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBpZiAoIW1fcmVzb2x2ZWRQYXRocy5jb250YWlu
ZXJDYWNoZXNEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVy
Q2FjaGVzRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMu
Y29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIGlmICghbV9y
ZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1f
cmVzb2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNp
b246OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworI2VuZGlmCisKICAgICBwYXJhbWV0ZXJzLmZvbnRXaGl0ZWxpc3QgPSBt
X2ZvbnRXaGl0ZWxpc3Q7CiAKICAgICBpZiAobV9idW5kbGVQYXJhbWV0ZXJzKSB7CkBAIC00Mzcs
MTEgKzQ1OSw3IEBAIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6OmlzTmV0d29ya0NhY2hlRW5hYmxlZCgp
CiAKIFN0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0
aCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS85MTM4ODE3PiAtIEFm
dGVyIHRoaXMgImJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IiByYWRhciBpcyByZW1vdmVkLCB0aGlz
IGNvZGUgc2hvdWxkIGJlIHJlbW92ZWQgdG8gb25seSByZXR1cm4gYW4gZW1wdHkgU3RyaW5nLgot
ICAgIE5TU3RyaW5nICpkYXRhYmFzZXNEaXJlY3RvcnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVm
YXVsdHNLZXldOwotICAgIGlmICghZGF0YWJhc2VzRGlyZWN0b3J5IHx8ICFbZGF0YWJhc2VzRGly
ZWN0b3J5IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIGRhdGFiYXNl
c0RpcmVjdG9yeSA9IEAifi9MaWJyYXJ5L0ljb25zL1dlYnBhZ2VJY29ucy5kYiI7Ci0gICAgcmV0
dXJuIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoW2RhdGFiYXNlc0RpcmVjdG9yeSBz
dHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXSk7CisgICAgcmV0dXJuICIiOwogfQogCiBib29sIFdl
YlByb2Nlc3NQb29sOjpvbWl0UERGU3VwcG9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBmN2NlNjlmNGNlOTc2ODJjNGM1MDZmMjNmYmYyNDg2
YjBjMDg4Mjc3Li5jMzljMTM0NDU3NjQ2YTBhYzJhYzI4ZmY3NDY1OGQ1MzVjOWIyYTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTIwMiw2ICsy
MDIsOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAKICAgICBhZGRMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyKHRoaXMsIGxhbmd1YWdlQ2hhbmdlZCk7CiAKKyAgICByZXNvbHZlUGF0aHNGb3JTYW5kYm94
RXh0ZW5zaW9ucygpOworCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAg
IFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKQEAgLTUyNyw2ICs1
MjksMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9j
ZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgbV9wcm9jZXNzV2l0aFBhZ2VDYWNoZSA9IHByb2Nlc3M7
CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNp
b25zKCkKK3sKKyAgICBtX3Jlc29sdmVkUGF0aHMuaW5qZWN0ZWRCdW5kbGVQYXRoID0gcmVzb2x2
ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKGluamVjdGVkQnVuZGxlUGF0aCgpKTsKKyAgICBtX3Jl
c29sdmVkUGF0aHMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVS
ZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+YXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSgpKTsKKyAgICBtX3Jlc29sdmVkUGF0aHMud2ViU1FMRGF0
YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2Fu
ZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCkp
OworICAgIG1fcmVzb2x2ZWRQYXRocy5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENy
ZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9u
LT5tZWRpYUNhY2hlRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2ZWRQYXRocy5tZWRpYUtleVN0
b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2Fu
ZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnko
KSk7CisKKyAgICBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7Cit9
CisKIFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3Mo
KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC01MzcsNDEgKzU1MCwyNyBAQCBX
ZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKIAog
ICAgIHBhcmFtZXRlcnMudXJsUGFyc2VyRW5hYmxlZCA9IFVSTFBhcnNlcjo6ZW5hYmxlZCgpOwog
ICAgIAotICAgIHBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQYXRoID0gaW5qZWN0ZWRCdW5kbGVQ
YXRoKCk7CisgICAgcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGggPSBtX3Jlc29sdmVkUGF0
aHMuaW5qZWN0ZWRCdW5kbGVQYXRoOwogICAgIGlmICghcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRs
ZVBhdGguaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUo
cGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5
LCBwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2Fj
aGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9u
Q2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy5pbmplY3RlZEJ1
bmRsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBwYXJhbWV0ZXJzLmluamVjdGVk
QnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eTsKICAgICBpZiAoIXBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5
KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURp
cmVjdG9yeShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnksIHBhcmFtZXRlcnMu
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMu
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZFdyaXRlLCBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCi0g
ICAgcGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+
d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2Fj
aGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9u
Q2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoKTsKKworICAgIHBhcmFtZXRlcnMud2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMud2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGly
ZWN0b3J5KHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnksIHBhcmFtZXRlcnMud2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLndlYlNR
TERhdGFiYXNlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHBhcmFtZXRl
cnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgcGFyYW1l
dGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5tZWRpYUNhY2hlRGly
ZWN0b3J5KCk7CisgICAgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gbV9yZXNvbHZl
ZFBhdGhzLm1lZGlhQ2FjaGVEaXJlY3Rvcnk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhQ2Fj
aGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5
LCBwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0jaWYg
UExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+
Y29va2llU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghY29va2llU3RvcmFnZURpcmVjdG9y
eS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJl
YWRXcml0ZURpcmVjdG9yeShjb29raWVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmNvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgU3RyaW5nIGNvbnRhaW5l
ckNhY2hlc0RpcmVjdG9yeSA9IHRoaXMtPndlYkNvbnRlbnRDYWNoZXNEaXJlY3RvcnkoKTsKLSAg
ICBpZiAoIWNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb250YWluZXJD
YWNoZXNEaXJlY3RvcnksIHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKLQotICAgIFN0cmluZyBjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkgPSB0
aGlzLT5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvbnRhaW5lclRl
bXBvcmFyeURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb250YWluZXJUZW1wb3JhcnlEaXJlY3Rv
cnksIHBhcmFtZXRlcnMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKLSNlbmRpZgorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0
UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnksIFNhbmRib3hFeHRl
bnNpb246OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKIAotICAgIHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gbV9j
b25maWd1cmF0aW9uLT5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgcGFyYW1ldGVy
cy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMubWVkaWFLZXlTdG9y
YWdlRGlyZWN0b3J5OwogICAgIGlmICghcGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JS
ZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnksIHBh
cmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFy
YW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlJlYWRX
cml0ZSwgcGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OwogCiAgICAgcGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3No
b3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA2ZjA4MGZhMzNiYzcyMDFlOGMyOTA0YTM1ZWU5NDIxYjRj
ZTkyZjE5Li5mNTY3MjdmZGMxODQxYzE5ODhhZjlkZjAxMjc4OWRjYjZlMjE2YjAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNDQ0LDYgKzQ0NCw5IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93
c2luZ0VuYWJsZWQoYm9vbCk7CiAKKyAgICB2b2lkIHJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRl
bnNpb25zKCk7CisgICAgdm9pZCBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNp
b25zKCk7CisKICAgICBSZWY8QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IG1fY29uZmln
dXJhdGlvbjsKIAogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVy
TWFwOwpAQCAtNTc0LDYgKzU3NywyMiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGJvb2wgbV9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKworICAgIHN0cnVjdCBQYXRocyB7CisgICAgICAgIFN0cmluZyBpbmplY3RlZEJ1bmRs
ZVBhdGg7CisgICAgICAgIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OworICAgICAg
ICBTdHJpbmcgd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CisgICAgICAgIFN0cmluZyBtZWRpYUNh
Y2hlRGlyZWN0b3J5OworICAgICAgICBTdHJpbmcgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5Owor
ICAgICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgICAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeTsKKyAgICAgICAg
U3RyaW5nIGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeTsKKyAgICAgICAgU3RyaW5nIGNvbnRhaW5l
clRlbXBvcmFyeURpcmVjdG9yeTsKKyNlbmRpZgorICAgIH07CisgICAgUGF0aHMgbV9yZXNvbHZl
ZFBhdGhzOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295891</attachid>
            <date>2016-12-01 13:56:59 -0800</date>
            <delta_ts>2016-12-01 14:04:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165268-20161201135636.patch</filename>
            <type>text/plain</type>
            <size>20447</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTUyZGFiMjM5MTU4NDk4
MzRhZDFiNDhmZTBmYTE4MjU4MTNjMzcwNC4uODBjNTdhMThmMWMwZDQ1OTFiYmYwNGJjYThiZWMw
NjMxYTI2ZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTEyLTAxICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEV2ZXJ5IFdLV2Vi
VmlldyBpbml0aWFsaXphdGlvbiBzcGVuZHMgYSBmZXcgbWlsbGlzZWNvbmRzIGhpdHRpbmcgdGhl
IGRpc2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NTI2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkwMTAxMTM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXZlcnkgV0tXZWJWaWV3IGluaXQgY3Vy
cmVudGx5IGludm9sdmVzIGRvaW5nIGRpcmVjdG9yeSBjcmVhdGlvbiBhbmQKKyAgICAgICAgc3lt
bGluayByZXNvbHV0aW9uIGZvciBhIG51bWJlciBvZiBwYXRocyAodG8gY3JlYXRlIHNhbmRib3gg
ZXh0ZW5zaW9ucworICAgICAgICBmb3IgYWxsIG9mIG91ciBzdG9yYWdlIGRpcmVjdG9yaWVzKSwg
d2hpY2ggbWVhbnMgdG91Y2hpbmcgdGhlIGRpc2sgYQorICAgICAgICBsb3QgZHVyaW5nIGluaXQu
IEFsbCBvZiB0aGVzZSBwYXRocyBhcmUgaW1tdXRhYmxlIHBlci1XZWJQcm9jZXNzUG9vbCwKKyAg
ICAgICAgc28sIGluc3RlYWQsIGNhY2hlIHRoZW0gb24gV2ViUHJvY2Vzc1Bvb2wgYW5kIGNyZWF0
ZSBzYW5kYm94IGV4dGVuc2lvbnMKKyAgICAgICAgZnJvbSB0aGUgYWxyZWFkeS1yZXNvbHZlZCBw
YXRocy4gVGhpcyBpcyBhIHNpemFibGUgKH40eCkgc3BlZWR1cCB3aGVuCisgICAgICAgIGluaXRp
YWxpemluZyBzdWJzZXF1ZW50IHdlYiB2aWV3cy4KKworICAgICAgICAqIFNoYXJlZC9TYW5kYm94
RXh0ZW5zaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKToKKyAgICAgICAgQWRkIGNyZWF0ZUhhbmRsZVdpdGhv
dXRSZXNvbHZpbmdQYXRoLCB3aGljaCBtYWtlcyBhIHNhbmRib3ggZXh0ZW5zaW9uCisgICAgICAg
IGhhbmRsZSB3aXRob3V0IGRvaW5nIHN5bWxpbmsgcmVzb2x1dGlvbi4KKworICAgICAgICAoV2Vi
S2l0OjpyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0Ojpy
ZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbik6Cisg
ICAgICAgIEFkZCB0d28gZnVuY3Rpb25zIHRoYXQgZG8gdGhlIHNhbWUgcmVzb2x1dGlvbiB0aGF0
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZQorICAgICAgICBhbmQgOjpjcmVhdGVIYW5k
bGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkgZG8sIGJ1dCBqdXN0IHJldHVybiB0aGUgcGF0aHMsCisg
ICAgICAgIGZvciBsYXRlciB1c2Ugd2l0aCBjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0
aC4KKworICAgICAgICAqIFNoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6cmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hF
eHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpyZXNvbHZlUGF0aEZvclNhbmRib3hFeHRlbnNp
b24pOgorICAgICAgICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRo
b3V0UmVzb2x2aW5nUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeSk6CisgICAgICAgIEltcGxlbWVudCB0aGUgYWZvcmVt
ZW50aW9uZWQgZnVuY3Rpb25zLCBhbmQgcmVpbXBsZW1lbnQgdGhlIGV4aXN0aW5nCisgICAgICAg
IGNyZWF0ZUhhbmRsZXtGb3JSZWFkV3JpdGVEaXJlY3Rvcnl9IGZ1bmN0aW9ucyBpbiB0ZXJtcyBv
ZiB0aGVtLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybURlZmF1bHRJY29u
RGF0YWJhc2VQYXRoKToKKyAgICAgICAgU3RvcCB3YXN0aW5nIHRpbWUgZ2VuZXJhdGluZyBhbmQg
cmVzb2x2aW5nIGEgcGxhdGZvcm0gZGVmYXVsdCBpY29uCisgICAgICAgIGRhdGFiYXNlIHBhdGgs
IHNpbmNlIHdlIGRvbid0IGFjdHVhbGx5IHVzZSBpdCBmb3IgYW55dGhpbmcgYW55bW9yZSBleGNl
cHQKKyAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGljb24gZGF0YWJhc2UgaXMgZW5h
YmxlZCwgYW5kIHdlIG9ubHkgd2FudCB0bworICAgICAgICBlbmFibGUgaXQgaWYgdGhlIGNsaWVu
dCBoYXMgcHJvdmlkZWQgYSBwYXRoLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
aGlkZGVuUGFnZVRocm90dGxpbmdUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgUmVzb2x2ZSBwYXRocyBpbiByZXNvbHZlUGF0
aHNGb3JTYW5kYm94RXh0ZW5zaW9ucywgYW5kIHVzZSB0aGUgcmVzb2x2ZWQKKyAgICAgICAgcGF0
aHMgYWxvbmcgd2l0aCBjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aCBpbiBvcmRlciB0
byBlZmZlY3RpdmVseQorICAgICAgICBjYWNoZSB0aGUgcmVzb2x1dGlvbiBvcGVyYXRpb24uCisK
IDIwMTYtMTEtMzAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ29ycmVjdCBwbHVnaW4gc2FuZGJveCBhZnRlciByMjA4NjExCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NhbmRib3hFeHRlbnNpb24uaAppbmRleCA5Zjc5ZWZlYzNjMDdlMmU2NjZkNDVmZDY2ZTgw
ZGM1MzRkZjBlZDJlLi41MTA1N2U0OTgyNzcxYmIzM2FlYWIxM2MzNTRkMDYxNDFhN2UxNGJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTkxLDkgKzkxLDEw
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIAogICAgIHN0YXRpYyBSZWZQdHI8U2FuZGJveEV4dGVu
c2lvbj4gY3JlYXRlKGNvbnN0IEhhbmRsZSYpOwotICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZShjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUgdHlwZSwgSGFuZGxlJik7CisgICAgc3RhdGljIGJv
b2wgY3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYgcGF0aCwgVHlwZSwgSGFuZGxlJik7CisgICAg
c3RhdGljIGJvb2wgY3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoY29uc3QgU3RyaW5n
JiBwYXRoLCBUeXBlLCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGVGb3JS
ZWFkV3JpdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBIYW5kbGUmKTsgLy8gV2lsbCBh
dHRlbXB0IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5LgotICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRl
SGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgVHlwZSB0eXBlLCBI
YW5kbGUmKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUo
Y29uc3QgU3RyaW5nJiBwcmVmaXgsIFR5cGUsIEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNy
ZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb25DbGFz
cywgSGFuZGxlJik7CiAgICAgflNhbmRib3hFeHRlbnNpb24oKTsKIApAQCAtMTI3LDYgKzEyOCw3
IEBAIGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3QgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheTo6ZGVjb2RlKElQQzo6RGVjb2RlciYsIEhhbmRsZUFycmF5JikgeyByZXR1cm4gdHJ1
ZTsgfQogaW5saW5lIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4gbnVsbHB0cjsgfQogaW5saW5lIGJvb2wgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYp
IHsgcmV0dXJuIHRydWU7IH0KK2lubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKGNvbnN0IFN0cmluZyYsIFR5cGUsIEhhbmRsZSYpIHsg
cmV0dXJuIHRydWU7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmLCBIYW5kbGUmKSB7IHJldHVybiB0
cnVlOyB9CiBpbmxpbmUgU3RyaW5nIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRl
bXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiAvKnByZWZpeCovLCBUeXBlLCBIYW5kbGUmKSB7cmV0
dXJuIFN0cmluZygpO30KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvckdlbmVyaWNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiAvKmV4dGVuc2lvbkNsYXNzKi8sIEhh
bmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEzNiw4ICsxMzgsMTIgQEAgaW5saW5lIGJvb2wg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZSgpIHsgcmV0dXJuIHRydWU7IH0KIGlubGluZSBib29s
IFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgpIHsgcmV0dXJuIHRydWU7IH0K
IGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShjb25zdCBI
YW5kbGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgU3RyaW5nIHN0cmluZ0J5UmVzb2x2aW5n
U3ltbGlua3NJblBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKSB7IHJldHVybiBwYXRoOyB9Citpbmxp
bmUgU3RyaW5nIHJlc29sdmVQYXRoRm9yU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBh
dGgpIHsgcmV0dXJuIHBhdGg7IH0KK2lubGluZSBTdHJpbmcgcmVzb2x2ZUFuZENyZWF0ZVJlYWRX
cml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBwYXRoKSB7IHJl
dHVybiBwYXRoOyB9CiAjZWxzZQogU3RyaW5nIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBh
dGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKK1N0cmluZyByZXNvbHZlUGF0aEZvclNhbmRib3hFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBwYXRoKTsKK1N0cmluZyByZXNvbHZlQW5kQ3JlYXRlUmVhZFdy
aXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgpOwogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IDA1Y2JmMjdmMGNhYzU3NmE0OGJiNTYw
MzMzN2U4ZjMxMzE2YTBjNjMuLjZiZTg0NmI1MWJiMmQ2OTgyNzk0OTc5M2UwYzAyYzNiZWRmZjky
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lv
bk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25N
YWMubW0KQEAgLTIxNSwxOSArMjE1LDM3IEBAIFN0cmluZyBzdHJpbmdCeVJlc29sdmluZ1N5bWxp
bmtzSW5QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChyZXNvbHZlU3ltbGlua3NJblBhdGgocGF0aC51dGY4KCkpKTsKIH0KIAotYm9vbCBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhh
bmRsZSYgaGFuZGxlKQorU3RyaW5nIHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlG
b3JTYW5kYm94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBBU1NFUlQoIWhh
bmRsZS5tX3NhbmRib3hFeHRlbnNpb24pOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAg
IE5TU3RyaW5nICpuc1BhdGggPSBwYXRoOworCisgICAgaWYgKCFbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0UGF0aDpuc1BhdGggd2l0aEludGVybWVkaWF0
ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjomZXJyb3JdKSB7CisgICAgICAg
IE5TTG9nKEAiY291bGQgbm90IGNyZWF0ZSBcIiVAXCIsIGVycm9yICVAIiwgbnNQYXRoLCBlcnJv
cik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogCisgICAgcmV0dXJuIHJlc29sdmVQYXRo
Rm9yU2FuZGJveEV4dGVuc2lvbihwYXRoKTsKK30KKworU3RyaW5nIHJlc29sdmVQYXRoRm9yU2Fu
ZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgpCit7CiAgICAgLy8gRklYTUU6IERvIHdl
IG5lZWQgYm90aCByZXNvbHZlU3ltbGlua3NJblBhdGgoKSBhbmQgLXN0cmluZ0J5U3RhbmRhcmRp
emluZ1BhdGg/CiAgICAgQ1N0cmluZyBmaWxlU3lzdGVtUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihbKE5TU3RyaW5nICopcGF0aCBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXSk7CiAg
ICAgaWYgKGZpbGVTeXN0ZW1QYXRoLmlzTnVsbCgpKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IGNyZWF0ZSBhIHZhbGlkIGZpbGUgc3lzdGVtIHJlcHJlc2VudGF0aW9uIGZvciB0aGUg
c3RyaW5nICclcycgb2YgbGVuZ3RoICVsdSIsIGZpbGVTeXN0ZW1QYXRoLmRhdGEoKSwgZmlsZVN5
c3RlbVBhdGgubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogCiAgICAgQ1N0cmluZyBzdGFuZGFyZGl6ZWRQYXRoID0gcmVzb2x2ZVN5
bWxpbmtzSW5QYXRoKGZpbGVTeXN0ZW1QYXRoKTsKLSAgICBoYW5kbGUubV9zYW5kYm94RXh0ZW5z
aW9uID0gV0tTYW5kYm94RXh0ZW5zaW9uQ3JlYXRlKHN0YW5kYXJkaXplZFBhdGguZGF0YSgpLCB3
a1NhbmRib3hFeHRlbnNpb25UeXBlKHR5cGUpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChzdGFuZGFyZGl6ZWRQYXRoKTsKK30KKworYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIFR5cGUgdHlwZSwg
SGFuZGxlJiBoYW5kbGUpCit7CisgICAgQVNTRVJUKCFoYW5kbGUubV9zYW5kYm94RXh0ZW5zaW9u
KTsKKworICAgIGhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24gPSBXS1NhbmRib3hFeHRlbnNpb25D
cmVhdGUocGF0aC51dGY4KCkuZGF0YSgpLCB3a1NhbmRib3hFeHRlbnNpb25UeXBlKHR5cGUpKTsK
ICAgICBpZiAoIWhhbmRsZS5tX3NhbmRib3hFeHRlbnNpb24pIHsKICAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZCBub3QgY3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yICclcyciLCBwYXRoLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzUsMTcgKzI1MywyMCBA
QCBib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmIHBhdGgs
IFR5cGUgdHlwZSwgSGFuZGxlJiBoYW5kbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBT
dHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQorYm9vbCBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUs
IEhhbmRsZSYgaGFuZGxlKQogewotICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIE5TU3Ry
aW5nICpuc1BhdGggPSBwYXRoOworICAgIEFTU0VSVCghaGFuZGxlLm1fc2FuZGJveEV4dGVuc2lv
bik7CiAKLSAgICBpZiAoIVtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGly
ZWN0b3J5QXRQYXRoOm5zUGF0aCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJp
YnV0ZXM6bmlsIGVycm9yOiZlcnJvcl0pIHsKLSAgICAgICAgTlNMb2coQCJjb3VsZCBub3QgY3Jl
YXRlIFwiJUBcIiwgZXJyb3IgJUAiLCBuc1BhdGgsIGVycm9yKTsKKyAgICByZXR1cm4gY3JlYXRl
SGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9u
KHBhdGgpLCB0eXBlLCBoYW5kbGUpOworfQorCitib29sIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQoreworICAgIFN0cmluZyByZXNvbHZlZFBhdGggPSBy
ZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihwYXRo
KTsKKyAgICBpZiAocmVzb2x2ZWRQYXRoLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQogCi0gICAgcmV0dXJuIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXRo
LCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIGhhbmRsZSk7CisgICAgcmV0dXJuIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHJlc29sdmVkUGF0
aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZFdyaXRlLCBoYW5kbGUpOwogfQogCiBTdHJpbmcgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcm
IHByZWZpeCwgVHlwZSB0eXBlLCBIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggNDlkNGQ1
YmQ1YTk5ZDRkOTgxMTE2YTA4YTEzMjdkNTAxY2JhYjk1MS4uNGU4NzNlYWQ2NTE4NWY2NTlkOTYx
MWE4YWY5OWRiMjNhM2RjNzc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTE1OSw2ICsxNTksMTcgQEAgU3Ry
aW5nIFdlYlByb2Nlc3NQb29sOjpjb29raWVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKIH0KICNl
bmRpZgogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRi
b3hFeHRlbnNpb25zKCkKK3sKKyAgICBtX3Jlc29sdmVkUGF0aHMudWlQcm9jZXNzQnVuZGxlUmVz
b3VyY2VQYXRoID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gcmVzb3VyY2VQYXRoXSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9yZXNv
bHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdy
aXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihjb29raWVTdG9yYWdlRGlyZWN0b3J5KCkp
OworICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnkgPSByZXNvbHZl
QW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbih3ZWJDb250ZW50
Q2FjaGVzRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJv
eEV4dGVuc2lvbihjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkoKSk7CisjZW5kaWYKK30KKwog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIHBhcmFtZXRlcnMucHJl
c2VudGVyQXBwbGljYXRpb25QaWQgPSBnZXRwaWQoKTsKQEAgLTE4NiwxMSArMTk3LDIyIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHJlYWxseSBiZSBjb25maWd1cmFibGU7IHdlIHNob3VsZG4ndCBqdXN0IGJsaW5kbHkgYWxsb3cg
cmVhZCBhY2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3MgYnVuZGxlLgotICAgIHBhcmFtZXRlcnMudWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSByZXNvdXJj
ZVBhdGhdOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9ubHksIHBh
cmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKKyAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCA9IG1fcmVzb2x2ZWRQYXRo
cy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGg7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVS
ZXNvdXJjZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBwYXJhbWV0ZXJz
LnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBTdHJpbmcoW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBidW5kbGVJZGVudGlmaWVyXSk7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFtX3Jl
c29sdmVkUGF0aHMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1fcmVzb2x2
ZWRQYXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3Jp
dGUsIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisK
KyAgICBpZiAoIW1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnkuaXNFbXB0
eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2
aW5nUGF0aChtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5LCBTYW5kYm94
RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIGlmICghbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRl
bXBvcmFyeURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJU
ZW1wb3JhcnlEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgcGFyYW1ldGVy
cy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCisK
ICAgICBwYXJhbWV0ZXJzLmZvbnRXaGl0ZWxpc3QgPSBtX2ZvbnRXaGl0ZWxpc3Q7CiAKICAgICBp
ZiAobV9idW5kbGVQYXJhbWV0ZXJzKSB7CkBAIC00MzcsMTEgKzQ1OSw3IEBAIGJvb2wgV2ViUHJv
Y2Vzc1Bvb2w6OmlzTmV0d29ya0NhY2hlRW5hYmxlZCgpCiAKIFN0cmluZyBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgLy8gRklY
TUU6IDxyZGFyOi8vcHJvYmxlbS85MTM4ODE3PiAtIEFmdGVyIHRoaXMgImJhY2t3YXJkcyBjb21w
YXRpYmlsaXR5IiByYWRhciBpcyByZW1vdmVkLCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJlbW92ZWQg
dG8gb25seSByZXR1cm4gYW4gZW1wdHkgU3RyaW5nLgotICAgIE5TU3RyaW5nICpkYXRhYmFzZXNE
aXJlY3RvcnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RG
b3JLZXk6V2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXldOwotICAgIGlmICghZGF0
YWJhc2VzRGlyZWN0b3J5IHx8ICFbZGF0YWJhc2VzRGlyZWN0b3J5IGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIGRhdGFiYXNlc0RpcmVjdG9yeSA9IEAifi9MaWJyYXJ5
L0ljb25zL1dlYnBhZ2VJY29ucy5kYiI7Ci0gICAgcmV0dXJuIHN0cmluZ0J5UmVzb2x2aW5nU3lt
bGlua3NJblBhdGgoW2RhdGFiYXNlc0RpcmVjdG9yeSBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRo
XSk7CisgICAgcmV0dXJuICIiOwogfQogCiBib29sIFdlYlByb2Nlc3NQb29sOjpvbWl0UERGU3Vw
cG9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCBmN2NlNjlmNGNlOTc2ODJjNGM1MDZmMjNmYmYyNDg2YjBjMDg4Mjc3Li45NzM2MThkMmM1ZjNh
YjAyZDg1NmY3YWNmZWRiMzAwMGI3ZDJlZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTIwMiw2ICsyMDIsOCBAQCBXZWJQcm9jZXNzUG9vbDo6
V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRp
b24pCiAKICAgICBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsIGxhbmd1YWdlQ2hhbmdl
ZCk7CiAKKyAgICByZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOworCiAjaWYgIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKQEAgLTUyNyw2ICs1MjksMTcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cHJvY2Vzc0RpZENhY2hlUGFnZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAgICAg
bV9wcm9jZXNzV2l0aFBhZ2VDYWNoZSA9IHByb2Nlc3M7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBtX3Jlc29sdmVk
UGF0aHMuaW5qZWN0ZWRCdW5kbGVQYXRoID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9u
KGluamVjdGVkQnVuZGxlUGF0aCgpKTsKKyAgICBtX3Jlc29sdmVkUGF0aHMuYXBwbGljYXRpb25D
YWNoZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5k
Ym94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgp
KTsKKyAgICBtX3Jlc29sdmVkUGF0aHMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZl
QW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3Vy
YXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2ZWRQYXRocy5t
ZWRpYUNhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZv
clNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLT5tZWRpYUNhY2hlRGlyZWN0b3J5KCkp
OworICAgIG1fcmVzb2x2ZWRQYXRocy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZl
QW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3Vy
YXRpb24tPm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSk7CisKKyAgICBwbGF0Zm9ybVJlc29s
dmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7Cit9CisKIFdlYlByb2Nlc3NQcm94eSYgV2Vi
UHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogewogICAgIGVuc3VyZU5ldHdvcmtQ
cm9jZXNzKCk7CkBAIC01MzcsNDEgKzU1MCwyNyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nl
c3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKIAogICAgIHBhcmFtZXRlcnMudXJsUGFyc2Vy
RW5hYmxlZCA9IFVSTFBhcnNlcjo6ZW5hYmxlZCgpOwogICAgIAotICAgIHBhcmFtZXRlcnMuaW5q
ZWN0ZWRCdW5kbGVQYXRoID0gaW5qZWN0ZWRCdW5kbGVQYXRoKCk7CisgICAgcGFyYW1ldGVycy5p
bmplY3RlZEJ1bmRsZVBhdGggPSBtX3Jlc29sdmVkUGF0aHMuaW5qZWN0ZWRCdW5kbGVQYXRoOwog
ICAgIGlmICghcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGguaXNFbXB0eSgpKQotICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRs
ZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBwYXJhbWV0ZXJzLmluamVjdGVkQnVu
ZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnko
KTsKLSAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5h
bWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9y
eU5hbWUoKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJl
c29sdmluZ1BhdGgocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGgsIFNhbmRib3hFeHRlbnNp
b246OlJlYWRPbmx5LCBwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRs
ZSk7CiAKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX3Jlc29s
dmVkUGF0aHMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeTsKICAgICBpZiAoIXBhcmFtZXRlcnMu
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnksIHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eSwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZFdyaXRlLCBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgcGFyYW1ldGVycy53ZWJTUUxEYXRh
YmFzZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+d2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnko
KTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5h
bWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9y
eU5hbWUoKTsKKworICAgIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBtX3Jl
c29sdmVkUGF0aHMud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CiAgICAgaWYgKCFwYXJhbWV0ZXJz
LndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMud2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnksIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRo
b3V0UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LCBTYW5k
Ym94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5
ID0gbV9jb25maWd1cmF0aW9uLT5tZWRpYUNhY2hlRGlyZWN0b3J5KCk7CisgICAgcGFyYW1ldGVy
cy5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLm1lZGlhQ2FjaGVEaXJlY3Rv
cnk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQot
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmlu
ZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+Y29va2llU3RvcmFnZURpcmVjdG9yeSgp
OwotICAgIGlmICghY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb29raWVT
dG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotCi0gICAgU3RyaW5nIGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9IHRoaXMt
PndlYkNvbnRlbnRDYWNoZXNEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvbnRhaW5lckNhY2hlc0Rp
cmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb250YWluZXJDYWNoZXNEaXJlY3RvcnksIHBhcmFtZXRl
cnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIFN0cmlu
ZyBjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkgPSB0aGlzLT5jb250YWluZXJUZW1wb3JhcnlE
aXJlY3RvcnkoKTsKLSAgICBpZiAoIWNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeS5pc0VtcHR5
KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURp
cmVjdG9yeShjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnksIHBhcmFtZXRlcnMuY29udGFpbmVy
VGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJz
Lm1lZGlhQ2FjaGVEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgcGFyYW1l
dGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIHBhcmFtZXRl
cnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5tZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCk7CisgICAgcGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnkgPSBtX3Jlc29sdmVkUGF0aHMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5OwogICAgIGlmICgh
cGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1l
dGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VE
aXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5tZWRpYUtl
eVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCiAgICAgcGFyYW1ldGVycy5zaG91
bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vz
c2lvbjsKIApAQCAtNTk0LDggKzU5Myw2IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bv
b2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogICAgIHBhcmFtZXRlcnMuc2hvdWxkQWx3YXlzVXNl
Q29tcGxleFRleHRDb2RlUGF0aCA9IG1fYWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGg7CiAg
ICAgcGFyYW1ldGVycy5zaG91bGRVc2VGb250U21vb3RoaW5nID0gbV9zaG91bGRVc2VGb250U21v
b3RoaW5nOwogCi0gICAgLy8gRklYTUU6IFRoaXMgbGVhdmVzIFVJIHByb2Nlc3MgYW5kIFdlYlBy
b2Nlc3MgZGlzYWdyZWVpbmcgYWJvdXQgdGhlIHN0YXRlIGlmIHRoZSBjbGllbnQgaGFzbid0IHNl
dCB0aGUgcGF0aC4KLSAgICAvLyBpY29uRGF0YWJhc2VQYXRoIGlzIG5vbi1lbXB0eSBieSBkZWZh
dWx0LCBidXQgbV9pY29uRGF0YWJhc2UgaXNuJ3QgZW5hYmxlZCBpbiBVSSBwcm9jZXNzIHVubGVz
cyBzZXREYXRhYmFzZVBhdGggaXMgY2FsbGVkIGV4cGxpY2l0bHkuCiAgICAgcGFyYW1ldGVycy5p
Y29uRGF0YWJhc2VFbmFibGVkID0gIWljb25EYXRhYmFzZVBhdGgoKS5pc0VtcHR5KCk7CiAKICAg
ICBwYXJhbWV0ZXJzLnRlcm1pbmF0aW9uVGltZW91dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDZmMDgwZmEzM2JjNzIwMWU4YzI5MDRhMzVlZTk0
MjFiNGNlOTJmMTkuLmY1NjcyN2ZkYzE4NDFjMTk4OGFmOWRmMDEyNzg5ZGNiNmUyMTZiMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00NDQsNiArNDQ0
LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKIAorICAgIHZvaWQgcmVzb2x2ZVBhdGhzRm9yU2FuZGJv
eEV4dGVuc2lvbnMoKTsKKyAgICB2b2lkIHBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4
dGVuc2lvbnMoKTsKKwogICAgIFJlZjxBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gbV9j
b25maWd1cmF0aW9uOwogCiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVj
ZWl2ZXJNYXA7CkBAIC01NzQsNiArNTc3LDIyIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgYm9vbCBtX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkIHsgZmFsc2Ug
fTsKICNlbmRpZgorCisgICAgc3RydWN0IFBhdGhzIHsKKyAgICAgICAgU3RyaW5nIGluamVjdGVk
QnVuZGxlUGF0aDsKKyAgICAgICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnk7Cisg
ICAgICAgIFN0cmluZyB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsKKyAgICAgICAgU3RyaW5nIG1l
ZGlhQ2FjaGVEaXJlY3Rvcnk7CisgICAgICAgIFN0cmluZyBtZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnk7CisgICAgICAgIFN0cmluZyB1aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGg7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5OworICAg
ICAgICBTdHJpbmcgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5OworICAgICAgICBTdHJpbmcgY29u
dGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5OworI2VuZGlmCisgICAgfTsKKyAgICBQYXRocyBtX3Jl
c29sdmVkUGF0aHM7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgo=
</data>
<flag name="review"
          id="318415"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>