<?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>51363</bug_id>
          
          <creation_ts>2010-12-20 16:19:22 -0800</creation_ts>
          <short_desc>Add a TextChecker class, hook up spelling and grammar toggling</short_desc>
          <delta_ts>2010-12-20 16:35:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324633</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-20 16:19:22 -0800</bug_when>
    <thetext>Add a TextChecker class, hook up spelling and grammar toggling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324634</commentid>
    <comment_count>1</comment_count>
      <attachid>77049</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-20 16:21:50 -0800</bug_when>
    <thetext>Created attachment 77049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324641</commentid>
    <comment_count>2</comment_count>
      <attachid>77049</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-20 16:30:16 -0800</bug_when>
    <thetext>Comment on attachment 77049
Patch

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

&gt; WebKit2/UIProcess/API/mac/WKView.mm:348
&gt; +- (IBAction)toggleContinuousSpellChecking:(id)sender {

{ on the wrong line.

&gt; WebKit2/UIProcess/API/mac/WKView.mm:356
&gt; +- (void)toggleGrammarChecking:(id)sender {

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324646</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-20 16:35:32 -0800</bug_when>
    <thetext>Committed r74376: &lt;http://trac.webkit.org/changeset/74376&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77049</attachid>
            <date>2010-12-20 16:21:50 -0800</date>
            <delta_ts>2010-12-20 16:30:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51363-20101220162149.patch</filename>
            <type>text/plain</type>
            <size>24234</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDM3NSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMTItMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSBUZXh0Q2hlY2tlciBjbGFzcywgaG9vayB1cCBzcGVsbGluZyBhbmQgZ3JhbW1hciB0
b2dnbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTEzNjMKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAg
KC1bV0tWaWV3IHZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW06XSk6CisgICAgICAgICgtW1dLVmll
dyB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZzpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRv
Z2dsZUdyYW1tYXJDaGVja2luZzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXIu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5tYXJrQWxsTWlzc3BlbGxpbmdzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1bm1hcmtBbGxCYWRHcmFtbWFyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjppc0NvbnRp
bnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2Vy
Ojppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlcjo6aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6VGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlRleHRDaGVja2VyOjppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6aXNHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnNldEdyYW1tYXJD
aGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vVGV4dENoZWNrZXJXaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmlzQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmdBbGxvd2VkKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXI6OnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OlRleHRDaGVja2VyOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogV2Vi
S2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dW5tYXJrQWxsTWlzc3BlbGxpbmdzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dW5tYXJrQWxsQmFkR3JhbW1hcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTAtMTItMjAgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA3NDM1NSkKKysrIFdlYktpdDIvV2ViS2l0Mi5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaCBcCiAgICAgVUlQcm9jZXNzL1Byb2Nlc3NN
b2RlbC5oIFwKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIFwKKyAgICBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuaCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94
eS5oIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKICAgICBVSVByb2Nl
c3MvV2ViQ29udGV4dC5oIFwKQEAgLTU1NSw2ICs1NTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBV
SVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlRdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9xdC9UaWxlZERyYXdpbmdBcmVhUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9x
dC9UaWxlZERyYXdpbmdBcmVhVGlsZVF0LmNwcCBcCisgICAgVUlQcm9jZXNzL3F0L1RleHRDaGVj
a2VyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmNwcCBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9X
ZWJJbnNwZWN0b3JQcm94eVF0LmNwcCBcCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hl
Y2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0Q2hlY2tlcl9oCisj
ZGVmaW5lIFRleHRDaGVja2VyX2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFRleHRD
aGVja2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNr
aW5nQWxsb3dlZCgpOworICAgIHN0YXRpYyBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CisgICAgc3RhdGljIHZvaWQgc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKGJvb2wpOworCisgICAgc3RhdGljIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7
CisgICAgc3RhdGljIHZvaWQgc2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVGV4dENoZWNrZXJfaApJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3NDM1NSkKKysrIFdlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NDMsNiArMTU0
MywxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsRm9yT3BlblBhbmVsCiAgICAgbV9v
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bm1h
cmtBbGxNaXNzcGVsbGluZ3MoKQoreworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VW5tYXJrQWxsTWlzc3BlbGxpbmdzKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OnVubWFya0FsbEJhZEdyYW1tYXIoKQoreworICAgIHByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6VW5tYXJrQWxsQmFkR3JhbW1hcigpLCBtX3BhZ2VJRCk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRp
dENvbW1hbmRQcm94eT4gY29tbWFuZFByb3h5LCBVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiB7CiAg
ICAgbV9wYWdlQ2xpZW50LT5yZWdpc3RlckVkaXRDb21tYW5kKGNvbW1hbmRQcm94eSwgdW5kb09y
UmVkbyk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNzQzNTUpCisr
KyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjk0
LDYgKzI5NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpbmRab29tYWJsZUFyZWFGb3JQb2ludChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHVubWFya0FsbE1p
c3NwZWxsaW5ncygpOworICAgIHZvaWQgdW5tYXJrQWxsQmFkR3JhbW1hcigpOworCiBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eShXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKiwgdWludDY0X3Qg
cGFnZUlEKTsKIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9u
IDc0MzU1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIlBERlZpZXdDb250cm9sbGVyLmgiCiAj
aW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgogI2ltcG9ydCAiUnVuTG9vcC5oIgorI2ltcG9ydCAi
VGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIldLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIgog
I2ltcG9ydCAiV2ViQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRXZlbnRGYWN0b3J5LmgiCkBAIC0z
MTEsMTEgKzMxMiwzMSBAQCBXRUJDT1JFX0NPTU1BTkQodGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0
CiAKIC0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTooaWQgPE5TVmFsaWRhdGVkVXNl
ckludGVyZmFjZUl0ZW0+KWl0ZW0KIHsKLSAgICBTdHJpbmcgY29tbWFuZE5hbWUgPSBjb21tYW5k
TmFtZUZvclNlbGVjdG9yKFtpdGVtIGFjdGlvbl0pOwogICAgIE5TTWVudUl0ZW0gKm1lbnVJdGVt
ID0gKE5TTWVudUl0ZW0gKilpdGVtOwogICAgIGlmICghW21lbnVJdGVtIGlzS2luZE9mQ2xhc3M6
W05TTWVudUl0ZW0gY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIE5POyAvLyBGSVhNRTogV2UgbmVl
ZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBvdGhlciB1c2VyIGludGVyZmFjZSBlbGVtZW50cy4KKwor
ICAgIFNFTCBhY3Rpb24gPSBbaXRlbSBhY3Rpb25dOworCisgICAgaWYgKGFjdGlvbiA9PSBAc2Vs
ZWN0b3IodG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6KSkgeworICAgICAgICBib29sIGNo
ZWNrTWFyayA9IGZhbHNlOworICAgICAgICBib29sIHJldHVyblZhbHVlID0gZmFsc2U7CisgICAg
ICAgIGlmIChUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKSkK
KyAgICAgICAgICAgIGNoZWNrTWFyayA9IFRleHRDaGVja2VyOjppc0NvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOworICAgICAgICByZXR1cm5WYWx1ZSA9IHRydWU7CisKKyAgICAgICAg
W21lbnVJdGVtIHNldFN0YXRlOmNoZWNrTWFyayA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwor
ICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CisgICAgfQorCisgICAgaWYgKGFjdGlvbiA9PSBA
c2VsZWN0b3IodG9nZ2xlR3JhbW1hckNoZWNraW5nOikpIHsKKyAgICAgICAgYm9vbCBjaGVja01h
cmsgPSBUZXh0Q2hlY2tlcjo6aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgICAgIFtt
ZW51SXRlbSBzZXRTdGF0ZTpjaGVja01hcmsgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAg
ICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CiAgICAgCisgICAgU3RyaW5nIGNvbW1hbmROYW1lID0g
Y29tbWFuZE5hbWVGb3JTZWxlY3RvcihbaXRlbSBhY3Rpb25dKTsKKwogICAgIGlmIChfZGF0YS0+
X21lbnVJdGVtc01hcC5maW5kKGNvbW1hbmROYW1lKSA9PSBfZGF0YS0+X21lbnVJdGVtc01hcC5l
bmQoKSkgewogICAgICAgICBfZGF0YS0+X21lbnVJdGVtc01hcC5hZGQoY29tbWFuZE5hbWUsIG1l
bnVJdGVtKTsKICAgICAgICAgX2RhdGEtPl9wYWdlLT52YWxpZGF0ZU1lbnVJdGVtKGNvbW1hbmRO
YW1lKTsKQEAgLTMyNCw2ICszNDUsMjIgQEAgICAgICAgICByZXR1cm4gTk87IC8vIEZJWE1FOiBX
ZSBuZWVkIHRvIAogICAgIHJldHVybiBZRVM7CiB9CiAKKy0gKElCQWN0aW9uKXRvZ2dsZUNvbnRp
bnVvdXNTcGVsbENoZWNraW5nOihpZClzZW5kZXIgeworICAgIGJvb2wgc3BlbGxDaGVja2luZ0Vu
YWJsZWQgPSAhVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7
CisgICAgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChzcGVs
bENoZWNraW5nRW5hYmxlZCk7CisKKyAgICBpZiAoIXNwZWxsQ2hlY2tpbmdFbmFibGVkKQorICAg
ICAgICBfZGF0YS0+X3BhZ2UtPnVubWFya0FsbE1pc3NwZWxsaW5ncygpOworfQorCistICh2b2lk
KXRvZ2dsZUdyYW1tYXJDaGVja2luZzooaWQpc2VuZGVyIHsKKyAgICBib29sIGdyYW1tYXJDaGVj
a2luZ0VuYWJsZWQgPSAhVGV4dENoZWNrZXI6OmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwor
ICAgIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1tYXJDaGVja2lu
Z0VuYWJsZWQpOworCisgICAgaWYgKCFncmFtbWFyQ2hlY2tpbmdFbmFibGVkKQorICAgICAgICBf
ZGF0YS0+X3BhZ2UtPnVubWFya0FsbEJhZEdyYW1tYXIoKTsKK30KKwogLy8gRXZlbnRzCiAKIC8v
IE92ZXJyaWRlIHRoaXMgc28gdGhhdCBBcHBLaXQgd2lsbCBzZW5kIHVzIGFycm93IGtleXMgYXMg
a2V5IGRvd24gZXZlbnRzIHNvIHdlIGNhbgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Rl
eHRDaGVja2VyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0
Q2hlY2tlck1hYy5tbQkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0
Q2hlY2tlck1hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGlj
IGJvb2wgY29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOworc3RhdGljIGJvb2wgZ3JhbW1h
ckNoZWNraW5nRW5hYmxlZDsKKyAgICAKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmdBbGxvd2VkKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBhbGxvd0NvbnRpbnVvdXNT
cGVsbENoZWNraW5nID0gdHJ1ZTsKKyAgICBzdGF0aWMgYm9vbCByZWFkQWxsb3dDb250aW51b3Vz
U3BlbGxDaGVja2luZ0RlZmF1bHQgPSBmYWxzZTsKKworICAgIGlmICghcmVhZEFsbG93Q29udGlu
dW91c1NwZWxsQ2hlY2tpbmdEZWZhdWx0KSB7CisgICAgICAgIGlmIChbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6QCJOU0FsbG93Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmciXSkKKyAgICAgICAgICAgIGFsbG93Q29udGludW91c1NwZWxsQ2hlY2tpbmcg
PSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiTlNB
bGxvd0NvbnRpbnVvdXNTcGVsbENoZWNraW5nIl07CisKKyAgICAgICAgcmVhZEFsbG93Q29udGlu
dW91c1NwZWxsQ2hlY2tpbmdEZWZhdWx0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gYWxs
b3dDb250aW51b3VzU3BlbGxDaGVja2luZzsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBjb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQgJiYgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsK
K30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpCit7CisgICAgY29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7
CisKKyAgICAvLyBGSVhNRTogcHJlZmxpZ2h0IHRoZSBzcGVsbCBjaGVja2VyLgorfQorCitib29s
IFRleHRDaGVja2VyOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBn
cmFtbWFyQ2hlY2tpbmdFbmFibGVkOworfQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFy
Q2hlY2tpbmdFbmFibGVkKGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKQoreworICAgIGdy
YW1tYXJDaGVja2luZ0VuYWJsZWQgPSBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQ7CisKKyAgICBb
W05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsKKyAgICAK
KyAgICAvLyBXZSBjYWxsIHByZWZsaWdodFNwZWxsQ2hlY2tlcigpIHdoZW4gdHVybmluZyBjb250
aW51b3VzIHNwZWxsIGNoZWNraW5nIG9uLCBidXQgd2UgZG9uJ3QgbmVlZCB0byBkbyB0aGF0IGhl
cmUKKyAgICAvLyBiZWNhdXNlIGdyYW1tYXIgY2hlY2tpbmcgb25seSBvY2N1cnMgb24gY29kZSBw
YXRocyB0aGF0IGFscmVhZHkgcHJlZmxpZ2h0IHNwZWxsIGNoZWNraW5nIGFwcHJvcHJpYXRlbHku
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
VGV4dENoZWNrZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVGV4
dENoZWNrZXJRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0
Q2hlY2tlclF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitib29sIFRleHRDaGVja2VyOjppc0NvbnRpbnVv
dXNTcGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZChib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sIGlz
R3JhbW1hckNoZWNraW5nRW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL3dpbi9UZXh0Q2hl
Y2tlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1RleHRDaGVj
a2VyV2luLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9UZXh0Q2hl
Y2tlcldpbi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3Vz
U3BlbGxDaGVja2luZ0FsbG93ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIFRleHRDaGVja2VyOjppc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCBpc0dy
YW1tYXJDaGVja2luZ0VuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNzQzNTUpCisrKyBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTU1LDYgKzE1NSw4IEBACiAJCTFB
OTEwMTBCMTI2OEM4Q0EwMDE4NDJGNSAvKiBGaW5kSW5kaWNhdG9yV2luZG93Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE5MTAxMDkxMjY4QzhDQTAw
MTg0MkY1IC8qIEZpbmRJbmRpY2F0b3JXaW5kb3cubW0gKi87IH07CiAJCTFBQTFDQzVEMTAwRkEx
QTEwMDc4REVCQyAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFDQzVDMTAwRkExQTEwMDc4REVCQyAvKiBR
dWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJMUFBMUNEMDcxMDBGQTFCQTAwNzhERUJDIC8q
IENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQUExQ0QwNjEwMEZBMUJBMDA3OERFQkMgLyogQ2FyYm9uLmZyYW1ld29yayAq
LzsgfTsKKwkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE0MTdDOTEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLzsgfTsKKwkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJF
NjdCIC8qIFRleHRDaGVja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFj
Lm1tICovOyB9OwogCQkxQUE0NzkyMzEyQTU5RkQ5MDA4MjM2QzMgLyogUGx1Z2luUHJvY2Vzc01h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTQ3
OTIyMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tICovOyB9OwogCQkxQUE0
NzlCMDEyQTVBNDM2MDA4MjM2QzMgLyogQ2FyYm9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFDRDA2MTAwRkExQkEwMDc4REVC
QyAvKiBDYXJib24uZnJhbWV3b3JrICovOyB9OwogCQkxQUE1NkYyOTExRTkyQkM4MDA2MUI4ODIg
LyogUGx1Z2luQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFBNTZGMjgxMUU5MkJDODAwNjFCODgyIC8qIFBsdWdpbkNvbnRyb2xsZXIu
aCAqLzsgfTsKQEAgLTgwNyw2ICs4MDksOCBAQAogCQkxQUExQzdERTEwMEU4NDZFMDA3OERFQkMg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBKYXZhU2NyaXB0
Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFB
QTFDQzVDMTAwRkExQTEwMDc4REVCQyAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gUXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9RdWFydHpDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKIAkJMUFBMUNEMDYxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJvbi5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IENhcmJvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9Owor
CQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUFBNDE3RUQxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dENoZWNrZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQTQ3OTIyMTJBNTlGRDkwMDgyMzZDMyAv
KiBQbHVnaW5Qcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUGx1Z2luUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFBNTZGMjgxMUU5MkJDODAwNjFCODgyIC8qIFBsdWdpbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQUE1ODg5MDExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVn
aW5TdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0c2NhcGVQbHVn
aW5TdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTcsNiArMTkwMSw3
IEBACiAJCQkJQkM1OTcwNzQxMTY1OTFEMDAwNTUxRkNBIC8qIFByb2Nlc3NNb2RlbC5oICovLAog
CQkJCUJDMTExQjA4MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAq
LywKIAkJCQkxQTMwMDY2QzExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5o
ICovLAorCQkJCTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5oICovLAog
CQkJCTFBMEYyOUUxMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCAq
LywKIAkJCQkxQTBGMjlFMjEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5o
ICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3Qu
Y3BwICovLApAQCAtMjMwNSw2ICsyMzEwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDMjY1
MUY1MTE4MjVFRjgwMDI0M0UxMiAvKiBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eU1hYy5t
bSAqLywKIAkJCQkwRjUyNjVCQjExREQzNzg2MDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5n
QXJlYVByb3h5TWFjLm1tICovLAorCQkJCTFBQTQxN0VEMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0
Q2hlY2tlck1hYy5tbSAqLywKIAkJCQkxQTFDNjQ4NjExRjQxNUI3MDA1NTNDMTkgLyogV2ViQ29u
dGV4dE1hYy5tbSAqLywKIAkJCQk1MUFDQkI5RTEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oICovLAogCQkJCTUxQUNCQjlGMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJD
b250ZXh0TWVudVByb3h5TWFjLm1tICovLApAQCAtMjc1Niw2ICsyNzYyLDcgQEAKIAkJCQkxQTRB
OUFBODEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTRBOUM1NjEyQjgxNkNGMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5RjMzMTJCODQ0RTIwMDhGRTk4NCAv
KiBQbHVnaW5RdWlya3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQTQxN0NCMTJDMDBDQ0EwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zMTc4LDYgKzMxODUsNyBA
QAogCQkJCTFBNEE5QUE5MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRy
b2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM1NTEyQjgxNkNGMDA4RkU5ODQgLyog
TmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDOUExMkI4
MjFDRDAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gNzQzNTUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTEyNiw2ICsxMTI2LDIyIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2Fu
Y2VsRm9yT3BlblBhbmVsKCkKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0g
MDsKIH0KIAordm9pZCBXZWJQYWdlOjp1bm1hcmtBbGxNaXNzcGVsbGluZ3MoKQoreworICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPm1hcmtlcnMo
KS0+cmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpOworICAgIH0KK30KKwor
dm9pZCBXZWJQYWdlOjp1bm1hcmtBbGxCYWRHcmFtbWFyKCkKK3sKKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFt
ZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5tYXJrZXJzKCktPnJlbW92ZU1h
cmtlcnMoRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOworICAgIH0KK30KKwogdm9pZCBXZWJQYWdl
OjpzZXRUZXh0Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3QgaW5kZXgpCiB7CiAgICAgaWYgKCFt
X2FjdGl2ZVBvcHVwTWVudSkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJ
KHJldmlzaW9uIDc0MzU1KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNDMsNiArMzQzLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdm9p
ZCBkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKTsKIAorICAgIHZvaWQgdW5tYXJrQWxsTWlzc3BlbGxp
bmdzKCk7CisgICAgdm9pZCB1bm1hcmtBbGxCYWRHcmFtbWFyKCk7CisKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICB2b2lkIGRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUo
Y29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDc0MzU1
KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtOTcsNiArOTcsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAg
RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoVmVjdG9yPFdURjo6U3RyaW5nPiBmaWxlVVJMcykK
ICAgICBEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogCisgICAgIyBTcGVsaW5nIGFuZCBncmFtbWVy
LgorICAgIFVubWFya0FsbE1pc3NwZWxsaW5ncygpCisgICAgVW5tYXJrQWxsQmFkR3JhbW1hcigp
CisKICAgICBTZXRXaW5kb3dSZXNpemVyU2l6ZShXZWJDb3JlOjpJbnRTaXplIGludGVyc2VjdHNW
aWV3KQogCiAgICAgLy8gRklYTUU6IFRoaXMgYSBkdW1teSBtZXNzYWdlLCB0byBhdm9pZCBicmVh
a2luZyB0aGUgYnVpbGQgZm9yIHBsYXRmb3JtcyB0aGF0IGRvbid0IHJlcXVpcmUKSW5kZXg6IFdl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCShyZXZpc2lvbiA3NDM1NSkKKysrIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTE1LDYgKzE5MTUsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFRleHRDaGVja2VyLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNTA1
LDYgKzI1MDksMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Ncd2luXExheWVy
QmFja2VkRHJhd2luZ0FyZWFQcm94eVdpbi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAg
CQkJPEZpbGUKKyAgICAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Ncd2luXFRleHRDaGVj
a2VyV2luLmNwcCIKKyAgICAJCQkJPgorICAgIAkJCTwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1x3aW5cV2ViQ29udGV4dE1lbnVQcm94eVdpbi5jcHAi
CiAJCQkJCT4K
</data>
<flag name="review"
          id="68088"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>