codestriker-user Mailing List for Codestriker: collaborative code reviewer (Page 18)
Brought to you by:
sits
You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(12) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
|
Feb
|
Mar
(1) |
Apr
(6) |
May
(3) |
Jun
(1) |
Jul
|
Aug
(9) |
Sep
(2) |
Oct
(2) |
Nov
(8) |
Dec
(6) |
| 2004 |
Jan
(12) |
Feb
(19) |
Mar
(2) |
Apr
(2) |
May
(4) |
Jun
(11) |
Jul
|
Aug
(14) |
Sep
(4) |
Oct
(27) |
Nov
(4) |
Dec
(22) |
| 2005 |
Jan
(14) |
Feb
(2) |
Mar
(11) |
Apr
(3) |
May
(14) |
Jun
(60) |
Jul
(58) |
Aug
(76) |
Sep
(72) |
Oct
(59) |
Nov
|
Dec
(4) |
| 2006 |
Jan
(1) |
Feb
(5) |
Mar
(13) |
Apr
(11) |
May
(30) |
Jun
(17) |
Jul
(18) |
Aug
(39) |
Sep
|
Oct
|
Nov
|
Dec
(17) |
| 2007 |
Jan
(18) |
Feb
(5) |
Mar
(20) |
Apr
(2) |
May
(3) |
Jun
(13) |
Jul
(11) |
Aug
(4) |
Sep
(6) |
Oct
(9) |
Nov
(3) |
Dec
|
| 2008 |
Jan
(10) |
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(9) |
Jul
(10) |
Aug
(10) |
Sep
(13) |
Oct
(34) |
Nov
(12) |
Dec
(8) |
| 2009 |
Jan
(4) |
Feb
(11) |
Mar
(12) |
Apr
(3) |
May
(36) |
Jun
(4) |
Jul
(11) |
Aug
(12) |
Sep
(25) |
Oct
(13) |
Nov
(9) |
Dec
|
| 2010 |
Jan
|
Feb
(12) |
Mar
(6) |
Apr
(10) |
May
(12) |
Jun
|
Jul
(4) |
Aug
(9) |
Sep
(12) |
Oct
(3) |
Nov
(6) |
Dec
(3) |
| 2011 |
Jan
(2) |
Feb
(1) |
Mar
(3) |
Apr
(5) |
May
(3) |
Jun
(8) |
Jul
|
Aug
(14) |
Sep
|
Oct
(3) |
Nov
(1) |
Dec
|
| 2012 |
Jan
(2) |
Feb
(10) |
Mar
(4) |
Apr
(3) |
May
(2) |
Jun
(5) |
Jul
|
Aug
(3) |
Sep
|
Oct
(2) |
Nov
(4) |
Dec
(2) |
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(1) |
Nov
|
Dec
(2) |
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Bryce S. <bry...@dy...> - 2007-08-15 20:42:36
|
It was with despair that I read in the manual "... it may be more convenient for CVS to automatically create a Codestriker topic *automatically* whenever a commit occurs... *Unfortunately, these scripts can only be executed on the UNIX platform." *Is this still true? What are the issues involved, and how hard would it be to do the windows-perl work myself? -- Bryce Schober |
|
From: David C. <dcc...@gm...> - 2007-08-15 18:12:43
|
Is there anywhere we can see what changes made it into 1.9.4-rc1? Will there be anything else in the final release? Thanks, David |
|
From: Jason R. <jre...@ya...> - 2007-08-01 03:10:09
|
Hi,=0A=0AAnother way of dealing with this is to make a diff file yourself a= nd upload it, rather than having codestriker fetch it for you. =0A=0AThanks= =0AJason.=0A=0A----- Original Message ----=0AFrom: Mark Keisler <mark.keisl= er...@mo...>=0ATo: cod...@li...=0ASent: Tuesd= ay, July 31, 2007 11:02:26 AM=0ASubject: [Codestriker-user] multiple module= s=0A=0AHas anyone ever requested being able to specify multiple modules for= an =0ASVN repository (or others)? I have a 'customer' who asked about th= is, =0Abut it seems more a case of proper SCM technique to me. His request:= =0A" Creating a new topic that only has one module is inflexible. Suppose a= =0Adeveloper wants to create a=0Atopic with two modules M1 and M2 across a= huge span of revision numbers. =0ARather than use the=0Aclosest ancestor m= odule A of both modules (and thus include potentially =0Aa bunch of irrelev= ant crap=0A[subdirs of A]), the developer simply supplys M1 and M2 when s/h= e =0Acreates the topic."=0A=0A---------------------------------------------= ----------------------------=0AThis SF.net email is sponsored by: Splunk In= c.=0AStill grepping through log files to find problems? Stop.=0ANow Search= log events and configuration files using AJAX and a browser.=0ADownload yo= ur FREE copy of Splunk now >> http://get.splunk.com/=0A___________________= ____________________________=0ACodestriker-user mailing list=0ACodestriker-= us...@li...=0Ahttps://lists.sourceforge.net/lists/listinfo/c= odestriker-user=0A=0A=0A=0A=0A=0A =0A________________________________= ____________________________________________________=0ANeed a vacation? Get= great deals=0Ato amazing places on Yahoo! Travel.=0Ahttp://travel.yahoo.co= m/ |
|
From: Bryce S. <bry...@dy...> - 2007-07-31 15:09:59
|
We have exactly the same use case. We have a few source code trees for completely different architectures, languages, and processors, and a build tools tree that all get tagged together for our builds. In our case, though, I think we can just use the tags on the parent module and get only the relevant sub-trees, because when we do our tagging we build a piece-meal sandbox of only the sub-modules that we care about, and do the tag on those. On 7/31/07, Mark Keisler <mar...@mo...> wrote: > > Has anyone ever requested being able to specify multiple modules for an > SVN repository (or others)? I have a 'customer' who asked about this, > but it seems more a case of proper SCM technique to me. His request: > " Creating a new topic that only has one module is inflexible. Suppose a > developer wants to create a > topic with two modules M1 and M2 across a huge span of revision numbers. > Rather than use the > closest ancestor module A of both modules (and thus include potentially > a bunch of irrelevant crap > [subdirs of A]), the developer simply supplys M1 and M2 when s/he > creates the topic." > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Codestriker-user mailing list > Cod...@li... > https://lists.sourceforge.net/lists/listinfo/codestriker-user > -- Bryce Schober |
|
From: Mark K. <mar...@mo...> - 2007-07-31 15:02:40
|
Has anyone ever requested being able to specify multiple modules for an SVN repository (or others)? I have a 'customer' who asked about this, but it seems more a case of proper SCM technique to me. His request: " Creating a new topic that only has one module is inflexible. Suppose a developer wants to create a topic with two modules M1 and M2 across a huge span of revision numbers. Rather than use the closest ancestor module A of both modules (and thus include potentially a bunch of irrelevant crap [subdirs of A]), the developer simply supplys M1 and M2 when s/he creates the topic." |
|
From: Bryce S. <bry...@dy...> - 2007-07-30 23:00:56
|
for context: C:>perl -v This is perl, v5.8.8 built for MSWin32-x86-multi-thread (with 25 registered patches, see perl -V for more detail) Copyright 1987-2006, Larry Wall Binary build 817 [257965] provided by ActiveState http://www.ActiveState.com Built Mar 20 2006 17:54:25 I had some confusion regarding the required "Template" module. install.pl originally said: Missing "Template" Minimum version required: 2.07 So I tried in ppm: install template - that gave me something, but install still complained. It wasn't until I searched several sources that I thought to try "Template-Toolkit" instead, which seems to have done the trick. It'd be nice to save other windows users this confusion... -- Bryce Schober |
|
From: Russell C. <cat...@th...> - 2007-07-16 21:46:35
|
Opps seem I missed one more spot where the wrong line number is used. |
|
From: Russell C. <cat...@th...> - 2007-07-16 21:46:18
|
perforce has multiple "text" file types. make sure to recognize them all -Russell Cattelan |
|
From: Russell C. <cat...@th...> - 2007-07-16 20:28:49
|
Many time patches come from various source (email for example) This is a quick patch to run patches through fiterdiff such that the rest of the CS patch parsing engine can handle the patch. -Russell Cattelan |
|
From: Russell C. <cat...@th...> - 2007-07-16 20:28:09
|
There is a small bug with parallel when using a perforce repository, actually this seem to be broken for any repo. When doing a parallel view codestriker will pull the current version of the file from perforce and placing each line of the file into an array. When codestriker is displaying the common parts of the file when doing a side by side diff it was using the run line number of the previous version of the file. Since the line numbers and the actual lines in the array do not correspond now this resulted in missing lines. Patch attached. Also added a check to make sure there are actual lines in the file array since a failed p4 print would result in an empty array and then a side by side diff with a bunch of blank lines. -Russell Cattelan |
|
From: Nitesh K. <nit...@gm...> - 2007-07-11 05:51:02
|
Hi For creating a new topic, I am using p4 describe -du 132[myChangeListNumber] > /tmp/review.txt command for creating diff file. Diff file created with p4 describe command, contains all changed files alon= g with the difference with prior version. How ever when we view this file in codestriker, codestriker display all list of changed files, but none of the files show any code changes. Could you tell us why this is happening ? Also I have noticed following error in apache logs, [Tue Jul 10 15:37:48 2007] [error] [client 0.0.0.0] [Tue Jul 10 15:37:48 2007] codestriker.pl: Use of uninitialized value in concatenation (.) or string at D:/codestriker-1.9.1/bin/../lib/Codestriker/Action/ViewTopicFile.= pm line 166. FYI, if I use "p4 diff =96du file1.2 file1.1" command for a particular file then codestriker display proper output and also for cvs application is working fine. *Working environment details:* 1. Active Perl Version 5.8.8 2. Apache 2.2.4 3. CodeStriker 1.9.1 and CodeStriker 1.9.3 4. MySql 5.0 5. Win32 So could you please help me out for viewing file changes occur in a particular changelist of perforce. --=20 Nitesh Kumar Noida |
|
From: Klug, J. A <Joh...@UN...> - 2007-07-06 16:08:05
|
The following URL has the solution: http://lists.macosforge.org/pipermail/calendarserver-users/2006-November /000095.html My system had heimdal installed. It needed heimdal-devel. Same was true of openssl. It also needed openssl-devel. |
|
From: Klug, J. A <Joh...@UN...> - 2007-07-05 23:58:22
|
Checksetup.pl fails as follows: (GSSAPI is a dependency of Authen-SASL) Removing previously used /tmp/.cpan/build/GSSAPI-0.24 CPAN.pm: Going to build A/AG/AGROLMS/GSSAPI-0.24.tar.gz Welcome to GSSAPI.pm setup! run "perl Makefile.PL --help" to see further installation options ---------------------------------------------------------- Searching krb5-config command... not found! at Makefile.PL line 94. These SUSE packages are installed: heimdal-0.6.1rc3-55.18 heimdal-lib-0.6.1rc3-55.15 heimdal-tools-0.6.1rc3-55.9 None of these packages include anything like krb5-config. |
|
From: Jason R. <jre...@ya...> - 2007-07-02 14:49:52
|
Hi, Sorry for coming in a bit late on this. If codestriker created the highlighted lines when the topic was created, the 10 -20 seconds or so of syntax processing becomes way less of a big deal. Make a new field in the database that has the cached "display" version of the topic. Also having a cached html version of the document gets codestriker a long way towards reviewing pdfs, word files, excel etc. Thanks Jason. ----- Oiginal Message ---- From: David Sitsky <dav...@gm...> To: Nikita Borodikhin <el...@gm...> Cc: cod...@li... Sent: Monday, June 25, 2007 7:35:15 PM Subject: Re: [Codestriker-user] Syntax highlight (patch included) Hi Nikita, > Probably we should not stuck to only one (webcpp or other) but provide > generic layer for use external highlighters. I think, we could use any > one that: > * builds css-formatted code by using <span class="style"> and closes > tags correctly; > * don't add any symbols other than escaped standard one (lt, gt, amp); > * can behave as line filter (get text from stdin and output it to stdout). Sounds like an excellent idea. > To add such highlighter support we need is to provide its description: > * program name and command line template; > * correspondence between file externsions and program's language names; > * description of header we should strip out from highlighter output; > * correspondence between program's styles and our styles. > > In my Debian there are some tools that meet these requirements: > * highlight: http://www.andre-simon.de/doku/highlight/en/highlight.html > * GNU source-hightlight: > http://www.gnu.org/software/src-highlite/source-highlight.html > * Web C Plus Plus: http://webcpp.sourceforge.net > > To allow usage of pure Perl highlighter (Kate engine) it seems to be a > good idea to name styles after its standard ones. Agreed! Thanks for looking into this, you'll make a lot of people happy! Cheers, David ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Codestriker-user mailing list Cod...@li... https://lists.sourceforge.net/lists/listinfo/codestriker-user ____________________________________________________________________________________ Got a little couch potato? Check out fun summer activities for kids. http://search.yahoo.com/search?fr=oni_on_mail&p=summer+activities+for+kids&cs=bz |
|
From: David S. <dav...@gm...> - 2007-06-25 23:42:46
|
Hi Nitesh, > 1. While i try to create a topic it creates, but when i try to view the old > new file through the View Line or Parallel link, it does not establish the > link with perforce, rather gives me error on Perforce.pm file. I tried > searching its solution on forum but could not find it. Without this > functionality of integration with SCM it can not used in our project. You haven't provided any information on what the error message is! The usual culprit is permissions. You need to make sure the user running apache can run the perforce executables and connect to your depot without needing to enter any passwords. A quick look at your codestriker.conf file, you have the following: $p4 = 'C:\Program Files\Perforce'; In fact, this needs to refer to the actual p4.exe file, should this not be something like: $p4 = 'C:\Program Files\Perforce\p4.exe'; > 2. I see that i am not able to upload any txt file greater than 1000 lines. Again - you haven't provided the error message you received. Check out http://www.bugzilla.org/docs/tip/html/configuration.html#database-engine. I suspect you need to update your mysql's max_allowed_packet size to a large number. I am not sure if this is something new with the latest MySQL distributions, but I need to add this to the documentation. Somebody mentioned this on the list before. Cheers, David |
|
From: David S. <dav...@gm...> - 2007-06-25 23:35:22
|
Hi Nikita, > Probably we should not stuck to only one (webcpp or other) but provide > generic layer for use external highlighters. I think, we could use any > one that: > * builds css-formatted code by using <span class="style"> and closes > tags correctly; > * don't add any symbols other than escaped standard one (lt, gt, amp); > * can behave as line filter (get text from stdin and output it to stdout). Sounds like an excellent idea. > To add such highlighter support we need is to provide its description: > * program name and command line template; > * correspondence between file externsions and program's language names; > * description of header we should strip out from highlighter output; > * correspondence between program's styles and our styles. > > In my Debian there are some tools that meet these requirements: > * highlight: http://www.andre-simon.de/doku/highlight/en/highlight.html > * GNU source-hightlight: > http://www.gnu.org/software/src-highlite/source-highlight.html > * Web C Plus Plus: http://webcpp.sourceforge.net > > To allow usage of pure Perl highlighter (Kate engine) it seems to be a > good idea to name styles after its standard ones. Agreed! Thanks for looking into this, you'll make a lot of people happy! Cheers, David |
|
From: David S. <dav...@gm...> - 2007-06-25 23:34:02
|
Hi Nikita, > It seems the speed difference is nonlinear function of size because > sqlite3 amalgamation was processed by webc++ at 16 seconds (>300 > Kate's seconds). Wa.... this was my memory with Kate. In my opinion, this doesn't really make it very practical for the types of reviews I do. > I don't think Enscipt is the good for Codestriker because Enscript > uses visual formatting (b, i, font color="xxx" tags) instead of > semantic (span class="comment"). Codestriker should parse highlighted Agreed. Cheers, David |
|
From: Nikita B. <el...@gm...> - 2007-06-25 16:52:19
|
Hello, David! On 6/25/07, David Sitsky <dav...@gm...> wrote: > Can you do a comparison between Kate and webc++ on something a little > smaller? Say something with roughly 1000 SLOCs. I'd be curious to > see what the difference is. I have an idea about using external program to do syntax highlight. Probably we should not stuck to only one (webcpp or other) but provide generic layer for use external highlighters. I think, we could use any one that: * builds css-formatted code by using <span class="style"> and closes tags correctly; * don't add any symbols other than escaped standard one (lt, gt, amp); * can behave as line filter (get text from stdin and output it to stdout). To add such highlighter support we need is to provide its description: * program name and command line template; * correspondence between file externsions and program's language names; * description of header we should strip out from highlighter output; * correspondence between program's styles and our styles. In my Debian there are some tools that meet these requirements: * highlight: http://www.andre-simon.de/doku/highlight/en/highlight.html * GNU source-hightlight: http://www.gnu.org/software/src-highlite/source-highlight.html * Web C Plus Plus: http://webcpp.sourceforge.net To allow usage of pure Perl highlighter (Kate engine) it seems to be a good idea to name styles after its standard ones. -- Nikita V. Borodikhin, System Administrator NIKB-RIPN BNV7-RIPE Registered Linux user #256562 with the Linux Counter |
|
From: Nitesh K. <nit...@gm...> - 2007-06-25 15:44:30
|
IyAtKi1wZXJsLSotDQojIENvbmZpZ3VyYXRpb24gZmlsZSBmb3IgY29kZXN0cmlrZXIucGwuDQoN CiMgRGF0YWJhc2UgdG8gdXNlIGZvciBzdG9yaW5nIGNvZGVzdHJpa2VyIGRhdGEuICBFeGFtcGxl cyBnaXZlbiBhcmUNCiMgTXlTUUwsIE9yYWNsZSwgU1FMIFNlcnZlciwgYW5kIFBvc3RncmVTUUwg UmVmZXIgdG8gdGhlDQojIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGNyZWF0ZSB0aGUgQ29kZXN0 cmlrZXIgZGF0YWJhc2UuDQoNCiMgRXhhbXBsZSBvZiBhIE15U1FMIGRhdGFiYXNlIFVSTCByZXNp ZGluZyBvbiB0aGUgc2FtZSBtYWNoaW5lIGFzIHRoZSB3ZWJzZXJ2ZXIuDQojJGRiID0gJ0RCSTpt eXNxbDpkYm5hbWU9Y29kZXN0cmlrZXJkYic7DQoNCiMgRXhhbXBsZSBvZiBhIE15U1FMIGRhdGFi YXNlIG9uIGhvc3QgZGJob3N0LiAgSW4gdGhpcyBzaXR1YXRpb24sIHlvdSBuZWVkIHRvDQojIGVu c3VyZSB0aGF0IHRoZSB3ZWJzZXJ2ZXIgaG9zdCBoYXMgcGVybWlzc2lvbiB0byBjb25uZWN0IHRv IHRoZSBkYXRhYmFzZSBvbg0KIyBkYmhvc3QuICBDaGVjayB0aGUgTXlTUUwgZG9jdW1lbnRhdGlv biBmb3IgZnVydGhlciBkZXRhaWxzLg0KJGRiID0gJ0RCSTpteXNxbDpkYm5hbWU9Y29kZXN0cmlr ZXI7aG9zdD0xOTIuMTY4LjY2Ljc3OjMzMDYnOw0KDQojIEV4YW1wbGUgb2YgYW4gb3JhY2xlIGRh dGFiYXNlIFVSTC4NCiMkZGIgPSAnREJJOk9yYWNsZTpob3N0PTEyNy4wLjAuMTtzaWQ9bG9jYWwn Ow0KDQojIEV4YW1wbGUgb2YgYW4gU1FMIFNlcnZlciBPREJDIGRhdGFiYXNlIFVSTC4NCiMkZGIg PSAnREJJOk9EQkM6Q29kZXN0cmlrZXInOw0KDQojIEV4YW1wbGUgb2YgYSBQb3N0Z3JlU1FMIGRh dGFiYXNlIFVSTCB1c2luZyB0aGUgbmF0aXZlIFBnIGRyaXZlci4NCiMkZGIgPSAnREJJOlBnOmRi bmFtZT1jb2Rlc3RyaWtlcmRiJzsNCg0KIyBFeGFtcGxlIG9mIGEgU1FMaXRlIGRhdGFiYXNlIFVS TC4gIE5vdCBmdWxseSBzdXBwb3J0ZWQgeWV0Lg0KIyRkYiA9ICdEQkk6U1FMaXRlOmRibmFtZT0v dmFyL3d3dy9jb2Rlc3RyaWtlcmRiJzsNCg0KIyBEYXRhYmFzZSB1c2VyLg0KIyRkYnVzZXIgPSAn c3lzdGVtJzsNCiRkYnVzZXIgPSAncm9vdCc7DQoNCiMgRGF0YWJhc2UgcGFzc3dvcmQuDQojJGRi cGFzc3dkID0gJ21hbmFnZXInOw0KJGRicGFzc3dkID0gJ25pdGVzaCc7DQoNCiMgTG9jYXRpb24g b2YgdGhlIG1haWxpbmcgaG9zdC4gIFRoaXMgaXMgdXNlZCB3aGVuIHNlbmRpbmcgb3V0IGNvZGVz dHJpa2VyDQojIGNvbW1lbnRzLg0KJG1haWxob3N0ID0gJ0JMUkVYMDEuaW4uY29ycC50YXZhbnQu Y29tJzsNCg0KIyBTZXQgdGhlIHVzZXIgYW5kIHBhc3N3b3JkIHBhcmFtZXRlcnMgaWYgJG1haWxo b3N0IHJlcXVpcmVzIFNNVFANCiMgYXV0aGVudGljYXRpb24uICBJZiBjb21tZW50ZWQgb3V0LCBp dCBpcyBhc3N1bWVkIGF1dGhlbnRpY2F0aW9uIGlzIA0KIyBub3QgcmVxdWlyZWQuDQojJG1haWx1 c2VyID0gJ3NtdHB1c2VyJzsNCiMkbWFpbHBhc3N3ZCA9ICdzbXRwcGFzc3dkJzsNCg0KIyBJbmRp Y2F0ZSB3aGV0aGVyIHRvIHRyeSBhbmQgY29tcHJlc3Mgb3V0cHV0IGlmIHRoZSBjbGllbnQgYnJv d3Nlcg0KIyBzdXBwb3J0cyBpdC4gIFRoaXMgY2FuIG1ha2UgYSB0cmVtZW5kb3VzIGRpZmZlcmVu Y2UgaW4gYmFuZHdpZHRoLA0KIyBlc3BlY2lhbGx5IG92ZXIgc2xvdyBsaW5rcy4NCiMkdXNlX2Nv bXByZXNzaW9uID0gMDsNCg0KIyBMb2NhdGlvbiBvZiBnemlwLiAgR3ppcCBpcyB1c2VkIG9ubHkg aWYgeW91IGRvbid0IGhhdmUgQ29tcHJlc3M6OlpsaWINCiMgaW5zdGFsbGVkLiAgTm90ZSwgaWYg cnVubmluZyB3aXRoIG1vZF9wZXJsLCB5b3UgX211c3RfIGhhdmUgQ29tcHJlc3M6WmxpYg0KIyBp bnN0YWxsZWQuICBJZiBnemlwIGlzIG5vdCBhdmFpbGFibGUsIHRoaXMgY2FuIGJlIHNldCB0byAi Ii4NCiMkZ3ppcCA9ICcvYmluL2d6aXAnOw0KDQojIExvY2F0aW9uIG9mIHRoZSBjdnMgYmluYXJ5 Lg0KJGN2cyA9ICdjOlxQcm9ncmFtIEZpbGVzXEdOVVxXaW5DdnMgMS4zXENWU05UXGN2cy5leGUn Ow0KIyRjdnMgPSAnL3Vzci9iaW4vY3ZzJzsNCg0KIyBMb2NhdGlvbiBvZiB0aGUgc3ZuIGJpbmFy eS4NCiRzdm4gPSAnQzpcUHJvZ3JhbSBGaWxlc1xUb3J0b2lzZVNWTlxiaW5cVFNWTkNhY2hlLmV4 ZSc7DQojJHN2biA9ICcvdXNyL2Jpbi9zdm4nOw0KDQojIExvY2F0aW9uIG9mIHRoZSBzc2ggYmlu YXJ5LiAgVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGlmIGEgQ1ZTIDpleHQNCiMgdHlwZSByZXBvc2l0 b3J5IGlzIHVzZWQuDQojJHNzaCA9ICcvdXNyL2xvY2FsL2Jpbi9zc2gnOw0KDQojIExvY2F0aW9u IG9mIHRoZSBwNCAoUGVyZm9yY2UgY2xpZW50KSBiaW5hcnkuICBUaGlzIGRvZXMgbm90IG5lZWQg dG8gYmUgc2V0DQojIGlmIHlvdSBhcmUgYm90IHVzaW5nIGFueSBQZXJmb3JjZSByZXBvc2l0b3Jp ZXMuDQokcDQgPSAnQzpcUHJvZ3JhbSBGaWxlc1xQZXJmb3JjZSc7DQoNCiMgTG9jYXRpb24gb2Yg dGhlIHZzcyBiaW5hcnkuICBUaGlzIGNhbiBiZSBpZ25vcmVkIGZvciBkZXBsb3ltZW50cyB3aGlj aCBkb24ndA0KIyB1c2UgVlNTIChWaXN1YWwgU291cmNlIFNhZmUpLg0KIyR2c3MgPSAnQzovUHJv Z3JhbSBGaWxlcy9NaWNyb3NvZnQgVmlzdWFsIFN0dWRpby9WU1Mvd2luMzIvc3MuZXhlJzsNCg0K IyBUZW1wb3JhcnkgZGlyZWN0b3J5IENvZGVzdHJpa2VyIGNhbiB1c2UuICBGb3IgKk5JWCBwbGF0 Zm9ybXMsIHRoaXMgd2lsbA0KIyAvdG1wIGJ5IGRlZmF1bHQsIGZvciBXaW5kb3dzIDIwMDAgYzpc d2lubnRcdGVtcCBhbmQgZm9yIFhQLCBjOlx3aW5kb3dzXHRlbXAuDQojIEZvciBXaW4zMiBkZXBs b3ltZW50cywgdGhlc2UgdGVtcCBkaXJlY3RvcmllcyBtYXkgbm90IGJlIGFjY2Vzc2libGUgdG8N CiMgdGhlIHVzZXIgcnVubmluZyBJSVMgb3IgQXBhY2hlLCBzbyBleHBsaWNpdGx5IHNwZWNpZnkg YW4gYXBwcmlvcmlhdGUNCiMgZGlyZWN0b3J5IGhlcmUgdGhhdCBleGlzdHMgb24gdGhlIHN5c3Rl bS4gIEZvciAqTklYIHBsYXRmb3JtcywgdGhlcmUgaXMNCiMgdXN1YWxseSBubyBuZWVkIHRvIGRv IGFueXRoaW5nIGhlcmUuDQojJHRtcGRpciA9ICcvdG1wL2NvZGVzdHJpa2VyJzsNCiMkdG1wZGly ID0gJ2M6L2NvZGVzdHJpa2VyIHRlbXAnOw0KDQojIElmIGNvZGVzdHJpa2VyIGlzIGluc3RhbGxl ZCBkaWZmZXJlbnRseSB0byB0aGF0IGRlc2NyaWJlZCBpbiB0aGUgUkVBRE1FIGZpbGUNCiMgKGZv ciBleGFtcGxlIG9uIHRoZSBzb3VyY2Vmb3JnZSBzZXJ2ZXJzKSwgaXQgbWF5IGJlIG5lY2Vzc2Fy eSB0byBleHBsaWNpdGx5DQojIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb2Rlc3RyaWtl cl9jc3MgYXMgYSBVUkwuDQokY29kZXN0cmlrZXJfY3NzID0gJyc7DQoNCiMgVmFsaWQgcmVwb3Np dG9yaWVzIHdoaWNoIG1heSBiZSBzZWxlY3RlZCBhdCB0aGUgY3JlYXRlIHRvcGljIHNjcmVlbi4N CiMgVGhlIG9yZGVyIHNob3duIGhlcmUgaXMgdGhlIG9yZGVyIHByZXNlbnRlZCBpbiB0aGUgb3B0 aW9uIGxpc3QuICBNb3N0DQojIGRlcGxveW1lbnRzIHdpbGwgb25seSByZXF1aXJlIGEgc2luZ2xl IHJlcG9zaXRvcnkgdG8gYmUgc3BlY2lmaWVkLg0KIyBDb21tZW50IG91dCAvIG1vZGlmeSBlbnRy aWVzIGFwcHJvcHJpYXRlIGZvciB5b3VyIGRlcGxveW1lbnQuDQojDQojIElmIHRoaXMgbGlzdCBp cyBlbXB0eSBpdCB3b24ndCBiZSBwb3NzaWJsZSB0byB2aWV3IHRoZSBlbnRpcmUgY29udGVudHMg b2YgYQ0KIyBmaWxlIGJlZm9yZSB0aGUgcHJvcG9zZWQgY2hhbmdlIGFuZC9vciBhZnRlci4gQWxs IG9mIHRoZSBwbGFjZXMgDQojIGluIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGFzayBmb3IsIG9yIGRp c3BsYXkgcmVwb3NpdG9yeSBpbmZvcm1hdGlvbiB3aWxsDQojIGJlIGhpZGRlbiBhbmQgbGFzdGx5 LCBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gbWFrZSBhIGRpZmYgcmV2aWV3IHRvcGljDQojIG9u IGZpbGVzIHRoYXQgYWxyZWFkeSBjaGVja2VkIGluLg0KIw0KIyBZb3UgYWxzbyBuZWVkIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSB1c2VyIHJ1bm5pbmcgeW91ciB3ZWJzZXJ2ZXIgaGFzDQojIHBlcm1p c3Npb24gdG8gcnVuIHRoZSBjbGllbnQgU0NNIHByb2dyYW0gKGVnLCBjdnMsIHA0LCBzdm4pLCBh bmQgdG8NCiMgY29ubmVjdCB0byB0aGUgcmVwb3NpdG9yeS4NCkB2YWxpZF9yZXBvc2l0b3JpZXMg PQ0KICAgICgNCiAgICAgICdwZXJmb3JjZTpyYWplc2gua3VzaHdhaGE6d2VsY29tZUBwZXJmb3Jj ZToxNjY2JywNCiAgICAgICdwZXJmb3JjZTp2aWNoaXRyYS52ZWVyOlVyVDNaRTJnQDE5Mi4xNjgu MTk4LjEzOjI2NjYnLA0KICAgICAgJzpwc2VydmVyOm5pdGVzaC5rdW1hcjp3ZWxjb21lOkBjdnMu aW4uY29ycC50YXZhbnQuY29tOi9jdnMvUGFyYWRpZ21WJywNCiAgICAgICc6cHNlcnZlcjphc2h1 dG9zaC5taXNocmE6d2VsY29tZTpAY3ZzLmluLmNvcnAudGF2YW50LmNvbToyNDAxL2N2cy9Vbml0 ZWRMZXhXZWInLA0KICAgICk7DQoNCiMgQSBtYXBwaW5nIG9mIHJlcG9zaXRvcnkgVVJMcyB0byBu YW1lcy4gIEluIGFueSBzY3JlZW4gd2hlcmUgYQ0KIyByZXBvc2l0b3J5IGlzIGRpc3BsYXllZCwg aWYgdGhlcmUgaXMgYSBtYXBwaW5nIGZvciB0aGUgcmVwb3NpdG9yeQ0KIyBkZWZpbmVkIGhlcmUs IHRoZW4gdGhlIHN5bWJvbGljIG5hbWUgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGVhZCBvZg0KIyBp dHMgcmF3IFVSTC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIFVSTCBjb250YWlucyBzZW5zaXRp dmUNCiMgdXNlcm5hbWUvcGFzc3dvcmQgaW5mb3JtYXRpb24sIG9yIHRoZSBzeW1ib2xpYyBuYW1l IGlzIG1vcmUNCiMgbWVhbmluZ2Z1bCB0byB0aGUgZW5kLXVzZXIuICBJZiB0aGVyZSBpcyBubyBt YXBwaW5nIGRlZmluZWQgZm9yIGENCiMgc3BlY2lmaWMgcmVwb3NpdG9yeSwgaXRzIFVSTCB3aWxs IGJlIGRpc3BsYXllZC4NCiMkcmVwb3NpdG9yeV9uYW1lX21hcCA9DQojew0KIyAgICAnL2hvbWUv c2l0cy9jdnMnID0+ICdMb2NhbCBDVlMnLA0KIyAgICAnOnBzZXJ2ZXI7cGFzc3dvcmQ9d2VsY29t ZTphc2h1dG9zaC5taXNocmFAY3ZzLmluLmNvcnAudGF2YW50LmNvbToyNDAxL2N2cy9Vbml0ZWRM ZXhXZWInID0+ICdTRiBDVlMnDQojfTsNCg0KIyBBIG1hcHBpbmcgb2YgcmVwb3NpdG9yaWVzIHRv IGZpbGVuYW1lIHZpZXdlcnMuICBFeGFtcGxlcyBvZiBzdWNoIHN5c3RlbXMNCiMgd291bGQgYmUg Q1ZTd2ViIGFuZCBWaWV3Q1ZTLCBmb3IgbG9jYWwgcmVwb3NpdG9yaWVzLiAgTWFwcGluZ3MgYXJl DQojIG5vdCByZXF1aXJlZCBmb3IgcmVtb3RlIENWU3dlYiBhbmQgVmlld0NWUyByZXBvc2l0b3Jp ZXMsIGFzIHRoZXkgYXJlDQojIHZpZXdlcnMgdGhlbXNlbHZlcy4gIFdoZW4gdmlld2luZyByZXZp ZXdzLCBsaW5rcyBmcm9tIGZpbGVuYW1lcyB3aWxsIGJlDQojIG1hcHBlZCB0byB0aGVzZSBVUkxz LCB0byBvYnRhaW4gcmV2aXNpb24gbG9nIGluZm9ybWF0aW9uIGZvciB0aGF0IGZpbGUuDQojJGZp bGVfdmlld2VyID0NCiN7DQojICAgICdTRiBDVlMnID0+ICdodHRwOi8vY3ZzLmluLmNvcnAudGF2 YW50LmNvbS9pbmRleC5jZ2knDQojfTsNCg0KIyBFeGNsdWRlIHRoZXNlIGZpbGUgdHlwZXMgZnJv bSByZXZpZXcgdG9waWNzLiAgIA0KIyBZb3Ugd2lsbCBnZW5lcmFsbHkgd2FudCB0byBleGNsdWRl IGFueSBub24taHVtYW4tcmVhZGFibGUgZmlsZXMuDQpAZXhjbHVkZV9maWxlX3R5cGVzID0gKCdy dGYnLCAnZG9jJywgJ2dpZicsICdibXAnLCAnanBlZycsICdqcGcnLCAnbWRiJywNCgkJICAgICAg ICdwcHQnLCAndnNkJywgJ3hscycsICd6aXAnLCAndGd6JywgJ3RhcicsICdneicsDQoJCSAgICAg ICAnb3B0JywgJ2FwcycsICduY2InLCAnYScsICdzbycsICdkbGwnLCAnbGliJywNCgkJICAgICAg ICdleGUnLCAncG5nJywgJ3BkZicsICdiaW4nLCAnb3V0JywgJ2xkJywgJ2ZtJywNCgkJICAgICAg ICdpbmRkJywgJ3dhdicsICdvJywgJ29iaicsICdtcHAnLCAndnN3JywgJ2pmaWYnLA0KCQkgICAg ICAgJ3RpZicsICd0aWZmJywgJ3hibScsICdmbnQnLCAndHRmJywgJ3BmbScsICdwZmInLA0KCQkg ICAgICAgJ2VwcycsICd3cGonLCAnc3hpJyk7DQoNCiMgVGhlIG51bWJlciBvZiBwcm9ibGVtcyBm b3VuZCBwZXIgbGluZSBkcm9wcyBpZiB0aGUgc2l6ZSBvZiB0aGUgDQojIHRvcGljIGlzIHRvbyBs YXJnZS4gQSBjb21tb24gaW5zcGVjdGlvbiBwaXRmYWxsIGlzIGZvciBhdXRob3JzIHRvIA0KIyBh dHRlbXB0IHRvIHJldmlldyB0b28gbXVjaCBtYXRlcmlhbCBhbmQgdGhlbiBtaXNzIHByb2JsZW1z LiANCiMgVGhlc2UgdHdvIG9wdGlvbnMgYWxsb3cgdGhlIENvZGVzdHJpa2VyIGFkbWluaXN0cmF0 b3IgdG8gbGltaXQgDQojIHRoZSBsZW5ndGggb2YgdGhlIHRvcGljcy4gVG9waWNzIHRoYXQgaGF2 ZSBtb3JlIGxpbmVzIHRoYW4gDQojICRtYXhpbXVtX3RvcGljX3NpemVfbGluZXMgYXJlIHJlamVj dGVkIHdoZW4gdGhleSBhcmUgY3JlYXRlZC4gDQojIFRvcGljcyB0aGF0IGFyZSBsYXJnZXIgdGhh biAkc3VnZ2VzdGVkX3RvcGljX3NpemVfbGluZXMgZ2VuZXJhdGUgDQojIGEgd2FybmluZyBkaXNw bGF5ZWQgaW4gdGhlIHRvcGljIHBhZ2UsIGJ1dCBhcmUgYWNjZXB0ZWQgaW50byB0aGUgDQojIHN5 c3RlbS4gQ29kZXN0cmlrZXIgbWVhc3VyZXMgdGhhdCBsZW5ndGggb2YgdGhlIHRvcGljIGJ5IGNv dW50aW5nIA0KIyB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSB0b3BpYyB0ZXh0Lg0KIw0KIyBU aGUgY29kZXN0cmlrZXIgZGVmYXVsdCBvZiBub3QgZW5mb3JjaW5nIGFueSBsaW1pdHMgaXMgc3Bl Y2lmaWVkIGJ5DQojIHNldHRpbmdzIGVpdGhlciBvcHRpb24gdG8gYW4gZW1wdHkgc3RyaW5nLiBJ ZiB5b3UgYXJlIG5vdCBzdXJlIA0KIyB3aGF0IGEgcmVhc29uYWJsZSBsaW1pdCB3b3VsZCBiZSwg c3RhcnQgd2l0aCBhIHN1Z2dlc3RlZF90b3BpY19zaXplX2xpbmVzDQojIHNldCB0byAzNTAsIGFu ZCBhZGp1c3Qgd2l0aCBleHBlcmllbmNlLg0KJG1heGltdW1fdG9waWNfc2l6ZV9saW5lcyA9ICcx NTAwJzsNCiRzdWdnZXN0ZWRfdG9waWNfc2l6ZV9saW5lcyA9ICcxNDAwJzsNCg0KIyBUaGUgZGVm YXVsdCB2aWV3aW5nIG1vZGUgdG8gdXNlIGluIHRoZSBVUkwgd2hlbiBjcmVhdGluZyBhIHRvcGlj LiAgQ2FuDQojIGJlIGVpdGhlciAoJE5PUk1BTF9NT0RFLCAkQ09MT1VSRURfTU9ERSBvciAkQ09M T1VSRURfTU9OT19NT0RFKS4gIFRoZXNlDQojIHZhbHVlcyBzaG91bGQgbm90IGJlIGNoYW5nZWQu DQokTk9STUFMX01PREUgPSAwOw0KJENPTE9VUkVEX01PREUgPSAxOw0KJENPTE9VUkVEX01PTk9f TU9ERSA9IDI7DQoNCiRkZWZhdWx0X3RvcGljX2NyZWF0ZV9tb2RlID0gJENPTE9VUkVEX01PREU7 DQoNCiMgVGhlIGRlZmF1bHQgbGluZSBicmVhayB2aWV3aW5nIG1vZGUgdG8gdXNlIGluIHRoZSBV Ukwgd2hlbiB2aWV3aW5nIGENCiMgdG9waWMuICBDYW4gYmUgZWl0aGVyICRMSU5FX0JSRUFLX05P Uk1BTF9NT0RFIG9yICRMSU5FX0JSRUFLX0FTU0lTVF9NT0RFLg0KIyBVc2luZyAkTElORV9CUkVB S19BU1NJU1RfTU9ERSBpbmRpY2F0ZXMgdGhhdCBleHRyYSBsaW5lIGJyZWFrcyBtYXkgYmUNCiMg dXNlZCBpbiB0aGUgdG9waWMgZGlzcGxheSBpZiB0aGUgcmV2aWV3IGhhcyB2ZXJ5IGxvbmcgY29k ZSBsaW5lcy4gIFVzaW5nDQojICRMSU5FX0JSRUFLX05PUk1BTF9NT0RFIHdpbGwgZW5zdXJlIHRo YXQgdGhlIGRpc3BsYXkgbWF0Y2hlcyB0aGUgbGluZQ0KIyBicmVha3MgcHJlc2VudCBpbiB0aGUg Y29kZS4gIFRoZSBsaW5lIGJyZWFrIG1vZGUgY2FuIGFsc28gYmUgY2hhbmdlZA0KIyBkeW5hbWlj YWxseSBpbiB0aGUgdmlldyB0b3BpYyBzY3JlZW4uICBUaGVyZSBpcyB1c3VhbGx5IG5vIG5lZWQg dG8NCiMgY2hhbmdlIHRoaXMgc2V0dGluZyB1bmxlc3MgeW91IHJlZ3VsYXJseSByZXZpZXcgY29k ZSB3aXRoIHZlcnkgbG9uZw0KIyBsaW5lcy4NCiRMSU5FX0JSRUFLX05PUk1BTF9NT0RFID0gMTsN CiRMSU5FX0JSRUFLX0FTU0lTVF9NT0RFID0gMjsNCg0KJGRlZmF1bHRfdG9waWNfYnJfbW9kZSA9 ICRMSU5FX0JSRUFLX05PUk1BTF9NT0RFOw0KDQojIFdoZW4gZGlzcGxheWluZyBhIHRvcGljLCBp ZiB0aGlzIHZhbHVlIGlzIC0xLCB0aGVuIGFsbCBmaWxlcyBpbiB0aGUNCiMgdG9waWMgYXJlIGRp c3BsYXllZCBpbiB0aGUgb25lIHBhZ2UgKGRlZmF1bHQgb2xkIENvZGVzdHJpa2VyDQojIGJlaGF2 aW91cikuICBJZiB0aGUgdmFsdWUgaXMgMCwgdGhlbiBvbmx5IHRoZSBmaXJzdCBmaWxlIGlzIHNo b3duLA0KIyB3aXRoIGxpbmtzIHRvIGRpc3BsYXkgdGhlIG90aGVyIGZpbGVzLiAgVGhpcyBpcyB1 c2VmdWwgZm9yIHRob3NlDQojIGRlcGxveW1lbnRzIHRoYXQgcmV2aWV3IGEgbGFyZ2UgYW1vdW50 IG9mIGNvZGUuDQokZGVmYXVsdF9maWxlX3RvX3ZpZXcgPSAtMTsNCg0KIyBMaXN0IG9mIHZhbGlk IHRvcGljIHN0YXRlcy4gIE5vdGUgdGhlc2UgdmFsdWVzIGFyZSBtYXBwZWQgdG8gdGhlIGRhdGFi YXNlDQojIGRlcGVuZGluZyBvbiB0aGVpciBwb3NpdGlvbiBpbiB0aGUgbGlzdC4gIGllLCBPcGVu IC0+IDAsIENsb3NlZCAtPiAxLCBldGMuDQojIFRoZXJlIGlzIG5vIHByb2JsZW0gYWRkZWQgbmV3 IHN0YXRlcyBkeW5hbWljYWxseSwgb3IgY2hhbmdpbmcgdGhlIHRleHR1YWwNCiMgbmFtZXMuICBO b3RlLCB0aGUgaW5pdGlhbCB0b3BpYyBzdGF0ZSBtdXN0IGJlIHRoZSBmaXJzdCBlbGVtZW50LiAg SWYNCiMgdGhlICdPYnNvbGV0ZWQnIHN0YXRlIGlzIHJlbW92ZWQsIHRoZW4gaXQgd2lsbCBub3Qg YmUgcG9zc2libGUgdG8gb2Jzb2xldGUNCiMgdG9waWNzLiAgSWYgdGhlICdEZWxldGVkJyBzdGF0 ZSBpcyByZW1vdmVkLCB0aGVuIGl0IHdpbGwgbm90IGJlIHBvc3NpYmxlDQojIHRvIGRlbGV0ZSB0 b3BpY3MuDQpAdG9waWNfc3RhdGVzID0gKCdPcGVuJywgJ0Nsb3NlZCcsICdDb21taXR0ZWQnLCAn T2Jzb2xldGVkJywgJ0RlbGV0ZWQnKTsNCg0KIyBXaGljaCBzdGF0ZXMgKGluIHRvcGljX3N0YXRl cywgYWJvdmUpIHJlcHJlc2VudCBhICdyZWFkb25seScgc3RhdGUuDQojIElmIGEgdG9waWMgaXMg aW4gYSByZWFkb25seSBzdGF0ZSwgdGhlbiBjZXJ0YWluIGFjdGl2aXRpZXMgYXJlIGRpc2FibGVk LCBzdWNoDQojIGFzIGFkZGluZyBuZXcgY29tbWVudHMsIGVkaXRpbmcgdGhlIG1ldHJpY3Mgb2Yg ZXhpc3RpbmcgY29tbWVudHMsIGV0Yy4NCkByZWFkb25seV9zdGF0ZXMgPSAoJ0Nsb3NlZCcsICdD b21taXR0ZWQnLCAnT2Jzb2xldGVkJywgJ0RlbGV0ZWQnKTsNCg0KIyBJbmRpY2F0ZSBpZiB0b3Bp Y3MgY2FuIGJlIGxpc3RlZC9zZWFyY2hlZC4gIFR1cm5pbmcgdGhpcyB0byBmYWxzZSBjYW4gYmUN CiMgdXNlZnVsIGZvciAiYW5vbnltb3VzIiBpbnN0YWxsYXRpb25zIG9mIGNvZGVzdHJpa2VyLg0K JGFsbG93X3NlYXJjaGxpc3QgPSAxOw0KDQojIFRoZSBmb2xsb3dpbmcgY29udHJvbHMgcHJvamVj dCBjb25maWd1cmF0aW9uLiAgRWFjaCBDb2Rlc3RyaWtlciB0b3BpYyBpcw0KIyBhIG1lbWJlciBv ZiBhIHNwZWNpZmljIHByb2plY3QuICBVbmNvbW1lbnQgdGhlIG9wdGlvbiB5b3Ugd2FudA0KIyBi ZWxvdy4gIE5vdGUgdGhlIHRleHR1YWwgc3RhdGUgbmFtZXMgYmVsb3cgY2Fubm90IGJlIGNoYW5n ZWQuDQoNCiMgRGVmYXVsdCBvcHRpb24sIHByb2plY3RzIGFyZSBlbmFibGVkLCBidXQgdGhleSBo YXZlIG5vIHN0YXRlDQojIGNoYW5naW5nIG9wZXJhdGlvbnMgKGllLCBwcm9qZWN0cyBhcmUgYWx3 YXlzIGluIHN0YXRlICdPcGVuJykuDQpAcHJvamVjdF9zdGF0ZXMgPSAoJ09wZW4nKTsNCg0KIyBE b24ndCB1c2UgcHJvamVjdHMgYXQgYWxsLiAgRWZmZWN0aXZlbHksIGFuIGltcGxpY2l0ICJkZWZh dWx0DQojIHByb2plY3QiIGlzIGNyZWF0ZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCBhbGwgdG9waWNz IGJlaGluZCB0aGUgc2NlbmVzLg0KIyBAcHJvamVjdF9zdGF0ZXMgPSAoKTsNCiMNCiMgQWxsb3cg Zm9yIHByb2plY3RzIHRvIGJlIGNsb3NlZC4gIENsb3NpbmcgYSBwcm9qZWN0IHdpbGwNCiMgbm90 IGFsbG93IG5ldyB0b3BpY3MgdG8gYmUgY3JlYXRlZCBpbiB0aGF0IHByb2plY3QuDQojIEBwcm9q ZWN0X3N0YXRlcyA9ICgnT3BlbicsICdDbG9zZWQnKTsNCiMNCiMgQWxsb3cgZm9yIHByb2plY3Rz IHRvIGJlIGRlbGV0ZWQuICBUaGlzIGlzIHBvdGVudGlhbGx5IGEgZGFuZ2Vyb3VzDQojIG9wdGlv biB0byBhbGxvdywgYXMgZGVsZXRpbmcgYSBwcm9qZWN0IHdpbGwgZGVsZXRlIGFsbCBvZiBpdHMg bWVtYmVyDQojIHRvcGljcyBhcyB3ZWxsLiAgVXNlIHdpdGggY2F1dGlvbi4NCiMgQHByb2plY3Rf c3RhdGVzID0gKCdPcGVuJywgJ0RlbGV0ZWQnKTsNCiMNCiMgQWxsb3cgZm9yIHByb2plY3RzIHRv IGJlIGNsb3NlZCBhbmQgZGVsZXRlZC4gIFVzZSB3aXRoIGNhdXRpb24uDQojIEBwcm9qZWN0X3N0 YXRlcyA9ICgnT3BlbicsICdDbG9zZWQnLCAnRGVsZXRlZCcpOw0KDQojIElmIHRydWUsIGRvbid0 IGRpc3BsYXkgYW55IGVtYWlsIGFkZHJlc3NlcyBpbiB0aGVpciB0cnVlIGZvcm0sIGJ1dA0KIyB0 cnVuY2F0ZSB0aGVtLCB0byBiZWF0IFNQQU0gaGFydmVzdGVycy4NCiRhbnRpc3BhbV9lbWFpbCA9 IDA7DQoNCg0KIyBJZiBjb21tZW50c19zZW50X3RvX3RvcGljX2F1dGhvciBpcyB0cnVlLCBjb2Rl c3RyaWtlciB3aWxsIHNlbmQgDQojIG91dCBlbWFpbCB0byB0aGUgdG9waWMgb3duZXIgYW5kIHdo ZW4gYSBjb21tZW50IGlzIGFkZGVkLiBJZiB0aGlzIA0KIyBvcHRpb24gaXMgZmFsc2UsIG5vIGVt YWlsIHdpbGwgYmUgc2VudCB0aGUgdG9waWMgb3duZXIuIA0KIw0KIyBJZiBjb21tZW50c19zZW50 X3RvX2NvbW1lbnRlciBpcyBzZXQgdG8gdHJ1ZSwgY29kZXN0cmlrZXIgd2lsbA0KIyBibGluZCBj YyAoYmNjKSB0aGUgY29tbWVudCBhdXRob3Igb24gYWxsIGNvbW1lbnRzLiBUaGUgcHJlY2VkaW5n DQojIGNvbW1lbnRzX3NlbnRfdG9fdG9waWNfYXV0aG9yIG11c3QgYmUgdHJ1ZSBpbiBvcmRlciBm b3IgdGhlIGJsaW5kDQojIGNjIG9mIGVtYWlscyB0byBiZSBlbmFibGVkLg0KIw0KIyBJZiB0b3Bp Y19zdGF0ZV9jaGFuZ2Vfc2VudF90b19yZXZpZXdlcnMgaXMgc2V0IHRvIHRydWUsIGNvZGVzdHJp a2VyDQojIHdpbGwgc2VuZCBlbWFpbCB0byB0aGUgcmV2aWV3ZXIgbGlzdCB3aGVuIGEgdG9waWMg c3RhdGUgaXMgY2hhbmdlZC4NCiMNCiMgRW1haWxzIGFib3V0IGVhY2ggY29tbWVudCBtYXkgbm90 IGJlIG5lZWRlZCBpZiBhIG1lZXRpbmcNCiMgaXMgcGxhbm5lZCB0byBkaXNjdXNzIHRoZSB0b3Bp Yy4gSWYgdGhlIGNvbW1lbnQgc3VibWl0dGVyIHNwZWNpZmllcw0KIyBhIGNjIHVzZXIsIGFuIGVt YWlsIGlzIGFsd2F5cyBzZW50IG91dCwgcmVnYXJkbGVzcyBvZiBhbnkgZW1haWwNCiMgc2V0dGlu Z3MuDQokZW1haWxfc2VuZF9vcHRpb25zID0gDQogICAgew0KICAgIGNvbW1lbnRzX3NlbnRfdG9f dG9waWNfYXV0aG9yID0+IDEsDQogICAgY29tbWVudHNfc2VudF90b19jb21tZW50ZXIgPT4gMCwN CiAgICB0b3BpY19zdGF0ZV9jaGFuZ2Vfc2VudF90b19yZXZpZXdlcnMgPT4gMA0KICAgIH07DQoN CiMgRGVmYXVsdCB3aWR0aCBvZiB0YWJzLiAgTW9zdCBkZXZlbG9wZXJzIGV4cGVjdCB0aGlzIHRv IGJlIDgsIGJ1dA0KIyBzb21lIGV4cGVjdCB0byBzZWUgNC4gIFRoaXMgaXMgYWxzbyBzdG9yZWQg aW4gdGhlIHVzZXIncyBjb29raWUsIGFuZA0KIyBjYW4gYmUgY2hhbmdlZCBkeW5hbWljYWxseSBv biB0aGUgdmlldyB0b3BpYyBzY3JlZW4uDQokZGVmYXVsdF90YWJ3aWR0aCA9IDg7DQoNCiMgQnVn IGRhdGFiYXNlIHRvIHVwZGF0ZS4gIEN1cnJlbnRseSwgQnVnemlsbGEgYW5kIEZseXNwcmF5IGFy ZQ0KIyBzdXBwb3J0ZWQsIGJ1dCBpdCBpcyBzdHJhaWdodC1mb3J3YXJkIHRvIHN1cHBvcnQgb3Ro ZXIgYnVnDQojIGRhdGFiYXNlcy4gIFRvIGVuYWJsZSBCdWd6aWxsYSwgc2V0ICRidWdfZGIgdG8g ImJ1Z3ppbGxhIiwgYW5kIHNldA0KIyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgdG8geW91ciBz ZXR1cC4gIFRvIGVuYWJsZSBGbHlzcHJhdCwgc2V0DQojICRidWdfZGIgdG8gImZseXNwcmF5Iiwg YW5kIHNldCB0aGUgcmVsZXZhbnQgcGFyYW1ldGVycy4NCiMgaWYgdGhlICRidWdfZGIgaXMgYW4g ZW1wdHkgc3RyaW5nLCBhbGwgYnVnLXRyYWNraW5nIHJlbGF0ZWQNCiMgZmVhdHVyZXMgd2lsbCBi ZSBkaXNhYmxlZC4NCg0KIyRidWdfZGIgPSAnJzsNCiRidWdfZGIgPSAnYnVnemlsbGEnOw0KIyRi dWdfZGIgPSAnZmx5c3ByYXknOw0KDQojIEJ1Z3ppbGxhIGRhdGFiYXNlIGNvbm5lY3Rpb24gZGV0 YWlscy4NCiRidWdfZGJfaG9zdCA9ICcxOTIuMTY4LjEzNS42NDozMzA2JzsNCiRidWdfZGJfbmFt ZSA9ICdidWdzJzsNCiMkYnVnX2RiX3Bhc3N3b3JkID0gJ2J1Z3NfcGFzc3dvcmQnOw0KIyRidWdf ZGJfZGJuYW1lID0gJ2J1Z3MnOw0KIyRidWdfZGJfdXNlcl9pZCA9ICcyJzsNCg0KIyBGbHlzcHJh eSBkYXRhYmFzZSBjb25uZWN0aW9uIGRldGFpbHMNCiMkZmx5c3ByYXlfZGJfaG9zdCA9ICdsb2Nh bGhvc3QnOw0KIyRmbHlzcHJheV9kYl9uYW1lID0gJ2ZseXNwcmF5JzsNCiMkZmx5c3ByYXlfZGJf cGFzc3dvcmQgPSAnZmx5c3ByYXlfcGFzc3dvcmQnOw0KIyRmbHlzcHJheV9kYl9kYm5hbWUgPSAn Zmx5c3ByYXlfZGV2JzsNCiMkZmx5c3ByYXlfZGJfdXNlcl9pZCA9IDUwOw0KDQojIFRoZSBVUkwg dG8gdGhlIGJ1ZyB0cmFja2luZyBzeXN0ZW0uICBUaGUgYnVnIG51bWJlciBpcyBhcHBlbmRlZCB0 byB0aGUNCiMgZW5kIG9mIHRoaXMgc3RyaW5nIHdoZW4gVVJMcyBhcmUgZ2VuZXJhdGVkLiAgVGhp cyBjYW4gYmUgbGVmdCBibGFuayBpZg0KIyB0aGVyZSBpcyBubyBuZWVkIGZvciBidWctdHJhY2tp bmcgaW50ZWdyYXRpb24uICBCZWxvdyBhcmUgc29tZSBleGFtcGxlDQojIFVSTHMgZm9yIEJ1Z3pp bGxhIGFuZCBGbHlzcHJheS4NCiRidWd0cmFja2VyID0gJyc7DQojJGJ1Z3RyYWNrZXIgPSAnaHR0 cDovL2xvY2FsaG9zdC5sb2NhbGRvbWFpbi9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9JzsNCiMk YnVndHJhY2tlciA9ICcvZmx5c3ByYXlfZGV2Lz9kbz1kZXRhaWxzJmlkPSc7DQoNCiMgTFhSIGRh dGFiYXNlLiAgRWFjaCByZXBvc2l0b3J5IGNhbiBiZSBvcHRpb25hbGx5IG1hcHBlZCB0byBhDQoj IGRpZmZlcmVudCBMWFIgZGVwbG95bWVudC4gIElmIGEgcmVwb3NpdG9yeSBoYXMgYW4gYXNzb2Np YXRlZCBMWFINCiMgbWFwcGluZywgdGhlbiBjcmVhdGUgYSBuZXcgZW50cnkgd2hlcmUgdGhlIHJl cG9zaXRvcnkgc3RyaW5nIGlzIHRoZQ0KIyBrZXksIGFuZCB0aGUgdmFsdWUgaXMgYW5vdGhlciBt YXAsIHdoZXJlICJkYiIgaXMgdGhlIExYUiBkYXRhYmFzZQ0KIyBVUkwsICJ1c2VyIiBpcyB0aGUg ZGF0YWJhc2UgdXNlciwgInBhc3N3b3JkIiBpcyB0aGUgZGF0YSBwYXNzd29yZCwNCiMgYW5kICJ1 cmwiIGlzIHRoZSBiYXNlIExYUiBVUkwgZm9yIHZpZXdpbmcgd2hlcmUgYW4gaWRlbnRpZmllciBp cw0KIyBkZWZpbmVkL3VzZWQuDQokbHhyX21hcCA9IA0Kew0KIyAgICAnL2hvbWUvc2l0cy9jdnMn ID0+IHsgZGIgPT4gJ0RCSTpQZzpkYm5hbWU9bHhyJywNCiMJCQkgIHVzZXIgPT4gJ2x4cicsDQoj CQkJICBwYXNzd29yZCA9PiAnJywNCiMJCQkgIHVybCA9PiAnaHR0cDovL2xvY2FsaG9zdC5sb2Nh bGRvbWFpbi9seHIvaWRlbnQ/aT0nDQojCQkJfSwNCiMNCiMgICAgICdzdm46aHR0cDovL3N2bi5j b2xsYWIubmV0L3JlcG9zL3N2bi90cnVuaycgPT4NCiMgICAgICAgICAgICAgICAgICAgICAgICB7 IGRiID0+ICdEQkk6UGc6ZGJuYW1lPWx4cjInLA0KIwkJCSAgdXNlciA9PiAnbHhyJywNCiMJCQkg IHBhc3N3b3JkID0+ICcnLA0KIwkJCSAgdXJsID0+ICdodHRwOi8vbG9jYWxob3N0LmxvY2FsZG9t YWluL2x4cjIvaWRlbnQ/aT0nDQojCQkJfQ0KfTsNCg0KIyBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8g dXNlIHdoZW4gcmVhZGluZyB0b3BpYyB0ZXh0LiAgRGVmYXVsdCBpcyB1dGY4DQojIChjb21wYXRp YmxlIHdpdGggQVNDSUkpIGlmIG5vdCBzZXQsIGJ1dCB0aGlzIGNhbiBiZSBvdmVyLXJpZGRlbiBo ZXJlLg0KIyBMaXN0IG9mIGV4YW1wbGUgZW5jb2RpbmcgbmFtZXMgY2FuIGJlIHJldHJpZXZlZCBm cm9tIHRoZSBmb2xsb3dpbmcNCiMgVVJMOiBodHRwOi8vcGVybGRvYy5wZXJsLm9yZy9FbmNvZGUv U3VwcG9ydGVkLmh0bWwuDQojJHRvcGljX3RleHRfZW5jb2RpbmcgPSAndXRmOCc7DQojJHRvcGlj X3RleHRfZW5jb2RpbmcgPSAnZ2IyMzEyJzsNCg0KIyBFYWNoIGNvbW1lbnQgdGhyZWFkIChvciBp c3N1ZSkgdGhhdCBpcyBjcmVhdGVkIGFnYWluc3QgYSBzcGVjaWZpYw0KIyBjb2RlIGxpbmUgaW4g Q29kZXN0cmlrZXIgY2FuIGhhdmUgYSBjb25maWd1cmFibGUgbnVtYmVyIG9mDQojIHVzZXItZGVm aW5lZCBtZXRyaWNzIHJlY29yZGVkIGFnYWluc3QgaXQuDQojDQojIEV2ZXJ5IHNpdGUgaGFzIHRo ZWlyIG93biByZXF1aXJlbWVudHMsIGJlbG93IGFyZSBhIG51bWJlciBvZiBleGFtcGxlDQojIGNv bmZpZ3VyYXRpb25zLiAgVGhlICJuYW1lIiBhdHRyaWJ1dGUgcmVmZXJzIHRvIHRoZSBuYW1lIG9m IHRoZQ0KIyBtZXRyaWMgYmVpbmcgcmVjb3JkZWQuICBUaGUgInZhbHVlcyIgYXR0cmlidXRlIGlz IGEgbGlzdCBvZiB2YWx1ZXMNCiMgdGhhdCB0aGlzIG1ldHJpYyBjYW4gYmUgYXNzaWduZWQgdG8u ICBUaGUgImRlZmF1bHRfdmFsdWUiIGF0dHJpYnV0ZQ0KIyBpcyBvcHRpb25hbCwgYW5kIGluZGlj YXRlcyB3aGF0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBtZXRyaWMgaXMNCiMgYXNzaWduZWQg dG8uICBJZiB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZSB1c2VyIHdp bGwNCiMgYmUgcmVxdWlyZWQgdG8gc3BlY2lmeSBhIHZhbHVlIGZvciBhIG1ldHJpYyB3aGVuIGNy ZWF0aW5nIGEgbmV3DQojIGNvbW1lbnQgdGhyZWFkLiAgVGhpcyBpcyByZWNvbW1lbmRlZCwgc28g dGhhdCB1c2VycyB0aGluayBhYm91dCB3aGF0DQojIHRoZXNlIHZhbHVlcyBzaG91bGQgYmUsIHJh dGhlciB0aGFuIGJsaW5kbHkgYWNjZXB0aW5nIGRlZmF1bHQNCiMgdmFsdWVzLiAgRm9yIHRoZSAi U3RhdHVzIiBtZXRyaWMgYmVsb3cgaG93ZXZlciwgaXQgaXMgcmVjb3JkaW5nIHRoZQ0KIyAic3Rh dGUiIG9mIHRoZSB0aHJlYWQsIHNvIGFuIGluaXRpYWwgc3RhdGUgb2YgIlN1Ym1pdHRlZCIgaXMg cmVhc29uYWJsZS4NCiMgRm9yIHRoZSBvdGhlciBtZXRyaWNzIGJlbG93LCBhbiBpbml0aWFsIHZh bHVlIG1ha2VzIG5vIHNlbnNlLg0KIyBNZXRyaWMgaXRlbXMgY2FuIGhhdmUgYW4gb3B0aW9uYWwg c2hvd19vbl9tYWluX3BhZ2UgbGlzdCB0aGF0IHdpbGwNCiMgZm9yY2UgdGhlIG51bWJlcnMgb2Yg Y29tbWVudHMgd2l0aCB0aGUgbWV0cmljIHNldHRpbmdzIHRvIGJlIHJlcG9ydGVkDQojIG9uIHRo ZSBtYWluIHBhZ2Ugb2YgY29kZXN0cmlrZXIuIA0KJGNvbW1lbnRfc3RhdGVfbWV0cmljcyA9DQog ICAgWyANCiAgICAgIHsgbmFtZSAgICAgICAgICAgICA9PiAnU3RhdHVzJywgDQoJdmFsdWVzICAg ICAgICAgICA9PiBbJ1N1Ym1pdHRlZCcsICdJbnZhbGlkJywgJ0NvbXBsZXRlZCddLA0KCWRlZmF1 bHRfdmFsdWUgICAgPT4gJ1N1Ym1pdHRlZCcsDQoJc2hvd19vbl9tYWlucGFnZSA9PiBbJ1N1Ym1p dHRlZCcgXSANCiAgICAgIH0NCiAgICBdOw0KDQojIFR3byBtZXRyaWNzIGRlZmluZWQ6IFN0YXR1 cyBhbmQgVHlwZS4NCiMkY29tbWVudF9zdGF0ZV9tZXRyaWNzID0NCiMgICAgWw0KIyAgICAgIHsg bmFtZT0+J1N0YXR1cycsIHZhbHVlcz0+WydTdWJtaXR0ZWQnLCAnSW52YWxpZCcsICdDb21wbGV0 ZWQnXSwNCiMJICAgICAgICAgICAgICAgIGRlZmF1bHRfdmFsdWU9PidTdWJtaXR0ZWQnIH0sDQoj ICAgICAgeyBuYW1lPT4nVHlwZScsIHZhbHVlcz0+WydTdHlsZScsICdNaW5vcicsICdNYWpvcics ICdTZXZlcmUnXSB9DQojICAgIF07DQoNCiMgRm91ciBtZXRyaWNzIGRlZmluZWQ6IFN0YXR1cywg TGV2ZWwsIE1vZGUgYW5kIFR5cGUuDQojJGNvbW1lbnRfc3RhdGVfbWV0cmljcyA9DQojICAgIFsN CiMgICAgICB7IG5hbWU9PidTdGF0dXMnLCB2YWx1ZXM9PlsnU3VibWl0dGVkJywgJ0ludmFsaWQn LCAnQ29tcGxldGVkJ10sDQojCSAgICAgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlPT4nU3VibWl0 dGVkJyB9LA0KIyAgICAgIHsgbmFtZT0+J0xldmVsJywgdmFsdWVzPT5bJ01ham9yJywgJ01pbm9y J10gfSwNCiMgICAgICB7IG5hbWU9PidNb2RlJywgdmFsdWVzPT5bJ01pc3NpbmcnLCAnV3Jvbmcn LCAnVW5jbGVhcicsICdTdWdnZXN0aW9uJ10gfSwNCiMgICAgICB7IG5hbWU9PidUeXBlJywgdmFs dWVzPT5bJ0xvZ2ljJywgJ0RhdGEgSGFuZGxpbmcnLCAnSW50ZXJmYWNlJywNCiMJCQkgICAgICAg J0Vycm9yIEhhbmRsaW5nJywgJ1BlcmZvcm1hbmNlJywgJ0NvbW1lbnRzJywNCiMJCQkgICAgICAg J1N0YW5kYXJkcyddIH0NCiMgICAgXTsNCiMNCiMgQ2FzZSB3aGVyZSBubyBjb21tZW50IHRocmVh ZCBtZXRyaWNzIGFyZSB0byBiZSB1c2VkLg0KIyRjb21tZW50X3N0YXRlX21ldHJpY3MgPSBbXTsN Cg0KDQojIEFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdGl0bGUgb2YgIkNvZGVz dHJpa2VyICV2ZXJzaW9uJSIuDQojICR0aXRsZSA9ICJDb2Rlc3RyaWtlciAkQ29kZXN0cmlrZXI6 OlZFUlNJT04iOw0KDQojIFRoaXMgb3B0aW9ucyBjb25maWd1cmVzIHRoZSBtZXRyaWMgc3VwcG9y dCBpbiBjb2Rlc3RyaWtlci4gWW91IGhhdmUNCiMgdGhlIGZvbGxvd2luZyBvcHRpb25zOg0KIw0K IyAkbWV0cmljX2NvbmZpZyA9ICJub25lIiwgImJhc2ljIiwgImFsbCIsICJtZXRyaWMgbmFtZSwg bWV0cmljIG5hbWUsIGV0YyINCiMNCiMgIm5vbmUiIC0gdHVybnMgb2ZmIGFsbCBleHRyYSBtZXRy aWMgc3VwcG9ydCBpbiB0aGUgYXBwbGljYXRpb24uIFRoZQ0KIyBtZXRyaWMgcGFnZSB3aWxsIG9u bHkgZGlzcGxheSBhbmQgbWFuYWdlIGRhdGEgdGhhdCBpcyBzdHJpY3RseQ0KIyByZXF1aXJlZCB0 byBwZXJmb3JtIHRoZSByZXZpZXcuICBDb2Rlc3RyaWtlciB3aWxsIG5vdCByZXF1aXJlIGFueQ0K IyBhZGRpdGlvbiBkYXRhIGlucHV0IGZyb20gdGhlIHJldmlld2VycyBhbmQgYXV0aG9ycy4gIFRo aXMgaXMgdGhlDQojIGRlZmF1bHQuIEhvd2V2ZXIsIHlvdSBzdGlsbCBnZXQgYmFzaWMgZGF0YSBs aWtlIGhvdyBtYW55IHRvcGljcyBhcmUNCiMgYmVpbmcgY3JlYXRlZCBhbmQgaG93IHByb2JsZW1z IGFyZSBiZWluZyBmb3VuZC4NCiMNCiMgImJhc2ljIiAtIFR1cm5zIG9uIHRoZSBtZXRyaWNzIHRo YXQgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZXNzZW50aWFsDQojIGZvciBhIG1ldHJpYyBwcm9ncmFt LiBJdCB3aWxsIHJlcXVpcmUgdGhhdCByZXZpZXdlcnMgYW5kIGF1dGhvcnMNCiMgZW50ZXIgdGhl IHRpbWUgc3BlbnQgcmV2aWV3aW5nIHRoZSB0b3BpYywgdGhlIHRpbWUgc3BlbnQgaW4gdGhlDQoj IHJldmlldyBtZWV0aW5nLCBhbmQgdGhlIHRpbWUgc3BlbnQgcHJlcGFyaW5nIGZvciB0aGUgcmV2 aWV3LiBUaGUNCiMgbWV0cmljIHNlbGVjdGlvbiBhc3N1bWVzIHRoYXQgeW91IGFyZSBmb2xsb3dp bmcgYSBmb3JtYWwgcmV2aWV3DQojIHByb2Nlc3Mgd2l0aCBhIHByZXBhcmF0aW9uIG1lZXRpbmcs IGFuZCBhIGRlZmVjdCByZXZpZXcgbWVldGluZy4NCiMgICANCiMgICBraWNrb2ZmIHRpbWUgLSB0 aW1lIHNwZW50IHByZXBhcmluZyBmb3IgdGhlIHJldmlldw0KIyAgIGNoZWNraW5nIHRpbWUgLSB0 aW1lIHNwZW50IGFjdHVhbGx5IHJldmlld2luZyB0aGUgdG9waWMuDQojICAgbG9nZ2luZyBtZWV0 aW5nIGR1cmF0aW9uIC0gdGhlIHRpbWUgc3BlbnQgaW4gdGhlIGxvZ2dpbmcgbWVldGluZy4NCiMN CiMgImFsbCIgLSBUdXJucyBvbiBhbGwgb2YgdGhlIG1ldHJpY3MgdGhhdCBvbmUgY291bGQgcG9z c2libHkgd2FudCB0bw0KIyB0cmFjay4gVGhlIGxpc3Qgb2YgbWV0cmljcyBpcyBmcm9tIHRoZSBi b29rICJTb2Z0d2FyZSBJbnNwZWN0aW9uIiBieQ0KIyBHaWxiIGFuZCBHcmFoYW0uICBZb3Ugc2hv dWxkIHByb2JhYmx5IG5vdCB1c2UgdGhpcyB1bmxlc3MgeW91IGFyZQ0KIyB1c2luZyBhIGZvcm1h bCBwcm9jZXNzIHRoYXQgaXMgd2VsbCBlc3RhYmxpc2hlZC4gWW91IG1heSB3YW50IHRvDQojIGVu YWJsZSB0aGlzIHRlbXBvcmFsbHkgdG8gZ2V0IGEgaWRlYSBvZiB0aGUgdHlwZXMgb2YgbWV0cmlj cyB0aGF0DQojIGFyZSBzdXBwb3J0ZWQuDQojDQojICJuYW1lLG5hbWUiIC0gTGFzdGx5LCB5b3Ug Y2FuIHBpY2sgYW5kIGNob3NlIHdoYXQgbWV0cmljcyB5b3Ugd291bGQNCiMgbGlrZSB0byBlbmFi bGUuICBqdXN0IGxpc3QgdGhlIG1ldHJpYyBuYW1lcyBpbiBhIGNvbW1hIHNlcGFyYXRlZA0KIyBs aXN0LiBZb3UgY2FuIHNlZSBhbGwgb2YgdGhlIGJ1aWxkIGluIG1ldHJpY3MgaW4gdGhlDQojIGxp Yi9Db2Rlc3RyaWtlci5wbSBmaWxlLiBGb3IgZXhhbXBsZSwgaWYgeW91IGRvbid0IGhvbGQgYSBr aWNrIG9mZg0KIyBtZWV0aW5nLCBhbmQgYnV0IGRvIGhvbGQgYSBsb2dnaW5nIG1lZXRpbmcsIHRo ZSBiYXNpYyBvcHRpb24gd2lsbCBub3QNCiMgcXVpdCBmaXQuIFlvdSBzaG91bGQgc2V0IHRoZSAk bWV0cmljX2NvbmZpZyBhczoNCiMgJG1ldHJpY19jb25maWcgPSAiY2hlY2tpbmcgdGltZSxsb2dn aW5nIG1lZXRpbmcgZHVyYXRpb24iLg0KIw0KIyBJZiB5b3UgZG9uJ3QgbGlrZSBvdXIgY2hvaWNl cyBvZiBtZXRyaWNzLCB0aGUgbmFtZXMsIGRlc2NyaXB0aW9ucywNCiMgZXRjIGZlZWwgZnJlZSB0 byBlZGl0IHRoZSBsaWIvQ29kZXN0cmlrZXIucG0uIEl0IGNvbnRhaW5zDQojIGRvY3VtZW50YXRp b25zIG9uIGhvdyB0byBhZGQgeW91ciBvd24gbWV0cmljcyBpbnRvIGNvZGVzdHJpa2VyLiBJdA0K IyBpcyBlYXN5IHRvIGRvLCBhbmQgZG9lcyBub3QgcmVxdWlyZSBhbnkgY29kaW5nLg0KDQokbWV0 cmljX2NvbmZpZyA9ICJub25lIjsNCg0KDQo= |
|
From: Nikita B. <el...@gm...> - 2007-06-25 13:17:47
|
On 6/25/07, David Sitsky <dav...@gm...> wrote: > Can you do a comparison between Kate and webc++ on something a little > smaller? Say something with roughly 1000 SLOCs. I'd be curious to > see what the difference is. File src/sqliteInt.h from sqlite-3.3.17 distribution (86K, 1075 SLOCs). Kate engine used standalone (not within Codestriker): 9.6 sec real time Web C Plus Plus 0.8.2 (pipe mode): 2.0 real time It seems the speed difference is nonlinear function of size because sqlite3 amalgamation was processed by webc++ at 16 seconds (>300 Kate's seconds). > If it is huge, perhaps going the webc++ or enscript route might be better. I can't decide if more speed is really needed for my tasks. Quicker is better but Kate's speed is enough for now. I don't think Enscipt is the good for Codestriker because Enscript uses visual formatting (b, i, font color="xxx" tags) instead of semantic (span class="comment"). Codestriker should parse highlighted data as it should place LXR links but enscripted data is harder to parse than webcpp'ed. Speed of enscripting is roughly the same as speed of webc++'ing. -- Nikita V. Borodikhin, System Administrator NIKB-RIPN BNV7-RIPE Registered Linux user #256562 with the Linux Counter |
|
From: David S. <dav...@gm...> - 2007-06-25 11:32:26
|
> If Kate engine is used to highlight text line-by-line as in my code, > it process SQLite 3.3.17 amalgamation (2.1Mb, 41218 SLOCs reported by > sloccount) in about 5 minutes. > I think this speed is acceptable because: > 1. Codestriker can't handle such a big files reliable (it creates > Subversion topic that consists of the same amalgamation more than > about 5 minutes) > 2. I believe that reviewing such files isn't the common practice. > > However if highlighting of our code would be too slow I'll consider to > make alternative highlighting using webc++ external highlighter. Can you do a comparison between Kate and webc++ on something a little smaller? Say something with roughly 1000 SLOCs. I'd be curious to see what the difference is. If it is huge, perhaps going the webc++ or enscript route might be better. Cheers, David |
|
From: Nikita B. <el...@gm...> - 2007-06-25 11:28:51
|
Hello, David. On 6/25/07, David Sitsky <si...@us...> wrote: > Many thanks for your submission. I actually tried using > Syntax::Hightlight::Engine::Kate when it first came out, and found it > to be very slow. It would take something like 30 seconds to parse a > small java file, so I decided against using it. What is the > performance of it like now? Hopefully it has been fixed. If Kate engine is used to highlight text line-by-line as in my code, it process SQLite 3.3.17 amalgamation (2.1Mb, 41218 SLOCs reported by sloccount) in about 5 minutes. I think this speed is acceptable because: 1. Codestriker can't handle such a big files reliable (it creates Subversion topic that consists of the same amalgamation more than about 5 minutes) 2. I believe that reviewing such files isn't the common practice. However if highlighting of our code would be too slow I'll consider to make alternative highlighting using webc++ external highlighter. > > I've used to redesign Codestriker::Http::Render.pm internal workflow a > > little but in my day-to-day work It works just like before. The only > > thing I haven't check in real life is LXR linking but I'm quite sure > > it works too. > > Please check it out LXR linking if you can - it will save me the > trouble. Also, once you have finish it, please submit your patch into > the patches list: > http://sourceforge.net/tracker/?group_id=41136&atid=429862. Hm... I've never touched LXR and don't think I'll have a time to until autumn, sorry. But a quick test to check which identifiers are passed to lxr_ident shows the same set for our projects except: 1. identifiers that start with underscore (I've added that to LXR code as this is common for local C variables) 2. some tab issues related to /^(\s| ){0,10}\*/ regexp (this is bacause of tab expansion now happens _after_ identifier search) 3. some spaces, as I've used to remove $token =~ s/(\s| )//g; code from identifier search code to leave positions untouched. > Many thanks for your contribution! I'll give it a try later on - it > would be great to have the code highlighted. Patch posted to maillist was broken a little (it was not the final version), sorry. Fixed patch uploaded: http://sourceforge.net/tracker/index.php?func=detail&aid=1742781&group_id=41136&atid=429862 -- Nikita V. Borodikhin, System Administrator NIKB-RIPN BNV7-RIPE Registered Linux user #256562 with the Linux Counter |
|
From: David S. <si...@us...> - 2007-06-24 22:58:40
|
Hi Nikita, > Syntax highlight is probably the most needed feature of Codestriker as > it helps code readability dramatically. Here is my implementation of > syntax highlight using Syntax::Hightligh::Engine::Kate engine (thanks > to Kannan Goundan for pointing to it). Many thanks for your submission. I actually tried using Syntax::Hightlight::Engine::Kate when it first came out, and found it to be very slow. It would take something like 30 seconds to parse a small java file, so I decided against using it. What is the performance of it like now? Hopefully it has been fixed. > I've used to redesign Codestriker::Http::Render.pm internal workflow a > little but in my day-to-day work It works just like before. The only > thing I haven't check in real life is LXR linking but I'm quite sure > it works too. Please check it out LXR linking if you can - it will save me the trouble. Also, once you have finish it, please submit your patch into the patches list: http://sourceforge.net/tracker/?group_id=41136&atid=429862. Many thanks for your contribution! I'll give it a try later on - it would be great to have the code highlighted. Cheers, David |
|
From: Nikita B. <el...@gm...> - 2007-06-22 16:57:44
|
Hello, all! Syntax highlight is probably the most needed feature of Codestriker as it helps code readability dramatically. Here is my implementation of syntax highlight using Syntax::Hightligh::Engine::Kate engine (thanks to Kannan Goundan for pointing to it). I've used to redesign Codestriker::Http::Render.pm internal workflow a little but in my day-to-day work It works just like before. The only thing I haven't check in real life is LXR linking but I'm quite sure it works too. Codestriker is great thing to help collaborative work, great thanks to all the team! -- Nikita V. Borodikhin, System Administrator NIKB-RIPN BNV7-RIPE Registered Linux user #256562 with the Linux Counter |
|
From: David S. <si...@us...> - 2007-06-01 06:43:14
|
>> When reviewing a topic, on the 'topic comments' tab, it displays the
>> file/line number before each comment. This is a link, but we get:
>> "This function has been disabled" in a new window.
>> I notice the URL is:
>> myOpen('?action=view_file&fn=1&topic=667445&new=1&mode=0¶llel=0#1|551|1','CVS')
Actually - this appears to be a bug in Codestriker. It shouldn't create
this link if there is no repository associated with the topic. I'll fix
that.
Cheers,
David
|