| ofs | hex dump | ascii | 
|---|
| 0000 |  50 4b 03 04 14 00 00 00 00 00 86 a0 ac 5a 3d 20    12 41 67 05 00 00 67 05 00 00 12 00 00 00 74 72  | PK...........Z=..Ag...g.......tr | 
| 0020 |  61 6e 73 6c 61 74 69 6f 6e 73 2f 64 65 2e 6d 6f    de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00  | anslations/de.mo................ | 
| 0040 |  44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00  | D...............l...=...m....... | 
| 0060 |  ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00    a4 01 00 00 98 01 00 00 1f 02 00 00 43 00 00 00  | ....>...e...z...............C... | 
| 0080 |  b8 03 00 00 b9 00 00 00 fc 03 00 00 47 00 00 00    b6 04 00 00 68 00 00 00 fe 04 00 00 00 47 65 74  | ............G.......h........Get | 
| 00a0 |  20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e    67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20  | .all.contributing.authors.(e.g.. | 
| 00c0 |  65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72    61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65  | editors,.illustrators.etc).Incre | 
| 00e0 |  61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65    20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d  | asing.this.value.will.consider.m | 
| 0100 |  6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74    20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73  | ore.editions.but.also.increase.s | 
| 0120 |  65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68    69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65  | earch.times...This.will.increase | 
| 0140 |  20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c    69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74  | .the.potential.likelihood.of.get | 
| 0160 |  74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f    76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f  | ting.a.larger.cover.image.but.do | 
| 0180 |  65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65    20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74  | es.not.guarantee.it..Maximum.tit | 
| 01a0 |  6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68    20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c  | le/author.search.matches.to.eval | 
| 01c0 |  75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73    74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70  | uate.(1.=.fastest):.When.this.op | 
| 01e0 |  74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c    20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65  | tion.is.checked,.all.authors.are | 
| 0200 |  20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65    6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66  | .retrieved...When.unchecked.(def | 
| 0220 |  61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70    72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29  | ault).only.the.primary.author(s) | 
| 0240 |  20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50    72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f  | .are.returned..Project-Id-Versio | 
| 0260 |  6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49    4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d  | n:.PACKAGE.VERSION.POT-Creation- | 
| 0280 |  44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34    20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52  | Date:.2024-03-24.17:55+1000.PO-R | 
| 02a0 |  65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30    32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30  | evision-Date:.2022-09-08.19:50+0 | 
| 02c0 |  30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61    74 6f 72 3a 20 46 6c 6f 72 65 6e 7a 20 56 69 6c  | 000.Last-Translator:.Florenz.Vil | 
| 02e0 |  6c 65 67 61 73 2c 20 32 30 32 34 0a 4c 61 6e 67    75 61 67 65 2d 54 65 61 6d 3a 20 47 65 72 6d 61  | legas,.2024.Language-Team:.Germa | 
| 0300 |  6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74    72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c  | n.(https://app.transifex.com/cal | 
| 0320 |  69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37    2f 64 65 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69  | ibre/teams/19337/de/).MIME-Versi | 
| 0340 |  6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d    54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e  | on:.1.0.Content-Type:.text/plain | 
| 0360 |  3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a    43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72  | ;.charset=UTF-8.Content-Transfer | 
| 0380 |  2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a    47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79  | -Encoding:.8bit.Generated-By:.py | 
| 03a0 |  67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c    61 6e 67 75 61 67 65 3a 20 64 65 0a 50 6c 75 72  | gettext.py.1.5.Language:.de.Plur | 
| 03c0 |  61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61    6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20  | al-Forms:.nplurals=2;.plural=(n. | 
| 03e0 |  21 3d 20 31 29 3b 0a 00 45 72 68 c3 a4 6c 74 20    61 6c 6c 65 20 6d 69 74 77 69 72 6b 65 6e 64 65  | !=.1);..Erh..lt.alle.mitwirkende | 
| 0400 |  6e 20 41 75 74 6f 72 65 6e 20 28 7a 2e 42 2e 20    48 65 72 61 75 73 67 65 62 65 72 2c 20 5a 65 69  | n.Autoren.(z.B..Herausgeber,.Zei | 
| 0420 |  63 68 6e 65 72 20 75 73 77 2e 29 00 45 69 6e 20    68 c3 b6 68 65 72 65 72 20 57 65 72 74 20 68 69  | chner.usw.).Ein.h..herer.Wert.hi | 
| 0440 |  65 72 20 62 65 72 c3 bc 63 6b 73 69 63 68 74 69    67 74 20 6d 65 68 72 20 45 64 69 74 69 6f 6e 65  | er.ber..cksichtigt.mehr.Editione | 
| 0460 |  6e 2c 20 76 65 72 6c c3 a4 6e 67 65 72 74 20 61    62 65 72 20 61 75 63 68 20 64 69 65 20 53 75 63  | n,.verl..ngert.aber.auch.die.Suc | 
| 0480 |  68 7a 65 69 74 65 6e 2e 0a 0a 44 69 65 73 20 65    72 68 c3 b6 68 74 20 64 69 65 20 57 61 68 72 73  | hzeiten...Dies.erh..ht.die.Wahrs | 
| 04a0 |  63 68 65 69 6e 6c 69 63 68 6b 65 69 74 20 61 75    66 20 65 69 6e 20 67 72 c3 b6 c3 9f 65 72 65 73  | cheinlichkeit.auf.ein.gr....eres | 
| 04c0 |  20 54 69 74 65 6c 62 69 6c 64 2c 20 67 61 72 61    6e 74 69 65 72 74 20 65 73 20 61 62 65 72 20 6e  | .Titelbild,.garantiert.es.aber.n | 
| 04e0 |  69 63 68 74 2e 00 4d 61 78 69 6d 61 6c 65 20 74    69 74 6c 65 2f 61 75 74 68 6f 72 20 53 75 63 68  | icht..Maximale.title/author.Such | 
| 0500 |  74 72 65 66 66 65 72 20 7a 75 72 20 42 65 73 74    c3 a4 74 69 67 75 6e 67 20 28 31 20 3d 20 61 6d  | treffer.zur.Best..tigung.(1.=.am | 
| 0520 |  20 73 63 68 6e 65 6c 6c 73 74 65 6e 29 00 4c c3    a4 64 74 20 61 6c 6c 65 20 41 75 74 6f 72 65 6e  | .schnellsten).L..dt.alle.Autoren | 
| 0540 |  20 77 65 6e 6e 20 61 6b 74 69 76 69 65 72 74 2e    0a 0a 57 65 6e 6e 20 6e 69 63 68 74 20 61 6b 74  | .wenn.aktiviert...Wenn.nicht.akt | 
| 0560 |  69 76 69 65 72 74 20 28 53 74 61 6e 64 61 72 64    29 20 77 65 72 64 65 6e 20 6e 75 72 20 64 69 65  | iviert.(Standard).werden.nur.die | 
| 0580 |  20 48 61 75 70 74 61 75 74 6f 72 65 6e 20 67 65    6c 61 64 65 6e 2e 00 50 4b 03 04 14 00 00 00 00  | .Hauptautoren.geladen..PK....... | 
| 05a0 |  00 86 a0 ac 5a ef c8 59 08 19 06 00 00 19 06 00    00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e  | ....Z..Y.............translation | 
| 05c0 |  73 2f 65 73 2e 6d 6f de 12 04 95 00 00 00 00 05    00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00  | s/es.mo................D........ | 
| 05e0 |  00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d    00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65  | .......l...=...m...........>...e | 
| 0600 |  01 00 00 7a 00 00 00 a4 01 00 00 c9 01 00 00 1f    02 00 00 54 00 00 00 e9 03 00 00 e3 00 00 00 3e  | ...z...............T...........> | 
| 0620 |  04 00 00 61 00 00 00 22 05 00 00 94 00 00 00 84    05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74  | ...a..."............Get.all.cont | 
| 0640 |  72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73    20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20  | ributing.authors.(e.g..editors,. | 
| 0660 |  69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63    29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69  | illustrators.etc).Increasing.thi | 
| 0680 |  73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e    73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69  | s.value.will.consider.more.editi | 
| 06a0 |  6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63    72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d  | ons.but.also.increase.search.tim | 
| 06c0 |  65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69    6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65  | es...This.will.increase.the.pote | 
| 06e0 |  6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64    20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61  | ntial.likelihood.of.getting.a.la | 
| 0700 |  72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65    0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75  | rger.cover.image.but.does.not.gu | 
| 0720 |  61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69    6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72  | arantee.it..Maximum.title/author | 
| 0740 |  20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20    74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d  | .search.matches.to.evaluate.(1.= | 
| 0760 |  20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20    74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63  | .fastest):.When.this.option.is.c | 
| 0780 |  68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68    6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65  | hecked,.all.authors.are.retrieve | 
| 07a0 |  64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b    65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c  | d...When.unchecked.(default).onl | 
| 07c0 |  79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75    74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75  | y.the.primary.author(s).are.retu | 
| 07e0 |  72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64    2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47  | rned..Project-Id-Version:.PACKAG | 
| 0800 |  45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72    65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32  | E.VERSION.POT-Creation-Date:.202 | 
| 0820 |  34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30    30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44  | 4-03-24.17:55+1000.PO-Revision-D | 
| 0840 |  61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20    31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d  | ate:.2022-09-08.19:50+0000.Last- | 
| 0860 |  54 72 61 6e 73 6c 61 74 6f 72 3a 20 4a 65 6c 6c    62 79 20 3c 6a 65 6c 6c 62 79 40 79 61 68 6f 6f  | Translator:.Jellby.<jellby@yahoo | 
| 0880 |  2e 63 6f 6d 3e 2c 20 32 30 32 34 0a 4c 61 6e 67    75 61 67 65 2d 54 65 61 6d 3a 20 53 70 61 6e 69  | .com>,.2024.Language-Team:.Spani | 
| 08a0 |  73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e    74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61  | sh.(https://app.transifex.com/ca | 
| 08c0 |  6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33    37 2f 65 73 2f 29 0a 4d 49 4d 45 2d 56 65 72 73  | libre/teams/19337/es/).MIME-Vers | 
| 08e0 |  69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74    2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69  | ion:.1.0.Content-Type:.text/plai | 
| 0900 |  6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38    0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65  | n;.charset=UTF-8.Content-Transfe | 
| 0920 |  72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74    0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70  | r-Encoding:.8bit.Generated-By:.p | 
| 0940 |  79 67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a    4c 61 6e 67 75 61 67 65 3a 20 65 73 0a 50 6c 75  | ygettext.py.1.5.Language:.es.Plu | 
| 0960 |  72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72    61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 6e 20  | ral-Forms:.nplurals=3;.plural=n. | 
| 0980 |  3d 3d 20 31 20 3f 20 30 20 3a 20 6e 20 21 3d 20    30 20 26 26 20 6e 20 25 20 31 30 30 30 30 30 30  | ==.1.?.0.:.n.!=.0.&&.n.%.1000000 | 
| 09a0 |  20 3d 3d 20 30 20 3f 20 31 20 3a 20 32 3b 0a 00    4f 62 74 65 6e 65 72 20 74 6f 64 6f 73 20 6c 6f  | .==.0.?.1.:.2;..Obtener.todos.lo | 
| 09c0 |  73 20 61 75 74 6f 72 65 73 20 63 6f 6e 74 72 69    62 75 79 65 6e 74 65 73 20 28 70 6f 72 20 65 6a  | s.autores.contribuyentes.(por.ej | 
| 09e0 |  65 6d 70 6c 6f 2c 20 65 64 69 74 6f 72 65 73 2c    20 69 6c 75 73 74 72 61 64 6f 72 65 73 2c 20 65  | emplo,.editores,.ilustradores,.e | 
| 0a00 |  74 63 2e 29 00 53 69 20 73 65 20 61 75 6d 65 6e    74 61 20 65 73 74 65 20 76 61 6c 6f 72 20 73 65  | tc.).Si.se.aumenta.este.valor.se | 
| 0a20 |  20 63 6f 6e 73 69 64 65 72 61 72 c3 a1 6e 20 6d    c3 a1 73 20 65 64 69 63 69 6f 6e 65 73 20 70 65  | .considerar..n.m..s.ediciones.pe | 
| 0a40 |  72 6f 20 74 61 6d 62 69 c3 a9 6e 20 61 75 6d 65    6e 74 61 72 c3 a1 6e 20 6c 6f 73 20 74 69 65 6d  | ro.tambi..n.aumentar..n.los.tiem | 
| 0a60 |  70 6f 73 20 64 65 20 62 c3 ba 73 71 75 65 64 61    2e 0a 0a 45 73 74 6f 20 69 6e 63 72 65 6d 65 6e  | pos.de.b..squeda...Esto.incremen | 
| 0a80 |  74 61 72 c3 a1 20 70 6f 74 65 6e 63 69 61 6c 6d    65 6e 74 65 20 6c 61 20 70 72 6f 62 61 62 69 6c  | tar...potencialmente.la.probabil | 
| 0aa0 |  69 64 61 64 20 64 65 20 6f 62 74 65 6e 65 72 20    75 6e 61 20 69 6d 61 67 65 6e 20 64 65 20 70 6f  | idad.de.obtener.una.imagen.de.po | 
| 0ac0 |  72 74 61 64 61 20 6d c3 a1 73 20 67 72 61 6e 64    65 2e 0a 70 65 72 6f 20 6e 6f 20 6c 6f 20 67 61  | rtada.m..s.grande..pero.no.lo.ga | 
| 0ae0 |  72 61 6e 74 69 7a 61 2e 00 4d c3 a1 78 69 6d 6f    20 6e c3 ba 6d 65 72 6f 20 64 65 20 63 6f 69 6e  | rantiza..M..ximo.n..mero.de.coin | 
| 0b00 |  63 69 64 65 6e 63 69 61 73 20 64 65 20 62 c3 ba    73 71 75 65 64 61 20 64 65 20 74 c3 ad 74 75 6c  | cidencias.de.b..squeda.de.t..tul | 
| 0b20 |  6f 20 6f 20 61 75 74 6f 72 20 70 61 72 61 20 65    76 61 6c 75 61 72 20 28 31 20 3d 20 6d c3 a1 73  | o.o.autor.para.evaluar.(1.=.m..s | 
| 0b40 |  20 72 c3 a1 70 69 64 6f 29 3a 00 43 75 61 6e 64    6f 20 73 65 20 6d 61 72 63 61 20 65 73 74 61 20  | .r..pido):.Cuando.se.marca.esta. | 
| 0b60 |  6f 70 63 69 c3 b3 6e 2c 20 73 65 20 72 65 63 75    70 65 72 61 6e 20 74 6f 64 6f 73 20 6c 6f 73 20  | opci..n,.se.recuperan.todos.los. | 
| 0b80 |  61 75 74 6f 72 65 73 2e 0a 0a 43 75 61 6e 64 6f    20 6e 6f 20 65 73 74 c3 a1 20 6d 61 72 63 61 64  | autores...Cuando.no.est...marcad | 
| 0ba0 |  61 20 28 70 72 65 64 65 74 65 72 6d 69 6e 61 64    6f 29 2c 20 73 c3 b3 6c 6f 20 73 65 20 64 65 76  | a.(predeterminado),.s..lo.se.dev | 
| 0bc0 |  75 65 6c 76 65 6e 20 6c 6f 73 20 61 75 74 6f 72    65 73 20 70 72 69 6e 63 69 70 61 6c 65 73 2e 00  | uelven.los.autores.principales.. | 
| 0be0 |  50 4b 03 04 14 00 00 00 00 00 86 a0 ac 5a 45 90    fc 94 8b 05 00 00 8b 05 00 00 12 00 00 00 74 72  | PK...........ZE...............tr | 
| 0c00 |  61 6e 73 6c 61 74 69 6f 6e 73 2f 66 69 2e 6d 6f    de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00 00  | anslations/fi.mo................ | 
| 0c20 |  44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00  | D...............l...=...m....... | 
| 0c40 |  ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00 00    a4 01 00 00 9b 01 00 00 1f 02 00 00 38 00 00 00  | ....>...e...z...............8... | 
| 0c60 |  bb 03 00 00 bc 00 00 00 f4 03 00 00 4b 00 00 00    b1 04 00 00 8d 00 00 00 fd 04 00 00 00 47 65 74  | ............K................Get | 
| 0c80 |  20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e    67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20  | .all.contributing.authors.(e.g.. | 
| 0ca0 |  65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72    61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72 65  | editors,.illustrators.etc).Incre | 
| 0cc0 |  61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65    20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d  | asing.this.value.will.consider.m | 
| 0ce0 |  6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75 74    20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73  | ore.editions.but.also.increase.s | 
| 0d00 |  65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68    69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65  | earch.times...This.will.increase | 
| 0d20 |  20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c    69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74  | .the.potential.likelihood.of.get | 
| 0d40 |  74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f    76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f  | ting.a.larger.cover.image.but.do | 
| 0d60 |  65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65    20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74  | es.not.guarantee.it..Maximum.tit | 
| 0d80 |  6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68    20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c  | le/author.search.matches.to.eval | 
| 0da0 |  75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73    74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70  | uate.(1.=.fastest):.When.this.op | 
| 0dc0 |  74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c    20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65  | tion.is.checked,.all.authors.are | 
| 0de0 |  20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65    6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66  | .retrieved...When.unchecked.(def | 
| 0e00 |  61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70    72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29  | ault).only.the.primary.author(s) | 
| 0e20 |  20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00 50    72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f  | .are.returned..Project-Id-Versio | 
| 0e40 |  6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53 49    4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d  | n:.PACKAGE.VERSION.POT-Creation- | 
| 0e60 |  44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34    20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52  | Date:.2024-03-24.17:55+1000.PO-R | 
| 0e80 |  65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30    32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30  | evision-Date:.2022-09-08.19:50+0 | 
| 0ea0 |  30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61    74 6f 72 3a 20 56 65 69 6b 6b 6f 20 4d 75 75 72  | 000.Last-Translator:.Veikko.Muur | 
| 0ec0 |  69 6b 61 69 6e 65 6e 2c 20 32 30 32 34 0a 4c 61    6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 46 69 6e  | ikainen,.2024.Language-Team:.Fin | 
| 0ee0 |  6e 69 73 68 20 28 68 74 74 70 73 3a 2f 2f 61 70    70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f  | nish.(https://app.transifex.com/ | 
| 0f00 |  63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31 39    33 33 37 2f 66 69 2f 29 0a 4d 49 4d 45 2d 56 65  | calibre/teams/19337/fi/).MIME-Ve | 
| 0f20 |  72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65    6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c  | rsion:.1.0.Content-Type:.text/pl | 
| 0f40 |  61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46    2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73  | ain;.charset=UTF-8.Content-Trans | 
| 0f60 |  66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62    69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a  | fer-Encoding:.8bit.Generated-By: | 
| 0f80 |  20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e    35 0a 4c 61 6e 67 75 61 67 65 3a 20 66 69 0a 50  | .pygettext.py.1.5.Language:.fi.P | 
| 0fa0 |  6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c    75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d  | lural-Forms:.nplurals=2;.plural= | 
| 0fc0 |  28 6e 20 21 3d 20 31 29 3b 0a 00 48 61 65 20 6b    61 69 6b 6b 69 20 74 65 6b 69 6a c3 a4 74 20 28  | (n.!=.1);..Hae.kaikki.tekij..t.( | 
| 0fe0 |  65 73 69 6d 2e 20 74 6f 69 6d 69 74 74 61 6a 61    74 2c 20 6b 75 76 69 74 74 61 6a 61 74 20 6a 6e  | esim..toimittajat,.kuvittajat.jn | 
| 1000 |  65 2e 29 00 4a 6f 73 20 74 c3 a4 74 c3 a4 20 61    72 76 6f 61 20 6b 61 73 76 61 74 65 74 61 61 6e  | e.).Jos.t..t...arvoa.kasvatetaan | 
| 1020 |  2c 20 6f 74 65 74 61 61 6e 20 68 75 6f 6d 69 6f    6f 6e 20 65 6e 65 6d 6d c3 a4 6e 20 70 61 69 6e  | ,.otetaan.huomioon.enemm..n.pain | 
| 1040 |  6f 6b 73 69 61 2c 20 6d 75 74 74 61 20 6d 79 c3    b6 73 20 68 61 6b 75 61 6a 61 74 20 70 69 74 65  | oksia,.mutta.my..s.hakuajat.pite | 
| 1060 |  6e 65 76 c3 a4 74 2e 0a 0a 54 c3 a4 6d c3 a4 20    6c 69 73 c3 a4 c3 a4 20 73 75 75 72 65 6d 6d 61  | nev..t...T..m...lis.....suuremma | 
| 1080 |  6e 20 6b 61 6e 73 69 6b 75 76 61 6e 20 73 61 61    6d 69 73 65 6e 20 74 6f 64 65 6e 6e c3 a4 6b c3  | n.kansikuvan.saamisen.todenn..k. | 
| 10a0 |  b6 69 73 79 79 74 74 c3 a4 2e 0a 6d 75 74 74 61    20 65 69 20 74 61 6b 61 61 20 73 69 74 c3 a4 2e  | .isyytt....mutta.ei.takaa.sit... | 
| 10c0 |  00 41 72 76 69 6f 69 74 61 76 69 65 6e 20 6f 74    73 69 6b 6f 6e 2f 74 65 6b 69 6a c3 a4 6e 20 68  | .Arvioitavien.otsikon/tekij..n.h | 
| 10e0 |  61 6b 75 6f 73 75 75 6b 73 69 65 6e 20 65 6e 69    6d 6d c3 a4 69 73 6d c3 a4 c3 a4 72 c3 a4 20 28  | akuosuuksien.enimm..ism....r...( | 
| 1100 |  31 20 3d 20 6e 6f 70 65 69 6e 29 3a 00 4b 75 6e    20 74 c3 a4 6d c3 a4 20 76 61 69 68 74 6f 65 68  | 1.=.nopein):.Kun.t..m...vaihtoeh | 
| 1120 |  74 6f 20 6f 6e 20 76 61 6c 69 74 74 75 6e 61 2c    20 6b 61 69 6b 6b 69 20 6b 69 72 6a 6f 69 74 74  | to.on.valittuna,.kaikki.kirjoitt | 
| 1140 |  61 6a 61 74 20 68 61 65 74 61 61 6e 2e 0a 0a 4b    75 6e 20 74 c3 a4 74 c3 a4 20 65 69 20 6f 6c 65  | ajat.haetaan...Kun.t..t...ei.ole | 
| 1160 |  20 76 61 6c 69 74 74 75 20 28 6f 6c 65 74 75 73    29 2c 20 76 61 69 6e 20 65 6e 73 69 73 69 6a 61  | .valittu.(oletus),.vain.ensisija | 
| 1180 |  69 73 65 74 20 74 65 6b 69 6a c3 a4 74 20 70 61    6c 61 75 74 65 74 61 61 6e 2e 00 50 4b 03 04 14  | iset.tekij..t.palautetaan..PK... | 
| 11a0 |  00 00 00 00 00 86 a0 ac 5a a4 b4 0f e4 4b 06 00    00 4b 06 00 00 12 00 00 00 74 72 61 6e 73 6c 61  | ........Z....K...K.......transla | 
| 11c0 |  74 69 6f 6e 73 2f 66 72 2e 6d 6f de 12 04 95 00    00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00  | tions/fr.mo................D.... | 
| 11e0 |  00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d    00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e  | ...........l...=...m...........> | 
| 1200 |  00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 e4    01 00 00 1f 02 00 00 5c 00 00 00 04 04 00 00 e8  | ...e...z...............\........ | 
| 1220 |  00 00 00 61 04 00 00 5d 00 00 00 4a 05 00 00 a2    00 00 00 a8 05 00 00 00 47 65 74 20 61 6c 6c 20  | ...a...]...J............Get.all. | 
| 1240 |  63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74    68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f  | contributing.authors.(e.g..edito | 
| 1260 |  72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73    20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67  | rs,.illustrators.etc).Increasing | 
| 1280 |  20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c    20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65  | .this.value.will.consider.more.e | 
| 12a0 |  64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f    20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68  | ditions.but.also.increase.search | 
| 12c0 |  20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69    6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20  | .times...This.will.increase.the. | 
| 12e0 |  70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69    68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20  | potential.likelihood.of.getting. | 
| 1300 |  61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69    6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f  | a.larger.cover.image.but.does.no | 
| 1320 |  74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00    4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75  | t.guarantee.it..Maximum.title/au | 
| 1340 |  74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63    68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20  | thor.search.matches.to.evaluate. | 
| 1360 |  28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57    68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20  | (1.=.fastest):.When.this.option. | 
| 1380 |  69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20    61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72  | is.checked,.all.authors.are.retr | 
| 13a0 |  69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63    68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29  | ieved...When.unchecked.(default) | 
| 13c0 |  20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72    79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20  | .only.the.primary.author(s).are. | 
| 13e0 |  72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63    74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41  | returned..Project-Id-Version:.PA | 
| 1400 |  43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f    54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a  | CKAGE.VERSION.POT-Creation-Date: | 
| 1420 |  20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35    35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69  | .2024-03-24.17:55+1000.PO-Revisi | 
| 1440 |  6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39    2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c  | on-Date:.2022-09-08.19:50+0000.L | 
| 1460 |  61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20    57 61 6c 74 65 72 20 50 61 74 65 72 6e 6f 20 3c  | ast-Translator:.Walter.Paterno.< | 
| 1480 |  77 61 6c 74 65 72 2e 70 61 74 65 72 6e 6f 40 67    6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30 32 32 0a  | walter.paterno@gmail.com>,.2022. | 
| 14a0 |  4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20 46    72 65 6e 63 68 20 28 68 74 74 70 73 3a 2f 2f 61  | Language-Team:.French.(https://a | 
| 14c0 |  70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d    2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31  | pp.transifex.com/calibre/teams/1 | 
| 14e0 |  39 33 33 37 2f 66 72 2f 29 0a 4d 49 4d 45 2d 56    65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74  | 9337/fr/).MIME-Version:.1.0.Cont | 
| 1500 |  65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70    6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54  | ent-Type:.text/plain;.charset=UT | 
| 1520 |  46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e    73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38  | F-8.Content-Transfer-Encoding:.8 | 
| 1540 |  62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79    3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31  | bit.Generated-By:.pygettext.py.1 | 
| 1560 |  2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 66 72 0a    50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70  | .5.Language:.fr.Plural-Forms:.np | 
| 1580 |  6c 75 72 61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c    3d 28 6e 20 3d 3d 20 30 20 7c 7c 20 6e 20 3d 3d  | lurals=3;.plural=(n.==.0.||.n.== | 
| 15a0 |  20 31 29 20 3f 20 30 20 3a 20 6e 20 21 3d 20 30    20 26 26 20 6e 20 25 20 31 30 30 30 30 30 30 20  | .1).?.0.:.n.!=.0.&&.n.%.1000000. | 
| 15c0 |  3d 3d 20 30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f    62 74 65 6e 65 7a 20 74 6f 75 73 20 6c 65 73 20  | ==.0.?.1.:.2;..Obtenez.tous.les. | 
| 15e0 |  61 75 74 65 75 72 73 20 63 6f 6e 74 72 69 62 75    74 65 75 72 73 20 28 70 61 72 20 65 78 65 6d 70  | auteurs.contributeurs.(par.exemp | 
| 1600 |  6c 65 2c 20 6c 65 73 20 c3 a9 64 69 74 65 75 72    73 2c 20 6c 65 73 20 69 6c 6c 75 73 74 72 61 74  | le,.les...diteurs,.les.illustrat | 
| 1620 |  65 75 72 73 2c 20 65 74 63 2e 29 00 4c 27 61 75    67 6d 65 6e 74 61 74 69 6f 6e 20 64 65 20 63 65  | eurs,.etc.).L'augmentation.de.ce | 
| 1640 |  74 74 65 20 76 61 6c 65 75 72 20 70 72 65 6e 64    72 61 20 65 6e 20 63 6f 6d 70 74 65 20 70 6c 75  | tte.valeur.prendra.en.compte.plu | 
| 1660 |  73 20 64 27 c3 a9 64 69 74 69 6f 6e 73 20 6d 61    69 73 20 61 75 67 6d 65 6e 74 65 72 61 20 c3 a9  | s.d'..ditions.mais.augmentera... | 
| 1680 |  67 61 6c 65 6d 65 6e 74 20 6c 65 73 20 74 65 6d    70 73 20 64 65 20 72 65 63 68 65 72 63 68 65 2e  | galement.les.temps.de.recherche. | 
| 16a0 |  0a 0a 43 65 6c 61 20 61 75 67 6d 65 6e 74 65 72    61 20 6c 61 20 70 72 6f 62 61 62 69 6c 69 74 c3  | ..Cela.augmentera.la.probabilit. | 
| 16c0 |  a9 20 70 6f 74 65 6e 74 69 65 6c 6c 65 20 64 27    6f 62 74 65 6e 69 72 20 75 6e 65 20 69 6d 61 67  | ..potentielle.d'obtenir.une.imag | 
| 16e0 |  65 20 64 65 20 63 6f 75 76 65 72 74 75 72 65 20    70 6c 75 73 20 67 72 61 6e 64 65 0a 6d 61 69 73  | e.de.couverture.plus.grande.mais | 
| 1700 |  20 6e 65 20 6c 65 20 67 61 72 61 6e 74 69 74 20    70 61 73 2e 00 4e 6f 6d 62 72 65 20 6d 61 78 69  | .ne.le.garantit.pas..Nombre.maxi | 
| 1720 |  6d 61 6c 20 64 65 20 63 6f 72 72 65 73 70 6f 6e    64 61 6e 63 65 73 20 64 65 20 72 65 63 68 65 72  | mal.de.correspondances.de.recher | 
| 1740 |  63 68 65 20 74 69 74 72 65 2f 61 75 74 65 75 72    20 c3 a0 20 c3 a9 76 61 6c 75 65 72 20 28 31 20  | che.titre/auteur......valuer.(1. | 
| 1760 |  3d 20 6c 65 20 70 6c 75 73 20 72 61 70 69 64 65    29 3a 00 4c 6f 72 73 71 75 65 20 63 65 74 74 65  | =.le.plus.rapide):.Lorsque.cette | 
| 1780 |  20 6f 70 74 69 6f 6e 20 65 73 74 20 63 6f 63 68    c3 a9 65 2c 20 74 6f 75 73 20 6c 65 73 20 61 75  | .option.est.coch..e,.tous.les.au | 
| 17a0 |  74 65 75 72 73 20 73 6f 6e 74 20 72 c3 a9 63 75    70 c3 a9 72 c3 a9 73 2e 0a 0a 4c 6f 72 73 71 75  | teurs.sont.r..cup..r..s...Lorsqu | 
| 17c0 |  27 65 6c 6c 65 20 6e 27 65 73 74 20 70 61 73 20    63 6f 63 68 c3 a9 65 20 28 70 61 72 20 64 c3 a9  | 'elle.n'est.pas.coch..e.(par.d.. | 
| 17e0 |  66 61 75 74 29 2c 20 73 65 75 6c 73 20 6c 65 73    20 61 75 74 65 75 72 28 73 29 20 70 72 69 6e 63  | faut),.seuls.les.auteur(s).princ | 
| 1800 |  69 70 61 75 78 20 73 6f 6e 74 20 72 65 6e 76 6f    79 c3 a9 73 2e 00 50 4b 03 04 14 00 00 00 00 00  | ipaux.sont.renvoy..s..PK........ | 
| 1820 |  86 a0 ac 5a fa 03 c8 3b c2 05 00 00 c2 05 00 00    12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73  | ...Z...;............translations | 
| 1840 |  2f 67 6c 2e 6d 6f de 12 04 95 00 00 00 00 05 00    00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00  | /gl.mo................D......... | 
| 1860 |  00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00    00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01  | ......l...=...m...........>...e. | 
| 1880 |  00 00 7a 00 00 00 a4 01 00 00 a2 01 00 00 1f 02    00 00 51 00 00 00 c2 03 00 00 be 00 00 00 14 04  | ..z...............Q............. | 
| 18a0 |  00 00 5c 00 00 00 d3 04 00 00 91 00 00 00 30 05    00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72  | ..\...........0....Get.all.contr | 
| 18c0 |  69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20    28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69  | ibuting.authors.(e.g..editors,.i | 
| 18e0 |  6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29    00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73  | llustrators.etc).Increasing.this | 
| 1900 |  20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73    69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f  | .value.will.consider.more.editio | 
| 1920 |  6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72    65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65  | ns.but.also.increase.search.time | 
| 1940 |  73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e    63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e  | s...This.will.increase.the.poten | 
| 1960 |  74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20    6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72  | tial.likelihood.of.getting.a.lar | 
| 1980 |  67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a    62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61  | ger.cover.image.but.does.not.gua | 
| 19a0 |  72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d    75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20  | rantee.it..Maximum.title/author. | 
| 19c0 |  73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74    6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20  | search.matches.to.evaluate.(1.=. | 
| 19e0 |  66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74    68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68  | fastest):.When.this.option.is.ch | 
| 1a00 |  65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f    72 73 20 61 72 65 20 72 65 74 72 69 65 76 65 64  | ecked,.all.authors.are.retrieved | 
| 1a20 |  2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65    64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79  | ...When.unchecked.(default).only | 
| 1a40 |  20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74    68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72  | .the.primary.author(s).are.retur | 
| 1a60 |  6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d    56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45  | ned..Project-Id-Version:.PACKAGE | 
| 1a80 |  20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65    61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34  | .VERSION.POT-Creation-Date:.2024 | 
| 1aa0 |  2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30    30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61  | -03-24.17:55+1000.PO-Revision-Da | 
| 1ac0 |  74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31    39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54  | te:.2022-09-08.19:50+0000.Last-T | 
| 1ae0 |  72 61 6e 73 6c 61 74 6f 72 3a 20 6e 69 6e 20 68    75 6d 20 3c 6e 69 6e 68 75 6d 40 67 6d 78 2e 63  | ranslator:.nin.hum.<ninhum@gmx.c | 
| 1b00 |  6f 6d 3e 2c 20 32 30 32 34 0a 4c 61 6e 67 75 61    67 65 2d 54 65 61 6d 3a 20 47 61 6c 69 63 69 61  | om>,.2024.Language-Team:.Galicia | 
| 1b20 |  6e 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74    72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c  | n.(https://app.transifex.com/cal | 
| 1b40 |  69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37    2f 67 6c 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69  | ibre/teams/19337/gl/).MIME-Versi | 
| 1b60 |  6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d    54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e  | on:.1.0.Content-Type:.text/plain | 
| 1b80 |  3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a    43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72  | ;.charset=UTF-8.Content-Transfer | 
| 1ba0 |  2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a    47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79  | -Encoding:.8bit.Generated-By:.py | 
| 1bc0 |  67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c    61 6e 67 75 61 67 65 3a 20 67 6c 0a 50 6c 75 72  | gettext.py.1.5.Language:.gl.Plur | 
| 1be0 |  61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61    6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20  | al-Forms:.nplurals=2;.plural=(n. | 
| 1c00 |  21 3d 20 31 29 3b 0a 00 4f 62 74 c3 a9 6e 20 74    6f 64 6f 73 20 6f 73 20 61 75 74 6f 72 65 73 20  | !=.1);..Obt..n.todos.os.autores. | 
| 1c20 |  71 75 65 20 63 6f 6c 61 62 6f 72 61 6e 20 28 70    6f 72 20 65 78 65 6d 70 6c 6f 2c 20 65 64 69 74  | que.colaboran.(por.exemplo,.edit | 
| 1c40 |  6f 72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72    65 73 2c 20 65 74 63 2e 29 00 41 75 6d 65 6e 74  | ores,.ilustradores,.etc.).Aument | 
| 1c60 |  61 72 20 65 73 74 65 20 76 61 6c 6f 72 20 74 65    72 c3 a1 20 65 6e 20 63 6f 6e 74 61 20 6d c3 a1  | ar.este.valor.ter...en.conta.m.. | 
| 1c80 |  69 73 20 65 64 69 63 69 c3 b3 6e 73 20 70 65 72    6f 20 74 61 6d c3 a9 6e 20 61 75 6d 65 6e 74 61  | is.edici..ns.pero.tam..n.aumenta | 
| 1ca0 |  72 c3 a1 20 6f 73 20 74 65 6d 70 6f 73 20 64 65    20 62 75 73 63 61 2e 0a 0a 49 73 74 6f 20 61 75  | r...os.tempos.de.busca...Isto.au | 
| 1cc0 |  6d 65 6e 74 61 72 c3 a1 20 61 20 70 72 6f 62 61    62 69 6c 69 64 61 64 65 20 64 65 20 6f 62 74 65  | mentar...a.probabilidade.de.obte | 
| 1ce0 |  72 20 75 6e 68 61 20 69 6d 61 78 65 20 64 65 20    70 6f 72 74 61 64 61 20 6d c3 a1 69 73 20 67 72  | r.unha.imaxe.de.portada.m..is.gr | 
| 1d00 |  61 6e 64 65 0a 70 65 72 6f 20 6e 6f 6e 20 6f 20    67 61 72 61 6e 74 65 2e 00 4e c3 ba 6d 65 72 6f  | ande.pero.non.o.garante..N..mero | 
| 1d20 |  20 6d c3 a1 78 69 6d 6f 20 64 65 20 63 6f 69 6e    63 69 64 65 6e 63 69 61 73 20 64 65 20 62 75 73  | .m..ximo.de.coincidencias.de.bus | 
| 1d40 |  63 61 20 64 65 20 74 c3 ad 74 75 6c 6f 2f 61 75    74 6f 72 20 70 61 72 61 20 61 76 61 6c 69 61 72  | ca.de.t..tulo/autor.para.avaliar | 
| 1d60 |  20 28 31 20 3d 20 6d c3 a1 69 73 20 72 c3 a1 70    69 64 6f 29 3a 00 43 61 6e 64 6f 20 65 73 74 61  | .(1.=.m..is.r..pido):.Cando.esta | 
| 1d80 |  20 6f 70 63 69 c3 b3 6e 20 65 73 74 c3 a1 20 6d    61 72 63 61 64 61 2c 20 74 6f 64 6f 73 20 6f 73  | .opci..n.est...marcada,.todos.os | 
| 1da0 |  20 61 75 74 6f 72 65 73 20 73 6f 6e 20 72 65 63    75 70 65 72 61 64 6f 73 2e 0a 0a 43 61 6e 64 6f  | .autores.son.recuperados...Cando | 
| 1dc0 |  20 73 65 20 64 65 73 6d 61 72 63 61 20 28 70 72    65 64 65 74 65 72 6d 69 6e 61 64 6f 29 2c 20 73  | .se.desmarca.(predeterminado),.s | 
| 1de0 |  c3 b3 20 73 65 20 64 65 76 6f 6c 76 65 6e 20 6f    73 20 61 75 74 6f 72 28 65 73 29 20 70 72 69 6e  | ...se.devolven.os.autor(es).prin | 
| 1e00 |  63 69 70 61 69 73 2e 00 50 4b 03 04 14 00 00 00    00 00 87 a0 ac 5a 68 a2 95 1f f6 05 00 00 f6 05  | cipais..PK...........Zh......... | 
| 1e20 |  00 00 12 00 00 00 74 72 61 6e 73 6c 61 74 69 6f    6e 73 2f 6a 61 2e 6d 6f de 12 04 95 00 00 00 00  | ......translations/ja.mo........ | 
| 1e40 |  05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00  | ........D...............l...=... | 
| 1e60 |  6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00    65 01 00 00 7a 00 00 00 a4 01 00 00 a0 01 00 00  | m...........>...e...z........... | 
| 1e80 |  1f 02 00 00 69 00 00 00 c0 03 00 00 d7 00 00 00    2a 04 00 00 4f 00 00 00 02 05 00 00 a3 00 00 00  | ....i...........*...O........... | 
| 1ea0 |  52 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e    74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72  | R....Get.all.contributing.author | 
| 1ec0 |  73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c    20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74  | s.(e.g..editors,.illustrators.et | 
| 1ee0 |  63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68    69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f  | c).Increasing.this.value.will.co | 
| 1f00 |  6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74    69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e  | nsider.more.editions.but.also.in | 
| 1f20 |  63 72 65 61 73 65 20 73 65 61 72 63 68 20 74 69    6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20  | crease.search.times...This.will. | 
| 1f40 |  69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74    65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f  | increase.the.potential.likelihoo | 
| 1f60 |  64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c    61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67  | d.of.getting.a.larger.cover.imag | 
| 1f80 |  65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67    75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78  | e.but.does.not.guarantee.it..Max | 
| 1fa0 |  69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f    72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73  | imum.title/author.search.matches | 
| 1fc0 |  20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20    3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e  | .to.evaluate.(1.=.fastest):.When | 
| 1fe0 |  20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20    63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74  | .this.option.is.checked,.all.aut | 
| 2000 |  68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76    65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63  | hors.are.retrieved...When.unchec | 
| 2020 |  6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e    6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61  | ked.(default).only.the.primary.a | 
| 2040 |  75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74    75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49  | uthor(s).are.returned..Project-I | 
| 2060 |  64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41    47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43  | d-Version:.PACKAGE.VERSION.POT-C | 
| 2080 |  72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30    32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31  | reation-Date:.2024-03-24.17:55+1 | 
| 20a0 |  30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d    44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38  | 000.PO-Revision-Date:.2022-09-08 | 
| 20c0 |  20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74    2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 50 6b 31  | .19:50+0000.Last-Translator:.Pk1 | 
| 20e0 |  31 20 3c 65 70 69 63 70 6b 6d 6e 31 31 40 6f 75    74 6c 6f 6f 6b 2e 63 6f 6d 3e 2c 20 32 30 32 32  | 1.<epicpkmn11@outlook.com>,.2022 | 
| 2100 |  0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20    4a 61 70 61 6e 65 73 65 20 28 68 74 74 70 73 3a  | .Language-Team:.Japanese.(https: | 
| 2120 |  2f 2f 61 70 70 2e 74 72 61 6e 73 69 66 65 78 2e    63 6f 6d 2f 63 61 6c 69 62 72 65 2f 74 65 61 6d  | //app.transifex.com/calibre/team | 
| 2140 |  73 2f 31 39 33 33 37 2f 6a 61 2f 29 0a 4d 49 4d    45 2d 56 65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43  | s/19337/ja/).MIME-Version:.1.0.C | 
| 2160 |  6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78    74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65 74  | ontent-Type:.text/plain;.charset | 
| 2180 |  3d 55 54 46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54    72 61 6e 73 66 65 72 2d 45 6e 63 6f 64 69 6e 67  | =UTF-8.Content-Transfer-Encoding | 
| 21a0 |  3a 20 38 62 69 74 0a 47 65 6e 65 72 61 74 65 64    2d 42 79 3a 20 70 79 67 65 74 74 65 78 74 2e 70  | :.8bit.Generated-By:.pygettext.p | 
| 21c0 |  79 20 31 2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20    6a 61 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a  | y.1.5.Language:.ja.Plural-Forms: | 
| 21e0 |  20 6e 70 6c 75 72 61 6c 73 3d 31 3b 20 70 6c 75    72 61 6c 3d 30 3b 0a 00 e5 85 a8 e3 81 a6 e3 81  | .nplurals=1;.plural=0;.......... | 
| 2200 |  ae e8 b2 a2 e7 8c ae e3 81 99 e3 82 8b e8 91 97    e8 80 85 e3 82 92 e5 8f 96 e5 be 97 e3 81 97 e3  | ................................ | 
| 2220 |  81 be e3 81 99 ef bc 88 e4 be 8b ef bc 9a e3 82    a8 e3 83 87 e3 82 a3 e3 82 bf e3 83 bc e3 80 81  | ................................ | 
| 2240 |  e3 82 a4 e3 83 a9 e3 82 b9 e3 83 88 e3 83 ac e3    83 bc e3 82 bf e3 83 bc e3 81 aa e3 81 a9 ef bc  | ................................ | 
| 2260 |  89 00 e3 81 93 e3 82 8c e3 82 92 e4 b8 8a e3 81    92 e3 82 8b e3 81 a8 e3 80 81 e3 82 82 e3 81 a3  | ................................ | 
| 2280 |  e3 81 a8 e3 82 a8 e3 83 87 e3 82 a3 e3 82 b7 e3    83 a7 e3 83 b3 e3 82 92 e7 a2 ba e8 aa 8d e3 81  | ................................ | 
| 22a0 |  99 e3 82 8b e3 81 8c e6 a4 9c e7 b4 a2 e6 99 82    e9 96 93 e3 82 92 e4 b8 8a e3 81 92 e3 82 89 e3  | ................................ | 
| 22c0 |  82 8c e3 82 8b e3 80 82 0a 0a e3 82 88 e3 82 8a    e5 a4 a7 e3 81 8d e3 81 aa e8 a1 a8 e7 b4 99 e7  | ................................ | 
| 22e0 |  94 bb e5 83 8f e3 81 8c e5 be 97 e3 82 89 e3 82    8c e3 82 8b e5 8f af e8 83 bd e6 80 a7 e3 82 92  | ................................ | 
| 2300 |  e4 b8 8a e3 81 92 e3 82 8b e3 81 8c e3 80 81 e4    bf 9d e8 a8 bc e3 81 99 e3 82 8b e3 82 82 e3 81  | ................................ | 
| 2320 |  ae e3 81 a7 e3 81 af e3 81 82 e3 82 8a e3 81 be    e3 81 9b e3 82 93 e3 80 82 00 e3 82 bf e3 82 a4  | ................................ | 
| 2340 |  e3 83 88 e3 83 ab e3 83 bb e8 91 97 e8 80 85 e3    81 ae e6 a4 9c e7 b4 a2 e3 82 92 e5 ae 9f e8 a1  | ................................ | 
| 2360 |  8c e3 81 97 e3 81 be e3 81 99 e3 81 ae e6 9c 80    e5 a4 a7 e6 95 b0 ef bc 88 31 20 3d 20 e9 ab 98  | .........................1.=.... | 
| 2380 |  e9 80 9f ef bc 89 ef bc 9a 00 e3 81 93 e3 82 8c    e3 82 92 e3 83 81 e3 82 a7 e3 83 83 e3 82 af e3  | ................................ | 
| 23a0 |  81 99 e3 82 8b e3 81 a8 e3 80 81 e5 85 a8 e3 81    a6 e3 81 ae e8 91 97 e8 80 85 e3 81 8c e5 8f 96  | ................................ | 
| 23c0 |  e5 be 97 e3 81 95 e3 82 8c e3 81 be e3 81 99 e3    80 82 0a 0a e3 83 81 e3 82 a7 e3 83 83 e3 82 af  | ................................ | 
| 23e0 |  e8 a7 a3 e9 99 a4 e3 81 99 e3 82 8b 28 e3 83 87    e3 83 95 e3 82 a9 e3 83 ab e3 83 88 29 e3 81 a8  | ............(...............)... | 
| 2400 |  e3 80 81 e4 b8 bb e3 81 aa e8 91 97 e8 80 85 e3    81 ae e3 81 bf e3 81 8c e5 8f 96 e5 be 97 e3 81  | ................................ | 
| 2420 |  95 e3 82 8c e3 81 be e3 81 99 e3 80 82 00 50 4b    03 04 14 00 00 00 00 00 87 a0 ac 5a c7 30 7a b3  | ..............PK...........Z.0z. | 
| 2440 |  77 05 00 00 77 05 00 00 12 00 00 00 74 72 61 6e    73 6c 61 74 69 6f 6e 73 2f 6e 6c 2e 6d 6f de 12  | w...w.......translations/nl.mo.. | 
| 2460 |  04 95 00 00 00 00 05 00 00 00 1c 00 00 00 44 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 00  | ..............D...............l. | 
| 2480 |  00 00 3d 00 00 00 6d 00 00 00 b9 00 00 00 ab 00    00 00 3e 00 00 00 65 01 00 00 7a 00 00 00 a4 01  | ..=...m...........>...e...z..... | 
| 24a0 |  00 00 9e 01 00 00 1f 02 00 00 44 00 00 00 be 03    00 00 b4 00 00 00 03 04 00 00 47 00 00 00 b8 04  | ..........D...............G..... | 
| 24c0 |  00 00 76 00 00 00 00 05 00 00 00 47 65 74 20 61    6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20  | ..v........Get.all.contributing. | 
| 24e0 |  61 75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64    69 74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74  | authors.(e.g..editors,.illustrat | 
| 2500 |  6f 72 73 20 65 74 63 29 00 49 6e 63 72 65 61 73    69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77  | ors.etc).Increasing.this.value.w | 
| 2520 |  69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 72    65 20 65 64 69 74 69 6f 6e 73 20 62 75 74 20 61  | ill.consider.more.editions.but.a | 
| 2540 |  6c 73 6f 20 69 6e 63 72 65 61 73 65 20 73 65 61    72 63 68 20 74 69 6d 65 73 2e 0a 0a 54 68 69 73  | lso.increase.search.times...This | 
| 2560 |  20 77 69 6c 6c 20 69 6e 63 72 65 61 73 65 20 74    68 65 20 70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b  | .will.increase.the.potential.lik | 
| 2580 |  65 6c 69 68 6f 6f 64 20 6f 66 20 67 65 74 74 69    6e 67 20 61 20 6c 61 72 67 65 72 20 63 6f 76 65  | elihood.of.getting.a.larger.cove | 
| 25a0 |  72 20 69 6d 61 67 65 0a 62 75 74 20 64 6f 65 73    20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 20 69  | r.image.but.does.not.guarantee.i | 
| 25c0 |  74 2e 00 4d 61 78 69 6d 75 6d 20 74 69 74 6c 65    2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 20 6d  | t..Maximum.title/author.search.m | 
| 25e0 |  61 74 63 68 65 73 20 74 6f 20 65 76 61 6c 75 61    74 65 20 28 31 20 3d 20 66 61 73 74 65 73 74 29  | atches.to.evaluate.(1.=.fastest) | 
| 2600 |  3a 00 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69    6f 6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61  | :.When.this.option.is.checked,.a | 
| 2620 |  6c 6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72    65 74 72 69 65 76 65 64 2e 0a 0a 57 68 65 6e 20  | ll.authors.are.retrieved...When. | 
| 2640 |  75 6e 63 68 65 63 6b 65 64 20 28 64 65 66 61 75    6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70 72 69  | unchecked.(default).only.the.pri | 
| 2660 |  6d 61 72 79 20 61 75 74 68 6f 72 28 73 29 20 61    72 65 20 72 65 74 75 72 6e 65 64 2e 00 50 72 6f  | mary.author(s).are.returned..Pro | 
| 2680 |  6a 65 63 74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a    20 50 41 43 4b 41 47 45 20 56 45 52 53 49 4f 4e  | ject-Id-Version:.PACKAGE.VERSION | 
| 26a0 |  0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e 2d 44 61    74 65 3a 20 32 30 32 34 2d 30 33 2d 32 34 20 31  | .POT-Creation-Date:.2024-03-24.1 | 
| 26c0 |  37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d 52 65 76    69 73 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 32  | 7:55+1000.PO-Revision-Date:.2022 | 
| 26e0 |  2d 30 39 2d 30 38 20 31 39 3a 35 30 2b 30 30 30    30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c 61 74 6f  | -09-08.19:50+0000.Last-Translato | 
| 2700 |  72 3a 20 70 65 74 65 72 20 3c 6b 6c 6d 40 64 69    74 62 65 6e 69 6b 2e 62 65 3e 2c 20 32 30 32 32  | r:.peter.<klm@ditbenik.be>,.2022 | 
| 2720 |  0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d 3a 20    44 75 74 63 68 20 28 68 74 74 70 73 3a 2f 2f 61  | .Language-Team:.Dutch.(https://a | 
| 2740 |  70 70 2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d    2f 63 61 6c 69 62 72 65 2f 74 65 61 6d 73 2f 31  | pp.transifex.com/calibre/teams/1 | 
| 2760 |  39 33 33 37 2f 6e 6c 2f 29 0a 4d 49 4d 45 2d 56    65 72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74  | 9337/nl/).MIME-Version:.1.0.Cont | 
| 2780 |  65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70    6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54  | ent-Type:.text/plain;.charset=UT | 
| 27a0 |  46 2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e    73 66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38  | F-8.Content-Transfer-Encoding:.8 | 
| 27c0 |  62 69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79    3a 20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31  | bit.Generated-By:.pygettext.py.1 | 
| 27e0 |  2e 35 0a 4c 61 6e 67 75 61 67 65 3a 20 6e 6c 0a    50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70  | .5.Language:.nl.Plural-Forms:.np | 
| 2800 |  6c 75 72 61 6c 73 3d 32 3b 20 70 6c 75 72 61 6c    3d 28 6e 20 21 3d 20 31 29 3b 0a 00 48 61 61 6c  | lurals=2;.plural=(n.!=.1);..Haal | 
| 2820 |  20 61 6c 6c 65 20 62 69 6a 64 72 61 67 65 6e 64    65 20 61 75 74 65 75 72 73 20 6f 70 20 28 62 76  | .alle.bijdragende.auteurs.op.(bv | 
| 2840 |  2e 20 62 65 77 65 72 6b 65 72 73 2c 20 69 6c 6c    75 73 74 72 61 74 6f 72 73 2c 20 65 6e 7a 2e 29  | ..bewerkers,.illustrators,.enz.) | 
| 2860 |  00 44 65 7a 65 20 77 61 61 72 64 65 20 76 65 72    68 6f 67 65 6e 20 6e 65 65 6d 74 20 6d 65 65 72  | .Deze.waarde.verhogen.neemt.meer | 
| 2880 |  20 65 64 69 74 69 65 73 20 69 6e 20 6f 76 65 72    77 65 67 69 6e 67 20 6d 61 61 72 20 76 65 72 68  | .edities.in.overweging.maar.verh | 
| 28a0 |  6f 6f 67 74 20 6f 6f 6b 20 7a 6f 65 6b 74 69 6a    64 65 6e 2e 0a 0a 44 69 74 20 76 65 72 67 72 6f  | oogt.ook.zoektijden...Dit.vergro | 
| 28c0 |  6f 74 20 20 64 65 20 6b 61 6e 73 20 6f 70 20 68    65 74 20 76 69 6e 64 65 6e 20 76 61 6e 20 65 65  | ot..de.kans.op.het.vinden.van.ee | 
| 28e0 |  6e 20 67 72 6f 74 65 72 65 20 6f 6d 73 6c 61 67    61 66 62 65 65 6c 64 69 6e 67 0a 6d 61 61 72 20  | n.grotere.omslagafbeelding.maar. | 
| 2900 |  67 65 65 66 74 20 67 65 65 6e 20 20 67 61 72 61    6e 74 69 65 2e 00 4d 61 78 69 6d 75 6d 20 61 61  | geeft.geen..garantie..Maximum.aa | 
| 2920 |  6e 74 61 6c 20 74 65 20 6f 76 65 72 77 65 67 65    6e 20 74 69 74 65 6c 2f 61 75 74 65 75 72 20 7a  | ntal.te.overwegen.titel/auteur.z | 
| 2940 |  6f 65 6b 6f 76 65 72 65 65 6e 6b 6f 6d 73 74 65    6e 20 28 31 3d 73 6e 65 6c 73 74 29 3a 00 41 6c  | oekovereenkomsten.(1=snelst):.Al | 
| 2960 |  73 20 64 65 7a 65 20 6f 70 74 69 65 20 69 73 20    61 61 6e 67 65 76 69 6e 6b 74 20 77 6f 72 64 65  | s.deze.optie.is.aangevinkt.worde | 
| 2980 |  6e 20 61 6c 6c 65 20 61 75 74 65 75 72 73 20 6f    70 67 65 68 61 61 6c 64 2e 0a 0a 4e 69 65 74 20  | n.alle.auteurs.opgehaald...Niet. | 
| 29a0 |  61 61 6e 76 69 6e 6b 65 6e 20 28 73 74 61 6e 64    61 61 72 64 29 20 67 65 65 66 74 20 65 6e 6b 65  | aanvinken.(standaard).geeft.enke | 
| 29c0 |  6c 20 64 65 20 68 6f 6f 66 64 61 75 74 65 75 72    28 73 29 2e 00 50 4b 03 04 14 00 00 00 00 00 87  | l.de.hoofdauteur(s)..PK......... | 
| 29e0 |  a0 ac 5a 61 3a 02 b5 60 06 00 00 60 06 00 00 12    00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f  | ..Za:..`...`.......translations/ | 
| 2a00 |  70 6c 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00    00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00  | pl.mo................D.......... | 
| 2a20 |  00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00    00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00  | .....l...=...m...........>...e.. | 
| 2a40 |  00 7a 00 00 00 a4 01 00 00 42 02 00 00 1f 02 00    00 3f 00 00 00 62 04 00 00 e0 00 00 00 a2 04 00  | .z.......B.......?...b.......... | 
| 2a60 |  00 4c 00 00 00 83 05 00 00 8f 00 00 00 d0 05 00    00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69  | .L................Get.all.contri | 
| 2a80 |  62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28    65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c  | buting.authors.(e.g..editors,.il | 
| 2aa0 |  6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00    49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20  | lustrators.etc).Increasing.this. | 
| 2ac0 |  76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69    64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e  | value.will.consider.more.edition | 
| 2ae0 |  73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65    61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73  | s.but.also.increase.search.times | 
| 2b00 |  2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63    72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74  | ...This.will.increase.the.potent | 
| 2b20 |  69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f    66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67  | ial.likelihood.of.getting.a.larg | 
| 2b40 |  65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62    75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72  | er.cover.image.but.does.not.guar | 
| 2b60 |  61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75    6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73  | antee.it..Maximum.title/author.s | 
| 2b80 |  65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f    20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66  | earch.matches.to.evaluate.(1.=.f | 
| 2ba0 |  61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68    69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65  | astest):.When.this.option.is.che | 
| 2bc0 |  63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72    73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e  | cked,.all.authors.are.retrieved. | 
| 2be0 |  0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64    20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20  | ..When.unchecked.(default).only. | 
| 2c00 |  74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68    6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e  | the.primary.author(s).are.return | 
| 2c20 |  65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56    65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20  | ed..Project-Id-Version:.PACKAGE. | 
| 2c40 |  56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61    74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d  | VERSION.POT-Creation-Date:.2024- | 
| 2c60 |  30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30    0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74  | 03-24.17:55+1000.PO-Revision-Dat | 
| 2c80 |  65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39    3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72  | e:.2022-09-08.19:50+0000.Last-Tr | 
| 2ca0 |  61 6e 73 6c 61 74 6f 72 3a 20 4d 61 72 63 69 6e    20 4b 6f 7a 69 6f c5 82 20 3c 6b 6f 7a 69 6f 6c  | anslator:.Marcin.Kozio...<koziol | 
| 2cc0 |  2e 6d 61 72 74 69 6e 40 67 6d 61 69 6c 2e 63 6f    6d 3e 2c 20 32 30 32 33 0a 4c 61 6e 67 75 61 67  | .martin@gmail.com>,.2023.Languag | 
| 2ce0 |  65 2d 54 65 61 6d 3a 20 50 6f 6c 69 73 68 20 28    68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e  | e-Team:.Polish.(https://app.tran | 
| 2d00 |  73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72    65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 70 6c  | sifex.com/calibre/teams/19337/pl | 
| 2d20 |  2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a    20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70  | /).MIME-Version:.1.0.Content-Typ | 
| 2d40 |  65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63    68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e  | e:.text/plain;.charset=UTF-8.Con | 
| 2d60 |  74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e    63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e  | tent-Transfer-Encoding:.8bit.Gen | 
| 2d80 |  65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74    74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67  | erated-By:.pygettext.py.1.5.Lang | 
| 2da0 |  75 61 67 65 3a 20 70 6c 0a 50 6c 75 72 61 6c 2d    46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d  | uage:.pl.Plural-Forms:.nplurals= | 
| 2dc0 |  34 3b 20 70 6c 75 72 61 6c 3d 28 6e 3d 3d 31 20    3f 20 30 20 3a 20 28 6e 25 31 30 3e 3d 32 20 26  | 4;.plural=(n==1.?.0.:.(n%10>=2.& | 
| 2de0 |  26 20 6e 25 31 30 3c 3d 34 29 20 26 26 20 28 6e    25 31 30 30 3c 31 32 20 7c 7c 20 6e 25 31 30 30  | &.n%10<=4).&&.(n%100<12.||.n%100 | 
| 2e00 |  3e 31 34 29 20 3f 20 31 20 3a 20 6e 21 3d 31 20    26 26 20 28 6e 25 31 30 3e 3d 30 20 26 26 20 6e  | >14).?.1.:.n!=1.&&.(n%10>=0.&&.n | 
| 2e20 |  25 31 30 3c 3d 31 29 20 7c 7c 20 28 6e 25 31 30    3e 3d 35 20 26 26 20 6e 25 31 30 3c 3d 39 29 20  | %10<=1).||.(n%10>=5.&&.n%10<=9). | 
| 2e40 |  7c 7c 20 28 6e 25 31 30 30 3e 3d 31 32 20 26 26    20 6e 25 31 30 30 3c 3d 31 34 29 20 3f 20 32 20  | ||.(n%100>=12.&&.n%100<=14).?.2. | 
| 2e60 |  3a 20 33 29 3b 0a 00 50 6f 62 69 65 72 7a 20 77    73 7a 79 73 74 6b 69 63 68 20 61 75 74 6f 72 c3  | :.3);..Pobierz.wszystkich.autor. | 
| 2e80 |  b3 77 20 28 6e 70 2e 20 65 64 79 74 6f 72 c3 b3    77 2c 20 69 6c 75 73 74 72 61 74 6f 72 c3 b3 77  | .w.(np..edytor..w,.ilustrator..w | 
| 2ea0 |  20 69 74 70 2e 29 00 5a 77 69 c4 99 6b 73 7a 65    6e 69 65 20 74 65 6a 20 77 61 72 74 6f c5 9b 63  | .itp.).Zwi..kszenie.tej.warto..c | 
| 2ec0 |  69 20 73 70 6f 77 6f 64 75 6a 65 20 75 77 7a 67    6c c4 99 64 6e 69 65 6e 69 65 20 77 69 c4 99 6b  | i.spowoduje.uwzgl..dnienie.wi..k | 
| 2ee0 |  73 7a 65 6a 20 6c 69 63 7a 62 79 20 77 79 64 61    c5 84 2c 20 61 6c 65 20 74 61 6b c5 bc 65 20 77  | szej.liczby.wyda..,.ale.tak..e.w | 
| 2f00 |  79 64 c5 82 75 c5 bc 79 20 63 7a 61 73 20 77 79    73 7a 75 6b 69 77 61 6e 69 61 2e 0a 0a 5a 77 69  | yd..u..y.czas.wyszukiwania...Zwi | 
| 2f20 |  c4 99 6b 73 7a 79 20 74 6f 20 70 6f 74 65 6e 63    6a 61 6c 6e 65 20 70 72 61 77 64 6f 70 6f 64 6f  | ..kszy.to.potencjalne.prawdopodo | 
| 2f40 |  62 69 65 c5 84 73 74 77 6f 20 75 7a 79 73 6b 61    6e 69 61 20 77 69 c4 99 6b 73 7a 65 67 6f 20 6f  | bie..stwo.uzyskania.wi..kszego.o | 
| 2f60 |  62 72 61 7a 75 20 6f 6b c5 82 61 64 6b 69 0a 61    6c 65 20 74 65 67 6f 20 6e 69 65 20 67 77 61 72  | brazu.ok..adki.ale.tego.nie.gwar | 
| 2f80 |  61 6e 74 75 6a 65 2e 00 4d 61 6b 73 79 6d 61 6c    6e 61 20 69 6c 6f c5 9b c4 87 20 64 6f 70 61 73  | antuje..Maksymalna.ilo.....dopas | 
| 2fa0 |  6f 77 61 c5 84 20 74 79 74 75 c5 82 2f 61 75 74    6f 72 20 64 6f 20 6f 73 7a 61 63 6f 77 61 6e 69  | owa...tytu../autor.do.oszacowani | 
| 2fc0 |  61 20 28 31 20 3d 20 6e 61 6a 73 7a 79 62 63 69    65 6a 29 3a 00 47 64 79 20 6f 70 63 6a 61 20 6a  | a.(1.=.najszybciej):.Gdy.opcja.j | 
| 2fe0 |  65 73 74 20 7a 61 7a 6e 61 63 7a 6f 6e 61 2c 20    70 6f 62 69 65 72 61 6e 69 20 73 c4 85 20 77 73  | est.zaznaczona,.pobierani.s...ws | 
| 3000 |  7a 79 73 63 79 20 61 75 74 6f 72 7a 79 2e 0a 0a    47 64 79 20 6f 70 63 6a 61 20 6a 65 73 74 20 6f  | zyscy.autorzy...Gdy.opcja.jest.o | 
| 3020 |  64 7a 6e 61 63 7a 6f 6e 61 20 28 64 6f 6d 79 c5    9b 6c 6e 69 65 29 20 7a 77 72 61 63 61 6e 79 20  | dznaczona.(domy..lnie).zwracany. | 
| 3040 |  6a 65 73 74 20 74 79 6c 6b 6f 20 67 c5 82 c3 b3    77 6e 79 20 61 75 74 6f 72 20 28 61 75 74 6f 72  | jest.tylko.g....wny.autor.(autor | 
| 3060 |  7a 79 29 2e 00 50 4b 03 04 14 00 00 00 00 00 87    a0 ac 5a 19 79 dd 7f 51 06 00 00 51 06 00 00 12  | zy)..PK...........Z.y..Q...Q.... | 
| 3080 |  00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f    70 74 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00  | ...translations/pt.mo........... | 
| 30a0 |  00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00  | .....D...............l...=...m.. | 
| 30c0 |  00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00    00 7a 00 00 00 a4 01 00 00 e5 01 00 00 1f 02 00  | .........>...e...z.............. | 
| 30e0 |  00 4b 00 00 00 05 04 00 00 cb 00 00 00 51 04 00    00 6e 00 00 00 1d 05 00 00 c4 00 00 00 8c 05 00  | .K...........Q...n.............. | 
| 3100 |  00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69    62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28  | ..Get.all.contributing.authors.( | 
| 3120 |  65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c    6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00  | e.g..editors,.illustrators.etc). | 
| 3140 |  49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20    76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69  | Increasing.this.value.will.consi | 
| 3160 |  64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e    73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65  | der.more.editions.but.also.incre | 
| 3180 |  61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73    2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63  | ase.search.times...This.will.inc | 
| 31a0 |  72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74    69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f  | rease.the.potential.likelihood.o | 
| 31c0 |  66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67    65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62  | f.getting.a.larger.cover.image.b | 
| 31e0 |  75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72    61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75  | ut.does.not.guarantee.it..Maximu | 
| 3200 |  6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73    65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f  | m.title/author.search.matches.to | 
| 3220 |  20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66    61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68  | .evaluate.(1.=.fastest):.When.th | 
| 3240 |  69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65    63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72  | is.option.is.checked,.all.author | 
| 3260 |  73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e    0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64  | s.are.retrieved...When.unchecked | 
| 3280 |  20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20    74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68  | .(default).only.the.primary.auth | 
| 32a0 |  6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e    65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56  | or(s).are.returned..Project-Id-V | 
| 32c0 |  65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20    56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61  | ersion:.PACKAGE.VERSION.POT-Crea | 
| 32e0 |  74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d    30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30  | tion-Date:.2024-03-24.17:55+1000 | 
| 3300 |  0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74    65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39  | .PO-Revision-Date:.2022-09-08.19 | 
| 3320 |  3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72    61 6e 73 6c 61 74 6f 72 3a 20 50 61 75 6c 6f 20  | :50+0000.Last-Translator:.Paulo. | 
| 3340 |  50 65 72 65 69 72 61 20 3c 70 61 75 6c 6f 69 7a    69 64 6f 72 6f 40 67 6d 61 69 6c 2e 63 6f 6d 3e  | Pereira.<pauloizidoro@gmail.com> | 
| 3360 |  2c 20 32 30 32 34 0a 4c 61 6e 67 75 61 67 65 2d    54 65 61 6d 3a 20 50 6f 72 74 75 67 75 65 73 65  | ,.2024.Language-Team:.Portuguese | 
| 3380 |  20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72    61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69  | .(https://app.transifex.com/cali | 
| 33a0 |  62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f    70 74 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f  | bre/teams/19337/pt/).MIME-Versio | 
| 33c0 |  6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54    79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b  | n:.1.0.Content-Type:.text/plain; | 
| 33e0 |  20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43    6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d  | .charset=UTF-8.Content-Transfer- | 
| 3400 |  45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47    65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67  | Encoding:.8bit.Generated-By:.pyg | 
| 3420 |  65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61    6e 67 75 61 67 65 3a 20 70 74 0a 50 6c 75 72 61  | ettext.py.1.5.Language:.pt.Plura | 
| 3440 |  6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c    73 3d 33 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 3d  | l-Forms:.nplurals=3;.plural=(n.= | 
| 3460 |  3d 20 30 20 7c 7c 20 6e 20 3d 3d 20 31 29 20 3f    20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26 20 6e  | =.0.||.n.==.1).?.0.:.n.!=.0.&&.n | 
| 3480 |  20 25 20 31 30 30 30 30 30 30 20 3d 3d 20 30 20    3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65 72 20  | .%.1000000.==.0.?.1.:.2;..Obter. | 
| 34a0 |  6f 73 20 6e 6f 6d 65 73 20 64 65 20 74 6f 64 6f    73 20 6f 73 20 63 6f 6c 61 62 6f 72 61 64 6f 72  | os.nomes.de.todos.os.colaborador | 
| 34c0 |  65 73 20 28 65 78 2e 20 65 64 69 74 6f 72 65 73    2c 20 69 6c 75 73 74 72 61 64 6f 72 65 73 2c 20  | es.(ex..editores,.ilustradores,. | 
| 34e0 |  65 74 63 2e 29 00 49 6e 63 72 65 6d 65 6e 74 61    6e 64 6f 2d 73 65 20 65 73 74 65 20 76 61 6c 6f  | etc.).Incrementando-se.este.valo | 
| 3500 |  72 2c 20 73 65 72 c3 a3 6f 20 63 6f 6e 73 69 64    65 72 61 64 61 73 20 6d 61 69 73 20 65 64 69 c3  | r,.ser..o.consideradas.mais.edi. | 
| 3520 |  a7 c3 b5 65 73 2c 20 70 6f 72 c3 a9 6d 20 6f 20    74 65 6d 70 6f 20 64 65 20 70 65 73 71 75 69 73  | ...es,.por..m.o.tempo.de.pesquis | 
| 3540 |  61 20 74 61 6d 62 c3 a9 6d 20 61 75 6d 65 6e 74    61 72 c3 a1 2e 0a 0a 49 73 74 6f 20 61 75 6d 65  | a.tamb..m.aumentar.....Isto.aume | 
| 3560 |  6e 74 61 72 c3 a1 20 70 6f 73 73 69 62 69 6c 69    64 61 64 65 20 64 65 20 73 65 20 6f 62 74 65 72  | ntar...possibilidade.de.se.obter | 
| 3580 |  20 69 6d 61 67 65 6e 73 20 6d 61 69 6f 72 65 73    20 64 61 73 20 63 61 70 61 73 20 6d 61 73 20 6e  | .imagens.maiores.das.capas.mas.n | 
| 35a0 |  c3 a3 6f 20 c3 a9 20 67 61 72 61 6e 74 69 64 6f    2e 00 51 75 61 6e 74 69 64 61 64 65 20 6d c3 a1  | ..o....garantido..Quantidade.m.. | 
| 35c0 |  78 69 6d 61 20 64 65 20 63 6f 72 72 65 73 70 6f    6e 64 c3 aa 6e 63 69 61 73 20 64 65 20 70 65 73  | xima.de.correspond..ncias.de.pes | 
| 35e0 |  71 75 69 73 61 20 70 6f 72 20 74 c3 ad 74 75 6c    6f 2f 61 75 74 6f 72 20 61 20 73 65 72 65 6d 20  | quisa.por.t..tulo/autor.a.serem. | 
| 3600 |  63 6f 6e 73 69 64 65 72 61 64 61 73 20 28 31 20    3d 20 6d 61 69 73 20 72 c3 a1 70 69 64 6f 29 3a  | consideradas.(1.=.mais.r..pido): | 
| 3620 |  00 51 75 61 6e 64 6f 20 65 73 74 61 20 6f 70 c3    a7 c3 a3 6f 20 65 73 74 69 76 65 72 20 6d 61 72  | .Quando.esta.op....o.estiver.mar | 
| 3640 |  63 61 64 61 2c 20 73 65 72 c3 a3 6f 20 6f 62 74    69 64 6f 73 20 74 6f 64 6f 73 20 6f 73 20 6e 6f  | cada,.ser..o.obtidos.todos.os.no | 
| 3660 |  6d 65 73 20 64 65 20 61 75 74 6f 72 65 73 20 65    20 63 6f 6c 61 62 6f 72 61 64 6f 72 65 73 2e 0a  | mes.de.autores.e.colaboradores.. | 
| 3680 |  0a 45 73 74 61 6e 64 6f 20 64 65 73 6d 61 72 63    61 64 61 20 28 63 6f 6e 66 69 67 75 72 61 c3 a7  | .Estando.desmarcada.(configura.. | 
| 36a0 |  c3 a3 6f 20 70 61 64 72 c3 a3 6f 29 2c 20 61 70    65 6e 61 73 20 6f 73 20 6e 6f 6d 65 73 20 64 6f  | ..o.padr..o),.apenas.os.nomes.do | 
| 36c0 |  73 20 61 75 74 6f 72 65 73 20 70 72 69 6e 63 69    70 61 69 73 20 73 65 72 c3 a3 6f 20 63 61 70 74  | s.autores.principais.ser..o.capt | 
| 36e0 |  61 64 6f 73 2e 00 50 4b 03 04 14 00 00 00 00 00    87 a0 ac 5a b6 eb de 20 42 06 00 00 42 06 00 00  | ados..PK...........Z....B...B... | 
| 3700 |  15 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 70 74 5f 42 52 2e 6d 6f de 12 04 95 00 00 00  | ....translations/pt_BR.mo....... | 
| 3720 |  00 05 00 00 00 1c 00 00 00 44 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 6c 00 00 00 3d 00 00  | .........D...............l...=.. | 
| 3740 |  00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00    00 65 01 00 00 7a 00 00 00 a4 01 00 00 d3 01 00  | .m...........>...e...z.......... | 
| 3760 |  00 1f 02 00 00 4b 00 00 00 f3 03 00 00 d2 00 00    00 3f 04 00 00 67 00 00 00 12 05 00 00 c7 00 00  | .....K...........?...g.......... | 
| 3780 |  00 7a 05 00 00 00 47 65 74 20 61 6c 6c 20 63 6f    6e 74 72 69 62 75 74 69 6e 67 20 61 75 74 68 6f  | .z....Get.all.contributing.autho | 
| 37a0 |  72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73    2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65  | rs.(e.g..editors,.illustrators.e | 
| 37c0 |  74 63 29 00 49 6e 63 72 65 61 73 69 6e 67 20 74    68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63  | tc).Increasing.this.value.will.c | 
| 37e0 |  6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65 64 69    74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69  | onsider.more.editions.but.also.i | 
| 3800 |  6e 63 72 65 61 73 65 20 73 65 61 72 63 68 20 74    69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c  | ncrease.search.times...This.will | 
| 3820 |  20 69 6e 63 72 65 61 73 65 20 74 68 65 20 70 6f    74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f  | .increase.the.potential.likeliho | 
| 3840 |  6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20 61 20    6c 61 72 67 65 72 20 63 6f 76 65 72 20 69 6d 61  | od.of.getting.a.larger.cover.ima | 
| 3860 |  67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20    67 75 61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61  | ge.but.does.not.guarantee.it..Ma | 
| 3880 |  78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68    6f 72 20 73 65 61 72 63 68 20 6d 61 74 63 68 65  | ximum.title/author.search.matche | 
| 38a0 |  73 20 74 6f 20 65 76 61 6c 75 61 74 65 20 28 31    20 3d 20 66 61 73 74 65 73 74 29 3a 00 57 68 65  | s.to.evaluate.(1.=.fastest):.Whe | 
| 38c0 |  6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73    20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75  | n.this.option.is.checked,.all.au | 
| 38e0 |  74 68 6f 72 73 20 61 72 65 20 72 65 74 72 69 65    76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65  | thors.are.retrieved...When.unche | 
| 3900 |  63 6b 65 64 20 28 64 65 66 61 75 6c 74 29 20 6f    6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72 79 20  | cked.(default).only.the.primary. | 
| 3920 |  61 75 74 68 6f 72 28 73 29 20 61 72 65 20 72 65    74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d  | author(s).are.returned..Project- | 
| 3940 |  49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b    41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d  | Id-Version:.PACKAGE.VERSION.POT- | 
| 3960 |  43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32    30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b  | Creation-Date:.2024-03-24.17:55+ | 
| 3980 |  31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e    2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30  | 1000.PO-Revision-Date:.2022-09-0 | 
| 39a0 |  38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73    74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20 43 6d  | 8.19:50+0000.Last-Translator:.Cm | 
| 39c0 |  20 46 79 2c 20 32 30 32 32 0a 4c 61 6e 67 75 61    67 65 2d 54 65 61 6d 3a 20 50 6f 72 74 75 67 75  | .Fy,.2022.Language-Team:.Portugu | 
| 39e0 |  65 73 65 20 28 42 72 61 7a 69 6c 29 20 28 68 74    74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69  | ese.(Brazil).(https://app.transi | 
| 3a00 |  66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f    74 65 61 6d 73 2f 31 39 33 33 37 2f 70 74 5f 42  | fex.com/calibre/teams/19337/pt_B | 
| 3a20 |  52 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e    3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79  | R/).MIME-Version:.1.0.Content-Ty | 
| 3a40 |  70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20    63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f  | pe:.text/plain;.charset=UTF-8.Co | 
| 3a60 |  6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45    6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65  | ntent-Transfer-Encoding:.8bit.Ge | 
| 3a80 |  6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67 65    74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e  | nerated-By:.pygettext.py.1.5.Lan | 
| 3aa0 |  67 75 61 67 65 3a 20 70 74 5f 42 52 0a 50 6c 75    72 61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72  | guage:.pt_BR.Plural-Forms:.nplur | 
| 3ac0 |  61 6c 73 3d 33 3b 20 70 6c 75 72 61 6c 3d 28 6e    20 3d 3d 20 30 20 7c 7c 20 6e 20 3d 3d 20 31 29  | als=3;.plural=(n.==.0.||.n.==.1) | 
| 3ae0 |  20 3f 20 30 20 3a 20 6e 20 21 3d 20 30 20 26 26    20 6e 20 25 20 31 30 30 30 30 30 30 20 3d 3d 20  | .?.0.:.n.!=.0.&&.n.%.1000000.==. | 
| 3b00 |  30 20 3f 20 31 20 3a 20 32 3b 0a 00 4f 62 74 65    72 20 6f 73 20 6e 6f 6d 65 73 20 64 65 20 74 6f  | 0.?.1.:.2;..Obter.os.nomes.de.to | 
| 3b20 |  64 6f 73 20 6f 73 20 63 6f 6c 61 62 6f 72 61 64    6f 72 65 73 20 28 65 2e 67 2e 20 65 64 69 74 6f  | dos.os.colaboradores.(e.g..edito | 
| 3b40 |  72 65 73 2c 20 69 6c 75 73 74 72 61 64 6f 72 65    73 20 65 74 63 2e 29 00 49 6e 63 72 65 6d 65 6e  | res,.ilustradores.etc.).Incremen | 
| 3b60 |  74 61 6e 64 6f 2d 73 65 20 65 73 74 65 20 76 61    6c 6f 72 2c 20 73 65 72 c3 a3 6f 20 63 6f 6e 73  | tando-se.este.valor,.ser..o.cons | 
| 3b80 |  69 64 65 72 61 64 61 73 20 6d 61 69 73 20 65 64    69 c3 a7 c3 b5 65 73 2c 20 70 6f 72 c3 a9 6d 20  | ideradas.mais.edi....es,.por..m. | 
| 3ba0 |  61 20 64 75 72 61 c3 a7 c3 a3 6f 20 64 61 73 20    62 75 73 63 61 73 20 74 61 6d 62 c3 a9 6d 20 61  | a.dura....o.das.buscas.tamb..m.a | 
| 3bc0 |  75 6d 65 6e 74 61 72 c3 a1 2e 0a 0a 49 73 74 6f    20 61 75 6d 65 6e 74 61 72 c3 a1 20 61 73 20 70  | umentar.....Isto.aumentar...as.p | 
| 3be0 |  6f 73 73 69 62 69 6c 69 64 61 64 65 73 20 64 65    20 73 65 20 6f 62 74 65 72 20 69 6d 61 67 65 6e  | ossibilidades.de.se.obter.imagen | 
| 3c00 |  73 20 6d 61 69 6f 72 65 73 20 64 61 73 20 63 61    70 61 73 0a 6d 61 73 20 6e c3 a3 6f 20 c3 a9 20  | s.maiores.das.capas.mas.n..o.... | 
| 3c20 |  67 61 72 61 6e 74 69 64 6f 2e 00 51 75 61 6e 74    69 64 61 64 65 20 6d c3 a1 78 69 6d 61 20 64 65  | garantido..Quantidade.m..xima.de | 
| 3c40 |  20 63 6f 72 72 65 73 70 6f 6e 64 c3 aa 6e 63 69    61 73 20 64 65 20 62 75 73 63 61 20 74 c3 ad 74  | .correspond..ncias.de.busca.t..t | 
| 3c60 |  75 6c 6f 2f 61 75 74 6f 72 20 61 20 73 65 72 65    6d 20 63 6f 6e 73 69 64 65 72 61 64 61 73 20 28  | ulo/autor.a.serem.consideradas.( | 
| 3c80 |  31 20 3d 20 6d 61 69 73 20 72 c3 a1 70 69 64 6f    29 3a 00 51 75 61 6e 64 6f 20 65 73 74 61 20 6f  | 1.=.mais.r..pido):.Quando.esta.o | 
| 3ca0 |  70 c3 a7 c3 a3 6f 20 65 73 74 69 76 65 72 20 6d    61 72 63 61 64 61 2c 20 74 6f 64 6f 73 20 6f 73  | p....o.estiver.marcada,.todos.os | 
| 3cc0 |  20 6e 6f 6d 65 73 20 64 65 20 61 75 74 6f 72 65    73 20 65 20 63 6f 6c 61 62 6f 72 61 64 6f 72 65  | .nomes.de.autores.e.colaboradore | 
| 3ce0 |  73 20 73 65 72 c3 a3 6f 20 6f 62 74 69 64 6f 73    2e 0a 0a 45 73 74 61 6e 64 6f 20 64 65 73 6d 61  | s.ser..o.obtidos...Estando.desma | 
| 3d00 |  72 63 61 64 61 20 28 63 6f 6e 66 69 67 75 72 61    c3 a7 c3 a3 6f 20 70 61 64 72 c3 a3 6f 29 2c 20  | rcada.(configura....o.padr..o),. | 
| 3d20 |  73 6f 6d 65 6e 74 65 20 6f 73 20 6e 6f 6d 65 73    20 64 6f 73 20 61 75 74 6f 72 65 73 20 70 72 69  | somente.os.nomes.dos.autores.pri | 
| 3d40 |  6e 63 69 70 61 69 73 20 73 65 72 c3 a3 6f 20 72    65 74 6f 72 6e 61 64 6f 73 2e 00 50 4b 03 04 14  | ncipais.ser..o.retornados..PK... | 
| 3d60 |  00 00 00 00 00 e0 35 28 55 55 1a 5c 16 06 01 00    00 06 01 00 00 16 00 00 00 74 72 61 6e 73 6c 61  | ......5(UU.\.............transla | 
| 3d80 |  74 69 6f 6e 73 2f 52 45 41 44 4d 45 2e 6d 64 23    20 54 72 61 6e 73 6c 61 74 69 6f 6e 73 0d 0a 0d  | tions/README.md#.Translations... | 
| 3da0 |  0a 49 66 20 79 6f 75 27 72 65 20 69 6e 74 65 72    65 73 74 65 64 20 69 6e 20 68 65 6c 70 69 6e 67  | .If.you're.interested.in.helping | 
| 3dc0 |  20 70 72 6f 76 69 64 65 20 74 72 61 6e 73 6c 61    74 69 6f 6e 73 20 66 6f 72 20 74 68 69 73 20 70  | .provide.translations.for.this.p | 
| 3de0 |  72 6f 6a 65 63 74 2c 0d 0a 70 6c 65 61 73 65 20    75 73 65 20 74 68 65 0d 0a 5b 54 72 61 6e 73 69  | roject,..please.use.the..[Transi | 
| 3e00 |  66 65 78 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77    2e 74 72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 70  | fex](https://www.transifex.com/p | 
| 3e20 |  72 6f 6a 65 63 74 73 2f 70 2f 63 61 6c 69 62 72    65 2d 70 6c 75 67 69 6e 73 2f 72 65 73 6f 75 72  | rojects/p/calibre-plugins/resour | 
| 3e40 |  63 65 73 2f 29 0d 0a 77 65 62 73 69 74 65 20 74    6f 20 61 64 64 20 74 72 61 6e 73 6c 61 74 69 6f  | ces/)..website.to.add.translatio | 
| 3e60 |  6e 73 20 74 6f 20 74 68 69 73 2c 20 6f 72 20 6f    74 68 65 72 20 63 61 6c 69 62 72 65 20 70 6c 75  | ns.to.this,.or.other.calibre.plu | 
| 3e80 |  67 69 6e 73 20 74 68 61 74 20 73 75 70 70 6f 72    74 20 69 74 2e 50 4b 03 04 14 00 00 00 00 00 87  | gins.that.support.it.PK......... | 
| 3ea0 |  a0 ac 5a 19 b1 5d 0d fc 06 00 00 fc 06 00 00 12    00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f  | ..Z..].............translations/ | 
| 3ec0 |  72 75 2e 6d 6f de 12 04 95 00 00 00 00 05 00 00    00 1c 00 00 00 44 00 00 00 00 00 00 00 00 00 00  | ru.mo................D.......... | 
| 3ee0 |  00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00    00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65 01 00  | .....l...=...m...........>...e.. | 
| 3f00 |  00 7a 00 00 00 a4 01 00 00 19 02 00 00 1f 02 00    00 6b 00 00 00 39 04 00 00 22 01 00 00 a5 04 00  | .z...............k...9..."...... | 
| 3f20 |  00 6d 00 00 00 c8 05 00 00 c5 00 00 00 36 06 00    00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69  | .m...........6....Get.all.contri | 
| 3f40 |  62 75 74 69 6e 67 20 61 75 74 68 6f 72 73 20 28    65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c  | buting.authors.(e.g..editors,.il | 
| 3f60 |  6c 75 73 74 72 61 74 6f 72 73 20 65 74 63 29 00    49 6e 63 72 65 61 73 69 6e 67 20 74 68 69 73 20  | lustrators.etc).Increasing.this. | 
| 3f80 |  76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69    64 65 72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e  | value.will.consider.more.edition | 
| 3fa0 |  73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65    61 73 65 20 73 65 61 72 63 68 20 74 69 6d 65 73  | s.but.also.increase.search.times | 
| 3fc0 |  2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63    72 65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74  | ...This.will.increase.the.potent | 
| 3fe0 |  69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f    66 20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67  | ial.likelihood.of.getting.a.larg | 
| 4000 |  65 72 20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62    75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72  | er.cover.image.but.does.not.guar | 
| 4020 |  61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75    6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73  | antee.it..Maximum.title/author.s | 
| 4040 |  65 61 72 63 68 20 6d 61 74 63 68 65 73 20 74 6f    20 65 76 61 6c 75 61 74 65 20 28 31 20 3d 20 66  | earch.matches.to.evaluate.(1.=.f | 
| 4060 |  61 73 74 65 73 74 29 3a 00 57 68 65 6e 20 74 68    69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65  | astest):.When.this.option.is.che | 
| 4080 |  63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72    73 20 61 72 65 20 72 65 74 72 69 65 76 65 64 2e  | cked,.all.authors.are.retrieved. | 
| 40a0 |  0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64    20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20  | ..When.unchecked.(default).only. | 
| 40c0 |  74 68 65 20 70 72 69 6d 61 72 79 20 61 75 74 68    6f 72 28 73 29 20 61 72 65 20 72 65 74 75 72 6e  | the.primary.author(s).are.return | 
| 40e0 |  65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56    65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20  | ed..Project-Id-Version:.PACKAGE. | 
| 4100 |  56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61    74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d  | VERSION.POT-Creation-Date:.2024- | 
| 4120 |  30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30    0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74  | 03-24.17:55+1000.PO-Revision-Dat | 
| 4140 |  65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20 31 39    3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72  | e:.2022-09-08.19:50+0000.Last-Tr | 
| 4160 |  61 6e 73 6c 61 74 6f 72 3a 20 43 61 61 72 6d 69    2c 20 32 30 32 32 0a 4c 61 6e 67 75 61 67 65 2d  | anslator:.Caarmi,.2022.Language- | 
| 4180 |  54 65 61 6d 3a 20 52 75 73 73 69 61 6e 20 28 68    74 74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73  | Team:.Russian.(https://app.trans | 
| 41a0 |  69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65    2f 74 65 61 6d 73 2f 31 39 33 33 37 2f 72 75 2f  | ifex.com/calibre/teams/19337/ru/ | 
| 41c0 |  29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20    31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65  | ).MIME-Version:.1.0.Content-Type | 
| 41e0 |  3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68    61 72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74  | :.text/plain;.charset=UTF-8.Cont | 
| 4200 |  65 6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63    6f 64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65  | ent-Transfer-Encoding:.8bit.Gene | 
| 4220 |  72 61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74    65 78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75  | rated-By:.pygettext.py.1.5.Langu | 
| 4240 |  61 67 65 3a 20 72 75 0a 50 6c 75 72 61 6c 2d 46    6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 34  | age:.ru.Plural-Forms:.nplurals=4 | 
| 4260 |  3b 20 70 6c 75 72 61 6c 3d 28 6e 25 31 30 3d 3d    31 20 26 26 20 6e 25 31 30 30 21 3d 31 31 20 3f  | ;.plural=(n%10==1.&&.n%100!=11.? | 
| 4280 |  20 30 20 3a 20 6e 25 31 30 3e 3d 32 20 26 26 20    6e 25 31 30 3c 3d 34 20 26 26 20 28 6e 25 31 30  | .0.:.n%10>=2.&&.n%10<=4.&&.(n%10 | 
| 42a0 |  30 3c 31 32 20 7c 7c 20 6e 25 31 30 30 3e 31 34    29 20 3f 20 31 20 3a 20 6e 25 31 30 3d 3d 30 20  | 0<12.||.n%100>14).?.1.:.n%10==0. | 
| 42c0 |  7c 7c 20 28 6e 25 31 30 3e 3d 35 20 26 26 20 6e    25 31 30 3c 3d 39 29 20 7c 7c 20 28 6e 25 31 30  | ||.(n%10>=5.&&.n%10<=9).||.(n%10 | 
| 42e0 |  30 3e 3d 31 31 20 26 26 20 6e 25 31 30 30 3c 3d    31 34 29 3f 20 32 20 3a 20 33 29 3b 0a 00 d0 97  | 0>=11.&&.n%100<=14)?.2.:.3);.... | 
| 4300 |  d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c    20 d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d0 be d0 b0  | ................................ | 
| 4320 |  d0 b2 d1 82 d0 be d1 80 d0 be d0 b2 20 28 d1 80    d0 b5 d0 b4 d0 b0 d0 ba d1 82 d0 be d1 80 d0 be  | .............(.................. | 
| 4340 |  d0 b2 2c 20 d0 b8 d0 bb d0 bb d1 8e d1 81 d1 82    d1 80 d0 b0 d1 82 d0 be d1 80 d0 be d0 b2 20 d0  | ..,............................. | 
| 4360 |  b8 20 d1 82 2e d0 b4 2e 29 00 d0 a3 d0 b2 d0 b5    d0 bb d0 b8 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 d0  | ........)....................... | 
| 4380 |  b4 d0 b0 d0 bd d0 bd d0 be d0 b3 d0 be 20 d0 b7    d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d1 8f 20 d1  | ................................ | 
| 43a0 |  80 d0 b0 d1 81 d1 81 d0 bc d0 be d1 82 d1 80 d0    b8 d1 82 20 d0 b1 d0 be d0 bb d1 8c d1 88 d0 b5  | ................................ | 
| 43c0 |  20 d0 b8 d0 b7 d0 b4 d0 b0 d0 bd d0 b8 d0 b9 2c    20 d0 bd d0 be 20 d1 83 d0 b2 d0 b5 d0 bb d0 b8  | ...............,................ | 
| 43e0 |  d1 87 d0 b8 d1 82 0a d0 b2 d1 80 d0 b5 d0 bc d1    8f 20 d0 bf d0 be d0 b8 d1 81 d0 ba d0 b0 2e 0a  | ................................ | 
| 4400 |  0a d0 ad d1 82 d0 be 20 d1 83 d0 b2 d0 b5 d0 bb    d0 b8 d1 87 d0 b8 d1 82 20 d1 88 d0 b0 d0 bd d1  | ................................ | 
| 4420 |  81 d1 8b 20 d0 bd d0 b0 d0 b9 d1 82 d0 b8 20 d0    be d0 b1 d0 bb d0 be d0 b6 d0 ba d1 83 20 d0 b1  | ................................ | 
| 4440 |  d0 be d0 bb d1 8c d1 88 d0 b5 d0 b3 d0 be 20 d1    80 d0 b0 d0 b7 d0 bc d0 b5 d1 80 d0 b0 2c 20 d0  | .............................,.. | 
| 4460 |  bd d0 be 20 d0 bd d0 b5 20 d0 b3 d0 b0 d1 80 d0    b0 d0 bd d1 82 d0 b8 d1 80 d1 83 d0 b5 d1 82 20  | ................................ | 
| 4480 |  0a d1 8d d1 82 d0 be d0 b3 d0 be 2e 00 d0 9c d0    b0 d0 ba d1 81 2e 20 d1 87 d0 b8 d1 81 d0 bb d0  | ................................ | 
| 44a0 |  be 20 d1 81 d0 be d0 b2 d0 bf d0 b0 d0 b4 d0 b5    d0 bd d0 b8 d0 b9 20 d0 bf d0 be 20 d0 bd d0 b0  | ................................ | 
| 44c0 |  d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d1 8e 2f d0 b0 d0    b2 d1 82 d0 be d1 80 d1 83 20 28 31 20 3d 20 d0  | ............/.............(1.=.. | 
| 44e0 |  b1 d1 8b d1 81 d1 82 d1 80 d0 b5 d0 b5 20 d0 b2    d1 81 d0 b5 d0 b3 d0 be 29 3a 00 d0 95 d1 81 d0  | ........................):...... | 
| 4500 |  bb d0 b8 20 d0 be d1 82 d0 bc d0 b5 d1 87 d0 b5    d0 bd d0 be 2c 20 d1 82 d0 be 20 d0 b7 d0 b0 d0  | ....................,........... | 
| 4520 |  b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c 20 d0 b2    d1 81 d0 b5 d1 85 20 d1 81 d0 be d0 b0 d0 b2 d1  | ................................ | 
| 4540 |  82 d0 be d1 80 d0 be d0 b2 2e 0a 0a d0 95 d1 81    d0 bb d0 b8 20 d1 81 d0 bd d1 8f d1 82 d0 be 20  | ................................ | 
| 4560 |  28 d0 bf d0 be 20 d1 83 d0 bc d0 be d0 bb d1 87    d0 b0 d0 bd d0 b8 d1 8e 29 2c 20 d1 82 d0 be 20  | (.......................),...... | 
| 4580 |  d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82    d1 8c 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be 20  | ................................ | 
| 45a0 |  d0 be d1 81 d0 bd d0 be d0 b2 d0 bd d1 8b d1 85    20 d0 b0 d0 b2 d1 82 d0 be d1 80 d0 be d0 b2 2e  | ................................ | 
| 45c0 |  00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a c8    30 37 e8 a2 09 00 00 a2 09 00 00 12 00 00 00 74  | .PK...........Z.07.............t | 
| 45e0 |  72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 61 2e 6d    6f de 12 04 95 00 00 00 00 05 00 00 00 1c 00 00  | ranslations/ta.mo............... | 
| 4600 |  00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9 00 00  | .D...............l...=...m...... | 
| 4620 |  00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a 00 00    00 a4 01 00 00 c2 01 00 00 1f 02 00 00 0b 01 00  | .....>...e...z.................. | 
| 4640 |  00 e2 03 00 00 34 02 00 00 ee 04 00 00 c2 00 00    00 23 07 00 00 bb 01 00 00 e6 07 00 00 00 47 65  | .....4...........#............Ge | 
| 4660 |  74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69    6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e 67 2e  | t.all.contributing.authors.(e.g. | 
| 4680 |  20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75 73 74    72 61 74 6f 72 73 20 65 74 63 29 00 49 6e 63 72  | .editors,.illustrators.etc).Incr | 
| 46a0 |  65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75    65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20  | easing.this.value.will.consider. | 
| 46c0 |  6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62 75    74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65 20  | more.editions.but.also.increase. | 
| 46e0 |  73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a 0a 54    68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65 61 73  | search.times...This.will.increas | 
| 4700 |  65 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20    6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20 67 65  | e.the.potential.likelihood.of.ge | 
| 4720 |  74 74 69 6e 67 20 61 20 6c 61 72 67 65 72 20 63    6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74 20 64  | tting.a.larger.cover.image.but.d | 
| 4740 |  6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e 74 65    65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20 74 69  | oes.not.guarantee.it..Maximum.ti | 
| 4760 |  74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63    68 20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61  | tle/author.search.matches.to.eva | 
| 4780 |  6c 75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65    73 74 29 3a 00 57 68 65 6e 20 74 68 69 73 20 6f  | luate.(1.=.fastest):.When.this.o | 
| 47a0 |  70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b 65 64    2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20 61 72  | ption.is.checked,.all.authors.ar | 
| 47c0 |  65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a 57 68    65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65  | e.retrieved...When.unchecked.(de | 
| 47e0 |  66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20    70 72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73  | fault).only.the.primary.author(s | 
| 4800 |  29 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 00    50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72 73 69  | ).are.returned..Project-Id-Versi | 
| 4820 |  6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45 52 53    49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69 6f 6e  | on:.PACKAGE.VERSION.POT-Creation | 
| 4840 |  2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33 2d 32    34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50 4f 2d  | -Date:.2024-03-24.17:55+1000.PO- | 
| 4860 |  52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a 20 32    30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35 30 2b  | Revision-Date:.2022-09-08.19:50+ | 
| 4880 |  30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e 73 6c    61 74 6f 72 3a 20 e0 ae a4 e0 ae ae e0 ae bf e0  | 0000.Last-Translator:........... | 
| 48a0 |  ae b4 e0 af 8d e0 ae a8 e0 af 87 e0 ae b0 e0 ae    ae e0 af 8d 20 e0 ae 90 20 3c 61 6e 69 73 68 70  | .........................<anishp | 
| 48c0 |  72 61 62 75 2e 74 40 67 6d 61 69 6c 2e 63 6f 6d    3e 2c 20 32 30 32 33 0a 4c 61 6e 67 75 61 67 65  | rabu.t@gmail.com>,.2023.Language | 
| 48e0 |  2d 54 65 61 6d 3a 20 54 61 6d 69 6c 20 28 68 74    74 70 73 3a 2f 2f 61 70 70 2e 74 72 61 6e 73 69  | -Team:.Tamil.(https://app.transi | 
| 4900 |  66 65 78 2e 63 6f 6d 2f 63 61 6c 69 62 72 65 2f    74 65 61 6d 73 2f 31 39 33 33 37 2f 74 61 2f 29  | fex.com/calibre/teams/19337/ta/) | 
| 4920 |  0a 4d 49 4d 45 2d 56 65 72 73 69 6f 6e 3a 20 31    2e 30 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a  | .MIME-Version:.1.0.Content-Type: | 
| 4940 |  20 74 65 78 74 2f 70 6c 61 69 6e 3b 20 63 68 61    72 73 65 74 3d 55 54 46 2d 38 0a 43 6f 6e 74 65  | .text/plain;.charset=UTF-8.Conte | 
| 4960 |  6e 74 2d 54 72 61 6e 73 66 65 72 2d 45 6e 63 6f    64 69 6e 67 3a 20 38 62 69 74 0a 47 65 6e 65 72  | nt-Transfer-Encoding:.8bit.Gener | 
| 4980 |  61 74 65 64 2d 42 79 3a 20 70 79 67 65 74 74 65    78 74 2e 70 79 20 31 2e 35 0a 4c 61 6e 67 75 61  | ated-By:.pygettext.py.1.5.Langua | 
| 49a0 |  67 65 3a 20 74 61 0a 50 6c 75 72 61 6c 2d 46 6f    72 6d 73 3a 20 6e 70 6c 75 72 61 6c 73 3d 32 3b  | ge:.ta.Plural-Forms:.nplurals=2; | 
| 49c0 |  20 70 6c 75 72 61 6c 3d 28 6e 20 21 3d 20 31 29    3b 0a 00 e0 ae aa e0 ae 99 e0 af 8d e0 ae 95 e0  | .plural=(n.!=.1);............... | 
| 49e0 |  ae b3 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95 e0 af    81 e0 ae ae e0 af 8d 20 e0 ae 85 e0 ae a9 e0 af  | ................................ | 
| 4a00 |  88 e0 ae a4 e0 af 8d e0 ae a4 e0 af 81 20 e0 ae    86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf e0 ae af  | ................................ | 
| 4a20 |  e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 88 e0    ae af e0 af 81 e0 ae ae e0 af 8d 20 e0 ae aa e0  | ................................ | 
| 4a40 |  af 86 e0 ae b1 e0 af 81 e0 ae 99 e0 af 8d e0 ae    95 e0 ae b3 e0 af 8d 20 28 e0 ae 8e 2e e0 ae 95  | ........................(....... | 
| 4a60 |  e0 ae be 2e 20 e0 ae a4 e0 af 8a e0 ae 95 e0 af    81 e0 ae aa e0 af 8d e0 ae aa e0 ae be e0 ae b3  | ................................ | 
| 4a80 |  e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 2c    20 e0 ae 87 e0 ae b2 e0 af 8d e0 ae b2 e0 ae b8  | ...............,................ | 
| 4aa0 |  e0 af 8d e0 ae 9f e0 af 8d e0 ae b0 e0 af 87 e0    ae 9f e0 af 8d e0 ae 9f e0 ae b0 e0 af 8d e0 ae  | ................................ | 
| 4ac0 |  95 e0 ae b3 e0 af 8d 20 e0 ae aa e0 af 8b e0 ae    a9 e0 af 8d e0 ae b1 e0 ae b5 e0 af 88 29 00 e0  | .............................).. | 
| 4ae0 |  ae 87 e0 ae a8 e0 af 8d e0 ae a4 20 e0 ae ae e0    ae a4 e0 ae bf e0 ae aa e0 af 8d e0 ae aa e0 af  | ................................ | 
| 4b00 |  88 20 e0 ae 85 e0 ae a4 e0 ae bf e0 ae 95 e0 ae    b0 e0 ae bf e0 ae aa e0 af 8d e0 ae aa e0 ae a4  | ................................ | 
| 4b20 |  e0 af 81 20 e0 ae ae e0 af 87 e0 ae b2 e0 af 81    e0 ae ae e0 af 8d 20 e0 ae aa e0 ae a4 e0 ae bf  | ................................ | 
| 4b40 |  e0 ae aa e0 af 8d e0 ae aa e0 af 81 e0 ae 95 e0    ae b3 e0 af 88 e0 ae 95 e0 af 8d 20 e0 ae 95 e0  | ................................ | 
| 4b60 |  ae b0 e0 af 81 e0 ae a4 e0 af 8d e0 ae a4 e0 ae    bf e0 ae b2 e0 af 8d 20 e0 ae 95 e0 af 8a e0 ae  | ................................ | 
| 4b80 |  b3 e0 af 8d e0 ae b3 e0 af 81 e0 ae ae e0 af 8d    2c 20 e0 ae 86 e0 ae a9 e0 ae be e0 ae b2 e0 af  | ................,............... | 
| 4ba0 |  8d 20 e0 ae a4 e0 af 87 e0 ae 9f e0 ae b2 e0 af    8d 20 e0 ae a8 e0 af 87 e0 ae b0 e0 ae 99 e0 af  | ................................ | 
| 4bc0 |  8d e0 ae 95 e0 ae b3 e0 af 88 e0 ae af e0 af 81    e0 ae ae e0 af 8d 20 e0 ae 85 e0 ae a4 e0 ae bf  | ................................ | 
| 4be0 |  e0 ae 95 e0 ae b0 e0 ae bf e0 ae 95 e0 af 8d e0    ae 95 e0 af 81 e0 ae ae e0 af 8d 2e 20 0a 0a 20  | ................................ | 
| 4c00 |  e0 ae 87 e0 ae a4 e0 af 81 20 e0 ae 92 e0 ae b0    e0 af 81 20 e0 ae aa e0 af 86 e0 ae b0 e0 ae bf  | ................................ | 
| 4c20 |  e0 ae af 20 e0 ae 95 e0 ae b5 e0 ae b0 e0 af 8d    20 e0 ae aa e0 ae 9f e0 ae a4 e0 af 8d e0 ae a4  | ................................ | 
| 4c40 |  e0 af 88 e0 ae aa e0 af 8d 20 e0 ae aa e0 af 86    e0 ae b1 e0 af 81 e0 ae b5 e0 ae a4 e0 ae b1 e0  | ................................ | 
| 4c60 |  af 8d e0 ae 95 e0 ae be e0 ae a9 20 e0 ae b5 e0    ae be e0 ae af e0 af 8d e0 ae aa e0 af 8d e0 ae  | ................................ | 
| 4c80 |  aa e0 af 88 20 e0 ae 85 e0 ae a4 e0 ae bf e0 ae    95 e0 ae b0 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95  | ................................ | 
| 4ca0 |  e0 af 81 e0 ae ae e0 af 8d 20 0a 20 e0 ae 86 e0    ae a9 e0 ae be e0 ae b2 e0 af 8d 20 e0 ae 85 e0  | ................................ | 
| 4cc0 |  ae a4 e0 ae b1 e0 af 8d e0 ae 95 e0 af 81 20 e0    ae 89 e0 ae a4 e0 af 8d e0 ae a4 e0 ae b0 e0 ae  | ................................ | 
| 4ce0 |  b5 e0 ae be e0 ae a4 e0 ae ae e0 af 8d 20 e0 ae    85 e0 ae b3 e0 ae bf e0 ae 95 e0 af 8d e0 ae 95  | ................................ | 
| 4d00 |  e0 ae b5 e0 ae bf e0 ae b2 e0 af 8d e0 ae b2 e0    af 88 2e 00 e0 ae ae e0 ae a4 e0 ae bf e0 ae aa  | ................................ | 
| 4d20 |  e0 af 8d e0 ae aa e0 af 80 e0 ae 9f e0 af 81 20    e0 ae 9a e0 af 86 e0 ae af e0 af 8d e0 ae af 20  | ................................ | 
| 4d40 |  e0 ae 85 e0 ae a4 e0 ae bf e0 ae 95 e0 ae aa e0    ae 9f e0 af 8d e0 ae 9a 20 e0 ae a4 e0 ae b2 e0  | ................................ | 
| 4d60 |  af 88 e0 ae aa e0 af 8d e0 ae aa e0 af 81 2f e0    ae 86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf e0 ae  | ............../................. | 
| 4d80 |  af e0 ae b0 e0 af 8d 20 e0 ae a4 e0 af 87 e0 ae    9f e0 ae b2 e0 af 8d 20 e0 ae aa e0 af 8a e0 ae  | ................................ | 
| 4da0 |  b0 e0 af 81 e0 ae a4 e0 af 8d e0 ae a4 e0 ae 99    e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 20 28 31 20  | .............................(1. | 
| 4dc0 |  3d 20 e0 ae b5 e0 af 87 e0 ae 95 e0 ae ae e0 ae    be e0 ae a9 29 3a 00 e0 ae 87 e0 ae a8 e0 af 8d  | =...................):.......... | 
| 4de0 |  e0 ae a4 20 e0 ae b5 e0 ae bf e0 ae b0 e0 af 81    e0 ae aa e0 af 8d e0 ae aa e0 ae ae e0 af 8d 20  | ................................ | 
| 4e00 |  e0 ae 9a e0 ae b0 e0 ae bf e0 ae aa e0 ae be e0    ae b0 e0 af 8d e0 ae 95 e0 af 8d e0 ae 95 e0 ae  | ................................ | 
| 4e20 |  aa e0 af 8d e0 ae aa e0 ae 9f e0 af 8d e0 ae 9f    e0 ae be e0 ae b2 e0 af 8d 2c 20 e0 ae 85 e0 ae  | .........................,...... | 
| 4e40 |  a9 e0 af 88 e0 ae a4 e0 af 8d e0 ae a4 e0 af 81    20 e0 ae 86 e0 ae 9a e0 ae bf e0 ae b0 e0 ae bf  | ................................ | 
| 4e60 |  e0 ae af e0 ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0    af 81 e0 ae ae e0 af 8d 20 e0 ae ae e0 af 80 e0  | ................................ | 
| 4e80 |  ae 9f e0 af 8d e0 ae 9f e0 af 86 e0 ae 9f e0 af    81 e0 ae 95 e0 af 8d e0 ae 95 e0 ae aa e0 af 8d  | ................................ | 
| 4ea0 |  e0 ae aa e0 ae 9f e0 af 81 e0 ae b5 e0 ae be e0    ae b0 e0 af 8d e0 ae 95 e0 ae b3 e0 af 8d 2e 0a  | ................................ | 
| 4ec0 |  0a e0 ae a4 e0 af 87 e0 ae b0 e0 af 8d e0 ae b5    e0 af 81 20 e0 ae 9a e0 af 86 e0 ae af e0 af 8d  | ................................ | 
| 4ee0 |  e0 ae af e0 ae aa e0 af 8d e0 ae aa e0 ae 9f e0    ae be e0 ae a4 e0 ae aa e0 af 8b e0 ae a4 e0 af  | ................................ | 
| 4f00 |  81 20 28 e0 ae 87 e0 ae af e0 ae b2 e0 af 8d e0    ae aa e0 af 81 e0 ae a8 e0 ae bf e0 ae b2 e0 af  | ..(............................. | 
| 4f20 |  88 29 20 e0 ae ae e0 af 81 e0 ae a4 e0 ae a9 e0    af 8d e0 ae ae e0 af 88 20 e0 ae 86 e0 ae 9a e0  | .).............................. | 
| 4f40 |  ae bf e0 ae b0 e0 ae bf e0 ae af e0 ae b0 e0 af    8d 28 e0 ae 95 e0 ae b3 e0 af 8d 29 20 e0 ae ae  | .................(.........).... | 
| 4f60 |  e0 ae 9f e0 af 8d e0 ae 9f e0 af 81 e0 ae ae e0    af 87 20 e0 ae a4 e0 ae bf e0 ae b0 e0 af 81 e0  | ................................ | 
| 4f80 |  ae ae e0 af 8d e0 ae aa e0 af 81 e0 ae ae e0 af    8d 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0 ac  | ...................PK........... | 
| 4fa0 |  5a 45 1b ed ed 98 05 00 00 98 05 00 00 12 00 00    00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 74 72  | ZE...............translations/tr | 
| 4fc0 |  2e 6d 6f de 12 04 95 00 00 00 00 05 00 00 00 1c    00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00  | .mo................D............ | 
| 4fe0 |  00 00 00 6c 00 00 00 3d 00 00 00 6d 00 00 00 b9    00 00 00 ab 00 00 00 3e 00 00 00 65 01 00 00 7a  | ...l...=...m...........>...e...z | 
| 5000 |  00 00 00 a4 01 00 00 94 01 00 00 1f 02 00 00 49    00 00 00 b4 03 00 00 bc 00 00 00 fe 03 00 00 50  | ...............I...............P | 
| 5020 |  00 00 00 bb 04 00 00 8b 00 00 00 0c 05 00 00 00    47 65 74 20 61 6c 6c 20 63 6f 6e 74 72 69 62 75  | ................Get.all.contribu | 
| 5040 |  74 69 6e 67 20 61 75 74 68 6f 72 73 20 28 65 2e    67 2e 20 65 64 69 74 6f 72 73 2c 20 69 6c 6c 75  | ting.authors.(e.g..editors,.illu | 
| 5060 |  73 74 72 61 74 6f 72 73 20 65 74 63 29 00 49 6e    63 72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61  | strators.etc).Increasing.this.va | 
| 5080 |  6c 75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65    72 20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20  | lue.will.consider.more.editions. | 
| 50a0 |  62 75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73    65 20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 0a  | but.also.increase.search.times.. | 
| 50c0 |  0a 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72 65    61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69 61  | .This.will.increase.the.potentia | 
| 50e0 |  6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66 20    67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 72  | l.likelihood.of.getting.a.larger | 
| 5100 |  20 63 6f 76 65 72 20 69 6d 61 67 65 0a 62 75 74    20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72 61 6e  | .cover.image.but.does.not.guaran | 
| 5120 |  74 65 65 20 69 74 2e 00 4d 61 78 69 6d 75 6d 20    74 69 74 6c 65 2f 61 75 74 68 6f 72 20 73 65 61  | tee.it..Maximum.title/author.sea | 
| 5140 |  72 63 68 20 6d 61 74 63 68 65 73 20 74 6f 20 65    76 61 6c 75 61 74 65 20 28 31 20 3d 20 66 61 73  | rch.matches.to.evaluate.(1.=.fas | 
| 5160 |  74 65 73 74 29 3a 00 57 68 65 6e 20 74 68 69 73    20 6f 70 74 69 6f 6e 20 69 73 20 63 68 65 63 6b  | test):.When.this.option.is.check | 
| 5180 |  65 64 2c 20 61 6c 6c 20 61 75 74 68 6f 72 73 20    61 72 65 20 72 65 74 72 69 65 76 65 64 2e 0a 0a  | ed,.all.authors.are.retrieved... | 
| 51a0 |  57 68 65 6e 20 75 6e 63 68 65 63 6b 65 64 20 28    64 65 66 61 75 6c 74 29 20 6f 6e 6c 79 20 74 68  | When.unchecked.(default).only.th | 
| 51c0 |  65 20 70 72 69 6d 61 72 79 20 61 75 74 68 6f 72    28 73 29 20 61 72 65 20 72 65 74 75 72 6e 65 64  | e.primary.author(s).are.returned | 
| 51e0 |  2e 00 50 72 6f 6a 65 63 74 2d 49 64 2d 56 65 72    73 69 6f 6e 3a 20 50 41 43 4b 41 47 45 20 56 45  | ..Project-Id-Version:.PACKAGE.VE | 
| 5200 |  52 53 49 4f 4e 0a 50 4f 54 2d 43 72 65 61 74 69    6f 6e 2d 44 61 74 65 3a 20 32 30 32 34 2d 30 33  | RSION.POT-Creation-Date:.2024-03 | 
| 5220 |  2d 32 34 20 31 37 3a 35 35 2b 31 30 30 30 0a 50    4f 2d 52 65 76 69 73 69 6f 6e 2d 44 61 74 65 3a  | -24.17:55+1000.PO-Revision-Date: | 
| 5240 |  20 32 30 32 32 2d 30 39 2d 30 38 20 31 39 3a 35    30 2b 30 30 30 30 0a 4c 61 73 74 2d 54 72 61 6e  | .2022-09-08.19:50+0000.Last-Tran | 
| 5260 |  73 6c 61 74 6f 72 3a 20 42 6f 72 61 20 41 74 c4    b1 63 c4 b1 2c 20 32 30 32 33 0a 4c 61 6e 67 75  | slator:.Bora.At..c..,.2023.Langu | 
| 5280 |  61 67 65 2d 54 65 61 6d 3a 20 54 75 72 6b 69 73    68 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74  | age-Team:.Turkish.(https://app.t | 
| 52a0 |  72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c    69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37  | ransifex.com/calibre/teams/19337 | 
| 52c0 |  2f 74 72 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69    6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d  | /tr/).MIME-Version:.1.0.Content- | 
| 52e0 |  54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e    3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a  | Type:.text/plain;.charset=UTF-8. | 
| 5300 |  43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72    2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a  | Content-Transfer-Encoding:.8bit. | 
| 5320 |  47 65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79    67 65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c  | Generated-By:.pygettext.py.1.5.L | 
| 5340 |  61 6e 67 75 61 67 65 3a 20 74 72 0a 50 6c 75 72    61 6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61  | anguage:.tr.Plural-Forms:.nplura | 
| 5360 |  6c 73 3d 32 3b 20 70 6c 75 72 61 6c 3d 28 6e 20    3e 20 31 29 3b 0a 00 4b 61 74 6b c4 b1 64 61 20  | ls=2;.plural=(n.>.1);..Katk..da. | 
| 5380 |  62 75 6c 75 6e 61 6e 20 74 c3 bc 6d 20 79 61 7a    61 72 6c 61 72 c4 b1 20 61 6c c4 b1 6e 20 28 c3  | bulunan.t..m.yazarlar...al..n.(. | 
| 53a0 |  b6 72 2e 20 79 61 79 c4 b1 6d 63 c4 b1 6c 61 72    2c 20 c3 a7 69 7a 65 72 6c 65 72 20 76 62 2e 29  | .r..yay..mc..lar,...izerler.vb.) | 
| 53c0 |  00 42 75 20 64 65 c4 9f 65 72 69 20 61 72 74 c4    b1 72 6d 61 6b 2c 20 64 61 68 61 20 66 61 7a 6c  | .Bu.de..eri.art..rmak,.daha.fazl | 
| 53e0 |  61 20 73 c3 bc 72 c3 bc 6d c3 bc 20 64 69 6b 6b    61 74 65 20 61 6c c4 b1 72 20 61 6e 63 61 6b 20  | a.s..r..m...dikkate.al..r.ancak. | 
| 5400 |  61 72 61 6d 61 20 73 c3 bc 72 65 6c 65 72 69 20    64 65 20 61 72 74 c4 b1 72 c4 b1 72 2e 0a 0a 42  | arama.s..releri.de.art..r..r...B | 
| 5420 |  75 2c 20 64 61 68 61 20 62 c3 bc 79 c3 bc 6b 20    62 69 72 20 6b 61 70 61 6b 20 72 65 73 6d 69 20  | u,.daha.b..y..k.bir.kapak.resmi. | 
| 5440 |  65 6c 64 65 20 65 74 6d 65 20 6f 6c 61 73 c4 b1    6c c4 b1 c4 9f c4 b1 6e c4 b1 20 61 72 74 c4 b1  | elde.etme.olas..l......n...art.. | 
| 5460 |  72 61 63 61 6b 74 c4 b1 72 20 0a 61 6d 61 20 67    61 72 61 6e 74 69 20 65 74 6d 65 7a 2e 00 44 65  | racakt..r..ama.garanti.etmez..De | 
| 5480 |  c4 9f 65 72 6c 65 6e 64 69 72 69 6c 65 63 65 6b    20 65 6e 20 66 61 7a 6c 61 20 62 61 c5 9f 6c c4  | ..erlendirilecek.en.fazla.ba..l. | 
| 54a0 |  b1 6b 2f 79 61 7a 61 72 20 61 72 61 6d 61 20 65    c5 9f 6c 65 c5 9f 6d 65 6c 65 72 69 20 28 31 20  | .k/yazar.arama.e..le..meleri.(1. | 
| 54c0 |  3d 20 65 6e 20 68 c4 b1 7a 6c c4 b1 29 3a 00 42    75 20 73 65 c3 a7 65 6e 65 6b 20 69 c5 9f 61 72  | =.en.h..zl..):.Bu.se..enek.i..ar | 
| 54e0 |  65 74 6c 65 6e 64 69 c4 9f 69 6e 64 65 20 74 c3    bc 6d 20 79 61 7a 61 72 6c 61 72 20 61 6c c4 b1  | etlendi..inde.t..m.yazarlar.al.. | 
| 5500 |  6e c4 b1 72 2e 20 0a 0a c4 b0 c5 9f 61 72 65 74    6c 65 6e 6d 65 64 69 c4 9f 69 6e 64 65 20 28 76  | n..r........aretlenmedi..inde.(v | 
| 5520 |  61 72 73 61 79 c4 b1 6c 61 6e 29 2c 20 79 61 6c    6e c4 b1 7a 63 61 20 62 69 72 69 6e 63 69 6c 20  | arsay..lan),.yaln..zca.birincil. | 
| 5540 |  79 61 7a 61 72 28 6c 61 72 29 20 64 c3 b6 6e 64    c3 bc 72 c3 bc 6c c3 bc 72 2e 00 50 4b 03 04 14  | yazar(lar).d..nd..r..l..r..PK... | 
| 5560 |  00 00 00 00 00 87 a0 ac 5a a5 fd 37 25 39 08 00    00 39 08 00 00 12 00 00 00 74 72 61 6e 73 6c 61  | ........Z..7%9...9.......transla | 
| 5580 |  74 69 6f 6e 73 2f 75 6b 2e 6d 6f de 12 04 95 00    00 00 00 05 00 00 00 1c 00 00 00 44 00 00 00 00  | tions/uk.mo................D.... | 
| 55a0 |  00 00 00 00 00 00 00 00 00 00 00 6c 00 00 00 3d    00 00 00 6d 00 00 00 b9 00 00 00 ab 00 00 00 3e  | ...........l...=...m...........> | 
| 55c0 |  00 00 00 65 01 00 00 7a 00 00 00 a4 01 00 00 8a    02 00 00 1f 02 00 00 6d 00 00 00 aa 04 00 00 77  | ...e...z...............m.......w | 
| 55e0 |  01 00 00 18 05 00 00 a2 00 00 00 90 06 00 00 05    01 00 00 33 07 00 00 00 47 65 74 20 61 6c 6c 20  | ...................3....Get.all. | 
| 5600 |  63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61 75 74    68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69 74 6f  | contributing.authors.(e.g..edito | 
| 5620 |  72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f 72 73    20 65 74 63 29 00 49 6e 63 72 65 61 73 69 6e 67  | rs,.illustrators.etc).Increasing | 
| 5640 |  20 74 68 69 73 20 76 61 6c 75 65 20 77 69 6c 6c    20 63 6f 6e 73 69 64 65 72 20 6d 6f 72 65 20 65  | .this.value.will.consider.more.e | 
| 5660 |  64 69 74 69 6f 6e 73 20 62 75 74 20 61 6c 73 6f    20 69 6e 63 72 65 61 73 65 20 73 65 61 72 63 68  | ditions.but.also.increase.search | 
| 5680 |  20 74 69 6d 65 73 2e 0a 0a 54 68 69 73 20 77 69    6c 6c 20 69 6e 63 72 65 61 73 65 20 74 68 65 20  | .times...This.will.increase.the. | 
| 56a0 |  70 6f 74 65 6e 74 69 61 6c 20 6c 69 6b 65 6c 69    68 6f 6f 64 20 6f 66 20 67 65 74 74 69 6e 67 20  | potential.likelihood.of.getting. | 
| 56c0 |  61 20 6c 61 72 67 65 72 20 63 6f 76 65 72 20 69    6d 61 67 65 0a 62 75 74 20 64 6f 65 73 20 6e 6f  | a.larger.cover.image.but.does.no | 
| 56e0 |  74 20 67 75 61 72 61 6e 74 65 65 20 69 74 2e 00    4d 61 78 69 6d 75 6d 20 74 69 74 6c 65 2f 61 75  | t.guarantee.it..Maximum.title/au | 
| 5700 |  74 68 6f 72 20 73 65 61 72 63 68 20 6d 61 74 63    68 65 73 20 74 6f 20 65 76 61 6c 75 61 74 65 20  | thor.search.matches.to.evaluate. | 
| 5720 |  28 31 20 3d 20 66 61 73 74 65 73 74 29 3a 00 57    68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f 6e 20  | (1.=.fastest):.When.this.option. | 
| 5740 |  69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c 6c 20    61 75 74 68 6f 72 73 20 61 72 65 20 72 65 74 72  | is.checked,.all.authors.are.retr | 
| 5760 |  69 65 76 65 64 2e 0a 0a 57 68 65 6e 20 75 6e 63    68 65 63 6b 65 64 20 28 64 65 66 61 75 6c 74 29  | ieved...When.unchecked.(default) | 
| 5780 |  20 6f 6e 6c 79 20 74 68 65 20 70 72 69 6d 61 72    79 20 61 75 74 68 6f 72 28 73 29 20 61 72 65 20  | .only.the.primary.author(s).are. | 
| 57a0 |  72 65 74 75 72 6e 65 64 2e 00 50 72 6f 6a 65 63    74 2d 49 64 2d 56 65 72 73 69 6f 6e 3a 20 50 41  | returned..Project-Id-Version:.PA | 
| 57c0 |  43 4b 41 47 45 20 56 45 52 53 49 4f 4e 0a 50 4f    54 2d 43 72 65 61 74 69 6f 6e 2d 44 61 74 65 3a  | CKAGE.VERSION.POT-Creation-Date: | 
| 57e0 |  20 32 30 32 34 2d 30 33 2d 32 34 20 31 37 3a 35    35 2b 31 30 30 30 0a 50 4f 2d 52 65 76 69 73 69  | .2024-03-24.17:55+1000.PO-Revisi | 
| 5800 |  6f 6e 2d 44 61 74 65 3a 20 32 30 32 32 2d 30 39    2d 30 38 20 31 39 3a 35 30 2b 30 30 30 30 0a 4c  | on-Date:.2022-09-08.19:50+0000.L | 
| 5820 |  61 73 74 2d 54 72 61 6e 73 6c 61 74 6f 72 3a 20    59 75 72 69 20 43 68 6f 72 6e 6f 69 76 61 6e 20  | ast-Translator:.Yuri.Chornoivan. | 
| 5840 |  3c 79 75 72 63 68 6f 72 40 75 6b 72 2e 6e 65 74    3e 2c 20 32 30 32 32 0a 4c 61 6e 67 75 61 67 65  | <yurchor@ukr.net>,.2022.Language | 
| 5860 |  2d 54 65 61 6d 3a 20 55 6b 72 61 69 6e 69 61 6e    20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74 72  | -Team:.Ukrainian.(https://app.tr | 
| 5880 |  61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c 69    62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37 2f  | ansifex.com/calibre/teams/19337/ | 
| 58a0 |  75 6b 2f 29 0a 4d 49 4d 45 2d 56 65 72 73 69 6f    6e 3a 20 31 2e 30 0a 43 6f 6e 74 65 6e 74 2d 54  | uk/).MIME-Version:.1.0.Content-T | 
| 58c0 |  79 70 65 3a 20 74 65 78 74 2f 70 6c 61 69 6e 3b    20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0a 43  | ype:.text/plain;.charset=UTF-8.C | 
| 58e0 |  6f 6e 74 65 6e 74 2d 54 72 61 6e 73 66 65 72 2d    45 6e 63 6f 64 69 6e 67 3a 20 38 62 69 74 0a 47  | ontent-Transfer-Encoding:.8bit.G | 
| 5900 |  65 6e 65 72 61 74 65 64 2d 42 79 3a 20 70 79 67    65 74 74 65 78 74 2e 70 79 20 31 2e 35 0a 4c 61  | enerated-By:.pygettext.py.1.5.La | 
| 5920 |  6e 67 75 61 67 65 3a 20 75 6b 0a 50 6c 75 72 61    6c 2d 46 6f 72 6d 73 3a 20 6e 70 6c 75 72 61 6c  | nguage:.uk.Plural-Forms:.nplural | 
| 5940 |  73 3d 34 3b 20 70 6c 75 72 61 6c 3d 28 6e 20 25    20 31 20 3d 3d 20 30 20 26 26 20 6e 20 25 20 31  | s=4;.plural=(n.%.1.==.0.&&.n.%.1 | 
| 5960 |  30 20 3d 3d 20 31 20 26 26 20 6e 20 25 20 31 30    30 20 21 3d 20 31 31 20 3f 20 30 20 3a 20 6e 20  | 0.==.1.&&.n.%.100.!=.11.?.0.:.n. | 
| 5980 |  25 20 31 20 3d 3d 20 30 20 26 26 20 6e 20 25 20    31 30 20 3e 3d 20 32 20 26 26 20 6e 20 25 20 31  | %.1.==.0.&&.n.%.10.>=.2.&&.n.%.1 | 
| 59a0 |  30 20 3c 3d 20 34 20 26 26 20 28 6e 20 25 20 31    30 30 20 3c 20 31 32 20 7c 7c 20 6e 20 25 20 31  | 0.<=.4.&&.(n.%.100.<.12.||.n.%.1 | 
| 59c0 |  30 30 20 3e 20 31 34 29 20 3f 20 31 20 3a 20 6e    20 25 20 31 20 3d 3d 20 30 20 26 26 20 28 6e 20  | 00.>.14).?.1.:.n.%.1.==.0.&&.(n. | 
| 59e0 |  25 20 31 30 20 3d 3d 30 20 7c 7c 20 28 6e 20 25    20 31 30 20 3e 3d 35 20 26 26 20 6e 20 25 20 31  | %.10.==0.||.(n.%.10.>=5.&&.n.%.1 | 
| 5a00 |  30 20 3c 3d 39 29 20 7c 7c 20 28 6e 20 25 20 31    30 30 20 3e 3d 31 31 20 26 26 20 6e 20 25 20 31  | 0.<=9).||.(n.%.100.>=11.&&.n.%.1 | 
| 5a20 |  30 30 20 3c 3d 31 34 20 29 29 20 3f 20 32 3a 20    33 29 3b 0a 00 d0 9e d1 82 d1 80 d0 b8 d0 bc d0  | 00.<=14.)).?.2:.3);............. | 
| 5a40 |  b0 d1 82 d0 b8 20 d1 83 d1 81 d1 96 d1 85 20 d0    b0 d0 b2 d1 82 d0 be d1 80 d1 96 d0 b2 20 28 d1  | ..............................(. | 
| 5a60 |  82 d0 be d0 b1 d1 82 d0 be 20 d1 80 d0 b5 d0 b4    d0 b0 d0 ba d1 82 d0 be d1 80 d1 96 d0 b2 2c 20  | ..............................,. | 
| 5a80 |  d1 96 d0 bb d1 8e d1 81 d1 82 d1 80 d0 b0 d1 82    d0 be d1 80 d1 96 d0 b2 20 d1 82 d0 be d1 89 d0  | ................................ | 
| 5aa0 |  be 29 00 d0 97 d0 b1 d1 96 d0 bb d1 8c d1 88 d0    b5 d0 bd d0 bd d1 8f 20 d1 86 d1 8c d0 be d0 b3  | .).............................. | 
| 5ac0 |  d0 be 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0    bd d1 8f 20 d0 b7 d0 b1 d1 96 d0 bb d1 8c d1 88  | ................................ | 
| 5ae0 |  d0 b8 d1 82 d1 8c 20 d0 ba d1 96 d0 bb d1 8c d0    ba d1 96 d1 81 d1 82 d1 8c 20 d0 b2 d0 b8 d0 b4  | ................................ | 
| 5b00 |  d0 b0 d0 bd d1 8c 2c 20 d0 b0 d0 bb d0 b5 20 d1    82 d0 b0 d0 ba d0 be d0 b6 20 d0 b7 d0 b1 d1 96  | ......,......................... | 
| 5b20 |  d0 bb d1 8c d1 88 d0 b8 d1 82 d0 b8 20 d1 82 d1    80 d0 b8 d0 b2 d0 b0 d0 bb d1 96 d1 81 d1 82 d1  | ................................ | 
| 5b40 |  8c 20 d0 bf d0 be d1 88 d1 83 d0 ba d1 83 2e 0a    0a d0 97 d0 b1 d1 96 d0 bb d1 8c d1 88 d0 b5 d0  | ................................ | 
| 5b60 |  bd d0 bd d1 8f 20 d0 bf d1 80 d0 b8 d0 b7 d0 b2    d0 b5 d0 b4 d0 b5 20 d0 b4 d0 be 20 d0 b1 d1 96  | ................................ | 
| 5b80 |  d0 bb d1 8c d1 88 d0 be d1 97 20 d0 bf d0 be d1    82 d0 b5 d0 bd d1 86 d1 96 d0 b9 d0 bd d0 be d1  | ................................ | 
| 5ba0 |  97 20 d0 b9 d0 bc d0 be d0 b2 d1 96 d1 80 d0 bd    d0 be d1 81 d1 82 d1 96 20 d0 b7 d0 bd d0 b0 d0  | ................................ | 
| 5bc0 |  b9 d1 82 d0 b8 20 d0 b1 d1 96 d0 bb d1 8c d1 88    d0 b5 20 d0 b7 d0 be d0 b1 d1 80 d0 b0 d0 b6 d0  | ................................ | 
| 5be0 |  b5 d0 bd d0 bd d1 8f 20 d0 be d0 b1 d0 ba d0 bb    d0 b0 d0 b4 d0 b8 d0 bd d0 ba d0 b8 2c 0a d0 b0  | ............................,... | 
| 5c00 |  d0 bb d0 b5 20 d1 86 d0 b5 20 d0 bd d0 b5 20 d1    82 d0 be d1 87 d0 bd d0 be 2e 00 d0 9c d0 b0 d0  | ................................ | 
| 5c20 |  ba d1 81 d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd d0    b0 20 d0 ba d1 96 d0 bb d1 8c d0 ba d1 96 d1 81  | ................................ | 
| 5c40 |  d1 82 d1 8c 20 d0 b2 d1 96 d0 b4 d0 bf d0 be d0    b2 d1 96 d0 b4 d0 bd d0 b8 d0 ba d1 96 d0 b2 20  | ................................ | 
| 5c60 |  d0 bf d0 be d1 88 d1 83 d0 ba d1 83 20 d0 b7 d0    b0 20 d0 bd d0 b0 d0 b7 d0 b2 d0 be d1 8e 2f d0  | ............................../. | 
| 5c80 |  b0 d0 b2 d1 82 d0 be d1 80 d0 be d0 bc 20 d0 b4    d0 bb d1 8f 20 d0 be d0 b1 d1 80 d0 be d0 b1 d0  | ................................ | 
| 5ca0 |  ba d0 b8 20 28 31 20 3d 20 d0 bd d0 b0 d0 b9 d1    88 d0 b2 d0 b8 d0 b4 d1 88 d0 b5 29 3a 00 d0 af  | ....(1.=...................):... | 
| 5cc0 |  d0 ba d1 89 d0 be 20 d0 bf d0 be d0 b7 d0 bd d0    b0 d1 87 d0 b5 d0 bd d0 be 20 d1 86 d0 b5 d0 b9  | ................................ | 
| 5ce0 |  20 d0 bf d1 83 d0 bd d0 ba d1 82 2c 20 d0 b1 d1    83 d0 b4 d0 b5 20 d0 be d1 82 d1 80 d0 b8 d0 bc  | ...........,.................... | 
| 5d00 |  d0 b0 d0 bd d0 be 20 d0 b4 d0 b0 d0 bd d1 96 20    d1 83 d1 81 d1 96 d1 85 20 d0 b0 d0 b2 d1 82 d0  | ................................ | 
| 5d20 |  be d1 80 d1 96 d0 b2 2e 0a 0a d0 af d0 ba d1 89    d0 be 20 d0 bf d1 83 d0 bd d0 ba d1 82 20 d0 bd  | ................................ | 
| 5d40 |  d0 b5 20 d0 bf d0 be d0 b7 d0 bd d0 b0 d1 87 d0    b5 d0 bd d0 be 20 28 d1 82 d0 b8 d0 bf d0 be d0  | ......................(......... | 
| 5d60 |  b2 d0 b8 d0 b9 20 d0 b2 d0 b0 d1 80 d1 96 d0 b0    d0 bd d1 82 29 2c 20 d0 b1 d1 83 d0 b4 d0 b5 20  | ....................),.......... | 
| 5d80 |  d0 be d1 82 d1 80 d0 b8 d0 bc d0 b0 d0 bd d0 be    20 d0 bb d0 b8 d1 88 d0 b5 20 d0 b4 d0 b0 d0 bd  | ................................ | 
| 5da0 |  d1 96 20 d0 be d1 81 d0 bd d0 be d0 b2 d0 bd d0    b8 d1 85 20 d0 b0 d0 b2 d1 82 d0 be d1 80 d1 96  | ................................ | 
| 5dc0 |  d0 b2 2e 00 50 4b 03 04 14 00 00 00 00 00 87 a0    ac 5a 60 34 7a d9 55 05 00 00 55 05 00 00 15 00  | ....PK...........Z`4z.U...U..... | 
| 5de0 |  00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73 2f 7a    68 5f 43 4e 2e 6d 6f de 12 04 95 00 00 00 00 05  | ..translations/zh_CN.mo......... | 
| 5e00 |  00 00 00 1c 00 00 00 44 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 6c 00 00 00 3d 00 00 00 6d  | .......D...............l...=...m | 
| 5e20 |  00 00 00 b9 00 00 00 ab 00 00 00 3e 00 00 00 65    01 00 00 7a 00 00 00 a4 01 00 00 b0 01 00 00 1f  | ...........>...e...z............ | 
| 5e40 |  02 00 00 39 00 00 00 d0 03 00 00 93 00 00 00 0a    04 00 00 3e 00 00 00 9e 04 00 00 77 00 00 00 dd  | ...9...............>.......w.... | 
| 5e60 |  04 00 00 00 47 65 74 20 61 6c 6c 20 63 6f 6e 74    72 69 62 75 74 69 6e 67 20 61 75 74 68 6f 72 73  | ....Get.all.contributing.authors | 
| 5e80 |  20 28 65 2e 67 2e 20 65 64 69 74 6f 72 73 2c 20    69 6c 6c 75 73 74 72 61 74 6f 72 73 20 65 74 63  | .(e.g..editors,.illustrators.etc | 
| 5ea0 |  29 00 49 6e 63 72 65 61 73 69 6e 67 20 74 68 69    73 20 76 61 6c 75 65 20 77 69 6c 6c 20 63 6f 6e  | ).Increasing.this.value.will.con | 
| 5ec0 |  73 69 64 65 72 20 6d 6f 72 65 20 65 64 69 74 69    6f 6e 73 20 62 75 74 20 61 6c 73 6f 20 69 6e 63  | sider.more.editions.but.also.inc | 
| 5ee0 |  72 65 61 73 65 20 73 65 61 72 63 68 20 74 69 6d    65 73 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 69  | rease.search.times...This.will.i | 
| 5f00 |  6e 63 72 65 61 73 65 20 74 68 65 20 70 6f 74 65    6e 74 69 61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64  | ncrease.the.potential.likelihood | 
| 5f20 |  20 6f 66 20 67 65 74 74 69 6e 67 20 61 20 6c 61    72 67 65 72 20 63 6f 76 65 72 20 69 6d 61 67 65  | .of.getting.a.larger.cover.image | 
| 5f40 |  0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75    61 72 61 6e 74 65 65 20 69 74 2e 00 4d 61 78 69  | .but.does.not.guarantee.it..Maxi | 
| 5f60 |  6d 75 6d 20 74 69 74 6c 65 2f 61 75 74 68 6f 72    20 73 65 61 72 63 68 20 6d 61 74 63 68 65 73 20  | mum.title/author.search.matches. | 
| 5f80 |  74 6f 20 65 76 61 6c 75 61 74 65 20 28 31 20 3d    20 66 61 73 74 65 73 74 29 3a 00 57 68 65 6e 20  | to.evaluate.(1.=.fastest):.When. | 
| 5fa0 |  74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 63    68 65 63 6b 65 64 2c 20 61 6c 6c 20 61 75 74 68  | this.option.is.checked,.all.auth | 
| 5fc0 |  6f 72 73 20 61 72 65 20 72 65 74 72 69 65 76 65    64 2e 0a 0a 57 68 65 6e 20 75 6e 63 68 65 63 6b  | ors.are.retrieved...When.uncheck | 
| 5fe0 |  65 64 20 28 64 65 66 61 75 6c 74 29 20 6f 6e 6c    79 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 75  | ed.(default).only.the.primary.au | 
| 6000 |  74 68 6f 72 28 73 29 20 61 72 65 20 72 65 74 75    72 6e 65 64 2e 00 50 72 6f 6a 65 63 74 2d 49 64  | thor(s).are.returned..Project-Id | 
| 6020 |  2d 56 65 72 73 69 6f 6e 3a 20 50 41 43 4b 41 47    45 20 56 45 52 53 49 4f 4e 0a 50 4f 54 2d 43 72  | -Version:.PACKAGE.VERSION.POT-Cr | 
| 6040 |  65 61 74 69 6f 6e 2d 44 61 74 65 3a 20 32 30 32    34 2d 30 33 2d 32 34 20 31 37 3a 35 35 2b 31 30  | eation-Date:.2024-03-24.17:55+10 | 
| 6060 |  30 30 0a 50 4f 2d 52 65 76 69 73 69 6f 6e 2d 44    61 74 65 3a 20 32 30 32 32 2d 30 39 2d 30 38 20  | 00.PO-Revision-Date:.2022-09-08. | 
| 6080 |  31 39 3a 35 30 2b 30 30 30 30 0a 4c 61 73 74 2d    54 72 61 6e 73 6c 61 74 6f 72 3a 20 74 6f 6e 79  | 19:50+0000.Last-Translator:.tony | 
| 60a0 |  20 73 68 65 6e 20 3c 61 6e 74 68 61 6e 6e 79 40    68 6f 74 6d 61 69 6c 2e 63 6f 6d 3e 2c 20 32 30  | .shen.<anthanny@hotmail.com>,.20 | 
| 60c0 |  32 34 0a 4c 61 6e 67 75 61 67 65 2d 54 65 61 6d    3a 20 43 68 69 6e 65 73 65 20 28 43 68 69 6e 61  | 24.Language-Team:.Chinese.(China | 
| 60e0 |  29 20 28 68 74 74 70 73 3a 2f 2f 61 70 70 2e 74    72 61 6e 73 69 66 65 78 2e 63 6f 6d 2f 63 61 6c  | ).(https://app.transifex.com/cal | 
| 6100 |  69 62 72 65 2f 74 65 61 6d 73 2f 31 39 33 33 37    2f 7a 68 5f 43 4e 2f 29 0a 4d 49 4d 45 2d 56 65  | ibre/teams/19337/zh_CN/).MIME-Ve | 
| 6120 |  72 73 69 6f 6e 3a 20 31 2e 30 0a 43 6f 6e 74 65    6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c  | rsion:.1.0.Content-Type:.text/pl | 
| 6140 |  61 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46    2d 38 0a 43 6f 6e 74 65 6e 74 2d 54 72 61 6e 73  | ain;.charset=UTF-8.Content-Trans | 
| 6160 |  66 65 72 2d 45 6e 63 6f 64 69 6e 67 3a 20 38 62    69 74 0a 47 65 6e 65 72 61 74 65 64 2d 42 79 3a  | fer-Encoding:.8bit.Generated-By: | 
| 6180 |  20 70 79 67 65 74 74 65 78 74 2e 70 79 20 31 2e    35 0a 4c 61 6e 67 75 61 67 65 3a 20 7a 68 5f 43  | .pygettext.py.1.5.Language:.zh_C | 
| 61a0 |  4e 0a 50 6c 75 72 61 6c 2d 46 6f 72 6d 73 3a 20    6e 70 6c 75 72 61 6c 73 3d 31 3b 20 70 6c 75 72  | N.Plural-Forms:.nplurals=1;.plur | 
| 61c0 |  61 6c 3d 30 3b 0a 00 e8 8e b7 e5 8f 96 e6 89 80    e6 9c 89 e8 b4 a1 e7 8c ae e4 bd 9c e8 80 85 ef  | al=0;........................... | 
| 61e0 |  bc 88 e4 be 8b e5 a6 82 e7 bc 96 e8 be 91 e3 80    81 e6 8f 92 e7 94 bb e5 ae b6 e7 ad 89 ef bc 89  | ................................ | 
| 6200 |  00 e5 a2 9e e5 8a a0 e6 ad a4 e5 80 bc e5 b0 86    e8 80 83 e8 99 91 e6 9b b4 e5 a4 9a e7 89 88 e6  | ................................ | 
| 6220 |  9c ac ef bc 8c e4 bd 86 e4 b9 9f e4 bc 9a e5 a2    9e e5 8a a0 e6 90 9c e7 b4 a2 e6 97 b6 e9 97 b4  | ................................ | 
| 6240 |  e3 80 82 0a 0a e8 bf 99 e5 b0 86 e5 a2 9e e5 8a    a0 e8 8e b7 e5 be 97 e6 9b b4 e5 a4 a7 e5 b0 81  | ................................ | 
| 6260 |  e9 9d a2 e5 9b be e5 83 8f e7 9a 84 e6 bd 9c e5    9c a8 e5 8f af e8 83 bd e6 80 a7 0a e4 bd 86 e4  | ................................ | 
| 6280 |  b8 8d e4 bf 9d e8 af 81 e8 bf 99 e4 b8 80 e7 82    b9 e3 80 82 00 e8 a6 81 e8 af 84 e4 bc b0 e7 9a  | ................................ | 
| 62a0 |  84 e6 9c 80 e5 a4 a7 e6 a0 87 e9 a2 98 2f e4 bd    9c e8 80 85 e6 90 9c e7 b4 a2 e5 8c b9 e9 85 8d  | ............./.................. | 
| 62c0 |  ef bc 88 31 20 3d 20 e6 9c 80 e5 bf ab ef bc 89    ef bc 9a 00 e8 8b a5 e9 80 89 e4 b8 ad ef bc 8c  | ...1.=.......................... | 
| 62e0 |  e5 b0 86 e4 b8 8b e8 bd bd e5 85 a8 e9 83 a8 e4    bd 9c e8 80 85 e4 bf a1 e6 81 af e3 80 82 0a 0a  | ................................ | 
| 6300 |  e8 8b a5 e6 9c aa e9 80 89 e4 b8 ad ef bc 88 e9    bb 98 e8 ae a4 ef bc 89 ef bc 8c e4 bb 85 e4 b8  | ................................ | 
| 6320 |  8b e8 bd bd e4 b8 bb e8 a6 81 e4 bd 9c e8 80 85    ef bc 88 e6 88 96 e4 bd 9c e8 80 85 e4 bb ac ef  | ................................ | 
| 6340 |  bc 89 e4 bf a1 e6 81 af e3 80 82 00 50 4b 03 04    14 00 00 00 00 00 0e 22 35 55 9f 9e 33 d9 1f 05  | ............PK........."5U..3... | 
| 6360 |  00 00 1f 05 00 00 17 00 00 00 63 6f 6d 6d 6f 6e    5f 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 70  | ..........common_compatibility.p | 
| 6380 |  79 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20    70 79 74 68 6f 6e 0a 23 20 76 69 6d 3a 66 69 6c  | y#!/usr/bin/env.python.#.vim:fil | 
| 63a0 |  65 65 6e 63 6f 64 69 6e 67 3d 55 54 46 2d 38 3a    74 73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74  | eencoding=UTF-8:ts=4:sw=4:sta:et | 
| 63c0 |  3a 73 74 73 3d 34 3a 61 69 0a 66 72 6f 6d 20 5f    5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74  | :sts=4:ai.from.__future__.import | 
| 63e0 |  20 28 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61    6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62  | .(unicode_literals,.division,.ab | 
| 6400 |  73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | solute_import,.................. | 
| 6420 |  20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 75 6e    63 74 69 6f 6e 29 0a 0a 5f 5f 6c 69 63 65 6e 73  | .......print_function)..__licens | 
| 6440 |  65 5f 5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27    0a 5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d  | e__...=.'GPL.v3'.__copyright__.= | 
| 6460 |  20 27 32 30 32 32 2c 20 47 72 61 6e 74 20 44 72    61 6b 65 27 0a 0a 23 20 4d 61 69 6e 74 61 69 6e  | .'2022,.Grant.Drake'..#.Maintain | 
| 6480 |  20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61    74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c  | .backwards.compatibility.with.ol | 
| 64a0 |  64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20    51 74 20 61 6e 64 20 63 61 6c 69 62 72 65 2e 0a  | der.versions.of.Qt.and.calibre.. | 
| 64c0 |  74 72 79 3a 0a 20 20 20 20 66 72 6f 6d 20 71 74    2e 63 6f 72 65 20 69 6d 70 6f 72 74 20 51 53 69  | try:.....from.qt.core.import.QSi | 
| 64e0 |  7a 65 50 6f 6c 69 63 79 2c 20 51 54 65 78 74 45    64 69 74 2c 20 51 74 0a 65 78 63 65 70 74 20 49  | zePolicy,.QTextEdit,.Qt.except.I | 
| 6500 |  6d 70 6f 72 74 45 72 72 6f 72 3a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mportError:..................... | 
| 6520 |  20 20 20 0a 20 20 20 20 66 72 6f 6d 20 50 79 51    74 35 2e 51 74 20 69 6d 70 6f 72 74 20 51 53 69  | ........from.PyQt5.Qt.import.QSi | 
| 6540 |  7a 65 50 6f 6c 69 63 79 2c 20 51 54 65 78 74 45    64 69 74 2c 20 51 74 0a 0a 74 72 79 3a 0a 20 20  | zePolicy,.QTextEdit,.Qt..try:... | 
| 6560 |  20 20 71 53 69 7a 65 50 6f 6c 69 63 79 5f 4d 69    6e 69 6d 75 6d 20 3d 20 51 53 69 7a 65 50 6f 6c  | ..qSizePolicy_Minimum.=.QSizePol | 
| 6580 |  69 63 79 2e 50 6f 6c 69 63 79 2e 4d 69 6e 69 6d    75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69  | icy.Policy.Minimum.....qSizePoli | 
| 65a0 |  63 79 5f 4d 61 78 69 6d 75 6d 20 3d 20 51 53 69    7a 65 50 6f 6c 69 63 79 2e 50 6f 6c 69 63 79 2e  | cy_Maximum.=.QSizePolicy.Policy. | 
| 65c0 |  4d 61 78 69 6d 75 6d 0a 20 20 20 20 71 53 69 7a    65 50 6f 6c 69 63 79 5f 45 78 70 61 6e 64 69 6e  | Maximum.....qSizePolicy_Expandin | 
| 65e0 |  67 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e    50 6f 6c 69 63 79 2e 45 78 70 61 6e 64 69 6e 67  | g.=.QSizePolicy.Policy.Expanding | 
| 6600 |  0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69 63 79    5f 50 72 65 66 65 72 72 65 64 20 3d 20 51 53 69  | .....qSizePolicy_Preferred.=.QSi | 
| 6620 |  7a 65 50 6f 6c 69 63 79 2e 50 6f 6c 69 63 79 2e    50 72 65 66 65 72 72 65 64 0a 20 20 20 20 71 53  | zePolicy.Policy.Preferred.....qS | 
| 6640 |  69 7a 65 50 6f 6c 69 63 79 5f 49 67 6e 6f 72 65    64 20 3d 20 51 53 69 7a 65 50 6f 6c 69 63 79 2e  | izePolicy_Ignored.=.QSizePolicy. | 
| 6660 |  50 6f 6c 69 63 79 2e 49 67 6e 6f 72 65 64 0a 65    78 63 65 70 74 3a 0a 20 20 20 20 71 53 69 7a 65  | Policy.Ignored.except:.....qSize | 
| 6680 |  50 6f 6c 69 63 79 5f 4d 69 6e 69 6d 75 6d 20 3d    20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 4d 69 6e  | Policy_Minimum.=.QSizePolicy.Min | 
| 66a0 |  69 6d 75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f    6c 69 63 79 5f 4d 61 78 69 6d 75 6d 20 3d 20 51  | imum.....qSizePolicy_Maximum.=.Q | 
| 66c0 |  53 69 7a 65 50 6f 6c 69 63 79 2e 4d 61 78 69 6d    75 6d 0a 20 20 20 20 71 53 69 7a 65 50 6f 6c 69  | SizePolicy.Maximum.....qSizePoli | 
| 66e0 |  63 79 5f 45 78 70 61 6e 64 69 6e 67 20 3d 20 51    53 69 7a 65 50 6f 6c 69 63 79 2e 45 78 70 61 6e  | cy_Expanding.=.QSizePolicy.Expan | 
| 6700 |  64 69 6e 67 0a 20 20 20 20 71 53 69 7a 65 50 6f    6c 69 63 79 5f 50 72 65 66 65 72 72 65 64 20 3d  | ding.....qSizePolicy_Preferred.= | 
| 6720 |  20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 50 72 65    66 65 72 72 65 64 0a 20 20 20 20 71 53 69 7a 65  | .QSizePolicy.Preferred.....qSize | 
| 6740 |  50 6f 6c 69 63 79 5f 49 67 6e 6f 72 65 64 20 3d    20 51 53 69 7a 65 50 6f 6c 69 63 79 2e 49 67 6e  | Policy_Ignored.=.QSizePolicy.Ign | 
| 6760 |  6f 72 65 64 0a 0a 74 72 79 3a 0a 20 20 20 20 71    54 65 78 74 45 64 69 74 5f 4e 6f 57 72 61 70 20  | ored..try:.....qTextEdit_NoWrap. | 
| 6780 |  3d 20 51 54 65 78 74 45 64 69 74 2e 4c 69 6e 65    57 72 61 70 4d 6f 64 65 2e 4e 6f 57 72 61 70 0a  | =.QTextEdit.LineWrapMode.NoWrap. | 
| 67a0 |  65 78 63 65 70 74 3a 0a 20 20 20 20 71 54 65 78    74 45 64 69 74 5f 4e 6f 57 72 61 70 20 3d 20 51  | except:.....qTextEdit_NoWrap.=.Q | 
| 67c0 |  54 65 78 74 45 64 69 74 2e 4e 6f 57 72 61 70 0a    0a 74 72 79 3a 0a 20 20 20 20 71 74 44 72 6f 70  | TextEdit.NoWrap..try:.....qtDrop | 
| 67e0 |  41 63 74 69 6f 6e 43 6f 70 79 41 63 74 69 6f 6e    20 3d 20 51 74 2e 44 72 6f 70 41 63 74 69 6f 6e  | ActionCopyAction.=.Qt.DropAction | 
| 6800 |  2e 43 6f 70 79 41 63 74 69 6f 6e 0a 20 20 20 20    71 74 44 72 6f 70 41 63 74 69 6f 6e 4d 6f 76 65  | .CopyAction.....qtDropActionMove | 
| 6820 |  41 63 74 69 6f 6e 20 3d 20 51 74 2e 44 72 6f 70    41 63 74 69 6f 6e 2e 4d 6f 76 65 41 63 74 69 6f  | Action.=.Qt.DropAction.MoveActio | 
| 6840 |  6e 0a 65 78 63 65 70 74 3a 0a 20 20 20 20 71 74    44 72 6f 70 41 63 74 69 6f 6e 43 6f 70 79 41 63  | n.except:.....qtDropActionCopyAc | 
| 6860 |  74 69 6f 6e 20 3d 20 51 74 2e 43 6f 70 79 41 63    74 69 6f 6e 0a 20 20 20 20 71 74 44 72 6f 70 41  | tion.=.Qt.CopyAction.....qtDropA | 
| 6880 |  63 74 69 6f 6e 4d 6f 76 65 41 63 74 69 6f 6e 20    3d 20 51 74 2e 4d 6f 76 65 41 63 74 69 6f 6e 0a  | ctionMoveAction.=.Qt.MoveAction. | 
| 68a0 |  50 4b 03 04 14 00 00 00 00 00 87 a0 ac 5a 55 6a    15 1b 4f 2e 00 00 4f 2e 00 00 11 00 00 00 63 6f  | PK...........ZUj..O...O.......co | 
| 68c0 |  6d 6d 6f 6e 5f 64 69 61 6c 6f 67 73 2e 70 79 23    21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 79  | mmon_dialogs.py#!/usr/bin/env.py | 
| 68e0 |  74 68 6f 6e 0d 0a 23 20 76 69 6d 3a 66 69 6c 65    65 6e 63 6f 64 69 6e 67 3d 55 54 46 2d 38 3a 74  | thon..#.vim:fileencoding=UTF-8:t | 
| 6900 |  73 3d 34 3a 73 77 3d 34 3a 73 74 61 3a 65 74 3a    73 74 73 3d 34 3a 61 69 0d 0a 66 72 6f 6d 20 5f  | s=4:sw=4:sta:et:sts=4:ai..from._ | 
| 6920 |  5f 66 75 74 75 72 65 5f 5f 20 69 6d 70 6f 72 74    20 28 75 6e 69 63 6f 64 65 5f 6c 69 74 65 72 61  | _future__.import.(unicode_litera | 
| 6940 |  6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c 20 61 62    73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74 2c 0d 0a  | ls,.division,.absolute_import,.. | 
| 6960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 75  | ........................print_fu | 
| 6980 |  6e 63 74 69 6f 6e 29 0d 0a 0d 0a 5f 5f 6c 69 63    65 6e 73 65 5f 5f 20 20 20 3d 20 27 47 50 4c 20  | nction)....__license__...=.'GPL. | 
| 69a0 |  76 33 27 0d 0a 5f 5f 63 6f 70 79 72 69 67 68 74    5f 5f 20 3d 20 27 32 30 32 32 2c 20 47 72 61 6e  | v3'..__copyright__.=.'2022,.Gran | 
| 69c0 |  74 20 44 72 61 6b 65 27 0d 0a 0d 0a 23 20 63 61    6c 69 62 72 65 20 50 79 74 68 6f 6e 20 33 20 63  | t.Drake'....#.calibre.Python.3.c | 
| 69e0 |  6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0d 0a 69    6d 70 6f 72 74 20 73 69 78 0d 0a 66 72 6f 6d 20  | ompatibility...import.six..from. | 
| 6a00 |  73 69 78 20 69 6d 70 6f 72 74 20 74 65 78 74 5f    74 79 70 65 20 61 73 20 75 6e 69 63 6f 64 65 0d  | six.import.text_type.as.unicode. | 
| 6a20 |  0a 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 66 72 6f    6d 20 71 74 2e 63 6f 72 65 20 69 6d 70 6f 72 74  | ...try:......from.qt.core.import | 
| 6a40 |  20 28 51 44 69 61 6c 6f 67 2c 20 51 44 69 61 6c    6f 67 42 75 74 74 6f 6e 42 6f 78 2c 20 51 56 42  | .(QDialog,.QDialogButtonBox,.QVB | 
| 6a60 |  6f 78 4c 61 79 6f 75 74 2c 20 51 48 42 6f 78 4c    61 79 6f 75 74 2c 20 0d 0a 20 20 20 20 20 20 20  | oxLayout,.QHBoxLayout,.......... | 
| 6a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 51 4c 69 73 74 57 69 64 67 65 74 2c 20 51 50  | .................QListWidget,.QP | 
| 6aa0 |  72 6f 67 72 65 73 73 42 61 72 2c 20 51 41 62 73    74 72 61 63 74 49 74 65 6d 56 69 65 77 2c 20 51  | rogressBar,.QAbstractItemView,.Q | 
| 6ac0 |  54 65 78 74 45 64 69 74 2c 20 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | TextEdit,....................... | 
| 6ae0 |  20 20 20 20 51 49 63 6f 6e 2c 20 51 41 70 70 6c    69 63 61 74 69 6f 6e 2c 20 51 74 2c 20 51 54 65  | ....QIcon,.QApplication,.Qt,.QTe | 
| 6b00 |  78 74 42 72 6f 77 73 65 72 2c 20 51 53 69 7a 65    2c 20 51 4c 61 62 65 6c 29 0d 0a 65 78 63 65 70  | xtBrowser,.QSize,.QLabel)..excep | 
| 6b20 |  74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a    20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51  | t.ImportError:......from.PyQt5.Q | 
| 6b40 |  74 20 69 6d 70 6f 72 74 20 28 51 44 69 61 6c 6f    67 2c 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e  | t.import.(QDialog,.QDialogButton | 
| 6b60 |  42 6f 78 2c 20 51 56 42 6f 78 4c 61 79 6f 75 74    2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c 20 0d  | Box,.QVBoxLayout,.QHBoxLayout,.. | 
| 6b80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 51 4c 69 73 74 57 69  | .........................QListWi | 
| 6ba0 |  64 67 65 74 2c 20 51 50 72 6f 67 72 65 73 73 42    61 72 2c 20 51 41 62 73 74 72 61 63 74 49 74 65  | dget,.QProgressBar,.QAbstractIte | 
| 6bc0 |  6d 56 69 65 77 2c 20 51 54 65 78 74 45 64 69 74    2c 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | mView,.QTextEdit,............... | 
| 6be0 |  20 20 20 20 20 20 20 20 20 20 20 20 51 49 63 6f    6e 2c 20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2c  | ............QIcon,.QApplication, | 
| 6c00 |  20 51 74 2c 20 51 54 65 78 74 42 72 6f 77 73 65    72 2c 20 51 53 69 7a 65 2c 20 51 4c 61 62 65 6c  | .Qt,.QTextBrowser,.QSize,.QLabel | 
| 6c20 |  29 0d 0a 0d 0a 74 72 79 3a 0d 0a 20 20 20 20 6c    6f 61 64 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73  | )....try:......load_translations | 
| 6c40 |  28 29 0d 0a 65 78 63 65 70 74 20 4e 61 6d 65 45    72 72 6f 72 3a 0d 0a 20 20 20 20 70 61 73 73 20  | ()..except.NameError:......pass. | 
| 6c60 |  23 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69    6f 6e 73 28 29 20 0d 0a 0d 0a 66 72 6f 6d 20 63  | #.load_translations().....from.c | 
| 6c80 |  61 6c 69 62 72 65 2e 67 75 69 32 20 69 6d 70 6f    72 74 20 67 70 72 65 66 73 2c 20 69 6e 66 6f 5f  | alibre.gui2.import.gprefs,.info_ | 
| 6ca0 |  64 69 61 6c 6f 67 2c 20 41 70 70 6c 69 63 61 74    69 6f 6e 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72  | dialog,.Application..from.calibr | 
| 6cc0 |  65 2e 67 75 69 32 2e 6b 65 79 62 6f 61 72 64 20    69 6d 70 6f 72 74 20 53 68 6f 72 74 63 75 74 43  | e.gui2.keyboard.import.ShortcutC | 
| 6ce0 |  6f 6e 66 69 67 0d 0a 66 72 6f 6d 20 63 61 6c 69    62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e  | onfig..from.calibre_plugins.barn | 
| 6d00 |  65 73 5f 6e 6f 62 6c 65 2e 63 6f 6d 6d 6f 6e 5f    69 63 6f 6e 73 20 69 6d 70 6f 72 74 20 67 65 74  | es_noble.common_icons.import.get | 
| 6d20 |  5f 69 63 6f 6e 0d 0a 0d 0a 0d 0a 23 20 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | _icon......#.------------------- | 
| 6d40 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 20  | ---------------------------..#.. | 
| 6d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 44 69 61    6c 6f 67 20 66 75 6e 63 74 69 6f 6e 73 0d 0a 23  | .............Dialog.functions..# | 
| 6d80 |  20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | .------------------------------- | 
| 6da0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d    0a 0d 0a 63 6c 61 73 73 20 53 69 7a 65 50 65 72  | ---------------....class.SizePer | 
| 6dc0 |  73 69 73 74 65 64 44 69 61 6c 6f 67 28 51 44 69    61 6c 6f 67 29 3a 0d 0a 20 20 20 20 27 27 27 0d  | sistedDialog(QDialog):......'''. | 
| 6de0 |  0a 20 20 20 20 54 68 69 73 20 64 69 61 6c 6f 67    20 69 73 20 61 20 62 61 73 65 20 63 6c 61 73 73  | .....This.dialog.is.a.base.class | 
| 6e00 |  20 66 6f 72 20 61 6e 79 20 64 69 61 6c 6f 67 73    20 74 68 61 74 20 77 61 6e 74 20 74 68 65 69 72  | .for.any.dialogs.that.want.their | 
| 6e20 |  20 73 69 7a 65 2f 70 6f 73 69 74 69 6f 6e 0d 0a    20 20 20 20 72 65 73 74 6f 72 65 64 20 77 68 65  | .size/position......restored.whe | 
| 6e40 |  6e 20 74 68 65 79 20 61 72 65 20 6e 65 78 74 20    6f 70 65 6e 65 64 2e 0d 0a 20 20 20 20 27 27 27  | n.they.are.next.opened.......''' | 
| 6e60 |  0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74    5f 5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c  | ......def.__init__(self,.parent, | 
| 6e80 |  20 75 6e 69 71 75 65 5f 70 72 65 66 5f 6e 61 6d    65 29 3a 0d 0a 20 20 20 20 20 20 20 20 51 44 69  | .unique_pref_name):..........QDi | 
| 6ea0 |  61 6c 6f 67 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65    6c 66 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20  | alog.__init__(self,.parent)..... | 
| 6ec0 |  20 20 20 20 20 73 65 6c 66 2e 75 6e 69 71 75 65    5f 70 72 65 66 5f 6e 61 6d 65 20 3d 20 75 6e 69  | .....self.unique_pref_name.=.uni | 
| 6ee0 |  71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 67 65 6f 6d  | que_pref_name..........self.geom | 
| 6f00 |  20 3d 20 67 70 72 65 66 73 2e 67 65 74 28 75 6e    69 71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 2c 20  | .=.gprefs.get(unique_pref_name,. | 
| 6f20 |  4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 73    65 6c 66 2e 66 69 6e 69 73 68 65 64 2e 63 6f 6e  | None)..........self.finished.con | 
| 6f40 |  6e 65 63 74 28 73 65 6c 66 2e 64 69 61 6c 6f 67    5f 63 6c 6f 73 69 6e 67 29 0d 0a 0d 0a 20 20 20  | nect(self.dialog_closing)....... | 
| 6f60 |  20 64 65 66 20 72 65 73 69 7a 65 5f 64 69 61 6c    6f 67 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20  | .def.resize_dialog(self):....... | 
| 6f80 |  20 20 20 69 66 20 73 65 6c 66 2e 67 65 6f 6d 20    69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20  | ...if.self.geom.is.None:........ | 
| 6fa0 |  20 20 20 20 20 20 73 65 6c 66 2e 72 65 73 69 7a    65 28 73 65 6c 66 2e 73 69 7a 65 48 69 6e 74 28  | ......self.resize(self.sizeHint( | 
| 6fc0 |  29 29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  | ))..........else:..............s | 
| 6fe0 |  65 6c 66 2e 72 65 73 74 6f 72 65 47 65 6f 6d 65    74 72 79 28 73 65 6c 66 2e 67 65 6f 6d 29 0d 0a  | elf.restoreGeometry(self.geom).. | 
| 7000 |  0d 0a 20 20 20 20 64 65 66 20 64 69 61 6c 6f 67    5f 63 6c 6f 73 69 6e 67 28 73 65 6c 66 2c 20 72  | ......def.dialog_closing(self,.r | 
| 7020 |  65 73 75 6c 74 29 3a 0d 0a 20 20 20 20 20 20 20    20 67 65 6f 6d 20 3d 20 62 79 74 65 61 72 72 61  | esult):..........geom.=.bytearra | 
| 7040 |  79 28 73 65 6c 66 2e 73 61 76 65 47 65 6f 6d 65    74 72 79 28 29 29 0d 0a 20 20 20 20 20 20 20 20  | y(self.saveGeometry()).......... | 
| 7060 |  67 70 72 65 66 73 5b 73 65 6c 66 2e 75 6e 69 71    75 65 5f 70 72 65 66 5f 6e 61 6d 65 5d 20 3d 20  | gprefs[self.unique_pref_name].=. | 
| 7080 |  67 65 6f 6d 0d 0a 20 20 20 20 20 20 20 20 73 65    6c 66 2e 70 65 72 73 69 73 74 5f 63 75 73 74 6f  | geom..........self.persist_custo | 
| 70a0 |  6d 5f 70 72 65 66 73 28 29 0d 0a 0d 0a 20 20 20    20 64 65 66 20 70 65 72 73 69 73 74 5f 63 75 73  | m_prefs()........def.persist_cus | 
| 70c0 |  74 6f 6d 5f 70 72 65 66 73 28 73 65 6c 66 29 3a    0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20  | tom_prefs(self):..........'''... | 
| 70e0 |  20 20 20 20 20 20 20 49 6e 76 6f 6b 65 64 20 77    68 65 6e 20 74 68 65 20 64 69 61 6c 6f 67 20 69  | .......Invoked.when.the.dialog.i | 
| 7100 |  73 20 63 6c 6f 73 69 6e 67 2e 20 4f 76 65 72 72    69 64 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f  | s.closing..Override.this.functio | 
| 7120 |  6e 20 74 6f 20 63 61 6c 6c 0d 0a 20 20 20 20 20    20 20 20 73 61 76 65 5f 63 75 73 74 6f 6d 5f 70  | n.to.call..........save_custom_p | 
| 7140 |  72 65 66 28 29 20 69 66 20 79 6f 75 20 68 61 76    65 20 61 20 73 65 74 74 69 6e 67 20 79 6f 75 20  | ref().if.you.have.a.setting.you. | 
| 7160 |  77 61 6e 74 20 70 65 72 73 69 73 74 65 64 20 74    68 61 74 20 79 6f 75 20 63 61 6e 0d 0a 20 20 20  | want.persisted.that.you.can..... | 
| 7180 |  20 20 20 20 20 72 65 74 72 69 65 76 65 20 69 6e    20 79 6f 75 72 20 5f 5f 69 6e 69 74 5f 5f 28 29  | .....retrieve.in.your.__init__() | 
| 71a0 |  20 75 73 69 6e 67 20 6c 6f 61 64 5f 63 75 73 74    6f 6d 5f 70 72 65 66 28 29 20 77 68 65 6e 20 6e  | .using.load_custom_pref().when.n | 
| 71c0 |  65 78 74 20 6f 70 65 6e 65 64 0d 0a 20 20 20 20    20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20  | ext.opened..........'''......... | 
| 71e0 |  20 70 61 73 73 0d 0a 0d 0a 20 20 20 20 64 65 66    20 6c 6f 61 64 5f 63 75 73 74 6f 6d 5f 70 72 65  | .pass........def.load_custom_pre | 
| 7200 |  66 28 73 65 6c 66 2c 20 6e 61 6d 65 2c 20 64 65    66 61 75 6c 74 3d 4e 6f 6e 65 29 3a 0d 0a 20 20  | f(self,.name,.default=None):.... | 
| 7220 |  20 20 20 20 20 20 72 65 74 75 72 6e 20 67 70 72    65 66 73 2e 67 65 74 28 73 65 6c 66 2e 75 6e 69  | ......return.gprefs.get(self.uni | 
| 7240 |  71 75 65 5f 70 72 65 66 5f 6e 61 6d 65 2b 27 3a    27 2b 6e 61 6d 65 2c 20 64 65 66 61 75 6c 74 29  | que_pref_name+':'+name,.default) | 
| 7260 |  0d 0a 0d 0a 20 20 20 20 64 65 66 20 73 61 76 65    5f 63 75 73 74 6f 6d 5f 70 72 65 66 28 73 65 6c  | ........def.save_custom_pref(sel | 
| 7280 |  66 2c 20 6e 61 6d 65 2c 20 76 61 6c 75 65 29 3a    0d 0a 20 20 20 20 20 20 20 20 67 70 72 65 66 73  | f,.name,.value):..........gprefs | 
| 72a0 |  5b 73 65 6c 66 2e 75 6e 69 71 75 65 5f 70 72 65    66 5f 6e 61 6d 65 2b 27 3a 27 2b 6e 61 6d 65 5d  | [self.unique_pref_name+':'+name] | 
| 72c0 |  20 3d 20 76 61 6c 75 65 0d 0a 0d 0a 20 20 20 20    64 65 66 20 68 65 6c 70 5f 6c 69 6e 6b 5f 61 63  | .=.value........def.help_link_ac | 
| 72e0 |  74 69 76 61 74 65 64 28 73 65 6c 66 2c 20 75 72    6c 29 3a 0d 0a 20 20 20 20 20 20 20 20 69 66 20  | tivated(self,.url):..........if. | 
| 7300 |  73 65 6c 66 2e 70 6c 75 67 69 6e 5f 61 63 74 69    6f 6e 20 69 73 20 6e 6f 74 20 4e 6f 6e 65 3a 0d  | self.plugin_action.is.not.None:. | 
| 7320 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c    66 2e 70 6c 75 67 69 6e 5f 61 63 74 69 6f 6e 2e  | .............self.plugin_action. | 
| 7340 |  73 68 6f 77 5f 68 65 6c 70 28 61 6e 63 68 6f 72    3d 73 65 6c 66 2e 68 65 6c 70 5f 61 6e 63 68 6f  | show_help(anchor=self.help_ancho | 
| 7360 |  72 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20 4b 65    79 62 6f 61 72 64 43 6f 6e 66 69 67 44 69 61 6c  | r)......class.KeyboardConfigDial | 
| 7380 |  6f 67 28 53 69 7a 65 50 65 72 73 69 73 74 65 64    44 69 61 6c 6f 67 29 3a 0d 0a 20 20 20 20 27 27  | og(SizePersistedDialog):......'' | 
| 73a0 |  27 0d 0a 20 20 20 20 54 68 69 73 20 64 69 61 6c    6f 67 20 69 73 20 75 73 65 64 20 74 6f 20 61 6c  | '......This.dialog.is.used.to.al | 
| 73c0 |  6c 6f 77 20 65 64 69 74 69 6e 67 20 6f 66 20 6b    65 79 62 6f 61 72 64 20 73 68 6f 72 74 63 75 74  | low.editing.of.keyboard.shortcut | 
| 73e0 |  73 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20    20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65  | s.......'''......def.__init__(se | 
| 7400 |  6c 66 2c 20 67 75 69 2c 20 67 72 6f 75 70 5f 6e    61 6d 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 53  | lf,.gui,.group_name):..........S | 
| 7420 |  69 7a 65 50 65 72 73 69 73 74 65 64 44 69 61 6c    6f 67 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66  | izePersistedDialog.__init__(self | 
| 7440 |  2c 20 67 75 69 2c 20 27 4b 65 79 62 6f 61 72 64    20 73 68 6f 72 74 63 75 74 20 64 69 61 6c 6f 67  | ,.gui,.'Keyboard.shortcut.dialog | 
| 7460 |  27 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66    2e 67 75 69 20 3d 20 67 75 69 0d 0a 20 20 20 20  | ')..........self.gui.=.gui...... | 
| 7480 |  20 20 20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64    6f 77 54 69 74 6c 65 28 5f 28 27 4b 65 79 62 6f  | ....self.setWindowTitle(_('Keybo | 
| 74a0 |  61 72 64 20 73 68 6f 72 74 63 75 74 73 27 29 29    0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74  | ard.shortcuts'))..........layout | 
| 74c0 |  20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 73    65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65  | .=.QVBoxLayout(self)..........se | 
| 74e0 |  6c 66 2e 73 65 74 4c 61 79 6f 75 74 28 6c 61 79    6f 75 74 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20  | lf.setLayout(layout)............ | 
| 7500 |  73 65 6c 66 2e 6b 65 79 62 6f 61 72 64 5f 77 69    64 67 65 74 20 3d 20 53 68 6f 72 74 63 75 74 43  | self.keyboard_widget.=.ShortcutC | 
| 7520 |  6f 6e 66 69 67 28 73 65 6c 66 29 0d 0a 20 20 20    20 20 20 20 20 6c 61 79 6f 75 74 2e 61 64 64 57  | onfig(self)..........layout.addW | 
| 7540 |  69 64 67 65 74 28 73 65 6c 66 2e 6b 65 79 62 6f    61 72 64 5f 77 69 64 67 65 74 29 0d 0a 20 20 20  | idget(self.keyboard_widget)..... | 
| 7560 |  20 20 20 20 20 73 65 6c 66 2e 67 72 6f 75 70 5f    6e 61 6d 65 20 3d 20 67 72 6f 75 70 5f 6e 61 6d  | .....self.group_name.=.group_nam | 
| 7580 |  65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 62 75 74    74 6f 6e 5f 62 6f 78 20 3d 20 51 44 69 61 6c 6f  | e............button_box.=.QDialo | 
| 75a0 |  67 42 75 74 74 6f 6e 42 6f 78 28 51 44 69 61 6c    6f 67 42 75 74 74 6f 6e 42 6f 78 2e 4f 6b 20 7c  | gButtonBox(QDialogButtonBox.Ok.| | 
| 75c0 |  20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42 6f    78 2e 43 61 6e 63 65 6c 29 0d 0a 20 20 20 20 20  | .QDialogButtonBox.Cancel)....... | 
| 75e0 |  20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e 61 63    63 65 70 74 65 64 2e 63 6f 6e 6e 65 63 74 28 73  | ...button_box.accepted.connect(s | 
| 7600 |  65 6c 66 2e 63 6f 6d 6d 69 74 29 0d 0a 20 20 20    20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e  | elf.commit)..........button_box. | 
| 7620 |  72 65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74    28 73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20  | rejected.connect(self.reject)... | 
| 7640 |  20 20 20 20 20 20 20 6c 61 79 6f 75 74 2e 61 64    64 57 69 64 67 65 74 28 62 75 74 74 6f 6e 5f 62  | .......layout.addWidget(button_b | 
| 7660 |  6f 78 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 23    20 43 61 75 73 65 20 6f 75 72 20 64 69 61 6c 6f  | ox)............#.Cause.our.dialo | 
| 7680 |  67 20 73 69 7a 65 20 74 6f 20 62 65 20 72 65 73    74 6f 72 65 64 20 66 72 6f 6d 20 70 72 65 66 73  | g.size.to.be.restored.from.prefs | 
| 76a0 |  20 6f 72 20 63 72 65 61 74 65 64 20 6f 6e 20 66    69 72 73 74 20 75 73 61 67 65 0d 0a 20 20 20 20  | .or.created.on.first.usage...... | 
| 76c0 |  20 20 20 20 73 65 6c 66 2e 72 65 73 69 7a 65 5f    64 69 61 6c 6f 67 28 29 0d 0a 20 20 20 20 20 20  | ....self.resize_dialog()........ | 
| 76e0 |  20 20 73 65 6c 66 2e 69 6e 69 74 69 61 6c 69 7a    65 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 69  | ..self.initialize()........def.i | 
| 7700 |  6e 69 74 69 61 6c 69 7a 65 28 73 65 6c 66 29 3a    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b  | nitialize(self):..........self.k | 
| 7720 |  65 79 62 6f 61 72 64 5f 77 69 64 67 65 74 2e 69    6e 69 74 69 61 6c 69 7a 65 28 73 65 6c 66 2e 67  | eyboard_widget.initialize(self.g | 
| 7740 |  75 69 2e 6b 65 79 62 6f 61 72 64 29 0d 0a 20 20    20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 62 6f  | ui.keyboard)..........self.keybo | 
| 7760 |  61 72 64 5f 77 69 64 67 65 74 2e 68 69 67 68 6c    69 67 68 74 5f 67 72 6f 75 70 28 73 65 6c 66 2e  | ard_widget.highlight_group(self. | 
| 7780 |  67 72 6f 75 70 5f 6e 61 6d 65 29 0d 0a 0d 0a 20    20 20 20 64 65 66 20 63 6f 6d 6d 69 74 28 73 65  | group_name)........def.commit(se | 
| 77a0 |  6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65    6c 66 2e 6b 65 79 62 6f 61 72 64 5f 77 69 64 67  | lf):..........self.keyboard_widg | 
| 77c0 |  65 74 2e 63 6f 6d 6d 69 74 28 29 0d 0a 20 20 20    20 20 20 20 20 73 65 6c 66 2e 61 63 63 65 70 74  | et.commit()..........self.accept | 
| 77e0 |  28 29 0d 0a 0d 0a 0d 0a 64 65 66 20 70 72 6f 6d    70 74 5f 66 6f 72 5f 72 65 73 74 61 72 74 28 70  | ()......def.prompt_for_restart(p | 
| 7800 |  61 72 65 6e 74 2c 20 74 69 74 6c 65 2c 20 6d 65    73 73 61 67 65 29 3a 0d 0a 20 20 20 20 64 20 3d  | arent,.title,.message):......d.= | 
| 7820 |  20 69 6e 66 6f 5f 64 69 61 6c 6f 67 28 70 61 72    65 6e 74 2c 20 74 69 74 6c 65 2c 20 6d 65 73 73  | .info_dialog(parent,.title,.mess | 
| 7840 |  61 67 65 2c 20 73 68 6f 77 5f 63 6f 70 79 5f 62    75 74 74 6f 6e 3d 46 61 6c 73 65 29 0d 0a 20 20  | age,.show_copy_button=False).... | 
| 7860 |  20 20 62 20 3d 20 64 2e 62 62 2e 61 64 64 42 75    74 74 6f 6e 28 5f 28 27 52 65 73 74 61 72 74 20  | ..b.=.d.bb.addButton(_('Restart. | 
| 7880 |  63 61 6c 69 62 72 65 20 6e 6f 77 27 29 2c 20 64    2e 62 62 2e 41 63 63 65 70 74 52 6f 6c 65 29 0d  | calibre.now'),.d.bb.AcceptRole). | 
| 78a0 |  0a 20 20 20 20 62 2e 73 65 74 49 63 6f 6e 28 51    49 63 6f 6e 28 49 28 27 6c 74 2e 70 6e 67 27 29  | .....b.setIcon(QIcon(I('lt.png') | 
| 78c0 |  29 29 0d 0a 20 20 20 20 64 2e 64 6f 5f 72 65 73    74 61 72 74 20 3d 20 46 61 6c 73 65 0d 0a 20 20  | ))......d.do_restart.=.False.... | 
| 78e0 |  20 20 64 65 66 20 72 66 28 29 3a 0d 0a 20 20 20    20 20 20 20 20 64 2e 64 6f 5f 72 65 73 74 61 72  | ..def.rf():..........d.do_restar | 
| 7900 |  74 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 62 2e    63 6c 69 63 6b 65 64 2e 63 6f 6e 6e 65 63 74 28  | t.=.True......b.clicked.connect( | 
| 7920 |  72 66 29 0d 0a 20 20 20 20 64 2e 73 65 74 5f 64    65 74 61 69 6c 73 28 27 27 29 0d 0a 20 20 20 20  | rf)......d.set_details('')...... | 
| 7940 |  64 2e 65 78 65 63 5f 28 29 0d 0a 20 20 20 20 62    2e 63 6c 69 63 6b 65 64 2e 64 69 73 63 6f 6e 6e  | d.exec_()......b.clicked.disconn | 
| 7960 |  65 63 74 28 29 0d 0a 20 20 20 20 72 65 74 75 72    6e 20 64 2e 64 6f 5f 72 65 73 74 61 72 74 0d 0a  | ect()......return.d.do_restart.. | 
| 7980 |  0d 0a 0d 0a 63 6c 61 73 73 20 50 72 65 66 73 56    69 65 77 65 72 44 69 61 6c 6f 67 28 53 69 7a 65  | ....class.PrefsViewerDialog(Size | 
| 79a0 |  50 65 72 73 69 73 74 65 64 44 69 61 6c 6f 67 29    3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69  | PersistedDialog):........def.__i | 
| 79c0 |  6e 69 74 5f 5f 28 73 65 6c 66 2c 20 67 75 69 2c    20 6e 61 6d 65 73 70 61 63 65 29 3a 0d 0a 20 20  | nit__(self,.gui,.namespace):.... | 
| 79e0 |  20 20 20 20 20 20 53 69 7a 65 50 65 72 73 69 73    74 65 64 44 69 61 6c 6f 67 2e 5f 5f 69 6e 69 74  | ......SizePersistedDialog.__init | 
| 7a00 |  5f 5f 28 73 65 6c 66 2c 20 67 75 69 2c 20 27 50    72 65 66 73 20 56 69 65 77 65 72 20 64 69 61 6c  | __(self,.gui,.'Prefs.Viewer.dial | 
| 7a20 |  6f 67 27 29 0d 0a 20 20 20 20 20 20 20 20 73 65    6c 66 2e 73 65 74 57 69 6e 64 6f 77 54 69 74 6c  | og')..........self.setWindowTitl | 
| 7a40 |  65 28 5f 28 27 50 72 65 66 65 72 65 6e 63 65 73    20 66 6f 72 3a 27 29 2b 27 20 27 2b 6e 61 6d 65  | e(_('Preferences.for:')+'.'+name | 
| 7a60 |  73 70 61 63 65 29 0d 0a 20 20 20 20 20 20 20 20    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67  | space)....................self.g | 
| 7a80 |  75 69 20 3d 20 67 75 69 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 64 62 20 3d 20 67 75 69 2e  | ui.=.gui..........self.db.=.gui. | 
| 7aa0 |  63 75 72 72 65 6e 74 5f 64 62 0d 0a 20 20 20 20    20 20 20 20 73 65 6c 66 2e 6e 61 6d 65 73 70 61  | current_db..........self.namespa | 
| 7ac0 |  63 65 20 3d 20 6e 61 6d 65 73 70 61 63 65 0d 0a    20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 69 6e  | ce.=.namespace..........self._in | 
| 7ae0 |  69 74 5f 63 6f 6e 74 72 6f 6c 73 28 29 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 73 69  | it_controls()..........self.resi | 
| 7b00 |  7a 65 5f 64 69 61 6c 6f 67 28 29 0d 0a 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 5f 70 6f 70  | ze_dialog()............self._pop | 
| 7b20 |  75 6c 61 74 65 5f 73 65 74 74 69 6e 67 73 28 29    0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 73  | ulate_settings()............if.s | 
| 7b40 |  65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 63 6f    75 6e 74 28 29 3a 0d 0a 20 20 20 20 20 20 20 20  | elf.keys_list.count():.......... | 
| 7b60 |  20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69    73 74 2e 73 65 74 43 75 72 72 65 6e 74 52 6f 77  | ....self.keys_list.setCurrentRow | 
| 7b80 |  28 30 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f    69 6e 69 74 5f 63 6f 6e 74 72 6f 6c 73 28 73 65  | (0)........def._init_controls(se | 
| 7ba0 |  6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 6c 61    79 6f 75 74 20 3d 20 51 56 42 6f 78 4c 61 79 6f  | lf):..........layout.=.QVBoxLayo | 
| 7bc0 |  75 74 28 73 65 6c 66 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 73 65 74 4c 61 79 6f 75 74  | ut(self)..........self.setLayout | 
| 7be0 |  28 6c 61 79 6f 75 74 29 0d 0a 0d 0a 20 20 20 20    20 20 20 20 6d 6c 20 3d 20 51 48 42 6f 78 4c 61  | (layout)............ml.=.QHBoxLa | 
| 7c00 |  79 6f 75 74 28 29 0d 0a 20 20 20 20 20 20 20 20    6c 61 79 6f 75 74 2e 61 64 64 4c 61 79 6f 75 74  | yout()..........layout.addLayout | 
| 7c20 |  28 6d 6c 2c 20 31 29 0d 0a 0d 0a 20 20 20 20 20    20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69 73  | (ml,.1)............self.keys_lis | 
| 7c40 |  74 20 3d 20 51 4c 69 73 74 57 69 64 67 65 74 28    73 65 6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73  | t.=.QListWidget(self)..........s | 
| 7c60 |  65 6c 66 2e 6b 65 79 73 5f 6c 69 73 74 2e 73 65    74 53 65 6c 65 63 74 69 6f 6e 4d 6f 64 65 28 51  | elf.keys_list.setSelectionMode(Q | 
| 7c80 |  41 62 73 74 72 61 63 74 49 74 65 6d 56 69 65 77    2e 53 69 6e 67 6c 65 53 65 6c 65 63 74 69 6f 6e  | AbstractItemView.SingleSelection | 
| 7ca0 |  29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e    6b 65 79 73 5f 6c 69 73 74 2e 73 65 74 46 69 78  | )..........self.keys_list.setFix | 
| 7cc0 |  65 64 57 69 64 74 68 28 31 35 30 29 0d 0a 20 20    20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f  | edWidth(150)..........self.keys_ | 
| 7ce0 |  6c 69 73 74 2e 73 65 74 41 6c 74 65 72 6e 61 74    69 6e 67 52 6f 77 43 6f 6c 6f 72 73 28 54 72 75  | list.setAlternatingRowColors(Tru | 
| 7d00 |  65 29 0d 0a 20 20 20 20 20 20 20 20 6d 6c 2e 61    64 64 57 69 64 67 65 74 28 73 65 6c 66 2e 6b 65  | e)..........ml.addWidget(self.ke | 
| 7d20 |  79 73 5f 6c 69 73 74 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 76 61 6c 75 65 5f 74 65 78  | ys_list)..........self.value_tex | 
| 7d40 |  74 20 3d 20 51 54 65 78 74 45 64 69 74 28 73 65    6c 66 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c  | t.=.QTextEdit(self)..........sel | 
| 7d60 |  66 2e 76 61 6c 75 65 5f 74 65 78 74 2e 73 65 74    52 65 61 64 4f 6e 6c 79 28 46 61 6c 73 65 29 0d  | f.value_text.setReadOnly(False). | 
| 7d80 |  0a 20 20 20 20 20 20 20 20 6d 6c 2e 61 64 64 57    69 64 67 65 74 28 73 65 6c 66 2e 76 61 6c 75 65  | .........ml.addWidget(self.value | 
| 7da0 |  5f 74 65 78 74 2c 20 31 29 0d 0a 0d 0a 20 20 20    20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 20  | _text,.1)............button_box. | 
| 7dc0 |  3d 20 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e 42    6f 78 28 51 44 69 61 6c 6f 67 42 75 74 74 6f 6e  | =.QDialogButtonBox(QDialogButton | 
| 7de0 |  42 6f 78 2e 4f 6b 20 7c 20 51 44 69 61 6c 6f 67    42 75 74 74 6f 6e 42 6f 78 2e 43 61 6e 63 65 6c  | Box.Ok.|.QDialogButtonBox.Cancel | 
| 7e00 |  29 0d 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f    6e 5f 62 6f 78 2e 61 63 63 65 70 74 65 64 2e 63  | )..........button_box.accepted.c | 
| 7e20 |  6f 6e 6e 65 63 74 28 73 65 6c 66 2e 5f 61 70 70    6c 79 5f 63 68 61 6e 67 65 73 29 0d 0a 20 20 20  | onnect(self._apply_changes)..... | 
| 7e40 |  20 20 20 20 20 62 75 74 74 6f 6e 5f 62 6f 78 2e    72 65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74  | .....button_box.rejected.connect | 
| 7e60 |  28 73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61  | (self.reject)..........self.clea | 
| 7e80 |  72 5f 62 75 74 74 6f 6e 20 3d 20 62 75 74 74 6f    6e 5f 62 6f 78 2e 61 64 64 42 75 74 74 6f 6e 28  | r_button.=.button_box.addButton( | 
| 7ea0 |  5f 28 27 43 6c 65 61 72 27 29 2c 20 51 44 69 61    6c 6f 67 42 75 74 74 6f 6e 42 6f 78 2e 52 65 73  | _('Clear'),.QDialogButtonBox.Res | 
| 7ec0 |  65 74 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20    20 73 65 6c 66 2e 63 6c 65 61 72 5f 62 75 74 74  | etRole)..........self.clear_butt | 
| 7ee0 |  6f 6e 2e 73 65 74 49 63 6f 6e 28 67 65 74 5f 69    63 6f 6e 28 27 74 72 61 73 68 2e 70 6e 67 27 29  | on.setIcon(get_icon('trash.png') | 
| 7f00 |  29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e    63 6c 65 61 72 5f 62 75 74 74 6f 6e 2e 73 65 74  | )..........self.clear_button.set | 
| 7f20 |  54 6f 6f 6c 54 69 70 28 5f 28 27 43 6c 65 61 72    20 61 6c 6c 20 73 65 74 74 69 6e 67 73 20 66 6f  | ToolTip(_('Clear.all.settings.fo | 
| 7f40 |  72 20 74 68 69 73 20 70 6c 75 67 69 6e 27 29 29    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63  | r.this.plugin'))..........self.c | 
| 7f60 |  6c 65 61 72 5f 62 75 74 74 6f 6e 2e 63 6c 69 63    6b 65 64 2e 63 6f 6e 6e 65 63 74 28 73 65 6c 66  | lear_button.clicked.connect(self | 
| 7f80 |  2e 5f 63 6c 65 61 72 5f 73 65 74 74 69 6e 67 73    29 0d 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75  | ._clear_settings)..........layou | 
| 7fa0 |  74 2e 61 64 64 57 69 64 67 65 74 28 62 75 74 74    6f 6e 5f 62 6f 78 29 0d 0a 0d 0a 20 20 20 20 64  | t.addWidget(button_box)........d | 
| 7fc0 |  65 66 20 5f 70 6f 70 75 6c 61 74 65 5f 73 65 74    74 69 6e 67 73 28 73 65 6c 66 29 3a 0d 0a 20 20  | ef._populate_settings(self):.... | 
| 7fe0 |  20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f    6c 69 73 74 2e 63 6c 65 61 72 28 29 0d 0a 20 20  | ......self.keys_list.clear().... | 
| 8000 |  20 20 20 20 20 20 6e 73 5f 70 72 65 66 69 78 20    3d 20 73 65 6c 66 2e 5f 67 65 74 5f 6e 73 5f 70  | ......ns_prefix.=.self._get_ns_p | 
| 8020 |  72 65 66 69 78 28 29 0d 0a 20 20 20 20 20 20 20    20 6b 65 79 73 20 3d 20 73 6f 72 74 65 64 28 5b  | refix()..........keys.=.sorted([ | 
| 8040 |  6b 5b 6c 65 6e 28 6e 73 5f 70 72 65 66 69 78 29    3a 5d 20 66 6f 72 20 6b 20 69 6e 20 73 69 78 2e  | k[len(ns_prefix):].for.k.in.six. | 
| 8060 |  69 74 65 72 6b 65 79 73 28 73 65 6c 66 2e 64 62    2e 70 72 65 66 73 29 0d 0a 20 20 20 20 20 20 20  | iterkeys(self.db.prefs)......... | 
| 8080 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    69 66 20 6b 2e 73 74 61 72 74 73 77 69 74 68 28  | ................if.k.startswith( | 
| 80a0 |  6e 73 5f 70 72 65 66 69 78 29 5d 29 0d 0a 20 20    20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 69 6e  | ns_prefix)])..........for.key.in | 
| 80c0 |  20 6b 65 79 73 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f 6c 69  | .keys:..............self.keys_li | 
| 80e0 |  73 74 2e 61 64 64 49 74 65 6d 28 6b 65 79 29 0d    0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6b 65  | st.addItem(key)..........self.ke | 
| 8100 |  79 73 5f 6c 69 73 74 2e 73 65 74 4d 69 6e 69 6d    75 6d 57 69 64 74 68 28 73 65 6c 66 2e 6b 65 79  | ys_list.setMinimumWidth(self.key | 
| 8120 |  73 5f 6c 69 73 74 2e 73 69 7a 65 48 69 6e 74 46    6f 72 43 6f 6c 75 6d 6e 28 30 29 29 0d 0a 20 20  | s_list.sizeHintForColumn(0)).... | 
| 8140 |  20 20 20 20 20 20 73 65 6c 66 2e 6b 65 79 73 5f    6c 69 73 74 2e 63 75 72 72 65 6e 74 52 6f 77 43  | ......self.keys_list.currentRowC | 
| 8160 |  68 61 6e 67 65 64 5b 69 6e 74 5d 2e 63 6f 6e 6e    65 63 74 28 73 65 6c 66 2e 5f 63 75 72 72 65 6e  | hanged[int].connect(self._curren | 
| 8180 |  74 5f 72 6f 77 5f 63 68 61 6e 67 65 64 29 0d 0a    0d 0a 20 20 20 20 64 65 66 20 5f 63 75 72 72 65  | t_row_changed)........def._curre | 
| 81a0 |  6e 74 5f 72 6f 77 5f 63 68 61 6e 67 65 64 28 73    65 6c 66 2c 20 6e 65 77 5f 72 6f 77 29 3a 0d 0a  | nt_row_changed(self,.new_row):.. | 
| 81c0 |  20 20 20 20 20 20 20 20 69 66 20 6e 65 77 5f 72    6f 77 20 3c 20 30 3a 0d 0a 20 20 20 20 20 20 20  | ........if.new_row.<.0:......... | 
| 81e0 |  20 20 20 20 20 73 65 6c 66 2e 76 61 6c 75 65 5f    74 65 78 74 2e 63 6c 65 61 72 28 29 0d 0a 20 20  | .....self.value_text.clear().... | 
| 8200 |  20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e    0d 0a 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20  | ..........return..........key.=. | 
| 8220 |  75 6e 69 63 6f 64 65 28 73 65 6c 66 2e 6b 65 79    73 5f 6c 69 73 74 2e 63 75 72 72 65 6e 74 49 74  | unicode(self.keys_list.currentIt | 
| 8240 |  65 6d 28 29 2e 74 65 78 74 28 29 29 0d 0a 20 20    20 20 20 20 20 20 76 61 6c 20 3d 20 73 65 6c 66  | em().text())..........val.=.self | 
| 8260 |  2e 64 62 2e 70 72 65 66 73 2e 67 65 74 5f 6e 61    6d 65 73 70 61 63 65 64 28 73 65 6c 66 2e 6e 61  | .db.prefs.get_namespaced(self.na | 
| 8280 |  6d 65 73 70 61 63 65 2c 20 6b 65 79 2c 20 27 27    29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | mespace,.key,.'')..........self. | 
| 82a0 |  76 61 6c 75 65 5f 74 65 78 74 2e 73 65 74 50 6c    61 69 6e 54 65 78 74 28 73 65 6c 66 2e 64 62 2e  | value_text.setPlainText(self.db. | 
| 82c0 |  70 72 65 66 73 2e 74 6f 5f 72 61 77 28 76 61 6c    29 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 67  | prefs.to_raw(val))........def._g | 
| 82e0 |  65 74 5f 6e 73 5f 70 72 65 66 69 78 28 73 65 6c    66 29 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 74  | et_ns_prefix(self):..........ret | 
| 8300 |  75 72 6e 20 27 6e 61 6d 65 73 70 61 63 65 64 3a    25 73 3a 27 25 20 73 65 6c 66 2e 6e 61 6d 65 73  | urn.'namespaced:%s:'%.self.names | 
| 8320 |  70 61 63 65 0d 0a 0d 0a 20 20 20 20 64 65 66 20    5f 61 70 70 6c 79 5f 63 68 61 6e 67 65 73 28 73  | pace........def._apply_changes(s | 
| 8340 |  65 6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 66    72 6f 6d 20 63 61 6c 69 62 72 65 2e 67 75 69 32  | elf):..........from.calibre.gui2 | 
| 8360 |  2e 64 69 61 6c 6f 67 73 2e 63 6f 6e 66 69 72 6d    5f 64 65 6c 65 74 65 20 69 6d 70 6f 72 74 20 63  | .dialogs.confirm_delete.import.c | 
| 8380 |  6f 6e 66 69 72 6d 0d 0a 20 20 20 20 20 20 20 20    6d 65 73 73 61 67 65 20 3d 20 27 3c 70 3e 27 2b  | onfirm..........message.=.'<p>'+ | 
| 83a0 |  5f 28 27 41 72 65 20 79 6f 75 20 73 75 72 65 20    79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 61 6e  | _('Are.you.sure.you.want.to.chan | 
| 83c0 |  67 65 20 79 6f 75 72 20 73 65 74 74 69 6e 67 73    20 69 6e 20 74 68 69 73 20 6c 69 62 72 61 72 79  | ge.your.settings.in.this.library | 
| 83e0 |  20 66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e    3f 27 29 2b 27 3c 2f 70 3e 27 20 5c 0d 0a 20 20  | .for.this.plugin?')+'</p>'.\.... | 
| 8400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    27 3c 70 3e 27 2b 5f 28 27 41 6e 79 20 73 65 74  | ................'<p>'+_('Any.set | 
| 8420 |  74 69 6e 67 73 20 69 6e 20 6f 74 68 65 72 20 6c    69 62 72 61 72 69 65 73 20 6f 72 20 73 74 6f 72  | tings.in.other.libraries.or.stor | 
| 8440 |  65 64 20 69 6e 20 61 20 4a 53 4f 4e 20 66 69 6c    65 20 69 6e 20 79 6f 75 72 20 63 61 6c 69 62 72  | ed.in.a.JSON.file.in.your.calibr | 
| 8460 |  65 20 70 6c 75 67 69 6e 73 20 27 20 5c 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.plugins.'.\................... | 
| 8480 |  20 27 66 6f 6c 64 65 72 20 77 69 6c 6c 20 6e 6f    74 20 62 65 20 74 6f 75 63 68 65 64 2e 27 29 2b  | .'folder.will.not.be.touched.')+ | 
| 84a0 |  27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 27 3c 3e 27  | '</p>'.\....................'<>' | 
| 84c0 |  2b 5f 28 27 59 6f 75 20 6d 75 73 74 20 72 65 73    74 61 72 74 20 63 61 6c 69 62 72 65 20 61 66 74  | +_('You.must.restart.calibre.aft | 
| 84e0 |  65 72 77 61 72 64 73 2e 27 29 2b 27 3c 2f 70 3e    27 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f  | erwards.')+'</p>'..........if.no | 
| 8500 |  74 20 63 6f 6e 66 69 72 6d 28 6d 65 73 73 61 67    65 2c 20 73 65 6c 66 2e 6e 61 6d 65 73 70 61 63  | t.confirm(message,.self.namespac | 
| 8520 |  65 2b 27 5f 63 6c 65 61 72 5f 73 65 74 74 69 6e    67 73 27 2c 20 73 65 6c 66 29 3a 0d 0a 20 20 20  | e+'_clear_settings',.self):..... | 
| 8540 |  20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d    0a 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d  | .........return............val.= | 
| 8560 |  20 73 65 6c 66 2e 64 62 2e 70 72 65 66 73 2e 72    61 77 5f 74 6f 5f 6f 62 6a 65 63 74 28 75 6e 69  | .self.db.prefs.raw_to_object(uni | 
| 8580 |  63 6f 64 65 28 73 65 6c 66 2e 76 61 6c 75 65 5f    74 65 78 74 2e 74 6f 50 6c 61 69 6e 54 65 78 74  | code(self.value_text.toPlainText | 
| 85a0 |  28 29 29 29 0d 0a 20 20 20 20 20 20 20 20 6b 65    79 20 3d 20 75 6e 69 63 6f 64 65 28 73 65 6c 66  | ()))..........key.=.unicode(self | 
| 85c0 |  2e 6b 65 79 73 5f 6c 69 73 74 2e 63 75 72 72 65    6e 74 49 74 65 6d 28 29 2e 74 65 78 74 28 29 29  | .keys_list.currentItem().text()) | 
| 85e0 |  0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 64    62 2e 70 72 65 66 73 2e 73 65 74 5f 6e 61 6d 65  | ..........self.db.prefs.set_name | 
| 8600 |  73 70 61 63 65 64 28 73 65 6c 66 2e 6e 61 6d 65    73 70 61 63 65 2c 20 6b 65 79 2c 20 76 61 6c 29  | spaced(self.namespace,.key,.val) | 
| 8620 |  0d 0a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 74    61 72 74 20 3d 20 70 72 6f 6d 70 74 5f 66 6f 72  | ............restart.=.prompt_for | 
| 8640 |  5f 72 65 73 74 61 72 74 28 73 65 6c 66 2c 20 5f    28 27 53 65 74 74 69 6e 67 73 20 63 68 61 6e 67  | _restart(self,._('Settings.chang | 
| 8660 |  65 64 27 29 2c 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ed'),........................... | 
| 8680 |  20 20 27 3c 70 3e 27 2b 5f 28 27 53 65 74 74 69    6e 67 73 20 66 6f 72 20 74 68 69 73 20 70 6c 75  | ..'<p>'+_('Settings.for.this.plu | 
| 86a0 |  67 69 6e 20 69 6e 20 74 68 69 73 20 6c 69 62 72    61 72 79 20 68 61 76 65 20 62 65 65 6e 20 63 68  | gin.in.this.library.have.been.ch | 
| 86c0 |  61 6e 67 65 64 2e 27 29 2b 27 3c 2f 70 3e 27 20    5c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | anged.')+'</p>'.\............... | 
| 86e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3c    70 3e 27 2b 5f 28 27 50 6c 65 61 73 65 20 72 65  | ..............'<p>'+_('Please.re | 
| 8700 |  73 74 61 72 74 20 63 61 6c 69 62 72 65 20 6e 6f    77 2e 27 29 2b 27 3c 2f 70 3e 27 29 0d 0a 20 20  | start.calibre.now.')+'</p>').... | 
| 8720 |  20 20 20 20 20 20 73 65 6c 66 2e 63 6c 6f 73 65    28 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 72  | ......self.close()..........if.r | 
| 8740 |  65 73 74 61 72 74 3a 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 73 65 6c 66 2e 67 75 69 2e 71 75  | estart:..............self.gui.qu | 
| 8760 |  69 74 28 72 65 73 74 61 72 74 3d 54 72 75 65 29    0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 63 6c 65  | it(restart=True)........def._cle | 
| 8780 |  61 72 5f 73 65 74 74 69 6e 67 73 28 73 65 6c 66    29 3a 0d 0a 20 20 20 20 20 20 20 20 66 72 6f 6d  | ar_settings(self):..........from | 
| 87a0 |  20 63 61 6c 69 62 72 65 2e 67 75 69 32 2e 64 69    61 6c 6f 67 73 2e 63 6f 6e 66 69 72 6d 5f 64 65  | .calibre.gui2.dialogs.confirm_de | 
| 87c0 |  6c 65 74 65 20 69 6d 70 6f 72 74 20 63 6f 6e 66    69 72 6d 0d 0a 20 20 20 20 20 20 20 20 6d 65 73  | lete.import.confirm..........mes | 
| 87e0 |  73 61 67 65 20 3d 20 27 3c 70 3e 27 2b 5f 28 27    41 72 65 20 79 6f 75 20 73 75 72 65 20 79 6f 75  | sage.=.'<p>'+_('Are.you.sure.you | 
| 8800 |  20 77 61 6e 74 20 74 6f 20 63 6c 65 61 72 20 79    6f 75 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20  | .want.to.clear.your.settings.in. | 
| 8820 |  74 68 69 73 20 6c 69 62 72 61 72 79 20 66 6f 72    20 74 68 69 73 20 70 6c 75 67 69 6e 3f 27 29 2b  | this.library.for.this.plugin?')+ | 
| 8840 |  27 3c 2f 70 3e 27 20 5c 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 27 3c 70 3e  | '</p>'.\....................'<p> | 
| 8860 |  27 2b 5f 28 27 41 6e 79 20 73 65 74 74 69 6e 67    73 20 69 6e 20 6f 74 68 65 72 20 6c 69 62 72 61  | '+_('Any.settings.in.other.libra | 
| 8880 |  72 69 65 73 20 6f 72 20 73 74 6f 72 65 64 20 69    6e 20 61 20 4a 53 4f 4e 20 66 69 6c 65 20 69 6e  | ries.or.stored.in.a.JSON.file.in | 
| 88a0 |  20 79 6f 75 72 20 63 61 6c 69 62 72 65 20 70 6c    75 67 69 6e 73 20 27 20 5c 0d 0a 20 20 20 20 20  | .your.calibre.plugins.'.\....... | 
| 88c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f    6c 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 62 65  | .............'folder.will.not.be | 
| 88e0 |  20 74 6f 75 63 68 65 64 2e 27 29 2b 27 3c 2f 70    3e 27 20 5c 0d 0a 20 20 20 20 20 20 20 20 20 20  | .touched.')+'</p>'.\............ | 
| 8900 |  20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28    27 59 6f 75 20 6d 75 73 74 20 72 65 73 74 61 72  | ........'<p>'+_('You.must.restar | 
| 8920 |  74 20 63 61 6c 69 62 72 65 20 61 66 74 65 72 77    61 72 64 73 2e 27 29 2b 27 3c 2f 70 3e 27 0d 0a  | t.calibre.afterwards.')+'</p>'.. | 
| 8940 |  20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63    6f 6e 66 69 72 6d 28 6d 65 73 73 61 67 65 2c 20  | ........if.not.confirm(message,. | 
| 8960 |  73 65 6c 66 2e 6e 61 6d 65 73 70 61 63 65 2b 27    5f 63 6c 65 61 72 5f 73 65 74 74 69 6e 67 73 27  | self.namespace+'_clear_settings' | 
| 8980 |  2c 20 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a  | ,.self):..............return.... | 
| 89a0 |  20 20 20 20 20 20 20 20 6e 73 5f 70 72 65 66 69    78 20 3d 20 73 65 6c 66 2e 5f 67 65 74 5f 6e 73  | ........ns_prefix.=.self._get_ns | 
| 89c0 |  5f 70 72 65 66 69 78 28 29 0d 0a 20 20 20 20 20    20 20 20 6b 65 79 73 20 3d 20 5b 6b 20 66 6f 72  | _prefix()..........keys.=.[k.for | 
| 89e0 |  20 6b 20 69 6e 20 73 69 78 2e 69 74 65 72 6b 65    79 73 28 73 65 6c 66 2e 64 62 2e 70 72 65 66 73  | .k.in.six.iterkeys(self.db.prefs | 
| 8a00 |  29 20 69 66 20 6b 2e 73 74 61 72 74 73 77 69 74    68 28 6e 73 5f 70 72 65 66 69 78 29 5d 0d 0a 20  | ).if.k.startswith(ns_prefix)]... | 
| 8a20 |  20 20 20 20 20 20 20 66 6f 72 20 6b 20 69 6e 20    6b 65 79 73 3a 0d 0a 20 20 20 20 20 20 20 20 20  | .......for.k.in.keys:........... | 
| 8a40 |  20 20 20 64 65 6c 20 73 65 6c 66 2e 64 62 2e 70    72 65 66 73 5b 6b 5d 0d 0a 20 20 20 20 20 20 20  | ...del.self.db.prefs[k]......... | 
| 8a60 |  20 73 65 6c 66 2e 5f 70 6f 70 75 6c 61 74 65 5f    73 65 74 74 69 6e 67 73 28 29 0d 0a 20 20 20 20  | .self._populate_settings()...... | 
| 8a80 |  20 20 20 20 72 65 73 74 61 72 74 20 3d 20 70 72    6f 6d 70 74 5f 66 6f 72 5f 72 65 73 74 61 72 74  | ....restart.=.prompt_for_restart | 
| 8aa0 |  28 73 65 6c 66 2c 20 5f 28 27 53 65 74 74 69 6e    67 73 20 64 65 6c 65 74 65 64 27 29 2c 0d 0a 20  | (self,._('Settings.deleted'),... | 
| 8ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b  | ..........................'<p>'+ | 
| 8ae0 |  5f 28 27 41 6c 6c 20 73 65 74 74 69 6e 67 73 20    66 6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 20  | _('All.settings.for.this.plugin. | 
| 8b00 |  69 6e 20 74 68 69 73 20 6c 69 62 72 61 72 79 20    68 61 76 65 20 62 65 65 6e 20 63 6c 65 61 72 65  | in.this.library.have.been.cleare | 
| 8b20 |  64 2e 27 29 2b 27 3c 2f 70 3e 27 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d.')+'</p>'..................... | 
| 8b40 |  20 20 20 20 20 20 20 20 27 3c 70 3e 27 2b 5f 28    27 50 6c 65 61 73 65 20 72 65 73 74 61 72 74 20  | ........'<p>'+_('Please.restart. | 
| 8b60 |  63 61 6c 69 62 72 65 20 6e 6f 77 2e 27 29 2b 27    3c 2f 70 3e 27 29 0d 0a 20 20 20 20 20 20 20 20  | calibre.now.')+'</p>').......... | 
| 8b80 |  73 65 6c 66 2e 63 6c 6f 73 65 28 29 0d 0a 20 20    20 20 20 20 20 20 69 66 20 72 65 73 74 61 72 74  | self.close()..........if.restart | 
| 8ba0 |  3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73    65 6c 66 2e 67 75 69 2e 71 75 69 74 28 72 65 73  | :..............self.gui.quit(res | 
| 8bc0 |  74 61 72 74 3d 54 72 75 65 29 0d 0a 0d 0a 0d 0a    0d 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73  | tart=True)........class.Progress | 
| 8be0 |  42 61 72 44 69 61 6c 6f 67 28 51 44 69 61 6c 6f    67 29 3a 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69  | BarDialog(QDialog):......def.__i | 
| 8c00 |  6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72 65    6e 74 3d 4e 6f 6e 65 2c 20 6d 61 78 5f 69 74 65  | nit__(self,.parent=None,.max_ite | 
| 8c20 |  6d 73 3d 31 30 30 2c 20 77 69 6e 64 6f 77 5f 74    69 74 6c 65 3d 27 50 72 6f 67 72 65 73 73 20 42  | ms=100,.window_title='Progress.B | 
| 8c40 |  61 72 27 2c 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 4c 61  | ar',...................label='La | 
| 8c60 |  62 65 6c 20 67 6f 65 73 20 68 65 72 65 27 2c 20    6f 6e 5f 74 6f 70 3d 46 61 6c 73 65 29 3a 0d 0a  | bel.goes.here',.on_top=False):.. | 
| 8c80 |  20 20 20 20 20 20 20 20 69 66 20 6f 6e 5f 74 6f    70 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ........if.on_top:.............. | 
| 8ca0 |  73 75 70 65 72 28 50 72 6f 67 72 65 73 73 42 61    72 44 69 61 6c 6f 67 2c 20 73 65 6c 66 29 2e 5f  | super(ProgressBarDialog,.self)._ | 
| 8cc0 |  5f 69 6e 69 74 5f 5f 28 70 61 72 65 6e 74 3d 70    61 72 65 6e 74 2c 20 66 6c 61 67 73 3d 51 74 2e  | _init__(parent=parent,.flags=Qt. | 
| 8ce0 |  57 69 6e 64 6f 77 53 74 61 79 73 4f 6e 54 6f 70    48 69 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 65  | WindowStaysOnTopHint)..........e | 
| 8d00 |  6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 73 75 70 65 72 28 50 72 6f 67 72 65 73 73  | lse:..............super(Progress | 
| 8d20 |  42 61 72 44 69 61 6c 6f 67 2c 20 73 65 6c 66 29    2e 5f 5f 69 6e 69 74 5f 5f 28 70 61 72 65 6e 74  | BarDialog,.self).__init__(parent | 
| 8d40 |  3d 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 61 70 70 6c 69 63 61 74 69  | =parent)..........self.applicati | 
| 8d60 |  6f 6e 20 3d 20 41 70 70 6c 69 63 61 74 69 6f 6e    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73  | on.=.Application..........self.s | 
| 8d80 |  65 74 57 69 6e 64 6f 77 54 69 74 6c 65 28 77 69    6e 64 6f 77 5f 74 69 74 6c 65 29 0d 0a 20 20 20  | etWindowTitle(window_title)..... | 
| 8da0 |  20 20 20 20 20 73 65 6c 66 2e 6c 20 3d 20 51 56    42 6f 78 4c 61 79 6f 75 74 28 73 65 6c 66 29 0d  | .....self.l.=.QVBoxLayout(self). | 
| 8dc0 |  0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65    74 4c 61 79 6f 75 74 28 73 65 6c 66 2e 6c 29 0d  | .........self.setLayout(self.l). | 
| 8de0 |  0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e    6c 61 62 65 6c 20 3d 20 51 4c 61 62 65 6c 28 6c  | ...........self.label.=.QLabel(l | 
| 8e00 |  61 62 65 6c 29 0d 0a 23 20 20 20 20 20 20 20 20    20 73 65 6c 66 2e 6c 61 62 65 6c 2e 73 65 74 41  | abel)..#.........self.label.setA | 
| 8e20 |  6c 69 67 6e 6d 65 6e 74 28 51 74 2e 41 6c 69 67    6e 48 43 65 6e 74 65 72 29 0d 0a 20 20 20 20 20  | lignment(Qt.AlignHCenter)....... | 
| 8e40 |  20 20 20 73 65 6c 66 2e 6c 2e 61 64 64 57 69 64    67 65 74 28 73 65 6c 66 2e 6c 61 62 65 6c 29 0d  | ...self.l.addWidget(self.label). | 
| 8e60 |  0a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e    70 72 6f 67 72 65 73 73 42 61 72 20 3d 20 51 50  | ...........self.progressBar.=.QP | 
| 8e80 |  72 6f 67 72 65 73 73 42 61 72 28 73 65 6c 66 29    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70  | rogressBar(self)..........self.p | 
| 8ea0 |  72 6f 67 72 65 73 73 42 61 72 2e 73 65 74 52 61    6e 67 65 28 30 2c 20 6d 61 78 5f 69 74 65 6d 73  | rogressBar.setRange(0,.max_items | 
| 8ec0 |  29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e    70 72 6f 67 72 65 73 73 42 61 72 2e 73 65 74 56  | )..........self.progressBar.setV | 
| 8ee0 |  61 6c 75 65 28 30 29 0d 0a 20 20 20 20 20 20 20    20 73 65 6c 66 2e 6c 2e 61 64 64 57 69 64 67 65  | alue(0)..........self.l.addWidge | 
| 8f00 |  74 28 73 65 6c 66 2e 70 72 6f 67 72 65 73 73 42    61 72 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 69  | t(self.progressBar)........def.i | 
| 8f20 |  6e 63 72 65 6d 65 6e 74 28 73 65 6c 66 29 3a 0d    0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 72  | ncrement(self):..........self.pr | 
| 8f40 |  6f 67 72 65 73 73 42 61 72 2e 73 65 74 56 61 6c    75 65 28 73 65 6c 66 2e 70 72 6f 67 72 65 73 73  | ogressBar.setValue(self.progress | 
| 8f60 |  42 61 72 2e 76 61 6c 75 65 28 29 20 2b 20 31 29    0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72  | Bar.value().+.1)..........self.r | 
| 8f80 |  65 66 72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20    64 65 66 20 72 65 66 72 65 73 68 28 73 65 6c 66  | efresh()........def.refresh(self | 
| 8fa0 |  29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66    2e 61 70 70 6c 69 63 61 74 69 6f 6e 2e 70 72 6f  | ):..........self.application.pro | 
| 8fc0 |  63 65 73 73 45 76 65 6e 74 73 28 29 0d 0a 0d 0a    20 20 20 20 64 65 66 20 73 65 74 5f 6c 61 62 65  | cessEvents()........def.set_labe | 
| 8fe0 |  6c 28 73 65 6c 66 2c 20 76 61 6c 75 65 29 3a 0d    0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61  | l(self,.value):..........self.la | 
| 9000 |  62 65 6c 2e 73 65 74 54 65 78 74 28 76 61 6c 75    65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66  | bel.setText(value)..........self | 
| 9020 |  2e 72 65 66 72 65 73 68 28 29 0d 0a 0d 0a 20 20    20 20 64 65 66 20 6c 65 66 74 5f 61 6c 69 67 6e  | .refresh()........def.left_align | 
| 9040 |  5f 6c 61 62 65 6c 28 73 65 6c 66 29 3a 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 62 65  | _label(self):..........self.labe | 
| 9060 |  6c 2e 73 65 74 41 6c 69 67 6e 6d 65 6e 74 28 51    74 2e 41 6c 69 67 6e 4c 65 66 74 20 29 0d 0a 0d  | l.setAlignment(Qt.AlignLeft.)... | 
| 9080 |  0a 20 20 20 20 64 65 66 20 73 65 74 5f 6d 61 78    69 6d 75 6d 28 73 65 6c 66 2c 20 76 61 6c 75 65  | .....def.set_maximum(self,.value | 
| 90a0 |  29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66    2e 70 72 6f 67 72 65 73 73 42 61 72 2e 73 65 74  | ):..........self.progressBar.set | 
| 90c0 |  4d 61 78 69 6d 75 6d 28 76 61 6c 75 65 29 0d 0a    20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 66  | Maximum(value)..........self.ref | 
| 90e0 |  72 65 73 68 28 29 0d 0a 0d 0a 20 20 20 20 64 65    66 20 73 65 74 5f 76 61 6c 75 65 28 73 65 6c 66  | resh()........def.set_value(self | 
| 9100 |  2c 20 76 61 6c 75 65 29 3a 0d 0a 20 20 20 20 20    20 20 20 73 65 6c 66 2e 70 72 6f 67 72 65 73 73  | ,.value):..........self.progress | 
| 9120 |  42 61 72 2e 73 65 74 56 61 6c 75 65 28 76 61 6c    75 65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c  | Bar.setValue(value)..........sel | 
| 9140 |  66 2e 72 65 66 72 65 73 68 28 29 0d 0a 0d 0a 20    20 20 20 64 65 66 20 73 65 74 5f 70 72 6f 67 72  | f.refresh()........def.set_progr | 
| 9160 |  65 73 73 5f 66 6f 72 6d 61 74 28 73 65 6c 66 2c    20 70 72 6f 67 72 65 73 73 5f 66 6f 72 6d 61 74  | ess_format(self,.progress_format | 
| 9180 |  3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20 20    20 70 61 73 73 0d 0a 0d 0a 0d 0a 63 6c 61 73 73  | =None):..........pass......class | 
| 91a0 |  20 56 69 65 77 4c 6f 67 44 69 61 6c 6f 67 28 51    44 69 61 6c 6f 67 29 3a 0d 0a 0d 0a 20 20 20 20  | .ViewLogDialog(QDialog):........ | 
| 91c0 |  64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c    66 2c 20 74 69 74 6c 65 2c 20 68 74 6d 6c 2c 20  | def.__init__(self,.title,.html,. | 
| 91e0 |  70 61 72 65 6e 74 3d 4e 6f 6e 65 29 3a 0d 0a 20    20 20 20 20 20 20 20 51 44 69 61 6c 6f 67 2e 5f  | parent=None):..........QDialog._ | 
| 9200 |  5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61    72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73  | _init__(self,.parent)..........s | 
| 9220 |  65 6c 66 2e 6c 20 3d 20 6c 20 3d 20 51 56 42 6f    78 4c 61 79 6f 75 74 28 29 0d 0a 20 20 20 20 20  | elf.l.=.l.=.QVBoxLayout()....... | 
| 9240 |  20 20 20 73 65 6c 66 2e 73 65 74 4c 61 79 6f 75    74 28 6c 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20  | ...self.setLayout(l)............ | 
| 9260 |  73 65 6c 66 2e 74 62 20 3d 20 51 54 65 78 74 42    72 6f 77 73 65 72 28 73 65 6c 66 29 0d 0a 20 20  | self.tb.=.QTextBrowser(self).... | 
| 9280 |  20 20 20 20 20 20 51 41 70 70 6c 69 63 61 74 69    6f 6e 2e 73 65 74 4f 76 65 72 72 69 64 65 43 75  | ......QApplication.setOverrideCu | 
| 92a0 |  72 73 6f 72 28 51 74 2e 57 61 69 74 43 75 72 73    6f 72 29 0d 0a 20 20 20 20 20 20 20 20 23 20 52  | rsor(Qt.WaitCursor)..........#.R | 
| 92c0 |  61 74 68 65 72 20 74 68 61 6e 20 66 6f 72 6d 61    74 74 69 6e 67 20 74 68 65 20 74 65 78 74 20 69  | ather.than.formatting.the.text.i | 
| 92e0 |  6e 20 3c 70 72 65 3e 20 62 6c 6f 63 6b 73 20 6c    69 6b 65 20 74 68 65 20 63 61 6c 69 62 72 65 0d  | n.<pre>.blocks.like.the.calibre. | 
| 9300 |  0a 20 20 20 20 20 20 20 20 23 20 56 69 65 77 4c    6f 67 20 64 6f 65 73 2c 20 69 6e 73 74 65 61 64  | .........#.ViewLog.does,.instead | 
| 9320 |  20 6a 75 73 74 20 66 6f 72 6d 61 74 20 69 74 20    69 6e 73 69 64 65 20 64 69 76 73 20 74 6f 20 6b  | .just.format.it.inside.divs.to.k | 
| 9340 |  65 65 70 20 73 74 79 6c 65 20 66 6f 72 6d 61 74    74 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 68 74  | eep.style.formatting..........ht | 
| 9360 |  6d 6c 20 3d 20 68 74 6d 6c 2e 72 65 70 6c 61 63    65 28 27 5c 74 27 2c 27 26 6e 62 73 70 3b 26 6e  | ml.=.html.replace('\t',' &n | 
| 9380 |  62 73 70 3b 26 6e 62 73 70 3b 26 6e 62 73 70 3b    27 29 2e 72 65 70 6c 61 63 65 28 27 5c 6e 27 2c  | bsp;  ').replace('\n', | 
| 93a0 |  20 27 3c 62 72 2f 3e 27 29 0d 0a 20 20 20 20 20    20 20 20 68 74 6d 6c 20 3d 20 68 74 6d 6c 2e 72  | .'<br/>')..........html.=.html.r | 
| 93c0 |  65 70 6c 61 63 65 28 27 3e 20 27 2c 27 3e 26 6e    62 73 70 3b 27 29 0d 0a 20 20 20 20 20 20 20 20  | eplace('>.','> ').......... | 
| 93e0 |  73 65 6c 66 2e 74 62 2e 73 65 74 48 74 6d 6c 28    27 3c 64 69 76 3e 25 73 3c 2f 64 69 76 3e 27 20  | self.tb.setHtml('<div>%s</div>'. | 
| 9400 |  25 20 68 74 6d 6c 29 0d 0a 20 20 20 20 20 20 20    20 51 41 70 70 6c 69 63 61 74 69 6f 6e 2e 72 65  | %.html)..........QApplication.re | 
| 9420 |  73 74 6f 72 65 4f 76 65 72 72 69 64 65 43 75 72    73 6f 72 28 29 0d 0a 20 20 20 20 20 20 20 20 6c  | storeOverrideCursor()..........l | 
| 9440 |  2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66 2e    74 62 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 73  | .addWidget(self.tb)............s | 
| 9460 |  65 6c 66 2e 62 62 20 3d 20 51 44 69 61 6c 6f 67    42 75 74 74 6f 6e 42 6f 78 28 51 44 69 61 6c 6f  | elf.bb.=.QDialogButtonBox(QDialo | 
| 9480 |  67 42 75 74 74 6f 6e 42 6f 78 2e 4f 6b 29 0d 0a    20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 62 2e  | gButtonBox.Ok)..........self.bb. | 
| 94a0 |  61 63 63 65 70 74 65 64 2e 63 6f 6e 6e 65 63 74    28 73 65 6c 66 2e 61 63 63 65 70 74 29 0d 0a 20  | accepted.connect(self.accept)... | 
| 94c0 |  20 20 20 20 20 20 20 73 65 6c 66 2e 62 62 2e 72    65 6a 65 63 74 65 64 2e 63 6f 6e 6e 65 63 74 28  | .......self.bb.rejected.connect( | 
| 94e0 |  73 65 6c 66 2e 72 65 6a 65 63 74 29 0d 0a 20 20    20 20 20 20 20 20 73 65 6c 66 2e 63 6f 70 79 5f  | self.reject)..........self.copy_ | 
| 9500 |  62 75 74 74 6f 6e 20 3d 20 73 65 6c 66 2e 62 62    2e 61 64 64 42 75 74 74 6f 6e 28 5f 28 27 43 6f  | button.=.self.bb.addButton(_('Co | 
| 9520 |  70 79 20 74 6f 20 63 6c 69 70 62 6f 61 72 64 27    29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | py.to.clipboard'),.............. | 
| 9540 |  20 20 20 20 73 65 6c 66 2e 62 62 2e 41 63 74 69    6f 6e 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20  | ....self.bb.ActionRole)......... | 
| 9560 |  20 73 65 6c 66 2e 63 6f 70 79 5f 62 75 74 74 6f    6e 2e 73 65 74 49 63 6f 6e 28 51 49 63 6f 6e 28  | .self.copy_button.setIcon(QIcon( | 
| 9580 |  49 28 27 65 64 69 74 2d 63 6f 70 79 2e 70 6e 67    27 29 29 29 0d 0a 20 20 20 20 20 20 20 20 73 65  | I('edit-copy.png')))..........se | 
| 95a0 |  6c 66 2e 63 6f 70 79 5f 62 75 74 74 6f 6e 2e 63    6c 69 63 6b 65 64 2e 63 6f 6e 6e 65 63 74 28 73  | lf.copy_button.clicked.connect(s | 
| 95c0 |  65 6c 66 2e 63 6f 70 79 5f 74 6f 5f 63 6c 69 70    62 6f 61 72 64 29 0d 0a 20 20 20 20 20 20 20 20  | elf.copy_to_clipboard).......... | 
| 95e0 |  6c 2e 61 64 64 57 69 64 67 65 74 28 73 65 6c 66    2e 62 62 29 0d 0a 20 20 20 20 20 20 20 20 73 65  | l.addWidget(self.bb)..........se | 
| 9600 |  6c 66 2e 73 65 74 4d 6f 64 61 6c 28 46 61 6c 73    65 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66  | lf.setModal(False)..........self | 
| 9620 |  2e 72 65 73 69 7a 65 28 51 53 69 7a 65 28 37 30    30 2c 20 35 30 30 29 29 0d 0a 20 20 20 20 20 20  | .resize(QSize(700,.500))........ | 
| 9640 |  20 20 73 65 6c 66 2e 73 65 74 57 69 6e 64 6f 77    54 69 74 6c 65 28 74 69 74 6c 65 29 0d 0a 20 20  | ..self.setWindowTitle(title).... | 
| 9660 |  20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 57 69    6e 64 6f 77 49 63 6f 6e 28 51 49 63 6f 6e 28 49  | ......self.setWindowIcon(QIcon(I | 
| 9680 |  28 27 64 65 62 75 67 2e 70 6e 67 27 29 29 29 0d    0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 68  | ('debug.png')))..........self.sh | 
| 96a0 |  6f 77 28 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20    63 6f 70 79 5f 74 6f 5f 63 6c 69 70 62 6f 61 72  | ow()........def.copy_to_clipboar | 
| 96c0 |  64 28 73 65 6c 66 29 3a 0d 0a 20 20 20 20 20 20    20 20 74 78 74 20 3d 20 73 65 6c 66 2e 74 62 2e  | d(self):..........txt.=.self.tb. | 
| 96e0 |  74 6f 50 6c 61 69 6e 54 65 78 74 28 29 0d 0a 20    20 20 20 20 20 20 20 51 41 70 70 6c 69 63 61 74  | toPlainText()..........QApplicat | 
| 9700 |  69 6f 6e 2e 63 6c 69 70 62 6f 61 72 64 28 29 2e    73 65 74 54 65 78 74 28 74 78 74 29 0d 0a 50 4b  | ion.clipboard().setText(txt)..PK | 
| 9720 |  03 04 14 00 00 00 00 00 97 a3 33 55 39 8a c0 f7    60 11 00 00 60 11 00 00 0f 00 00 00 63 6f 6d 6d  | ..........3U9...`...`.......comm | 
| 9740 |  6f 6e 5f 69 63 6f 6e 73 2e 70 79 23 21 2f 75 73    72 2f 62 69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e  | on_icons.py#!/usr/bin/env.python | 
| 9760 |  0a 23 20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64    69 6e 67 3d 55 54 46 2d 38 3a 74 73 3d 34 3a 73  | .#.vim:fileencoding=UTF-8:ts=4:s | 
| 9780 |  77 3d 34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34    3a 61 69 0a 66 72 6f 6d 20 5f 5f 66 75 74 75 72  | w=4:sta:et:sts=4:ai.from.__futur | 
| 97a0 |  65 5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63    6f 64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69  | e__.import.(unicode_literals,.di | 
| 97c0 |  76 69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65    5f 69 6d 70 6f 72 74 2c 0a 20 20 20 20 20 20 20  | vision,.absolute_import,........ | 
| 97e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 29  | .................print_function) | 
| 9800 |  0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20    3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70  | ..__license__...=.'GPL.v3'.__cop | 
| 9820 |  79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 32 32    2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a  | yright__.=.'2022,.Grant.Drake'.. | 
| 9840 |  69 6d 70 6f 72 74 20 6f 73 0a 0a 23 20 63 61 6c    69 62 72 65 20 50 79 74 68 6f 6e 20 33 20 63 6f  | import.os..#.calibre.Python.3.co | 
| 9860 |  6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 69 6d 70    6f 72 74 20 73 69 78 0a 0a 74 72 79 3a 0a 20 20  | mpatibility..import.six..try:... | 
| 9880 |  20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20 69    6d 70 6f 72 74 20 28 51 49 63 6f 6e 2c 20 51 50  | ..from.qt.core.import.(QIcon,.QP | 
| 98a0 |  69 78 6d 61 70 29 0a 65 78 63 65 70 74 20 49 6d    70 6f 72 74 45 72 72 6f 72 3a 0a 20 20 20 20 66  | ixmap).except.ImportError:.....f | 
| 98c0 |  72 6f 6d 20 50 79 51 74 35 2e 51 74 20 69 6d 70    6f 72 74 20 28 51 49 63 6f 6e 2c 20 51 50 69 78  | rom.PyQt5.Qt.import.(QIcon,.QPix | 
| 98e0 |  6d 61 70 29 0a 0a 66 72 6f 6d 20 63 61 6c 69 62    72 65 2e 63 6f 6e 73 74 61 6e 74 73 20 69 6d 70  | map)..from.calibre.constants.imp | 
| 9900 |  6f 72 74 20 69 73 77 69 6e 64 6f 77 73 0a 66 72    6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 74  | ort.iswindows.from.calibre.const | 
| 9920 |  61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d 65    72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20 63  | ants.import.numeric_version.as.c | 
| 9940 |  61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0a 66    72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c  | alibre_version.from.calibre.util | 
| 9960 |  73 2e 63 6f 6e 66 69 67 20 69 6d 70 6f 72 74 20    63 6f 6e 66 69 67 5f 64 69 72 0a 0a 23 20 2d 2d  | s.config.import.config_dir..#.-- | 
| 9980 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| 99a0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 20    20 20 20 20 20 20 20 20 47 6c 6f 62 61 6c 20 72  | ------------.#..........Global.r | 
| 99c0 |  65 73 6f 75 72 63 65 73 20 2f 20 73 74 61 74 65    0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | esources./.state.#.------------- | 
| 99e0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| 9a00 |  2d 0a 0a 23 20 47 6c 6f 62 61 6c 20 64 65 66 69    6e 69 74 69 6f 6e 20 6f 66 20 6f 75 72 20 70 6c  | -..#.Global.definition.of.our.pl | 
| 9a20 |  75 67 69 6e 20 6e 61 6d 65 2e 20 55 73 65 64 20    66 6f 72 20 63 6f 6d 6d 6f 6e 20 66 75 6e 63 74  | ugin.name..Used.for.common.funct | 
| 9a40 |  69 6f 6e 73 20 74 68 61 74 20 72 65 71 75 69 72    65 20 74 68 69 73 2e 0a 70 6c 75 67 69 6e 5f 6e  | ions.that.require.this..plugin_n | 
| 9a60 |  61 6d 65 20 3d 20 4e 6f 6e 65 0a 23 20 47 6c 6f    62 61 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f  | ame.=.None.#.Global.definition.o | 
| 9a80 |  66 20 6f 75 72 20 70 6c 75 67 69 6e 20 72 65 73    6f 75 72 63 65 73 2e 20 55 73 65 64 20 74 6f 20  | f.our.plugin.resources..Used.to. | 
| 9aa0 |  73 68 61 72 65 20 62 65 74 77 65 65 6e 20 74 68    65 20 78 78 78 41 63 74 69 6f 6e 20 61 6e 64 20  | share.between.the.xxxAction.and. | 
| 9ac0 |  78 78 78 42 61 73 65 0a 23 20 63 6c 61 73 73 65    73 20 69 66 20 79 6f 75 20 6e 65 65 64 20 61 6e  | xxxBase.#.classes.if.you.need.an | 
| 9ae0 |  79 20 7a 69 70 20 69 6d 61 67 65 73 20 74 6f 20    62 65 20 64 69 73 70 6c 61 79 65 64 20 6f 6e 20  | y.zip.images.to.be.displayed.on. | 
| 9b00 |  74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f    6e 20 64 69 61 6c 6f 67 2e 0a 70 6c 75 67 69 6e  | the.configuration.dialog..plugin | 
| 9b20 |  5f 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 20    3d 20 7b 7d 0a 0a 64 65 66 20 73 65 74 5f 70 6c  | _icon_resources.=.{}..def.set_pl | 
| 9b40 |  75 67 69 6e 5f 69 63 6f 6e 5f 72 65 73 6f 75 72    63 65 73 28 6e 61 6d 65 2c 20 72 65 73 6f 75 72  | ugin_icon_resources(name,.resour | 
| 9b60 |  63 65 73 29 3a 0a 20 20 20 20 27 27 27 0a 20 20    20 20 53 65 74 20 6f 75 72 20 67 6c 6f 62 61 6c  | ces):.....'''.....Set.our.global | 
| 9b80 |  20 73 74 6f 72 65 20 6f 66 20 70 6c 75 67 69 6e    20 6e 61 6d 65 20 61 6e 64 20 69 63 6f 6e 20 72  | .store.of.plugin.name.and.icon.r | 
| 9ba0 |  65 73 6f 75 72 63 65 73 20 66 6f 72 20 73 68 61    72 69 6e 67 20 62 65 74 77 65 65 6e 0a 20 20 20  | esources.for.sharing.between.... | 
| 9bc0 |  20 74 68 65 20 49 6e 74 65 72 66 61 63 65 41 63    74 69 6f 6e 20 63 6c 61 73 73 20 77 68 69 63 68  | .the.InterfaceAction.class.which | 
| 9be0 |  20 72 65 61 64 73 20 74 68 65 6d 20 61 6e 64 20    74 68 65 20 43 6f 6e 66 69 67 57 69 64 67 65 74  | .reads.them.and.the.ConfigWidget | 
| 9c00 |  0a 20 20 20 20 69 66 20 6e 65 65 64 65 64 20 66    6f 72 20 75 73 65 20 6f 6e 20 74 68 65 20 63 75  | .....if.needed.for.use.on.the.cu | 
| 9c20 |  73 74 6f 6d 69 7a 61 74 69 6f 6e 20 64 69 61 6c    6f 67 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67  | stomization.dialog.for.this.plug | 
| 9c40 |  69 6e 2e 0a 20 20 20 20 27 27 27 0a 20 20 20 20    67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 69 63  | in......'''.....global.plugin_ic | 
| 9c60 |  6f 6e 5f 72 65 73 6f 75 72 63 65 73 2c 20 70 6c    75 67 69 6e 5f 6e 61 6d 65 0a 20 20 20 20 70 6c  | on_resources,.plugin_name.....pl | 
| 9c80 |  75 67 69 6e 5f 6e 61 6d 65 20 3d 20 6e 61 6d 65    0a 20 20 20 20 70 6c 75 67 69 6e 5f 69 63 6f 6e  | ugin_name.=.name.....plugin_icon | 
| 9ca0 |  5f 72 65 73 6f 75 72 63 65 73 20 3d 20 72 65 73    6f 75 72 63 65 73 0a 0a 23 20 2d 2d 2d 2d 2d 2d  | _resources.=.resources..#.------ | 
| 9cc0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| 9ce0 |  2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 20 20 20 20 20    20 20 20 20 49 63 6f 6e 20 4d 61 6e 61 67 65 6d  | --------.#..........Icon.Managem | 
| 9d00 |  65 6e 74 20 66 75 6e 63 74 69 6f 6e 73 0a 23 20    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | ent.functions.#.---------------- | 
| 9d20 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a  | ------------------------------.. | 
| 9d40 |  64 65 66 20 67 65 74 5f 69 63 6f 6e 5f 36 5f 32    5f 70 6c 75 73 28 69 63 6f 6e 5f 6e 61 6d 65 29  | def.get_icon_6_2_plus(icon_name) | 
| 9d60 |  3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65    74 72 69 65 76 65 20 61 20 51 49 63 6f 6e 20 66  | :.....'''.....Retrieve.a.QIcon.f | 
| 9d80 |  6f 72 20 74 68 65 20 6e 61 6d 65 64 20 69 6d 61    67 65 20 66 72 6f 6d 0a 20 20 20 20 31 2e 20 43  | or.the.named.image.from.....1..C | 
| 9da0 |  61 6c 69 62 72 65 27 73 20 69 6d 61 67 65 20 63    61 63 68 65 0a 20 20 20 20 32 2e 20 72 65 73 6f  | alibre's.image.cache.....2..reso | 
| 9dc0 |  75 72 63 65 73 2f 69 6d 61 67 65 73 0a 20 20 20    20 33 2e 20 74 68 65 20 69 63 6f 6e 20 74 68 65  | urces/images.....3..the.icon.the | 
| 9de0 |  6d 65 0a 20 20 20 20 34 2e 20 74 68 65 20 70 6c    75 67 69 6e 20 7a 69 70 0a 20 20 20 20 4f 6e 6c  | me.....4..the.plugin.zip.....Onl | 
| 9e00 |  79 20 70 6c 75 67 69 6e 20 7a 69 70 20 68 61 73    20 69 6d 61 67 65 73 2f 20 69 6e 20 74 68 65 20  | y.plugin.zip.has.images/.in.the. | 
| 9e20 |  69 6d 61 67 65 20 6e 61 6d 65 20 66 6f 72 20 62    61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62  | image.name.for.backward.compatib | 
| 9e40 |  69 6c 69 74 79 2e 0a 20 20 20 20 27 27 27 0a 20    20 20 20 69 63 6f 6e 20 3d 20 4e 6f 6e 65 0a 20  | ility......'''.....icon.=.None.. | 
| 9e60 |  20 20 20 69 66 20 69 63 6f 6e 5f 6e 61 6d 65 3a    0a 20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20  | ...if.icon_name:.........icon.=. | 
| 9e80 |  51 49 63 6f 6e 2e 69 63 28 69 63 6f 6e 5f 6e 61    6d 65 29 0a 20 20 20 20 20 20 20 20 23 23 20 62  | QIcon.ic(icon_name).........##.b | 
| 9ea0 |  6f 74 68 20 2e 69 63 20 61 6e 64 20 67 65 74 5f    69 63 6f 6e 73 20 72 65 74 75 72 6e 20 61 6e 20  | oth..ic.and.get_icons.return.an. | 
| 9ec0 |  65 6d 70 74 79 20 51 49 63 6f 6e 20 69 66 20 6e    6f 74 20 66 6f 75 6e 64 2e 0a 20 20 20 20 20 20  | empty.QIcon.if.not.found........ | 
| 9ee0 |  20 20 69 66 20 6e 6f 74 20 69 63 6f 6e 20 6f 72    20 69 63 6f 6e 2e 69 73 4e 75 6c 6c 28 29 3a 0a  | ..if.not.icon.or.icon.isNull():. | 
| 9f00 |  20 20 20 20 20 20 20 20 20 20 20 20 69 63 6f 6e    20 3d 20 67 65 74 5f 69 63 6f 6e 73 28 69 63 6f  | ............icon.=.get_icons(ico | 
| 9f20 |  6e 5f 6e 61 6d 65 2e 72 65 70 6c 61 63 65 28 27    69 6d 61 67 65 73 2f 27 2c 27 27 29 2c 20 70 6c  | n_name.replace('images/',''),.pl | 
| 9f40 |  75 67 69 6e 5f 6e 61 6d 65 2c 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ugin_name,...................... | 
| 9f60 |  20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 74 72    61 63 65 62 61 63 6b 73 5f 66 6f 72 5f 6d 69 73  | ........print_tracebacks_for_mis | 
| 9f80 |  73 69 6e 67 5f 72 65 73 6f 75 72 63 65 73 3d 46    61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 69 66  | sing_resources=False).........if | 
| 9fa0 |  20 6e 6f 74 20 69 63 6f 6e 20 6f 72 20 69 63 6f    6e 2e 69 73 4e 75 6c 6c 28 29 3a 0a 20 20 20 20  | .not.icon.or.icon.isNull():..... | 
| 9fc0 |  20 20 20 20 20 20 20 20 69 63 6f 6e 20 3d 20 67    65 74 5f 69 63 6f 6e 73 28 69 63 6f 6e 5f 6e 61  | ........icon.=.get_icons(icon_na | 
| 9fe0 |  6d 65 2c 20 70 6c 75 67 69 6e 5f 6e 61 6d 65 2c    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | me,.plugin_name,................ | 
| a000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72    69 6e 74 5f 74 72 61 63 65 62 61 63 6b 73 5f 66  | ..............print_tracebacks_f | 
| a020 |  6f 72 5f 6d 69 73 73 69 6e 67 5f 72 65 73 6f 75    72 63 65 73 3d 46 61 6c 73 65 29 0a 20 20 20 20  | or_missing_resources=False)..... | 
| a040 |  69 66 20 6e 6f 74 20 69 63 6f 6e 3a 0a 20 20 20    20 20 20 20 20 69 63 6f 6e 20 3d 20 51 49 63 6f  | if.not.icon:.........icon.=.QIco | 
| a060 |  6e 28 29 0a 20 20 20 20 72 65 74 75 72 6e 20 69    63 6f 6e 0a 0a 64 65 66 20 67 65 74 5f 69 63 6f  | n().....return.icon..def.get_ico | 
| a080 |  6e 5f 6f 6c 64 28 69 63 6f 6e 5f 6e 61 6d 65 29    3a 0a 20 20 20 20 27 27 27 0a 20 20 20 20 52 65  | n_old(icon_name):.....'''.....Re | 
| a0a0 |  74 72 69 65 76 65 20 61 20 51 49 63 6f 6e 20 66    6f 72 20 74 68 65 20 6e 61 6d 65 64 20 69 6d 61  | trieve.a.QIcon.for.the.named.ima | 
| a0c0 |  67 65 20 66 72 6f 6d 20 74 68 65 20 7a 69 70 20    66 69 6c 65 20 69 66 20 69 74 20 65 78 69 73 74  | ge.from.the.zip.file.if.it.exist | 
| a0e0 |  73 2c 0a 20 20 20 20 6f 72 20 69 66 20 6e 6f 74    20 74 68 65 6e 20 66 72 6f 6d 20 43 61 6c 69 62  | s,.....or.if.not.then.from.Calib | 
| a100 |  72 65 27 73 20 69 6d 61 67 65 20 63 61 63 68 65    2e 0a 20 20 20 20 27 27 27 0a 20 20 20 20 69 66  | re's.image.cache......'''.....if | 
| a120 |  20 69 63 6f 6e 5f 6e 61 6d 65 3a 0a 20 20 20 20    20 20 20 20 70 69 78 6d 61 70 20 3d 20 67 65 74  | .icon_name:.........pixmap.=.get | 
| a140 |  5f 70 69 78 6d 61 70 28 69 63 6f 6e 5f 6e 61 6d    65 29 0a 20 20 20 20 20 20 20 20 69 66 20 70 69  | _pixmap(icon_name).........if.pi | 
| a160 |  78 6d 61 70 20 69 73 20 4e 6f 6e 65 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 23 20 4c 6f 6f 6b  | xmap.is.None:.............#.Look | 
| a180 |  20 69 6e 20 43 61 6c 69 62 72 65 27 73 20 63 61    63 68 65 20 66 6f 72 20 74 68 65 20 69 63 6f 6e  | .in.Calibre's.cache.for.the.icon | 
| a1a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74    75 72 6e 20 51 49 63 6f 6e 28 49 28 69 63 6f 6e  | .............return.QIcon(I(icon | 
| a1c0 |  5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20    65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 20 20  | _name)).........else:........... | 
| a1e0 |  20 20 72 65 74 75 72 6e 20 51 49 63 6f 6e 28 70    69 78 6d 61 70 29 0a 20 20 20 20 72 65 74 75 72  | ..return.QIcon(pixmap).....retur | 
| a200 |  6e 20 51 49 63 6f 6e 28 29 0a 0a 64 65 66 20 67    65 74 5f 70 69 78 6d 61 70 28 69 63 6f 6e 5f 6e  | n.QIcon()..def.get_pixmap(icon_n | 
| a220 |  61 6d 65 29 3a 0a 20 20 20 20 27 27 27 0a 20 20    20 20 52 65 74 72 69 65 76 65 20 61 20 51 50 69  | ame):.....'''.....Retrieve.a.QPi | 
| a240 |  78 6d 61 70 20 66 6f 72 20 74 68 65 20 6e 61 6d    65 64 20 69 6d 61 67 65 0a 20 20 20 20 41 6e 79  | xmap.for.the.named.image.....Any | 
| a260 |  20 69 63 6f 6e 73 20 62 65 6c 6f 6e 67 69 6e 67    20 74 6f 20 74 68 65 20 70 6c 75 67 69 6e 20 6d  | .icons.belonging.to.the.plugin.m | 
| a280 |  75 73 74 20 62 65 20 70 72 65 66 69 78 65 64 20    77 69 74 68 20 27 69 6d 61 67 65 73 2f 27 0a 20  | ust.be.prefixed.with.'images/'.. | 
| a2a0 |  20 20 20 27 27 27 0a 20 20 20 20 67 6c 6f 62 61    6c 20 70 6c 75 67 69 6e 5f 69 63 6f 6e 5f 72 65  | ...'''.....global.plugin_icon_re | 
| a2c0 |  73 6f 75 72 63 65 73 2c 20 70 6c 75 67 69 6e 5f    6e 61 6d 65 0a 20 20 20 20 69 66 20 6e 6f 74 20  | sources,.plugin_name.....if.not. | 
| a2e0 |  69 63 6f 6e 5f 6e 61 6d 65 2e 73 74 61 72 74 73    77 69 74 68 28 27 69 6d 61 67 65 73 2f 27 29 3a  | icon_name.startswith('images/'): | 
| a300 |  0a 20 20 20 20 20 20 20 20 23 20 57 65 20 6b 6e    6f 77 20 74 68 69 73 20 69 73 20 64 65 66 69 6e  | .........#.We.know.this.is.defin | 
| a320 |  69 74 65 6c 79 20 6e 6f 74 20 61 6e 20 69 63 6f    6e 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74  | itely.not.an.icon.belonging.to.t | 
| a340 |  68 69 73 20 70 6c 75 67 69 6e 0a 20 20 20 20 20    20 20 20 70 69 78 6d 61 70 20 3d 20 51 50 69 78  | his.plugin.........pixmap.=.QPix | 
| a360 |  6d 61 70 28 29 0a 20 20 20 20 20 20 20 20 70 69    78 6d 61 70 2e 6c 6f 61 64 28 49 28 69 63 6f 6e  | map().........pixmap.load(I(icon | 
| a380 |  5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20    72 65 74 75 72 6e 20 70 69 78 6d 61 70 0a 0a 20  | _name)).........return.pixmap... | 
| a3a0 |  20 20 20 23 20 43 68 65 63 6b 20 74 6f 20 73 65    65 20 77 68 65 74 68 65 72 20 74 68 65 20 69 63  | ...#.Check.to.see.whether.the.ic | 
| a3c0 |  6f 6e 20 65 78 69 73 74 73 20 61 73 20 61 20 43    61 6c 69 62 72 65 20 72 65 73 6f 75 72 63 65 0a  | on.exists.as.a.Calibre.resource. | 
| a3e0 |  20 20 20 20 23 20 54 68 69 73 20 77 69 6c 6c 20    65 6e 61 62 6c 65 20 73 6b 69 6e 6e 69 6e 67 20  | ....#.This.will.enable.skinning. | 
| a400 |  69 66 20 74 68 65 20 75 73 65 72 20 73 74 6f 72    65 73 20 69 63 6f 6e 73 20 77 69 74 68 69 6e 20  | if.the.user.stores.icons.within. | 
| a420 |  61 20 66 6f 6c 64 65 72 20 6c 69 6b 65 3a 0a 20    20 20 20 23 20 2e 2e 2e 5c 41 70 70 44 61 74 61  | a.folder.like:.....#....\AppData | 
| a440 |  5c 52 6f 61 6d 69 6e 67 5c 63 61 6c 69 62 72 65    5c 72 65 73 6f 75 72 63 65 73 5c 69 6d 61 67 65  | \Roaming\calibre\resources\image | 
| a460 |  73 5c 50 6c 75 67 69 6e 20 4e 61 6d 65 5c 0a 20    20 20 20 69 66 20 70 6c 75 67 69 6e 5f 6e 61 6d  | s\Plugin.Name\.....if.plugin_nam | 
| a480 |  65 3a 0a 20 20 20 20 20 20 20 20 6c 6f 63 61 6c    5f 69 6d 61 67 65 73 5f 64 69 72 20 3d 20 67 65  | e:.........local_images_dir.=.ge | 
| a4a0 |  74 5f 6c 6f 63 61 6c 5f 69 6d 61 67 65 73 5f 64    69 72 28 70 6c 75 67 69 6e 5f 6e 61 6d 65 29 0a  | t_local_images_dir(plugin_name). | 
| a4c0 |  20 20 20 20 20 20 20 20 6c 6f 63 61 6c 5f 69 6d    61 67 65 5f 70 61 74 68 20 3d 20 6f 73 2e 70 61  | ........local_image_path.=.os.pa | 
| a4e0 |  74 68 2e 6a 6f 69 6e 28 6c 6f 63 61 6c 5f 69 6d    61 67 65 73 5f 64 69 72 2c 20 69 63 6f 6e 5f 6e  | th.join(local_images_dir,.icon_n | 
| a500 |  61 6d 65 2e 72 65 70 6c 61 63 65 28 27 69 6d 61    67 65 73 2f 27 2c 20 27 27 29 29 0a 20 20 20 20  | ame.replace('images/',.''))..... | 
| a520 |  20 20 20 20 69 66 20 6f 73 2e 70 61 74 68 2e 65    78 69 73 74 73 28 6c 6f 63 61 6c 5f 69 6d 61 67  | ....if.os.path.exists(local_imag | 
| a540 |  65 5f 70 61 74 68 29 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 70 69 78 6d 61 70 20 3d 20 51 50  | e_path):.............pixmap.=.QP | 
| a560 |  69 78 6d 61 70 28 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 70 69 78 6d 61 70 2e 6c 6f 61 64 28  | ixmap().............pixmap.load( | 
| a580 |  6c 6f 63 61 6c 5f 69 6d 61 67 65 5f 70 61 74 68    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65  | local_image_path).............re | 
| a5a0 |  74 75 72 6e 20 70 69 78 6d 61 70 0a 0a 20 20 20    20 23 20 41 73 20 77 65 20 64 69 64 20 6e 6f 74  | turn.pixmap......#.As.we.did.not | 
| a5c0 |  20 66 69 6e 64 20 61 6e 20 69 63 6f 6e 20 65 6c    73 65 77 68 65 72 65 2c 20 6c 6f 6f 6b 20 77 69  | .find.an.icon.elsewhere,.look.wi | 
| a5e0 |  74 68 69 6e 20 6f 75 72 20 7a 69 70 20 72 65 73    6f 75 72 63 65 73 0a 20 20 20 20 69 66 20 69 63  | thin.our.zip.resources.....if.ic | 
| a600 |  6f 6e 5f 6e 61 6d 65 20 69 6e 20 70 6c 75 67 69    6e 5f 69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73  | on_name.in.plugin_icon_resources | 
| a620 |  3a 0a 20 20 20 20 20 20 20 20 70 69 78 6d 61 70    20 3d 20 51 50 69 78 6d 61 70 28 29 0a 20 20 20  | :.........pixmap.=.QPixmap().... | 
| a640 |  20 20 20 20 20 70 69 78 6d 61 70 2e 6c 6f 61 64    46 72 6f 6d 44 61 74 61 28 70 6c 75 67 69 6e 5f  | .....pixmap.loadFromData(plugin_ | 
| a660 |  69 63 6f 6e 5f 72 65 73 6f 75 72 63 65 73 5b 69    63 6f 6e 5f 6e 61 6d 65 5d 29 0a 20 20 20 20 20  | icon_resources[icon_name])...... | 
| a680 |  20 20 20 72 65 74 75 72 6e 20 70 69 78 6d 61 70    0a 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65  | ...return.pixmap.....return.None | 
| a6a0 |  0a 0a 64 65 66 20 67 65 74 5f 6c 6f 63 61 6c 5f    69 6d 61 67 65 73 5f 64 69 72 28 73 75 62 66 6f  | ..def.get_local_images_dir(subfo | 
| a6c0 |  6c 64 65 72 3d 4e 6f 6e 65 29 3a 0a 20 20 20 20    27 27 27 0a 20 20 20 20 52 65 74 75 72 6e 73 20  | lder=None):.....'''.....Returns. | 
| a6e0 |  61 20 70 61 74 68 20 74 6f 20 74 68 65 20 75 73    65 72 27 73 20 6c 6f 63 61 6c 20 72 65 73 6f 75  | a.path.to.the.user's.local.resou | 
| a700 |  72 63 65 73 2f 69 6d 61 67 65 73 20 66 6f 6c 64    65 72 0a 20 20 20 20 49 66 20 61 20 73 75 62 66  | rces/images.folder.....If.a.subf | 
| a720 |  6f 6c 64 65 72 20 6e 61 6d 65 20 70 61 72 61 6d    65 74 65 72 20 69 73 20 73 70 65 63 69 66 69 65  | older.name.parameter.is.specifie | 
| a740 |  64 2c 20 61 70 70 65 6e 64 73 20 74 68 69 73 20    74 6f 20 74 68 65 20 70 61 74 68 0a 20 20 20 20  | d,.appends.this.to.the.path..... | 
| a760 |  27 27 27 0a 20 20 20 20 69 6d 61 67 65 73 5f 64    69 72 20 3d 20 6f 73 2e 70 61 74 68 2e 6a 6f 69  | '''.....images_dir.=.os.path.joi | 
| a780 |  6e 28 63 6f 6e 66 69 67 5f 64 69 72 2c 20 27 72    65 73 6f 75 72 63 65 73 2f 69 6d 61 67 65 73 27  | n(config_dir,.'resources/images' | 
| a7a0 |  29 0a 20 20 20 20 69 66 20 73 75 62 66 6f 6c 64    65 72 3a 0a 20 20 20 20 20 20 20 20 69 6d 61 67  | ).....if.subfolder:.........imag | 
| a7c0 |  65 73 5f 64 69 72 20 3d 20 6f 73 2e 70 61 74 68    2e 6a 6f 69 6e 28 69 6d 61 67 65 73 5f 64 69 72  | es_dir.=.os.path.join(images_dir | 
| a7e0 |  2c 20 73 75 62 66 6f 6c 64 65 72 29 0a 20 20 20    20 69 66 20 69 73 77 69 6e 64 6f 77 73 3a 0a 20  | ,.subfolder).....if.iswindows:.. | 
| a800 |  20 20 20 20 20 20 20 69 6d 61 67 65 73 5f 64 69    72 20 3d 20 6f 73 2e 70 61 74 68 2e 6e 6f 72 6d  | .......images_dir.=.os.path.norm | 
| a820 |  70 61 74 68 28 69 6d 61 67 65 73 5f 64 69 72 29    0a 20 20 20 20 72 65 74 75 72 6e 20 69 6d 61 67  | path(images_dir).....return.imag | 
| a840 |  65 73 5f 64 69 72 0a 0a 69 66 20 63 61 6c 69 62    72 65 5f 76 65 72 73 69 6f 6e 20 3e 3d 20 28 36  | es_dir..if.calibre_version.>=.(6 | 
| a860 |  2c 32 2c 30 29 3a 0a 20 20 20 20 67 65 74 5f 69    63 6f 6e 20 3d 20 67 65 74 5f 69 63 6f 6e 5f 36  | ,2,0):.....get_icon.=.get_icon_6 | 
| a880 |  5f 32 5f 70 6c 75 73 0a 65 6c 73 65 3a 0a 20 20    20 20 67 65 74 5f 69 63 6f 6e 20 3d 20 67 65 74  | _2_plus.else:.....get_icon.=.get | 
| a8a0 |  5f 69 63 6f 6e 5f 6f 6c 64 0a 0a 50 4b 03 04 14    00 00 00 00 00 87 a0 ac 5a 3d 30 d6 d8 2d 16 00  | _icon_old..PK...........Z=0..-.. | 
| a8c0 |  00 2d 16 00 00 0f 00 00 00 63 6f 6d 6d 6f 6e 5f    6d 65 6e 75 73 2e 70 79 23 21 2f 75 73 72 2f 62  | .-.......common_menus.py#!/usr/b | 
| a8e0 |  69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e 0d 0a 23    20 76 69 6d 3a 66 69 6c 65 65 6e 63 6f 64 69 6e  | in/env.python..#.vim:fileencodin | 
| a900 |  67 3d 55 54 46 2d 38 3a 74 73 3d 34 3a 73 77 3d    34 3a 73 74 61 3a 65 74 3a 73 74 73 3d 34 3a 61  | g=UTF-8:ts=4:sw=4:sta:et:sts=4:a | 
| a920 |  69 0d 0a 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65    5f 5f 20 69 6d 70 6f 72 74 20 28 75 6e 69 63 6f  | i..from.__future__.import.(unico | 
| a940 |  64 65 5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76    69 73 69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f  | de_literals,.division,.absolute_ | 
| a960 |  69 6d 70 6f 72 74 2c 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | import,......................... | 
| a980 |  20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e 29    0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20  | .print_function)....__license__. | 
| a9a0 |  20 20 3d 20 27 47 50 4c 20 76 33 27 0d 0a 5f 5f    63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27 32  | ..=.'GPL.v3'..__copyright__.=.'2 | 
| a9c0 |  30 32 32 2c 20 47 72 61 6e 74 20 44 72 61 6b 65    27 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72  | 022,.Grant.Drake'....from.calibr | 
| a9e0 |  65 2e 67 75 69 32 2e 61 63 74 69 6f 6e 73 20 69    6d 70 6f 72 74 20 6d 65 6e 75 5f 61 63 74 69 6f  | e.gui2.actions.import.menu_actio | 
| aa00 |  6e 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 0d 0a 66    72 6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73  | n_unique_name..from.calibre.cons | 
| aa20 |  74 61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d    65 72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20  | tants.import.numeric_version.as. | 
| aa40 |  63 61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0d    0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 5f 70 6c  | calibre_version..from.calibre_pl | 
| aa60 |  75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f 62    6c 65 2e 63 6f 6d 6d 6f 6e 5f 69 63 6f 6e 73 20  | ugins.barnes_noble.common_icons. | 
| aa80 |  69 6d 70 6f 72 74 20 67 65 74 5f 69 63 6f 6e 0d    0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | import.get_icon....#.----------- | 
| aaa0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| aac0 |  2d 2d 2d 0d 0a 23 20 20 20 20 20 20 20 20 20 20    47 6c 6f 62 61 6c 20 72 65 73 6f 75 72 63 65 73  | ---..#..........Global.resources | 
| aae0 |  20 2f 20 73 74 61 74 65 0d 0a 23 20 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | ./.state..#.-------------------- | 
| ab00 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 23 20  | --------------------------....#. | 
| ab20 |  47 6c 6f 62 61 6c 20 64 65 66 69 6e 69 74 69 6f    6e 20 6f 66 20 6f 75 72 20 6d 65 6e 75 20 61 63  | Global.definition.of.our.menu.ac | 
| ab40 |  74 69 6f 6e 73 2e 20 55 73 65 64 20 74 6f 20 65    6e 73 75 72 65 20 77 65 20 63 61 6e 20 63 6c 65  | tions..Used.to.ensure.we.can.cle | 
| ab60 |  61 6e 6c 79 20 75 6e 72 65 67 69 73 74 65 72 0d    0a 23 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72  | anly.unregister..#.keyboard.shor | 
| ab80 |  74 63 75 74 73 20 77 68 65 6e 20 72 65 62 75 69    6c 64 69 6e 67 20 6f 75 72 20 6d 65 6e 75 73 2e  | tcuts.when.rebuilding.our.menus. | 
| aba0 |  0d 0a 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63    74 69 6f 6e 73 20 3d 20 5b 5d 0d 0a 0d 0a 23 20  | ..plugin_menu_actions.=.[]....#. | 
| abc0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| abe0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a    23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | --------------..#............... | 
| ac00 |  20 4d 65 6e 75 20 66 75 6e 63 74 69 6f 6e 73 0d    0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | .Menu.functions..#.------------- | 
| ac20 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| ac40 |  2d 0d 0a 0d 0a 64 65 66 20 75 6e 72 65 67 69 73    74 65 72 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73  | -....def.unregister_menu_actions | 
| ac60 |  28 69 61 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a    20 20 20 20 46 6f 72 20 70 6c 75 67 69 6e 73 20  | (ia):......'''......For.plugins. | 
| ac80 |  74 68 61 74 20 64 79 6e 61 6d 69 63 61 6c 6c 79    20 72 65 62 75 69 6c 64 20 74 68 65 69 72 20 6d  | that.dynamically.rebuild.their.m | 
| aca0 |  65 6e 75 73 2c 20 77 65 20 6e 65 65 64 20 74 6f    20 65 6e 73 75 72 65 20 74 68 61 74 20 61 6e 79  | enus,.we.need.to.ensure.that.any | 
| acc0 |  0d 0a 20 20 20 20 6b 65 79 62 6f 61 72 64 20 73    68 6f 72 74 63 75 74 73 20 61 72 65 20 75 6e 72  | ......keyboard.shortcuts.are.unr | 
| ace0 |  65 67 69 73 74 65 72 65 64 20 66 6f 72 20 74 68    65 6d 20 65 61 63 68 20 74 69 6d 65 2e 0d 0a 20  | egistered.for.them.each.time.... | 
| ad00 |  20 20 20 4d 61 6b 65 20 73 75 72 65 20 74 6f 20    63 61 6c 6c 20 74 68 69 73 20 62 65 66 6f 72 65  | ...Make.sure.to.call.this.before | 
| ad20 |  20 2e 63 6c 65 61 72 28 29 20 6f 66 20 74 68 65    20 6d 65 6e 75 20 69 74 65 6d 73 2e 0d 0a 20 20  | ..clear().of.the.menu.items..... | 
| ad40 |  20 20 27 27 27 0d 0a 20 20 20 20 67 6c 6f 62 61    6c 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63  | ..'''......global.plugin_menu_ac | 
| ad60 |  74 69 6f 6e 73 0d 0a 20 20 20 20 66 6f 72 20 61    63 74 69 6f 6e 20 69 6e 20 70 6c 75 67 69 6e 5f  | tions......for.action.in.plugin_ | 
| ad80 |  6d 65 6e 75 5f 61 63 74 69 6f 6e 73 3a 0d 0a 20    20 20 20 20 20 20 20 69 66 20 68 61 73 61 74 74  | menu_actions:..........if.hasatt | 
| ada0 |  72 28 61 63 74 69 6f 6e 2c 20 27 63 61 6c 69 62    72 65 5f 73 68 6f 72 74 63 75 74 5f 75 6e 69 71  | r(action,.'calibre_shortcut_uniq | 
| adc0 |  75 65 5f 6e 61 6d 65 27 29 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 69 61 2e 67 75 69 2e 6b  | ue_name'):..............ia.gui.k | 
| ade0 |  65 79 62 6f 61 72 64 2e 75 6e 72 65 67 69 73 74    65 72 5f 73 68 6f 72 74 63 75 74 28 61 63 74 69  | eyboard.unregister_shortcut(acti | 
| ae00 |  6f 6e 2e 63 61 6c 69 62 72 65 5f 73 68 6f 72 74    63 75 74 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 29  | on.calibre_shortcut_unique_name) | 
| ae20 |  0d 0a 20 20 20 20 20 20 20 20 23 20 73 74 61 72    74 69 6e 67 20 69 6e 20 63 61 6c 69 62 72 65 20  | ..........#.starting.in.calibre. | 
| ae40 |  32 2e 31 30 2e 30 2c 20 61 63 74 69 6f 6e 73 20    61 72 65 20 72 65 67 69 73 74 65 72 73 20 61 74  | 2.10.0,.actions.are.registers.at | 
| ae60 |  0d 0a 20 20 20 20 20 20 20 20 23 20 74 68 65 20    74 6f 70 20 67 75 69 20 6c 65 76 65 6c 20 66 6f  | ..........#.the.top.gui.level.fo | 
| ae80 |  72 20 4f 53 58 27 20 62 65 6e 65 66 69 74 2e 0d    0a 20 20 20 20 20 20 20 20 69 66 20 63 61 6c 69  | r.OSX'.benefit...........if.cali | 
| aea0 |  62 72 65 5f 76 65 72 73 69 6f 6e 20 3e 3d 20 28    32 2c 31 30 2c 30 29 3a 0d 0a 20 20 20 20 20 20  | bre_version.>=.(2,10,0):........ | 
| aec0 |  20 20 20 20 20 20 69 61 2e 67 75 69 2e 72 65 6d    6f 76 65 41 63 74 69 6f 6e 28 61 63 74 69 6f 6e  | ......ia.gui.removeAction(action | 
| aee0 |  29 0d 0a 20 20 20 20 70 6c 75 67 69 6e 5f 6d 65    6e 75 5f 61 63 74 69 6f 6e 73 20 3d 20 5b 5d 0d  | )......plugin_menu_actions.=.[]. | 
| af00 |  0a 0d 0a 0d 0a 64 65 66 20 63 72 65 61 74 65 5f    6d 65 6e 75 5f 61 63 74 69 6f 6e 5f 75 6e 69 71  | .....def.create_menu_action_uniq | 
| af20 |  75 65 28 69 61 2c 20 70 61 72 65 6e 74 5f 6d 65    6e 75 2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69  | ue(ia,.parent_menu,.menu_text,.i | 
| af40 |  6d 61 67 65 3d 4e 6f 6e 65 2c 20 74 6f 6f 6c 74    69 70 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20  | mage=None,.tooltip=None,........ | 
| af60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 73 68 6f 72 74 63 75 74 3d 4e 6f 6e 65 2c 20  | .................shortcut=None,. | 
| af80 |  74 72 69 67 67 65 72 65 64 3d 4e 6f 6e 65 2c 20    69 73 5f 63 68 65 63 6b 65 64 3d 4e 6f 6e 65 2c  | triggered=None,.is_checked=None, | 
| afa0 |  20 73 68 6f 72 74 63 75 74 5f 6e 61 6d 65 3d 4e    6f 6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20  | .shortcut_name=None,............ | 
| afc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 69    71 75 65 5f 6e 61 6d 65 3d 4e 6f 6e 65 2c 20 66  | .............unique_name=None,.f | 
| afe0 |  61 76 6f 75 72 69 74 65 73 5f 6d 65 6e 75 5f 75    6e 69 71 75 65 5f 6e 61 6d 65 3d 4e 6f 6e 65 29  | avourites_menu_unique_name=None) | 
| b000 |  3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20    43 72 65 61 74 65 20 61 20 6d 65 6e 75 20 61 63  | :......'''......Create.a.menu.ac | 
| b020 |  74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 73 70    65 63 69 66 69 65 64 20 63 72 69 74 65 72 69 61  | tion.with.the.specified.criteria | 
| b040 |  20 61 6e 64 20 61 63 74 69 6f 6e 2c 20 75 73 69    6e 67 20 74 68 65 20 6e 65 77 0d 0a 20 20 20 20  | .and.action,.using.the.new...... | 
| b060 |  49 6e 74 65 72 66 61 63 65 41 63 74 69 6f 6e 2e    63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74 69  | InterfaceAction.create_menu_acti | 
| b080 |  6f 6e 28 29 20 66 75 6e 63 74 69 6f 6e 20 77 68    69 63 68 20 65 6e 73 75 72 65 73 20 74 68 61 74  | on().function.which.ensures.that | 
| b0a0 |  20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 0d 0a    20 20 20 20 77 68 65 74 68 65 72 20 61 20 73 68  | .regardless.of......whether.a.sh | 
| b0c0 |  6f 72 74 63 75 74 20 69 73 20 73 70 65 63 69 66    69 65 64 20 69 74 20 77 69 6c 6c 20 61 70 70 65  | ortcut.is.specified.it.will.appe | 
| b0e0 |  61 72 20 69 6e 20 50 72 65 66 65 72 65 6e 63 65    73 2d 3e 4b 65 79 62 6f 61 72 64 0d 0a 0d 0a 20  | ar.in.Preferences->Keyboard..... | 
| b100 |  20 20 20 46 6f 72 20 61 20 66 75 6c 6c 20 64 65    73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65  | ...For.a.full.description.of.the | 
| b120 |  20 70 61 72 61 6d 65 74 65 72 73 2c 20 73 65 65    3a 20 63 61 6c 69 62 72 65 5c 5c 67 75 69 32 5c  | .parameters,.see:.calibre\\gui2\ | 
| b140 |  5c 61 63 74 69 6f 6e 73 5c 5c 5f 5f 69 6e 69 74    5f 5f 2e 70 79 0d 0a 20 20 20 20 27 27 27 0d 0a  | \actions\\__init__.py......'''.. | 
| b160 |  20 20 20 20 6f 72 69 67 5f 73 68 6f 72 74 63 75    74 20 3d 20 73 68 6f 72 74 63 75 74 0d 0a 20 20  | ....orig_shortcut.=.shortcut.... | 
| b180 |  20 20 6b 62 20 3d 20 69 61 2e 67 75 69 2e 6b 65    79 62 6f 61 72 64 0d 0a 20 20 20 20 69 66 20 75  | ..kb.=.ia.gui.keyboard......if.u | 
| b1a0 |  6e 69 71 75 65 5f 6e 61 6d 65 20 69 73 20 4e 6f    6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 75 6e 69  | nique_name.is.None:..........uni | 
| b1c0 |  71 75 65 5f 6e 61 6d 65 20 3d 20 6d 65 6e 75 5f    74 65 78 74 0d 0a 20 20 20 20 69 66 20 6e 6f 74  | que_name.=.menu_text......if.not | 
| b1e0 |  20 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c    73 65 3a 0d 0a 20 20 20 20 20 20 20 20 66 75 6c  | .shortcut.==.False:..........ful | 
| b200 |  6c 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 20 3d 20    6d 65 6e 75 5f 61 63 74 69 6f 6e 5f 75 6e 69 71  | l_unique_name.=.menu_action_uniq | 
| b220 |  75 65 5f 6e 61 6d 65 28 69 61 2c 20 75 6e 69 71    75 65 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20  | ue_name(ia,.unique_name)........ | 
| b240 |  20 20 69 66 20 66 75 6c 6c 5f 75 6e 69 71 75 65    5f 6e 61 6d 65 20 69 6e 20 6b 62 2e 73 68 6f 72  | ..if.full_unique_name.in.kb.shor | 
| b260 |  74 63 75 74 73 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 73 68 6f 72 74 63 75 74 20 3d 20 46  | tcuts:..............shortcut.=.F | 
| b280 |  61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 65 6c    73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | alse..........else:............. | 
| b2a0 |  20 69 66 20 73 68 6f 72 74 63 75 74 20 69 73 20    6e 6f 74 20 4e 6f 6e 65 20 61 6e 64 20 6e 6f 74  | .if.shortcut.is.not.None.and.not | 
| b2c0 |  20 73 68 6f 72 74 63 75 74 20 3d 3d 20 46 61 6c    73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | .shortcut.==.False:............. | 
| b2e0 |  20 20 20 20 20 69 66 20 6c 65 6e 28 73 68 6f 72    74 63 75 74 29 20 3d 3d 20 30 3a 0d 0a 20 20 20  | .....if.len(shortcut).==.0:..... | 
| b300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 73 68 6f 72 74 63 75 74 20 3d 20 4e 6f 6e 65  | .................shortcut.=.None | 
| b320 |  0d 0a 0d 0a 20 20 20 20 69 66 20 73 68 6f 72 74    63 75 74 5f 6e 61 6d 65 20 69 73 20 4e 6f 6e 65  | ........if.shortcut_name.is.None | 
| b340 |  3a 0d 0a 20 20 20 20 20 20 20 20 73 68 6f 72 74    63 75 74 5f 6e 61 6d 65 20 3d 20 6d 65 6e 75 5f  | :..........shortcut_name.=.menu_ | 
| b360 |  74 65 78 74 2e 72 65 70 6c 61 63 65 28 27 26 27    2c 27 27 29 0d 0a 0d 0a 20 20 20 20 69 66 20 63  | text.replace('&','')........if.c | 
| b380 |  61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 20 3e    3d 20 28 35 2c 34 2c 30 29 3a 0d 0a 20 20 20 20  | alibre_version.>=.(5,4,0):...... | 
| b3a0 |  20 20 20 20 23 20 54 68 65 20 70 65 72 73 69 73    74 5f 73 68 6f 72 74 63 75 74 20 70 61 72 61 6d  | ....#.The.persist_shortcut.param | 
| b3c0 |  65 74 65 72 20 6f 6e 6c 79 20 61 64 64 65 64 20    66 72 6f 6d 20 35 2e 34 2e 30 20 6f 6e 77 61 72  | eter.only.added.from.5.4.0.onwar | 
| b3e0 |  64 73 2e 0d 0a 20 20 20 20 20 20 20 20 23 20 55    73 65 64 20 73 6f 20 74 68 61 74 20 73 68 6f 72  | ds...........#.Used.so.that.shor | 
| b400 |  74 63 75 74 73 20 73 70 65 63 69 66 69 63 20 74    6f 20 6f 74 68 65 72 20 6c 69 62 72 61 72 69 65  | tcuts.specific.to.other.librarie | 
| b420 |  73 20 61 72 65 6e 27 74 20 64 69 73 63 61 72 64    65 64 2e 0d 0a 20 20 20 20 20 20 20 20 61 63 20  | s.aren't.discarded...........ac. | 
| b440 |  3d 20 69 61 2e 63 72 65 61 74 65 5f 6d 65 6e 75    5f 61 63 74 69 6f 6e 28 70 61 72 65 6e 74 5f 6d  | =.ia.create_menu_action(parent_m | 
| b460 |  65 6e 75 2c 20 75 6e 69 71 75 65 5f 6e 61 6d 65    2c 20 6d 65 6e 75 5f 74 65 78 74 2c 20 69 63 6f  | enu,.unique_name,.menu_text,.ico | 
| b480 |  6e 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n=None,......................... | 
| b4a0 |  20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72    74 63 75 74 3d 73 68 6f 72 74 63 75 74 2c 20 64  | ............shortcut=shortcut,.d | 
| b4c0 |  65 73 63 72 69 70 74 69 6f 6e 3d 74 6f 6f 6c 74    69 70 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | escription=tooltip,............. | 
| b4e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 74 72 69 67 67 65 72 65  | ........................triggere | 
| b500 |  64 3d 74 72 69 67 67 65 72 65 64 2c 20 73 68 6f    72 74 63 75 74 5f 6e 61 6d 65 3d 73 68 6f 72 74  | d=triggered,.shortcut_name=short | 
| b520 |  63 75 74 5f 6e 61 6d 65 2c 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cut_name,....................... | 
| b540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 65    72 73 69 73 74 5f 73 68 6f 72 74 63 75 74 3d 54  | ..............persist_shortcut=T | 
| b560 |  72 75 65 29 0d 0a 20 20 20 20 65 6c 73 65 3a 0d    0a 20 20 20 20 20 20 20 20 61 63 20 3d 20 69 61  | rue)......else:..........ac.=.ia | 
| b580 |  2e 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63 74    69 6f 6e 28 70 61 72 65 6e 74 5f 6d 65 6e 75 2c  | .create_menu_action(parent_menu, | 
| b5a0 |  20 75 6e 69 71 75 65 5f 6e 61 6d 65 2c 20 6d 65    6e 75 5f 74 65 78 74 2c 20 69 63 6f 6e 3d 4e 6f  | .unique_name,.menu_text,.icon=No | 
| b5c0 |  6e 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ne,............................. | 
| b5e0 |  20 20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74    3d 73 68 6f 72 74 63 75 74 2c 20 64 65 73 63 72  | ........shortcut=shortcut,.descr | 
| b600 |  69 70 74 69 6f 6e 3d 74 6f 6f 6c 74 69 70 2c 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | iption=tooltip,................. | 
| b620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 74 72 69 67 67 65 72 65 64 3d 74 72  | ....................triggered=tr | 
| b640 |  69 67 67 65 72 65 64 2c 20 73 68 6f 72 74 63 75    74 5f 6e 61 6d 65 3d 73 68 6f 72 74 63 75 74 5f  | iggered,.shortcut_name=shortcut_ | 
| b660 |  6e 61 6d 65 29 0d 0a 20 20 20 20 69 66 20 73 68    6f 72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 20  | name)......if.shortcut.==.False. | 
| b680 |  61 6e 64 20 6e 6f 74 20 6f 72 69 67 5f 73 68 6f    72 74 63 75 74 20 3d 3d 20 46 61 6c 73 65 3a 0d  | and.not.orig_shortcut.==.False:. | 
| b6a0 |  0a 20 20 20 20 20 20 20 20 69 66 20 61 63 2e 63    61 6c 69 62 72 65 5f 73 68 6f 72 74 63 75 74 5f  | .........if.ac.calibre_shortcut_ | 
| b6c0 |  75 6e 69 71 75 65 5f 6e 61 6d 65 20 69 6e 20 69    61 2e 67 75 69 2e 6b 65 79 62 6f 61 72 64 2e 73  | unique_name.in.ia.gui.keyboard.s | 
| b6e0 |  68 6f 72 74 63 75 74 73 3a 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 6b 62 2e 72 65 70 6c 61 63  | hortcuts:..............kb.replac | 
| b700 |  65 5f 61 63 74 69 6f 6e 28 61 63 2e 63 61 6c 69    62 72 65 5f 73 68 6f 72 74 63 75 74 5f 75 6e 69  | e_action(ac.calibre_shortcut_uni | 
| b720 |  71 75 65 5f 6e 61 6d 65 2c 20 61 63 29 0d 0a 20    20 20 20 69 66 20 69 6d 61 67 65 3a 0d 0a 20 20  | que_name,.ac)......if.image:.... | 
| b740 |  20 20 20 20 20 20 61 63 2e 73 65 74 49 63 6f 6e    28 67 65 74 5f 69 63 6f 6e 28 69 6d 61 67 65 29  | ......ac.setIcon(get_icon(image) | 
| b760 |  29 0d 0a 20 20 20 20 69 66 20 69 73 5f 63 68 65    63 6b 65 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65  | )......if.is_checked.is.not.None | 
| b780 |  3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 73 65    74 43 68 65 63 6b 61 62 6c 65 28 54 72 75 65 29  | :..........ac.setCheckable(True) | 
| b7a0 |  0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 73 5f    63 68 65 63 6b 65 64 3a 0d 0a 20 20 20 20 20 20  | ..........if.is_checked:........ | 
| b7c0 |  20 20 20 20 20 20 61 63 2e 73 65 74 43 68 65 63    6b 65 64 28 54 72 75 65 29 0d 0a 20 20 20 20 23  | ......ac.setChecked(True)......# | 
| b7e0 |  20 46 6f 72 20 75 73 65 20 62 79 20 74 68 65 20    46 61 76 6f 75 72 69 74 65 73 20 4d 65 6e 75 20  | .For.use.by.the.Favourites.Menu. | 
| b800 |  70 6c 75 67 69 6e 2e 20 49 66 20 74 68 69 73 20    6d 65 6e 75 20 61 63 74 69 6f 6e 20 68 61 73 20  | plugin..If.this.menu.action.has. | 
| b820 |  74 65 78 74 0d 0a 20 20 20 20 23 20 74 68 61 74    20 69 73 20 6e 6f 74 20 63 6f 6e 73 74 61 6e 74  | text......#.that.is.not.constant | 
| b840 |  20 74 68 72 6f 75 67 68 20 74 68 65 20 6c 69 66    65 20 6f 66 20 74 68 69 73 20 70 6c 75 67 69 6e  | .through.the.life.of.this.plugin | 
| b860 |  2c 20 74 68 65 6e 20 77 65 20 6e 65 65 64 0d 0a    20 20 20 20 23 20 74 6f 20 61 74 74 72 69 62 75  | ,.then.we.need......#.to.attribu | 
| b880 |  74 65 20 69 74 20 77 69 74 68 20 73 6f 6d 65 74    68 69 6e 67 20 74 68 61 74 20 77 69 6c 6c 20 62  | te.it.with.something.that.will.b | 
| b8a0 |  65 20 63 6f 6e 73 74 61 6e 74 20 74 68 61 74 20    74 68 65 0d 0a 20 20 20 20 23 20 46 61 76 6f 75  | e.constant.that.the......#.Favou | 
| b8c0 |  72 69 74 65 73 20 4d 65 6e 75 20 70 6c 75 67 69    6e 20 63 61 6e 20 75 73 65 20 74 6f 20 69 64 65  | rites.Menu.plugin.can.use.to.ide | 
| b8e0 |  6e 74 69 66 79 20 69 74 2e 0d 0a 20 20 20 20 69    66 20 66 61 76 6f 75 72 69 74 65 73 5f 6d 65 6e  | ntify.it.......if.favourites_men | 
| b900 |  75 5f 75 6e 69 71 75 65 5f 6e 61 6d 65 3a 0d 0a    20 20 20 20 20 20 20 20 61 63 2e 66 61 76 6f 75  | u_unique_name:..........ac.favou | 
| b920 |  72 69 74 65 73 5f 6d 65 6e 75 5f 75 6e 69 71 75    65 5f 6e 61 6d 65 20 3d 20 66 61 76 6f 75 72 69  | rites_menu_unique_name.=.favouri | 
| b940 |  74 65 73 5f 6d 65 6e 75 5f 75 6e 69 71 75 65 5f    6e 61 6d 65 0d 0a 0d 0a 20 20 20 20 23 20 41 70  | tes_menu_unique_name........#.Ap | 
| b960 |  70 65 6e 64 20 74 6f 20 6f 75 72 20 6c 69 73 74    20 6f 66 20 61 63 74 69 6f 6e 73 20 66 6f 72 20  | pend.to.our.list.of.actions.for. | 
| b980 |  74 68 69 73 20 70 6c 75 67 69 6e 20 74 6f 20 75    6e 72 65 67 69 73 74 65 72 20 77 68 65 6e 20 6d  | this.plugin.to.unregister.when.m | 
| b9a0 |  65 6e 75 20 72 65 62 75 69 6c 74 0d 0a 20 20 20    20 67 6c 6f 62 61 6c 20 70 6c 75 67 69 6e 5f 6d  | enu.rebuilt......global.plugin_m | 
| b9c0 |  65 6e 75 5f 61 63 74 69 6f 6e 73 0d 0a 20 20 20    20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f 61 63 74  | enu_actions......plugin_menu_act | 
| b9e0 |  69 6f 6e 73 2e 61 70 70 65 6e 64 28 61 63 29 0d    0a 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 61 63  | ions.append(ac)........return.ac | 
| ba00 |  0d 0a 0d 0a 0d 0a 64 65 66 20 63 72 65 61 74 65    5f 6d 65 6e 75 5f 69 74 65 6d 28 69 61 2c 20 70  | ......def.create_menu_item(ia,.p | 
| ba20 |  61 72 65 6e 74 5f 6d 65 6e 75 2c 20 6d 65 6e 75    5f 74 65 78 74 2c 20 69 6d 61 67 65 3d 4e 6f 6e  | arent_menu,.menu_text,.image=Non | 
| ba40 |  65 2c 20 74 6f 6f 6c 74 69 70 3d 4e 6f 6e 65 2c    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e,.tooltip=None,................ | 
| ba60 |  20 20 20 20 20 20 20 73 68 6f 72 74 63 75 74 3d    28 29 2c 20 74 72 69 67 67 65 72 65 64 3d 4e 6f  | .......shortcut=(),.triggered=No | 
| ba80 |  6e 65 2c 20 69 73 5f 63 68 65 63 6b 65 64 3d 4e    6f 6e 65 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a  | ne,.is_checked=None):......'''.. | 
| baa0 |  20 20 20 20 43 72 65 61 74 65 20 61 20 6d 65 6e    75 20 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68  | ....Create.a.menu.action.with.th | 
| bac0 |  65 20 73 70 65 63 69 66 69 65 64 20 63 72 69 74    65 72 69 61 20 61 6e 64 20 61 63 74 69 6f 6e 0d  | e.specified.criteria.and.action. | 
| bae0 |  0a 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 69    66 20 6e 6f 20 73 68 6f 72 74 63 75 74 20 69 73  | .....Note.that.if.no.shortcut.is | 
| bb00 |  20 73 70 65 63 69 66 69 65 64 2c 20 77 69 6c 6c    20 6e 6f 74 20 61 70 70 65 61 72 20 69 6e 20 50  | .specified,.will.not.appear.in.P | 
| bb20 |  72 65 66 65 72 65 6e 63 65 73 2d 3e 4b 65 79 62    6f 61 72 64 0d 0a 20 20 20 20 54 68 69 73 20 6d  | references->Keyboard......This.m | 
| bb40 |  65 74 68 6f 64 20 73 68 6f 75 6c 64 20 6f 6e 6c    79 20 62 65 20 75 73 65 64 20 66 6f 72 20 61 63  | ethod.should.only.be.used.for.ac | 
| bb60 |  74 69 6f 6e 73 20 77 68 69 63 68 20 65 69 74 68    65 72 20 68 61 76 65 20 6e 6f 20 73 68 6f 72 74  | tions.which.either.have.no.short | 
| bb80 |  63 75 74 73 2c 0d 0a 20 20 20 20 6f 72 20 72 65    67 69 73 74 65 72 20 74 68 65 69 72 20 6d 65 6e  | cuts,......or.register.their.men | 
| bba0 |  75 73 20 6f 6e 6c 79 20 6f 6e 63 65 2e 20 55 73    65 20 63 72 65 61 74 65 5f 6d 65 6e 75 5f 61 63  | us.only.once..Use.create_menu_ac | 
| bbc0 |  74 69 6f 6e 5f 75 6e 69 71 75 65 20 66 6f 72 20    61 6c 6c 20 65 6c 73 65 2e 0d 0a 0d 0a 20 20 20  | tion_unique.for.all.else........ | 
| bbe0 |  20 43 75 72 72 65 6e 74 6c 79 20 74 68 69 73 20    66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79  | .Currently.this.function.is.only | 
| bc00 |  20 75 73 65 64 20 62 79 20 6f 70 65 6e 5f 77 69    74 68 20 61 6e 64 20 73 65 61 72 63 68 5f 74 68  | .used.by.open_with.and.search_th | 
| bc20 |  65 5f 69 6e 74 65 72 6e 65 74 20 70 6c 75 67 69    6e 73 0d 0a 20 20 20 20 61 6e 64 20 77 6f 75 6c  | e_internet.plugins......and.woul | 
| bc40 |  64 20 6c 69 6b 65 20 74 6f 20 69 6e 76 65 73 74    69 67 61 74 65 20 6f 6e 65 20 64 61 79 20 69 66  | d.like.to.investigate.one.day.if | 
| bc60 |  20 69 74 20 63 61 6e 20 62 65 20 72 65 6d 6f 76    65 64 20 66 72 6f 6d 20 74 68 65 6d 2e 0d 0a 20  | .it.can.be.removed.from.them.... | 
| bc80 |  20 20 20 27 27 27 0d 0a 20 20 20 20 69 66 20 73    68 6f 72 74 63 75 74 20 69 73 20 6e 6f 74 20 4e  | ...'''......if.shortcut.is.not.N | 
| bca0 |  6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 69 66    20 6c 65 6e 28 73 68 6f 72 74 63 75 74 29 20 3d  | one:..........if.len(shortcut).= | 
| bcc0 |  3d 20 30 3a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 73 68 6f 72 74 63 75 74 20 3d 20 28 29 0d  | =.0:..............shortcut.=.(). | 
| bce0 |  0a 20 20 20 20 61 63 20 3d 20 69 61 2e 63 72 65    61 74 65 5f 61 63 74 69 6f 6e 28 73 70 65 63 3d  | .....ac.=.ia.create_action(spec= | 
| bd00 |  28 6d 65 6e 75 5f 74 65 78 74 2c 20 4e 6f 6e 65    2c 20 74 6f 6f 6c 74 69 70 2c 20 73 68 6f 72 74  | (menu_text,.None,.tooltip,.short | 
| bd20 |  63 75 74 29 2c 0d 0a 20 20 20 20 20 20 20 20 61    74 74 72 3d 6d 65 6e 75 5f 74 65 78 74 29 0d 0a  | cut),..........attr=menu_text).. | 
| bd40 |  20 20 20 20 69 66 20 69 6d 61 67 65 3a 0d 0a 20    20 20 20 20 20 20 20 61 63 2e 73 65 74 49 63 6f  | ....if.image:..........ac.setIco | 
| bd60 |  6e 28 67 65 74 5f 69 63 6f 6e 28 69 6d 61 67 65    29 29 0d 0a 20 20 20 20 69 66 20 74 72 69 67 67  | n(get_icon(image))......if.trigg | 
| bd80 |  65 72 65 64 20 69 73 20 6e 6f 74 20 4e 6f 6e 65    3a 0d 0a 20 20 20 20 20 20 20 20 61 63 2e 74 72  | ered.is.not.None:..........ac.tr | 
| bda0 |  69 67 67 65 72 65 64 2e 63 6f 6e 6e 65 63 74 28    74 72 69 67 67 65 72 65 64 29 0d 0a 20 20 20 20  | iggered.connect(triggered)...... | 
| bdc0 |  69 66 20 69 73 5f 63 68 65 63 6b 65 64 20 69 73    20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20  | if.is_checked.is.not.None:...... | 
| bde0 |  20 20 20 20 61 63 2e 73 65 74 43 68 65 63 6b 61    62 6c 65 28 54 72 75 65 29 0d 0a 20 20 20 20 20  | ....ac.setCheckable(True)....... | 
| be00 |  20 20 20 69 66 20 69 73 5f 63 68 65 63 6b 65 64    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61  | ...if.is_checked:..............a | 
| be20 |  63 2e 73 65 74 43 68 65 63 6b 65 64 28 54 72 75    65 29 0d 0a 0d 0a 20 20 20 20 70 61 72 65 6e 74  | c.setChecked(True)........parent | 
| be40 |  5f 6d 65 6e 75 2e 61 64 64 41 63 74 69 6f 6e 28    61 63 29 0d 0a 20 20 20 20 0d 0a 20 20 20 20 23  | _menu.addAction(ac)............# | 
| be60 |  20 41 70 70 65 6e 64 20 74 6f 20 6f 75 72 20 6c    69 73 74 20 6f 66 20 61 63 74 69 6f 6e 73 20 66  | .Append.to.our.list.of.actions.f | 
| be80 |  6f 72 20 74 68 69 73 20 70 6c 75 67 69 6e 20 74    6f 20 75 6e 72 65 67 69 73 74 65 72 20 77 68 65  | or.this.plugin.to.unregister.whe | 
| bea0 |  6e 20 6d 65 6e 75 20 72 65 62 75 69 6c 74 0d 0a    20 20 20 20 67 6c 6f 62 61 6c 20 70 6c 75 67 69  | n.menu.rebuilt......global.plugi | 
| bec0 |  6e 5f 6d 65 6e 75 5f 61 63 74 69 6f 6e 73 0d 0a    20 20 20 20 70 6c 75 67 69 6e 5f 6d 65 6e 75 5f  | n_menu_actions......plugin_menu_ | 
| bee0 |  61 63 74 69 6f 6e 73 2e 61 70 70 65 6e 64 28 61    63 29 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e  | actions.append(ac)........return | 
| bf00 |  20 61 63 0d 0a 50 4b 03 04 14 00 00 00 00 00 87    a0 ac 5a d5 66 bd bc 73 30 00 00 73 30 00 00 11  | .ac..PK...........Z.f..s0..s0... | 
| bf20 |  00 00 00 63 6f 6d 6d 6f 6e 5f 77 69 64 67 65 74    73 2e 70 79 23 21 2f 75 73 72 2f 62 69 6e 2f 65  | ...common_widgets.py#!/usr/bin/e | 
| bf40 |  6e 76 20 70 79 74 68 6f 6e 0d 0a 23 20 76 69 6d    3a 66 69 6c 65 65 6e 63 6f 64 69 6e 67 3d 55 54  | nv.python..#.vim:fileencoding=UT | 
| bf60 |  46 2d 38 3a 74 73 3d 34 3a 73 77 3d 34 3a 73 74    61 3a 65 74 3a 73 74 73 3d 34 3a 61 69 0d 0a 66  | F-8:ts=4:sw=4:sta:et:sts=4:ai..f | 
| bf80 |  72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69    6d 70 6f 72 74 20 28 75 6e 69 63 6f 64 65 5f 6c  | rom.__future__.import.(unicode_l | 
| bfa0 |  69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f    6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f  | iterals,.division,.absolute_impo | 
| bfc0 |  72 74 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69  | rt,..........................pri | 
| bfe0 |  6e 74 5f 66 75 6e 63 74 69 6f 6e 29 0d 0a 0d 0a    5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20 3d 20  | nt_function)....__license__...=. | 
| c000 |  27 47 50 4c 20 76 33 27 0d 0a 5f 5f 63 6f 70 79    72 69 67 68 74 5f 5f 20 3d 20 27 32 30 32 32 2c  | 'GPL.v3'..__copyright__.=.'2022, | 
| c020 |  20 47 72 61 6e 74 20 44 72 61 6b 65 27 0d 0a 0d    0a 66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74  | .Grant.Drake'....from.six.import | 
| c040 |  20 74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e    69 63 6f 64 65 0d 0a 0d 0a 74 72 79 3a 0d 0a 20  | .text_type.as.unicode....try:... | 
| c060 |  20 20 20 66 72 6f 6d 20 71 74 2e 63 6f 72 65 20    69 6d 70 6f 72 74 20 28 51 74 2c 20 51 54 61 62  | ...from.qt.core.import.(Qt,.QTab | 
| c080 |  6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 51 43    6f 6d 62 6f 42 6f 78 2c 20 51 48 42 6f 78 4c 61  | leWidgetItem,.QComboBox,.QHBoxLa | 
| c0a0 |  79 6f 75 74 2c 20 51 4c 61 62 65 6c 2c 20 51 46    6f 6e 74 2c 20 0d 0a 20 20 20 20 20 20 20 20 20  | yout,.QLabel,.QFont,............ | 
| c0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51    44 61 74 65 54 69 6d 65 2c 20 51 53 74 79 6c 65  | ...............QDateTime,.QStyle | 
| c0e0 |  64 49 74 65 6d 44 65 6c 65 67 61 74 65 2c 20 51    4c 69 6e 65 45 64 69 74 29 0d 0a 65 78 63 65 70  | dItemDelegate,.QLineEdit)..excep | 
| c100 |  74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a    20 20 20 20 66 72 6f 6d 20 50 79 51 74 35 2e 51  | t.ImportError:......from.PyQt5.Q | 
| c120 |  74 20 69 6d 70 6f 72 74 20 28 51 74 2c 20 51 54    61 62 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20  | t.import.(Qt,.QTableWidgetItem,. | 
| c140 |  51 43 6f 6d 62 6f 42 6f 78 2c 20 51 48 42 6f 78    4c 61 79 6f 75 74 2c 20 51 4c 61 62 65 6c 2c 20  | QComboBox,.QHBoxLayout,.QLabel,. | 
| c160 |  51 46 6f 6e 74 2c 20 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | QFont,.......................... | 
| c180 |  20 51 44 61 74 65 54 69 6d 65 2c 20 51 53 74 79    6c 65 64 49 74 65 6d 44 65 6c 65 67 61 74 65 2c  | .QDateTime,.QStyledItemDelegate, | 
| c1a0 |  20 51 4c 69 6e 65 45 64 69 74 29 0d 0a 0d 0a 74    72 79 3a 0d 0a 20 20 20 20 6c 6f 61 64 5f 74 72  | .QLineEdit)....try:......load_tr | 
| c1c0 |  61 6e 73 6c 61 74 69 6f 6e 73 28 29 0d 0a 65 78    63 65 70 74 20 4e 61 6d 65 45 72 72 6f 72 3a 0d  | anslations()..except.NameError:. | 
| c1e0 |  0a 20 20 20 20 70 61 73 73 20 23 20 6c 6f 61 64    5f 74 72 61 6e 73 6c 61 74 69 6f 6e 73 28 29 20  | .....pass.#.load_translations(). | 
| c200 |  61 64 64 65 64 20 69 6e 20 63 61 6c 69 62 72 65    20 31 2e 39 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c  | added.in.calibre.1.9....from.cal | 
| c220 |  69 62 72 65 2e 67 75 69 32 20 69 6d 70 6f 72 74    20 65 72 72 6f 72 5f 64 69 61 6c 6f 67 2c 20 55  | ibre.gui2.import.error_dialog,.U | 
| c240 |  4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45 54 49    4d 45 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65  | NDEFINED_QDATETIME..from.calibre | 
| c260 |  2e 75 74 69 6c 73 2e 64 61 74 65 20 69 6d 70 6f    72 74 20 6e 6f 77 2c 20 66 6f 72 6d 61 74 5f 64  | .utils.date.import.now,.format_d | 
| c280 |  61 74 65 2c 20 55 4e 44 45 46 49 4e 45 44 5f 44    41 54 45 0d 0a 0d 0a 66 72 6f 6d 20 63 61 6c 69  | ate,.UNDEFINED_DATE....from.cali | 
| c2a0 |  62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e    65 73 5f 6e 6f 62 6c 65 2e 63 6f 6d 6d 6f 6e 5f  | bre_plugins.barnes_noble.common_ | 
| c2c0 |  69 63 6f 6e 73 20 69 6d 70 6f 72 74 20 67 65 74    5f 70 69 78 6d 61 70 0d 0a 0d 0a 23 20 67 65 74  | icons.import.get_pixmap....#.get | 
| c2e0 |  5f 64 61 74 65 5f 66 6f 72 6d 61 74 0d 0a 23 0d    0a 23 20 43 68 65 63 6b 61 62 6c 65 54 61 62 6c  | _date_format..#..#.CheckableTabl | 
| c300 |  65 57 69 64 67 65 74 49 74 65 6d 0d 0a 23 20 44    61 74 65 44 65 6c 65 67 61 74 65 0d 0a 23 20 44  | eWidgetItem..#.DateDelegate..#.D | 
| c320 |  61 74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74    65 6d 0d 0a 23 20 49 6d 61 67 65 54 69 74 6c 65  | ateTableWidgetItem..#.ImageTitle | 
| c340 |  4c 61 79 6f 75 74 0d 0a 23 20 52 65 61 64 4f 6e    6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74 65  | Layout..#.ReadOnlyTableWidgetIte | 
| c360 |  6d 0d 0a 23 20 52 65 61 64 4f 6e 6c 79 54 65 78    74 49 63 6f 6e 57 69 64 67 65 74 49 74 65 6d 0d  | m..#.ReadOnlyTextIconWidgetItem. | 
| c380 |  0a 23 20 52 65 61 64 4f 6e 6c 79 43 68 65 63 6b    61 62 6c 65 54 61 62 6c 65 57 69 64 67 65 74 49  | .#.ReadOnlyCheckableTableWidgetI | 
| c3a0 |  74 65 6d 0d 0a 23 20 54 65 78 74 49 63 6f 6e 57    69 64 67 65 74 49 74 65 6d 0d 0a 23 0d 0a 23 20  | tem..#.TextIconWidgetItem..#..#. | 
| c3c0 |  43 75 73 74 6f 6d 43 6f 6c 75 6d 6e 43 6f 6d 62    6f 42 6f 78 0d 0a 23 20 4b 65 79 56 61 6c 75 65  | CustomColumnComboBox..#.KeyValue | 
| c3e0 |  43 6f 6d 62 6f 42 6f 78 0d 0a 23 20 4e 6f 57 68    65 65 6c 43 6f 6d 62 6f 42 6f 78 0d 0a 23 20 52  | ComboBox..#.NoWheelComboBox..#.R | 
| c400 |  65 61 64 4f 6e 6c 79 4c 69 6e 65 45 64 69 74 0d    0a 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | eadOnlyLineEdit....#.----------- | 
| c420 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| c440 |  2d 2d 2d 0d 0a 23 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 46 75 6e 63 74 69 6f 6e 73 0d 0a  | ---..#...............Functions.. | 
| c460 |  23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | #.------------------------------ | 
| c480 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    0d 0a 0d 0a 64 65 66 20 67 65 74 5f 64 61 74 65  | ----------------....def.get_date | 
| c4a0 |  5f 66 6f 72 6d 61 74 28 74 77 65 61 6b 5f 6e 61    6d 65 3d 27 67 75 69 5f 74 69 6d 65 73 74 61 6d  | _format(tweak_name='gui_timestam | 
| c4c0 |  70 5f 64 69 73 70 6c 61 79 5f 66 6f 72 6d 61 74    27 2c 20 64 65 66 61 75 6c 74 5f 66 6d 74 3d 27  | p_display_format',.default_fmt=' | 
| c4e0 |  64 64 20 4d 4d 4d 20 79 79 79 79 27 29 3a 0d 0a    20 20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65  | dd.MMM.yyyy'):......from.calibre | 
| c500 |  2e 75 74 69 6c 73 2e 63 6f 6e 66 69 67 20 69 6d    70 6f 72 74 20 74 77 65 61 6b 73 0d 0a 20 20 20  | .utils.config.import.tweaks..... | 
| c520 |  20 66 6f 72 6d 61 74 20 3d 20 74 77 65 61 6b 73    5b 74 77 65 61 6b 5f 6e 61 6d 65 5d 0d 0a 20 20  | .format.=.tweaks[tweak_name].... | 
| c540 |  20 20 69 66 20 66 6f 72 6d 61 74 20 69 73 20 4e    6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 66 6f  | ..if.format.is.None:..........fo | 
| c560 |  72 6d 61 74 20 3d 20 64 65 66 61 75 6c 74 5f 66    6d 74 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 66  | rmat.=.default_fmt......return.f | 
| c580 |  6f 72 6d 61 74 20 0d 0a 0d 0a 23 20 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | ormat.....#.-------------------- | 
| c5a0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 20 20 20  | --------------------------..#... | 
| c5c0 |  20 20 20 20 20 20 20 20 20 20 20 20 57 69 64 67    65 74 73 0d 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d  | ............Widgets..#.--------- | 
| c5e0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| c600 |  2d 2d 2d 2d 2d 0d 0a 0d 0a 63 6c 61 73 73 20 43    68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57 69 64  | -----....class.CheckableTableWid | 
| c620 |  67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57 69    64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20 20  | getItem(QTableWidgetItem):...... | 
| c640 |  27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65    20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c 6c  | '''......For.use.in.a.table.cell | 
| c660 |  2c 20 64 69 73 70 6c 61 79 73 20 61 20 63 68 65    63 6b 62 6f 78 20 74 68 61 74 20 63 61 6e 20 70  | ,.displays.a.checkbox.that.can.p | 
| c680 |  6f 74 65 6e 74 69 61 6c 6c 79 20 62 65 20 74 72    69 73 74 61 74 65 0d 0a 20 20 20 20 27 27 27 0d  | otentially.be.tristate......'''. | 
| c6a0 |  0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f    5f 28 73 65 6c 66 2c 20 63 68 65 63 6b 65 64 3d  | .....def.__init__(self,.checked= | 
| c6c0 |  46 61 6c 73 65 2c 20 69 73 5f 74 72 69 73 74 61    74 65 3d 46 61 6c 73 65 29 3a 0d 0a 20 20 20 20  | False,.is_tristate=False):...... | 
| c6e0 |  20 20 20 20 73 75 70 65 72 28 43 68 65 63 6b 61    62 6c 65 54 61 62 6c 65 57 69 64 67 65 74 49 74  | ....super(CheckableTableWidgetIt | 
| c700 |  65 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74    5f 5f 28 27 27 29 0d 0a 20 20 20 20 20 20 20 20  | em,.self).__init__('').......... | 
| c720 |  74 72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28  | try:..............self.setFlags( | 
| c740 |  51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d    49 73 53 65 6c 65 63 74 61 62 6c 65 20 7c 20 51  | Qt.ItemFlag.ItemIsSelectable.|.Q | 
| c760 |  74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49    73 55 73 65 72 43 68 65 63 6b 61 62 6c 65 20 7c  | t.ItemFlag.ItemIsUserCheckable.| | 
| c780 |  20 51 74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65    6d 49 73 45 6e 61 62 6c 65 64 20 29 0d 0a 20 20  | .Qt.ItemFlag.ItemIsEnabled.).... | 
| c7a0 |  20 20 20 20 20 20 65 78 63 65 70 74 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | ......except:..............self. | 
| c7c0 |  73 65 74 46 6c 61 67 73 28 51 74 2e 49 74 65 6d    46 6c 61 67 73 28 51 74 2e 49 74 65 6d 49 73 53  | setFlags(Qt.ItemFlags(Qt.ItemIsS | 
| c7e0 |  65 6c 65 63 74 61 62 6c 65 20 7c 20 51 74 2e 49    74 65 6d 49 73 55 73 65 72 43 68 65 63 6b 61 62  | electable.|.Qt.ItemIsUserCheckab | 
| c800 |  6c 65 20 7c 20 51 74 2e 49 74 65 6d 49 73 45 6e    61 62 6c 65 64 20 29 29 0d 0a 20 20 20 20 20 20  | le.|.Qt.ItemIsEnabled.))........ | 
| c820 |  20 20 69 66 20 69 73 5f 74 72 69 73 74 61 74 65    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  | ..if.is_tristate:..............s | 
| c840 |  65 6c 66 2e 73 65 74 46 6c 61 67 73 28 73 65 6c    66 2e 66 6c 61 67 73 28 29 20 7c 20 51 74 2e 49  | elf.setFlags(self.flags().|.Qt.I | 
| c860 |  74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 55 73    65 72 54 72 69 73 74 61 74 65 29 0d 0a 20 20 20  | temFlag.ItemIsUserTristate)..... | 
| c880 |  20 20 20 20 20 69 66 20 63 68 65 63 6b 65 64 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65  | .....if.checked:..............se | 
| c8a0 |  6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 65    28 51 74 2e 43 68 65 63 6b 65 64 29 0d 0a 20 20  | lf.setCheckState(Qt.Checked).... | 
| c8c0 |  20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 69 66 20 69 73 5f 74  | ......else:..............if.is_t | 
| c8e0 |  72 69 73 74 61 74 65 20 61 6e 64 20 63 68 65 63    6b 65 64 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20  | ristate.and.checked.is.None:.... | 
| c900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65    6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74 65  | ..............self.setCheckState | 
| c920 |  28 51 74 2e 50 61 72 74 69 61 6c 6c 79 43 68 65    63 6b 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20  | (Qt.PartiallyChecked)........... | 
| c940 |  20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73  | ...else:..................self.s | 
| c960 |  65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74 2e    55 6e 63 68 65 63 6b 65 64 29 0d 0a 0d 0a 20 20  | etCheckState(Qt.Unchecked)...... | 
| c980 |  20 20 64 65 66 20 67 65 74 5f 62 6f 6f 6c 65 61    6e 5f 76 61 6c 75 65 28 73 65 6c 66 29 3a 0d 0a  | ..def.get_boolean_value(self):.. | 
| c9a0 |  20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20    20 20 20 20 20 52 65 74 75 72 6e 20 61 20 62 6f  | ........'''..........Return.a.bo | 
| c9c0 |  6f 6c 65 61 6e 20 76 61 6c 75 65 20 69 6e 64 69    63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20 63  | olean.value.indicating.whether.c | 
| c9e0 |  68 65 63 6b 62 6f 78 20 69 73 20 63 68 65 63 6b    65 64 0d 0a 20 20 20 20 20 20 20 20 49 66 20 74  | heckbox.is.checked..........If.t | 
| ca00 |  68 69 73 20 69 73 20 61 20 74 72 69 73 74 61 74    65 20 63 68 65 63 6b 62 6f 78 2c 20 61 20 70 61  | his.is.a.tristate.checkbox,.a.pa | 
| ca20 |  72 74 69 61 6c 6c 79 20 63 68 65 63 6b 65 64 20    76 61 6c 75 65 20 69 73 20 72 65 74 75 72 6e 65  | rtially.checked.value.is.returne | 
| ca40 |  64 20 61 73 20 4e 6f 6e 65 0d 0a 20 20 20 20 20    20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20 20  | d.as.None..........'''.......... | 
| ca60 |  69 66 20 73 65 6c 66 2e 63 68 65 63 6b 53 74 61    74 65 28 29 20 3d 3d 20 51 74 2e 50 61 72 74 69  | if.self.checkState().==.Qt.Parti | 
| ca80 |  61 6c 6c 79 43 68 65 63 6b 65 64 3a 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  | allyChecked:..............return | 
| caa0 |  20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20 65    6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | .None..........else:............ | 
| cac0 |  20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 63 68    65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51 74  | ..return.self.checkState().==.Qt | 
| cae0 |  2e 43 68 65 63 6b 65 64 0d 0a 0d 0a 66 72 6f 6d    20 63 61 6c 69 62 72 65 2e 67 75 69 32 2e 6c 69  | .Checked....from.calibre.gui2.li | 
| cb00 |  62 72 61 72 79 2e 64 65 6c 65 67 61 74 65 73 20    69 6d 70 6f 72 74 20 44 61 74 65 44 65 6c 65 67  | brary.delegates.import.DateDeleg | 
| cb20 |  61 74 65 20 61 73 20 5f 44 61 74 65 44 65 6c 65    67 61 74 65 0d 0a 63 6c 61 73 73 20 44 61 74 65  | ate.as._DateDelegate..class.Date | 
| cb40 |  44 65 6c 65 67 61 74 65 28 5f 44 61 74 65 44 65    6c 65 67 61 74 65 29 3a 0d 0a 20 20 20 20 27 27  | Delegate(_DateDelegate):......'' | 
| cb60 |  27 0d 0a 20 20 20 20 44 65 6c 65 67 61 74 65 20    66 6f 72 20 64 61 74 65 73 2e 20 42 65 63 61 75  | '......Delegate.for.dates..Becau | 
| cb80 |  73 65 20 74 68 69 73 20 64 65 6c 65 67 61 74 65    20 73 74 6f 72 65 73 20 74 68 65 0d 0a 20 20 20  | se.this.delegate.stores.the..... | 
| cba0 |  20 66 6f 72 6d 61 74 20 61 73 20 61 6e 20 69 6e    73 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 2c  | .format.as.an.instance.variable, | 
| cbc0 |  20 61 20 6e 65 77 20 69 6e 73 74 61 6e 63 65 20    6d 75 73 74 20 62 65 20 63 72 65 61 74 65 64 20  | .a.new.instance.must.be.created. | 
| cbe0 |  66 6f 72 20 65 61 63 68 0d 0a 20 20 20 20 63 6f    6c 75 6d 6e 2e 20 54 68 69 73 20 64 69 66 66 65  | for.each......column..This.diffe | 
| cc00 |  72 73 20 66 72 6f 6d 20 61 6c 6c 20 74 68 65 20    6f 74 68 65 72 20 64 65 6c 65 67 61 74 65 73 2e  | rs.from.all.the.other.delegates. | 
| cc20 |  0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64    65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66  | ......'''......def.__init__(self | 
| cc40 |  2c 20 70 61 72 65 6e 74 2c 20 66 6d 74 3d 27 64    64 20 4d 4d 4d 20 79 79 79 79 27 2c 20 64 65 66  | ,.parent,.fmt='dd.MMM.yyyy',.def | 
| cc60 |  61 75 6c 74 5f 74 6f 5f 74 6f 64 61 79 3d 54 72    75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 75  | ault_to_today=True):..........su | 
| cc80 |  70 65 72 28 44 61 74 65 44 65 6c 65 67 61 74 65    2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f  | per(DateDelegate,.self).__init__ | 
| cca0 |  28 70 61 72 65 6e 74 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 64 65 66 61 75 6c 74 5f 74  | (parent)..........self.default_t | 
| ccc0 |  6f 5f 74 6f 64 61 79 20 3d 20 64 65 66 61 75 6c    74 5f 74 6f 5f 74 6f 64 61 79 0d 0a 20 20 20 20  | o_today.=.default_to_today...... | 
| cce0 |  20 20 20 20 73 65 6c 66 2e 66 6f 72 6d 61 74 20    3d 20 67 65 74 5f 64 61 74 65 5f 66 6f 72 6d 61  | ....self.format.=.get_date_forma | 
| cd00 |  74 28 64 65 66 61 75 6c 74 5f 66 6d 74 3d 66 6d    74 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 72  | t(default_fmt=fmt)........def.cr | 
| cd20 |  65 61 74 65 45 64 69 74 6f 72 28 73 65 6c 66 2c    20 70 61 72 65 6e 74 2c 20 6f 70 74 69 6f 6e 2c  | eateEditor(self,.parent,.option, | 
| cd40 |  20 69 6e 64 65 78 29 3a 0d 0a 20 20 20 20 20 20    20 20 71 64 65 20 3d 20 51 53 74 79 6c 65 64 49  | .index):..........qde.=.QStyledI | 
| cd60 |  74 65 6d 44 65 6c 65 67 61 74 65 2e 63 72 65 61    74 65 45 64 69 74 6f 72 28 73 65 6c 66 2c 20 70  | temDelegate.createEditor(self,.p | 
| cd80 |  61 72 65 6e 74 2c 20 6f 70 74 69 6f 6e 2c 20 69    6e 64 65 78 29 0d 0a 20 20 20 20 20 20 20 20 71  | arent,.option,.index)..........q | 
| cda0 |  64 65 2e 73 65 74 44 69 73 70 6c 61 79 46 6f 72    6d 61 74 28 73 65 6c 66 2e 66 6f 72 6d 61 74 29  | de.setDisplayFormat(self.format) | 
| cdc0 |  0d 0a 20 20 20 20 20 20 20 20 71 64 65 2e 73 65    74 4d 69 6e 69 6d 75 6d 44 61 74 65 54 69 6d 65  | ..........qde.setMinimumDateTime | 
| cde0 |  28 55 4e 44 45 46 49 4e 45 44 5f 51 44 41 54 45    54 49 4d 45 29 0d 0a 20 20 20 20 20 20 20 20 71  | (UNDEFINED_QDATETIME)..........q | 
| ce00 |  64 65 2e 73 65 74 53 70 65 63 69 61 6c 56 61 6c    75 65 54 65 78 74 28 5f 28 27 55 6e 64 65 66 69  | de.setSpecialValueText(_('Undefi | 
| ce20 |  6e 65 64 27 29 29 0d 0a 20 20 20 20 20 20 20 20    71 64 65 2e 73 65 74 43 61 6c 65 6e 64 61 72 50  | ned'))..........qde.setCalendarP | 
| ce40 |  6f 70 75 70 28 54 72 75 65 29 0d 0a 20 20 20 20    20 20 20 20 72 65 74 75 72 6e 20 71 64 65 0d 0a  | opup(True)..........return.qde.. | 
| ce60 |  0d 0a 20 20 20 20 64 65 66 20 73 65 74 45 64 69    74 6f 72 44 61 74 61 28 73 65 6c 66 2c 20 65 64  | ......def.setEditorData(self,.ed | 
| ce80 |  69 74 6f 72 2c 20 69 6e 64 65 78 29 3a 0d 0a 20    20 20 20 20 20 20 20 76 61 6c 20 3d 20 69 6e 64  | itor,.index):..........val.=.ind | 
| cea0 |  65 78 2e 6d 6f 64 65 6c 28 29 2e 64 61 74 61 28    69 6e 64 65 78 2c 20 51 74 2e 44 69 73 70 6c 61  | ex.model().data(index,.Qt.Displa | 
| cec0 |  79 52 6f 6c 65 29 0d 0a 20 20 20 20 20 20 20 20    69 66 20 76 61 6c 20 69 73 20 4e 6f 6e 65 20 6f  | yRole)..........if.val.is.None.o | 
| cee0 |  72 20 76 61 6c 20 3d 3d 20 55 4e 44 45 46 49 4e    45 44 5f 51 44 41 54 45 54 49 4d 45 3a 0d 0a 20  | r.val.==.UNDEFINED_QDATETIME:... | 
| cf00 |  20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 65    6c 66 2e 64 65 66 61 75 6c 74 5f 74 6f 5f 74 6f  | ...........if.self.default_to_to | 
| cf20 |  64 61 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 76 61 6c 20 3d 20 73 65 6c 66  | day:..................val.=.self | 
| cf40 |  2e 64 65 66 61 75 6c 74 5f 64 61 74 65 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a  | .default_date..............else: | 
| cf60 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 76 61 6c 20 3d 20 55 4e 44 45 46 49 4e 45  | ..................val.=.UNDEFINE | 
| cf80 |  44 5f 51 44 41 54 45 54 49 4d 45 0d 0a 20 20 20    20 20 20 20 20 65 64 69 74 6f 72 2e 73 65 74 44  | D_QDATETIME..........editor.setD | 
| cfa0 |  61 74 65 54 69 6d 65 28 76 61 6c 29 0d 0a 0d 0a    20 20 20 20 64 65 66 20 73 65 74 4d 6f 64 65 6c  | ateTime(val)........def.setModel | 
| cfc0 |  44 61 74 61 28 73 65 6c 66 2c 20 65 64 69 74 6f    72 2c 20 6d 6f 64 65 6c 2c 20 69 6e 64 65 78 29  | Data(self,.editor,.model,.index) | 
| cfe0 |  3a 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 20 3d    20 65 64 69 74 6f 72 2e 64 61 74 65 54 69 6d 65  | :..........val.=.editor.dateTime | 
| d000 |  28 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 76    61 6c 20 3c 3d 20 55 4e 44 45 46 49 4e 45 44 5f  | ()..........if.val.<=.UNDEFINED_ | 
| d020 |  51 44 41 54 45 54 49 4d 45 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 6d 6f 64 65 6c 2e 73 65  | QDATETIME:..............model.se | 
| d040 |  74 44 61 74 61 28 69 6e 64 65 78 2c 20 55 4e 44    45 46 49 4e 45 44 5f 51 44 41 54 45 54 49 4d 45  | tData(index,.UNDEFINED_QDATETIME | 
| d060 |  2c 20 51 74 2e 45 64 69 74 52 6f 6c 65 29 0d 0a    20 20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20  | ,.Qt.EditRole)..........else:... | 
| d080 |  20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c    2e 73 65 74 44 61 74 61 28 69 6e 64 65 78 2c 20  | ...........model.setData(index,. | 
| d0a0 |  51 44 61 74 65 54 69 6d 65 28 76 61 6c 29 2c 20    51 74 2e 45 64 69 74 52 6f 6c 65 29 0d 0a 0d 0a  | QDateTime(val),.Qt.EditRole).... | 
| d0c0 |  0d 0a 63 6c 61 73 73 20 44 61 74 65 54 61 62 6c    65 57 69 64 67 65 74 49 74 65 6d 28 51 54 61 62  | ..class.DateTableWidgetItem(QTab | 
| d0e0 |  6c 65 57 69 64 67 65 74 49 74 65 6d 29 3a 0d 0a    0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74  | leWidgetItem):........def.__init | 
| d100 |  5f 5f 28 73 65 6c 66 2c 20 64 61 74 65 5f 72 65    61 64 2c 20 69 73 5f 72 65 61 64 5f 6f 6e 6c 79  | __(self,.date_read,.is_read_only | 
| d120 |  3d 46 61 6c 73 65 2c 20 64 65 66 61 75 6c 74 5f    74 6f 5f 74 6f 64 61 79 3d 46 61 6c 73 65 2c 20  | =False,.default_to_today=False,. | 
| d140 |  66 6d 74 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20    20 20 20 20 69 66 20 64 61 74 65 5f 72 65 61 64  | fmt=None):..........if.date_read | 
| d160 |  20 69 73 20 4e 6f 6e 65 20 6f 72 20 64 61 74 65    5f 72 65 61 64 20 3d 3d 20 55 4e 44 45 46 49 4e  | .is.None.or.date_read.==.UNDEFIN | 
| d180 |  45 44 5f 44 41 54 45 20 61 6e 64 20 64 65 66 61    75 6c 74 5f 74 6f 5f 74 6f 64 61 79 3a 0d 0a 20  | ED_DATE.and.default_to_today:... | 
| d1a0 |  20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 5f    72 65 61 64 20 3d 20 6e 6f 77 28 29 0d 0a 20 20  | ...........date_read.=.now().... | 
| d1c0 |  20 20 20 20 20 20 69 66 20 69 73 5f 72 65 61 64    5f 6f 6e 6c 79 3a 0d 0a 20 20 20 20 20 20 20 20  | ......if.is_read_only:.......... | 
| d1e0 |  20 20 20 20 73 75 70 65 72 28 44 61 74 65 54 61    62 6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 73  | ....super(DateTableWidgetItem,.s | 
| d200 |  65 6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 66 6f    72 6d 61 74 5f 64 61 74 65 28 64 61 74 65 5f 72  | elf).__init__(format_date(date_r | 
| d220 |  65 61 64 2c 20 66 6d 74 29 29 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74  | ead,.fmt))..............self.set | 
| d240 |  46 6c 61 67 73 28 51 74 2e 49 74 65 6d 49 73 53    65 6c 65 63 74 61 62 6c 65 7c 51 74 2e 49 74 65  | Flags(Qt.ItemIsSelectable|Qt.Ite | 
| d260 |  6d 49 73 45 6e 61 62 6c 65 64 29 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65  | mIsEnabled)..............self.se | 
| d280 |  74 44 61 74 61 28 51 74 2e 44 69 73 70 6c 61 79    52 6f 6c 65 2c 20 51 44 61 74 65 54 69 6d 65 28  | tData(Qt.DisplayRole,.QDateTime( | 
| d2a0 |  64 61 74 65 5f 72 65 61 64 29 29 0d 0a 20 20 20    20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20  | date_read))..........else:...... | 
| d2c0 |  20 20 20 20 20 20 20 20 73 75 70 65 72 28 44 61    74 65 54 61 62 6c 65 57 69 64 67 65 74 49 74 65  | ........super(DateTableWidgetIte | 
| d2e0 |  6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74 5f    5f 28 27 27 29 0d 0a 20 20 20 20 20 20 20 20 20  | m,.self).__init__('')........... | 
| d300 |  20 20 20 73 65 6c 66 2e 73 65 74 44 61 74 61 28    51 74 2e 44 69 73 70 6c 61 79 52 6f 6c 65 2c 20  | ...self.setData(Qt.DisplayRole,. | 
| d320 |  51 44 61 74 65 54 69 6d 65 28 64 61 74 65 5f 72    65 61 64 29 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73  | QDateTime(date_read))......class | 
| d340 |  20 49 6d 61 67 65 54 69 74 6c 65 4c 61 79 6f 75    74 28 51 48 42 6f 78 4c 61 79 6f 75 74 29 3a 0d  | .ImageTitleLayout(QHBoxLayout):. | 
| d360 |  0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 41 20    72 65 75 73 61 62 6c 65 20 6c 61 79 6f 75 74 20  | .....'''......A.reusable.layout. | 
| d380 |  77 69 64 67 65 74 20 64 69 73 70 6c 61 79 69 6e    67 20 61 6e 20 69 6d 61 67 65 20 66 6f 6c 6c 6f  | widget.displaying.an.image.follo | 
| d3a0 |  77 65 64 20 62 79 20 61 20 74 69 74 6c 65 0d 0a    20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65 66  | wed.by.a.title......'''......def | 
| d3c0 |  20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20    70 61 72 65 6e 74 2c 20 69 63 6f 6e 5f 6e 61 6d  | .__init__(self,.parent,.icon_nam | 
| d3e0 |  65 2c 20 74 69 74 6c 65 29 3a 0d 0a 20 20 20 20    20 20 20 20 73 75 70 65 72 28 49 6d 61 67 65 54  | e,.title):..........super(ImageT | 
| d400 |  69 74 6c 65 4c 61 79 6f 75 74 2c 20 73 65 6c 66    29 2e 5f 5f 69 6e 69 74 5f 5f 28 29 0d 0a 20 20  | itleLayout,.self).__init__().... | 
| d420 |  20 20 20 20 20 20 73 65 6c 66 2e 74 69 74 6c 65    5f 69 6d 61 67 65 5f 6c 61 62 65 6c 20 3d 20 51  | ......self.title_image_label.=.Q | 
| d440 |  4c 61 62 65 6c 28 70 61 72 65 6e 74 29 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 75 70 64 61  | Label(parent)..........self.upda | 
| d460 |  74 65 5f 74 69 74 6c 65 5f 69 63 6f 6e 28 69 63    6f 6e 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20  | te_title_icon(icon_name)........ | 
| d480 |  20 20 73 65 6c 66 2e 61 64 64 57 69 64 67 65 74    28 73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67  | ..self.addWidget(self.title_imag | 
| d4a0 |  65 5f 6c 61 62 65 6c 29 0d 0a 0d 0a 20 20 20 20    20 20 20 20 74 69 74 6c 65 5f 66 6f 6e 74 20 3d  | e_label)............title_font.= | 
| d4c0 |  20 51 46 6f 6e 74 28 29 0d 0a 20 20 20 20 20 20    20 20 74 69 74 6c 65 5f 66 6f 6e 74 2e 73 65 74  | .QFont()..........title_font.set | 
| d4e0 |  50 6f 69 6e 74 53 69 7a 65 28 31 36 29 0d 0a 20    20 20 20 20 20 20 20 73 68 65 6c 66 5f 6c 61 62  | PointSize(16)..........shelf_lab | 
| d500 |  65 6c 20 3d 20 51 4c 61 62 65 6c 28 74 69 74 6c    65 2c 20 70 61 72 65 6e 74 29 0d 0a 20 20 20 20  | el.=.QLabel(title,.parent)...... | 
| d520 |  20 20 20 20 73 68 65 6c 66 5f 6c 61 62 65 6c 2e    73 65 74 46 6f 6e 74 28 74 69 74 6c 65 5f 66 6f  | ....shelf_label.setFont(title_fo | 
| d540 |  6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c    66 2e 61 64 64 57 69 64 67 65 74 28 73 68 65 6c  | nt)..........self.addWidget(shel | 
| d560 |  66 5f 6c 61 62 65 6c 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 69 6e 73 65 72 74 53 74 72  | f_label)..........self.insertStr | 
| d580 |  65 74 63 68 28 2d 31 29 0d 0a 0d 0a 20 20 20 20    64 65 66 20 75 70 64 61 74 65 5f 74 69 74 6c 65  | etch(-1)........def.update_title | 
| d5a0 |  5f 69 63 6f 6e 28 73 65 6c 66 2c 20 69 63 6f 6e    5f 6e 61 6d 65 29 3a 0d 0a 20 20 20 20 20 20 20  | _icon(self,.icon_name):......... | 
| d5c0 |  20 70 69 78 6d 61 70 20 3d 20 67 65 74 5f 70 69    78 6d 61 70 28 69 63 6f 6e 5f 6e 61 6d 65 29 0d  | .pixmap.=.get_pixmap(icon_name). | 
| d5e0 |  0a 20 20 20 20 20 20 20 20 69 66 20 70 69 78 6d    61 70 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20 20 20  | .........if.pixmap.is.None:..... | 
| d600 |  20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 64    69 61 6c 6f 67 28 73 65 6c 66 2e 70 61 72 65 6e  | .........error_dialog(self.paren | 
| d620 |  74 28 29 2c 20 5f 28 27 52 65 73 74 61 72 74 20    72 65 71 75 69 72 65 64 27 29 2c 0d 0a 20 20 20  | t(),._('Restart.required'),..... | 
| d640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 5f 28 27 54 69 74 6c 65 20 69  | ......................_('Title.i | 
| d660 |  6d 61 67 65 20 6e 6f 74 20 66 6f 75 6e 64 20 2d    20 79 6f 75 20 6d 75 73 74 20 72 65 73 74 61 72  | mage.not.found.-.you.must.restar | 
| d680 |  74 20 43 61 6c 69 62 72 65 20 62 65 66 6f 72 65    20 75 73 69 6e 67 20 74 68 69 73 20 70 6c 75 67  | t.Calibre.before.using.this.plug | 
| d6a0 |  69 6e 21 27 29 2c 20 73 68 6f 77 3d 54 72 75 65    29 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 3a  | in!'),.show=True)..........else: | 
| d6c0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65    6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 65 5f 6c  | ..............self.title_image_l | 
| d6e0 |  61 62 65 6c 2e 73 65 74 50 69 78 6d 61 70 28 70    69 78 6d 61 70 29 0d 0a 20 20 20 20 20 20 20 20  | abel.setPixmap(pixmap).......... | 
| d700 |  73 65 6c 66 2e 74 69 74 6c 65 5f 69 6d 61 67 65    5f 6c 61 62 65 6c 2e 73 65 74 4d 61 78 69 6d 75  | self.title_image_label.setMaximu | 
| d720 |  6d 53 69 7a 65 28 33 32 2c 20 33 32 29 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 74 69 74 6c  | mSize(32,.32)..........self.titl | 
| d740 |  65 5f 69 6d 61 67 65 5f 6c 61 62 65 6c 2e 73 65    74 53 63 61 6c 65 64 43 6f 6e 74 65 6e 74 73 28  | e_image_label.setScaledContents( | 
| d760 |  54 72 75 65 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73    20 52 65 61 64 4f 6e 6c 79 54 61 62 6c 65 57 69  | True)......class.ReadOnlyTableWi | 
| d780 |  64 67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57    69 64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20  | dgetItem(QTableWidgetItem):..... | 
| d7a0 |  20 27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73    65 20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c  | .'''......For.use.in.a.table.cel | 
| d7c0 |  6c 2c 20 64 69 73 70 6c 61 79 73 20 74 65 78 74    20 74 68 65 20 75 73 65 72 20 63 61 6e 6e 6f 74  | l,.displays.text.the.user.cannot | 
| d7e0 |  20 73 65 6c 65 63 74 20 6f 72 20 6d 6f 64 69 66    79 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20  | .select.or.modify.......'''..... | 
| d800 |  20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65    6c 66 2c 20 74 65 78 74 29 3a 0d 0a 20 20 20 20  | .def.__init__(self,.text):...... | 
| d820 |  20 20 20 20 69 66 20 74 65 78 74 20 69 73 20 4e    6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | ....if.text.is.None:............ | 
| d840 |  20 20 74 65 78 74 20 3d 20 27 27 0d 0a 20 20 20    20 20 20 20 20 73 75 70 65 72 28 52 65 61 64 4f  | ..text.=.''..........super(ReadO | 
| d860 |  6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74    65 6d 2c 20 73 65 6c 66 29 2e 5f 5f 69 6e 69 74  | nlyTableWidgetItem,.self).__init | 
| d880 |  5f 5f 28 74 65 78 74 29 0d 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28  | __(text)..........self.setFlags( | 
| d8a0 |  51 74 2e 49 74 65 6d 49 73 53 65 6c 65 63 74 61    62 6c 65 7c 51 74 2e 49 74 65 6d 49 73 45 6e 61  | Qt.ItemIsSelectable|Qt.ItemIsEna | 
| d8c0 |  62 6c 65 64 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73    20 52 65 61 64 4f 6e 6c 79 54 65 78 74 49 63 6f  | bled)......class.ReadOnlyTextIco | 
| d8e0 |  6e 57 69 64 67 65 74 49 74 65 6d 28 52 65 61 64    4f 6e 6c 79 54 61 62 6c 65 57 69 64 67 65 74 49  | nWidgetItem(ReadOnlyTableWidgetI | 
| d900 |  74 65 6d 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a    20 20 20 20 46 6f 72 20 75 73 65 20 69 6e 20 61  | tem):......'''......For.use.in.a | 
| d920 |  20 74 61 62 6c 65 20 63 65 6c 6c 2c 20 64 69 73    70 6c 61 79 73 20 61 6e 20 69 63 6f 6e 20 74 68  | .table.cell,.displays.an.icon.th | 
| d940 |  65 20 75 73 65 72 20 63 61 6e 6e 6f 74 20 73 65    6c 65 63 74 20 6f 72 20 6d 6f 64 69 66 79 2e 0d  | e.user.cannot.select.or.modify.. | 
| d960 |  0a 20 20 20 20 27 27 27 0d 0a 20 20 20 20 64 65    66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c  | .....'''......def.__init__(self, | 
| d980 |  20 74 65 78 74 2c 20 69 63 6f 6e 29 3a 0d 0a 20    20 20 20 20 20 20 20 73 75 70 65 72 28 52 65 61  | .text,.icon):..........super(Rea | 
| d9a0 |  64 4f 6e 6c 79 54 65 78 74 49 63 6f 6e 57 69 64    67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e 5f  | dOnlyTextIconWidgetItem,.self)._ | 
| d9c0 |  5f 69 6e 69 74 5f 5f 28 74 65 78 74 29 0d 0a 20    20 20 20 20 20 20 20 69 66 20 69 63 6f 6e 3a 0d  | _init__(text)..........if.icon:. | 
| d9e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c    66 2e 73 65 74 49 63 6f 6e 28 69 63 6f 6e 29 0d  | .............self.setIcon(icon). | 
| da00 |  0a 0d 0a 63 6c 61 73 73 20 52 65 61 64 4f 6e 6c    79 43 68 65 63 6b 61 62 6c 65 54 61 62 6c 65 57  | ...class.ReadOnlyCheckableTableW | 
| da20 |  69 64 67 65 74 49 74 65 6d 28 52 65 61 64 4f 6e    6c 79 54 61 62 6c 65 57 69 64 67 65 74 49 74 65  | idgetItem(ReadOnlyTableWidgetIte | 
| da40 |  6d 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20    20 20 46 6f 72 20 75 73 65 20 69 6e 20 61 20 74  | m):......'''......For.use.in.a.t | 
| da60 |  61 62 6c 65 20 63 65 6c 6c 2c 20 64 69 73 70 6c    61 79 73 20 61 20 63 68 65 63 6b 62 6f 78 20 6e  | able.cell,.displays.a.checkbox.n | 
| da80 |  65 78 74 20 74 6f 20 73 6f 6d 65 20 74 65 78 74    20 74 68 65 20 75 73 65 72 20 63 61 6e 6e 6f 74  | ext.to.some.text.the.user.cannot | 
| daa0 |  20 73 65 6c 65 63 74 20 6f 72 20 6d 6f 64 69 66    79 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20  | .select.or.modify.......'''..... | 
| dac0 |  20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65    6c 66 2c 20 74 65 78 74 2c 20 63 68 65 63 6b 65  | .def.__init__(self,.text,.checke | 
| dae0 |  64 3d 46 61 6c 73 65 2c 20 69 73 5f 74 72 69 73    74 61 74 65 3d 46 61 6c 73 65 29 3a 0d 0a 20 20  | d=False,.is_tristate=False):.... | 
| db00 |  20 20 20 20 20 20 73 75 70 65 72 28 52 65 61 64    4f 6e 6c 79 43 68 65 63 6b 61 62 6c 65 54 61 62  | ......super(ReadOnlyCheckableTab | 
| db20 |  6c 65 57 69 64 67 65 74 49 74 65 6d 2c 20 73 65    6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 74 65 78  | leWidgetItem,.self).__init__(tex | 
| db40 |  74 29 0d 0a 20 20 20 20 20 20 20 20 74 72 79 3a    20 23 20 46 6f 72 20 51 74 20 42 61 63 6b 77 61  | t)..........try:.#.For.Qt.Backwa | 
| db60 |  72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74    79 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | rds.compatibility............... | 
| db80 |  73 65 6c 66 2e 73 65 74 46 6c 61 67 73 28 51 74    2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73  | self.setFlags(Qt.ItemFlag.ItemIs | 
| dba0 |  53 65 6c 65 63 74 61 62 6c 65 20 7c 20 51 74 2e    49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49 73 55  | Selectable.|.Qt.ItemFlag.ItemIsU | 
| dbc0 |  73 65 72 43 68 65 63 6b 61 62 6c 65 20 7c 20 51    74 2e 49 74 65 6d 46 6c 61 67 2e 49 74 65 6d 49  | serCheckable.|.Qt.ItemFlag.ItemI | 
| dbe0 |  73 45 6e 61 62 6c 65 64 20 29 0d 0a 20 20 20 20    20 20 20 20 65 78 63 65 70 74 3a 0d 0a 20 20 20  | sEnabled.)..........except:..... | 
| dc00 |  20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65    74 46 6c 61 67 73 28 51 74 2e 49 74 65 6d 46 6c  | .........self.setFlags(Qt.ItemFl | 
| dc20 |  61 67 73 28 51 74 2e 49 74 65 6d 49 73 53 65 6c    65 63 74 61 62 6c 65 20 7c 20 51 74 2e 49 74 65  | ags(Qt.ItemIsSelectable.|.Qt.Ite | 
| dc40 |  6d 49 73 55 73 65 72 43 68 65 63 6b 61 62 6c 65    20 7c 20 51 74 2e 49 74 65 6d 49 73 45 6e 61 62  | mIsUserCheckable.|.Qt.ItemIsEnab | 
| dc60 |  6c 65 64 20 29 29 0d 0a 20 20 20 20 20 20 20 20    69 66 20 69 73 5f 74 72 69 73 74 61 74 65 3a 0d  | led.))..........if.is_tristate:. | 
| dc80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c    66 2e 73 65 74 46 6c 61 67 73 28 73 65 6c 66 2e  | .............self.setFlags(self. | 
| dca0 |  66 6c 61 67 73 28 29 20 7c 20 51 74 2e 49 74 65    6d 49 73 54 72 69 73 74 61 74 65 29 0d 0a 20 20  | flags().|.Qt.ItemIsTristate).... | 
| dcc0 |  20 20 20 20 20 20 69 66 20 63 68 65 63 6b 65 64    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  | ......if.checked:..............s | 
| dce0 |  65 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74    65 28 51 74 2e 43 68 65 63 6b 65 64 29 0d 0a 20  | elf.setCheckState(Qt.Checked)... | 
| dd00 |  20 20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 5f  | .......else:..............if.is_ | 
| dd20 |  74 72 69 73 74 61 74 65 20 61 6e 64 20 63 68 65    63 6b 65 64 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20  | tristate.and.checked.is.None:... | 
| dd40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73    65 6c 66 2e 73 65 74 43 68 65 63 6b 53 74 61 74  | ...............self.setCheckStat | 
| dd60 |  65 28 51 74 2e 50 61 72 74 69 61 6c 6c 79 43 68    65 63 6b 65 64 29 0d 0a 20 20 20 20 20 20 20 20  | e(Qt.PartiallyChecked).......... | 
| dd80 |  20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | ....else:..................self. | 
| dda0 |  73 65 74 43 68 65 63 6b 53 74 61 74 65 28 51 74    2e 55 6e 63 68 65 63 6b 65 64 29 0d 0a 0d 0a 20  | setCheckState(Qt.Unchecked)..... | 
| ddc0 |  20 20 20 64 65 66 20 67 65 74 5f 62 6f 6f 6c 65    61 6e 5f 76 61 6c 75 65 28 73 65 6c 66 29 3a 0d  | ...def.get_boolean_value(self):. | 
| dde0 |  0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20 20    20 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 62  | .........'''..........Return.a.b | 
| de00 |  6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 69 6e 64    69 63 61 74 69 6e 67 20 77 68 65 74 68 65 72 20  | oolean.value.indicating.whether. | 
| de20 |  63 68 65 63 6b 62 6f 78 20 69 73 20 63 68 65 63    6b 65 64 0d 0a 20 20 20 20 20 20 20 20 49 66 20  | checkbox.is.checked..........If. | 
| de40 |  74 68 69 73 20 69 73 20 61 20 74 72 69 73 74 61    74 65 20 63 68 65 63 6b 62 6f 78 2c 20 61 20 70  | this.is.a.tristate.checkbox,.a.p | 
| de60 |  61 72 74 69 61 6c 6c 79 20 63 68 65 63 6b 65 64    20 76 61 6c 75 65 20 69 73 20 72 65 74 75 72 6e  | artially.checked.value.is.return | 
| de80 |  65 64 20 61 73 20 4e 6f 6e 65 0d 0a 20 20 20 20    20 20 20 20 27 27 27 0d 0a 20 20 20 20 20 20 20  | ed.as.None..........'''......... | 
| dea0 |  20 69 66 20 73 65 6c 66 2e 63 68 65 63 6b 53 74    61 74 65 28 29 20 3d 3d 20 51 74 2e 50 61 72 74  | .if.self.checkState().==.Qt.Part | 
| dec0 |  69 61 6c 6c 79 43 68 65 63 6b 65 64 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72  | iallyChecked:..............retur | 
| dee0 |  6e 20 4e 6f 6e 65 0d 0a 20 20 20 20 20 20 20 20    65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20  | n.None..........else:........... | 
| df00 |  20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 63    68 65 63 6b 53 74 61 74 65 28 29 20 3d 3d 20 51  | ...return.self.checkState().==.Q | 
| df20 |  74 2e 43 68 65 63 6b 65 64 0d 0a 0d 0a 0d 0a 63    6c 61 73 73 20 54 65 78 74 49 63 6f 6e 57 69 64  | t.Checked......class.TextIconWid | 
| df40 |  67 65 74 49 74 65 6d 28 51 54 61 62 6c 65 57 69    64 67 65 74 49 74 65 6d 29 3a 0d 0a 20 20 20 20  | getItem(QTableWidgetItem):...... | 
| df60 |  27 27 27 0d 0a 20 20 20 20 46 6f 72 20 75 73 65    20 69 6e 20 61 20 74 61 62 6c 65 20 63 65 6c 6c  | '''......For.use.in.a.table.cell | 
| df80 |  2c 20 64 69 73 70 6c 61 79 73 20 74 65 78 74 20    77 69 74 68 20 61 6e 20 69 63 6f 6e 20 6e 65 78  | ,.displays.text.with.an.icon.nex | 
| dfa0 |  74 20 74 6f 20 69 74 2e 0d 0a 20 20 20 20 27 27    27 0d 0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69  | t.to.it.......'''......def.__ini | 
| dfc0 |  74 5f 5f 28 73 65 6c 66 2c 20 74 65 78 74 2c 20    69 63 6f 6e 29 3a 0d 0a 20 20 20 20 20 20 20 20  | t__(self,.text,.icon):.......... | 
| dfe0 |  73 75 70 65 72 28 54 65 78 74 49 63 6f 6e 57 69    64 67 65 74 49 74 65 6d 2c 20 73 65 6c 66 29 2e  | super(TextIconWidgetItem,.self). | 
| e000 |  5f 5f 69 6e 69 74 5f 5f 28 74 65 78 74 29 0d 0a    20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74  | __init__(text)..........self.set | 
| e020 |  49 63 6f 6e 28 69 63 6f 6e 29 0d 0a 0d 0a 0d 0a    23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | Icon(icon)......#.-------------- | 
| e040 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| e060 |  0d 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 43 6f 6e 74 72 6f 6c 73 0d 0a 23 20 2d 2d  | ..#...............Controls..#.-- | 
| e080 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d    2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  | -------------------------------- | 
| e0a0 |  2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a    0d 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 43 6f  | ------------......class.CustomCo | 
| e0c0 |  6c 75 6d 6e 43 6f 6d 62 6f 42 6f 78 28 51 43 6f    6d 62 6f 42 6f 78 29 3a 0d 0a 20 20 20 20 43 52  | lumnComboBox(QComboBox):......CR | 
| e0e0 |  45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55 4d 4e 5f    49 54 45 4d 20 3d 20 5f 28 22 43 72 65 61 74 65  | EATE_NEW_COLUMN_ITEM.=._("Create | 
| e100 |  20 6e 65 77 20 63 6f 6c 75 6d 6e 22 29 0d 0a 0d    0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f  | .new.column")........def.__init_ | 
| e120 |  5f 28 73 65 6c 66 2c 20 70 61 72 65 6e 74 2c 20    63 75 73 74 6f 6d 5f 63 6f 6c 75 6d 6e 73 3d 7b  | _(self,.parent,.custom_columns={ | 
| e140 |  7d 2c 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75    6d 6e 3d 27 27 2c 20 69 6e 69 74 69 61 6c 5f 69  | },.selected_column='',.initial_i | 
| e160 |  74 65 6d 73 3d 5b 27 27 5d 2c 20 63 72 65 61 74    65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c 62 61 63  | tems=[''],.create_column_callbac | 
| e180 |  6b 3d 4e 6f 6e 65 29 3a 0d 0a 20 20 20 20 20 20    20 20 73 75 70 65 72 28 43 75 73 74 6f 6d 43 6f  | k=None):..........super(CustomCo | 
| e1a0 |  6c 75 6d 6e 43 6f 6d 62 6f 42 6f 78 2c 20 73 65    6c 66 29 2e 5f 5f 69 6e 69 74 5f 5f 28 70 61 72  | lumnComboBox,.self).__init__(par | 
| e1c0 |  65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73 65    6c 66 2e 63 72 65 61 74 65 5f 63 6f 6c 75 6d 6e  | ent)..........self.create_column | 
| e1e0 |  5f 63 61 6c 6c 62 61 63 6b 20 3d 20 63 72 65 61    74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c 62 61  | _callback.=.create_column_callba | 
| e200 |  63 6b 0d 0a 20 20 20 20 20 20 20 20 73 65 6c 66    2e 63 75 72 72 65 6e 74 5f 69 6e 64 65 78 20 3d  | ck..........self.current_index.= | 
| e220 |  20 30 0d 0a 20 20 20 20 20 20 20 20 69 66 20 63    72 65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c  | .0..........if.create_column_cal | 
| e240 |  6c 62 61 63 6b 20 69 73 20 6e 6f 74 20 4e 6f 6e    65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | lback.is.not.None:.............. | 
| e260 |  73 65 6c 66 2e 63 75 72 72 65 6e 74 54 65 78 74    43 68 61 6e 67 65 64 2e 63 6f 6e 6e 65 63 74 28  | self.currentTextChanged.connect( | 
| e280 |  73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 74 65 78    74 5f 63 68 61 6e 67 65 64 29 0d 0a 20 20 20 20  | self.current_text_changed)...... | 
| e2a0 |  20 20 20 20 73 65 6c 66 2e 70 6f 70 75 6c 61 74    65 5f 63 6f 6d 62 6f 28 63 75 73 74 6f 6d 5f 63  | ....self.populate_combo(custom_c | 
| e2c0 |  6f 6c 75 6d 6e 73 2c 20 73 65 6c 65 63 74 65 64    5f 63 6f 6c 75 6d 6e 2c 20 69 6e 69 74 69 61 6c  | olumns,.selected_column,.initial | 
| e2e0 |  5f 69 74 65 6d 73 29 0d 0a 0d 0a 20 20 20 20 64    65 66 20 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62  | _items)........def.populate_comb | 
| e300 |  6f 28 73 65 6c 66 2c 20 63 75 73 74 6f 6d 5f 63    6f 6c 75 6d 6e 73 2c 20 73 65 6c 65 63 74 65 64  | o(self,.custom_columns,.selected | 
| e320 |  5f 63 6f 6c 75 6d 6e 2c 20 69 6e 69 74 69 61 6c    5f 69 74 65 6d 73 3d 5b 27 27 5d 2c 20 73 68 6f  | _column,.initial_items=[''],.sho | 
| e340 |  77 5f 6c 6f 6f 6b 75 70 5f 6e 61 6d 65 3d 54 72    75 65 29 3a 0d 0a 20 20 20 20 20 20 20 20 73 65  | w_lookup_name=True):..........se | 
| e360 |  6c 66 2e 63 6c 65 61 72 28 29 0d 0a 20 20 20 20    20 20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f  | lf.clear()..........self.column_ | 
| e380 |  6e 61 6d 65 73 20 3d 20 5b 5d 0d 0a 20 20 20 20    20 20 20 20 73 65 6c 65 63 74 65 64 5f 69 64 78  | names.=.[]..........selected_idx | 
| e3a0 |  20 3d 20 30 0d 0a 0d 0a 20 20 20 20 20 20 20 20    69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 69 6e  | .=.0............if.isinstance(in | 
| e3c0 |  69 74 69 61 6c 5f 69 74 65 6d 73 2c 20 64 69 63    74 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | itial_items,.dict):............. | 
| e3e0 |  20 66 6f 72 20 6b 65 79 20 69 6e 20 73 6f 72 74    65 64 28 69 6e 69 74 69 61 6c 5f 69 74 65 6d 73  | .for.key.in.sorted(initial_items | 
| e400 |  2e 6b 65 79 73 28 29 29 3a 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | .keys()):..................self. | 
| e420 |  63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 2e 61 70 70    65 6e 64 28 6b 65 79 29 0d 0a 20 20 20 20 20 20  | column_names.append(key)........ | 
| e440 |  20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61    79 5f 6e 61 6d 65 20 3d 20 69 6e 69 74 69 61 6c  | ..........display_name.=.initial | 
| e460 |  5f 69 74 65 6d 73 5b 6b 65 79 5d 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c  | _items[key]..................sel | 
| e480 |  66 2e 61 64 64 49 74 65 6d 28 64 69 73 70 6c 61    79 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 20  | f.addItem(display_name)......... | 
| e4a0 |  20 20 20 20 20 20 20 20 20 69 66 20 6b 65 79 20    3d 3d 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75  | .........if.key.==.selected_colu | 
| e4c0 |  6d 6e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65  | mn:......................selecte | 
| e4e0 |  64 5f 69 64 78 20 3d 20 6c 65 6e 28 73 65 6c 66    2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 29 20 2d  | d_idx.=.len(self.column_names).- | 
| e500 |  20 31 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66  | .1..........else:..............f | 
| e520 |  6f 72 20 64 69 73 70 6c 61 79 5f 6e 61 6d 65 20    69 6e 20 69 6e 69 74 69 61 6c 5f 69 74 65 6d 73  | or.display_name.in.initial_items | 
| e540 |  3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e  | :..................self.column_n | 
| e560 |  61 6d 65 73 2e 61 70 70 65 6e 64 28 64 69 73 70    6c 61 79 5f 6e 61 6d 65 29 0d 0a 20 20 20 20 20  | ames.append(display_name)....... | 
| e580 |  20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e    61 64 64 49 74 65 6d 28 64 69 73 70 6c 61 79 5f  | ...........self.addItem(display_ | 
| e5a0 |  6e 61 6d 65 29 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 69 66 20 64 69 73 70 6c 61  | name)..................if.displa | 
| e5c0 |  79 5f 6e 61 6d 65 20 3d 3d 20 73 65 6c 65 63 74    65 64 5f 63 6f 6c 75 6d 6e 3a 0d 0a 20 20 20 20  | y_name.==.selected_column:...... | 
| e5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    73 65 6c 65 63 74 65 64 5f 69 64 78 20 3d 20 6c  | ................selected_idx.=.l | 
| e600 |  65 6e 28 73 65 6c 66 2e 63 6f 6c 75 6d 6e 5f 6e    61 6d 65 73 29 20 2d 20 31 0d 0a 0d 0a 20 20 20  | en(self.column_names).-.1....... | 
| e620 |  20 20 20 20 20 66 6f 72 20 6b 65 79 20 69 6e 20    73 6f 72 74 65 64 28 63 75 73 74 6f 6d 5f 63 6f  | .....for.key.in.sorted(custom_co | 
| e640 |  6c 75 6d 6e 73 2e 6b 65 79 73 28 29 29 3a 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66  | lumns.keys()):..............self | 
| e660 |  2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 2e 61 70    70 65 6e 64 28 6b 65 79 29 0d 0a 20 20 20 20 20  | .column_names.append(key)....... | 
| e680 |  20 20 20 20 20 20 20 64 69 73 70 6c 61 79 5f 6e    61 6d 65 20 3d 20 27 25 73 20 28 25 73 29 27 25  | .......display_name.=.'%s.(%s)'% | 
| e6a0 |  28 6b 65 79 2c 20 63 75 73 74 6f 6d 5f 63 6f 6c    75 6d 6e 73 5b 6b 65 79 5d 5b 27 6e 61 6d 65 27  | (key,.custom_columns[key]['name' | 
| e6c0 |  5d 29 20 69 66 20 73 68 6f 77 5f 6c 6f 6f 6b 75    70 5f 6e 61 6d 65 20 65 6c 73 65 20 63 75 73 74  | ]).if.show_lookup_name.else.cust | 
| e6e0 |  6f 6d 5f 63 6f 6c 75 6d 6e 73 5b 6b 65 79 5d 5b    27 6e 61 6d 65 27 5d 0d 0a 20 20 20 20 20 20 20  | om_columns[key]['name']......... | 
| e700 |  20 20 20 20 20 73 65 6c 66 2e 61 64 64 49 74 65    6d 28 64 69 73 70 6c 61 79 5f 6e 61 6d 65 29 0d  | .....self.addItem(display_name). | 
| e720 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20    6b 65 79 20 3d 3d 20 73 65 6c 65 63 74 65 64 5f  | .............if.key.==.selected_ | 
| e740 |  63 6f 6c 75 6d 6e 3a 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65  | column:..................selecte | 
| e760 |  64 5f 69 64 78 20 3d 20 6c 65 6e 28 73 65 6c 66    2e 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 29 20 2d  | d_idx.=.len(self.column_names).- | 
| e780 |  20 31 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20    20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 63 72  | .1....................if.self.cr | 
| e7a0 |  65 61 74 65 5f 63 6f 6c 75 6d 6e 5f 63 61 6c 6c    62 61 63 6b 20 69 73 20 6e 6f 74 20 4e 6f 6e 65  | eate_column_callback.is.not.None | 
| e7c0 |  3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73    65 6c 66 2e 61 64 64 49 74 65 6d 28 73 65 6c 66  | :..............self.addItem(self | 
| e7e0 |  2e 43 52 45 41 54 45 5f 4e 45 57 5f 43 4f 4c 55    4d 4e 5f 49 54 45 4d 29 0d 0a 20 20 20 20 20 20  | .CREATE_NEW_COLUMN_ITEM)........ | 
| e800 |  20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6c 75 6d    6e 5f 6e 61 6d 65 73 2e 61 70 70 65 6e 64 28 73  | ......self.column_names.append(s | 
| e820 |  65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57 5f 43    4f 4c 55 4d 4e 5f 49 54 45 4d 29 0d 0a 0d 0a 20  | elf.CREATE_NEW_COLUMN_ITEM)..... | 
| e840 |  20 20 20 20 20 20 20 73 65 6c 66 2e 73 65 74 43    75 72 72 65 6e 74 49 6e 64 65 78 28 73 65 6c 65  | .......self.setCurrentIndex(sele | 
| e860 |  63 74 65 64 5f 69 64 78 29 0d 0a 0d 0a 20 20 20    20 64 65 66 20 67 65 74 5f 73 65 6c 65 63 74 65  | cted_idx)........def.get_selecte | 
| e880 |  64 5f 63 6f 6c 75 6d 6e 28 73 65 6c 66 29 3a 0d    0a 20 20 20 20 20 20 20 20 73 65 6c 65 63 74 65  | d_column(self):..........selecte | 
| e8a0 |  64 5f 63 6f 6c 75 6d 6e 20 3d 20 73 65 6c 66 2e    63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 5b 73 65 6c  | d_column.=.self.column_names[sel | 
| e8c0 |  66 2e 63 75 72 72 65 6e 74 49 6e 64 65 78 28 29    5d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 73 65  | f.currentIndex()]..........if.se | 
| e8e0 |  6c 65 63 74 65 64 5f 63 6f 6c 75 6d 6e 20 3d 3d    20 73 65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57  | lected_column.==.self.CREATE_NEW | 
| e900 |  5f 43 4f 4c 55 4d 4e 5f 49 54 45 4d 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 65 63  | _COLUMN_ITEM:..............selec | 
| e920 |  74 65 64 5f 63 6f 6c 75 6d 6e 20 3d 20 4e 6f 6e    65 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  | ted_column.=.None..........retur | 
| e940 |  6e 20 73 65 6c 65 63 74 65 64 5f 63 6f 6c 75 6d    6e 0d 0a 20 20 20 20 0d 0a 20 20 20 20 64 65 66  | n.selected_column............def | 
| e960 |  20 63 75 72 72 65 6e 74 5f 74 65 78 74 5f 63 68    61 6e 67 65 64 28 73 65 6c 66 2c 20 6e 65 77 5f  | .current_text_changed(self,.new_ | 
| e980 |  74 65 78 74 29 3a 0d 0a 20 20 20 20 20 20 20 20    69 66 20 6e 65 77 5f 74 65 78 74 20 3d 3d 20 73  | text):..........if.new_text.==.s | 
| e9a0 |  65 6c 66 2e 43 52 45 41 54 45 5f 4e 45 57 5f 43    4f 4c 55 4d 4e 5f 49 54 45 4d 3a 0d 0a 20 20 20  | elf.CREATE_NEW_COLUMN_ITEM:..... | 
| e9c0 |  20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20    3d 20 73 65 6c 66 2e 63 72 65 61 74 65 5f 63 6f  | .........result.=.self.create_co | 
| e9e0 |  6c 75 6d 6e 5f 63 61 6c 6c 62 61 63 6b 28 29 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20  | lumn_callback()..............if. | 
| ea00 |  6e 6f 74 20 72 65 73 75 6c 74 3a 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c  | not.result:..................sel | 
| ea20 |  66 2e 73 65 74 43 75 72 72 65 6e 74 49 6e 64 65    78 28 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 69  | f.setCurrentIndex(self.current_i | 
| ea40 |  6e 64 65 78 29 0d 0a 20 20 20 20 20 20 20 20 65    6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | ndex)..........else:............ | 
| ea60 |  20 20 73 65 6c 66 2e 63 75 72 72 65 6e 74 5f 69    6e 64 65 78 20 3d 20 73 65 6c 66 2e 63 75 72 72  | ..self.current_index.=.self.curr | 
| ea80 |  65 6e 74 49 6e 64 65 78 28 29 0d 0a 0d 0a 0d 0a    63 6c 61 73 73 20 4b 65 79 56 61 6c 75 65 43 6f  | entIndex()......class.KeyValueCo | 
| eaa0 |  6d 62 6f 42 6f 78 28 51 43 6f 6d 62 6f 42 6f 78    29 3a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 5f  | mboBox(QComboBox):........def.__ | 
| eac0 |  69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61 72    65 6e 74 2c 20 76 61 6c 75 65 73 2c 20 73 65 6c  | init__(self,.parent,.values,.sel | 
| eae0 |  65 63 74 65 64 5f 6b 65 79 29 3a 0d 0a 20 20 20    20 20 20 20 20 51 43 6f 6d 62 6f 42 6f 78 2e 5f  | ected_key):..........QComboBox._ | 
| eb00 |  5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 70 61    72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73  | _init__(self,.parent)..........s | 
| eb20 |  65 6c 66 2e 76 61 6c 75 65 73 20 3d 20 76 61 6c    75 65 73 0d 0a 20 20 20 20 20 20 20 20 73 65 6c  | elf.values.=.values..........sel | 
| eb40 |  66 2e 70 6f 70 75 6c 61 74 65 5f 63 6f 6d 62 6f    28 73 65 6c 65 63 74 65 64 5f 6b 65 79 29 0d 0a  | f.populate_combo(selected_key).. | 
| eb60 |  0d 0a 20 20 20 20 64 65 66 20 70 6f 70 75 6c 61    74 65 5f 63 6f 6d 62 6f 28 73 65 6c 66 2c 20 73  | ......def.populate_combo(self,.s | 
| eb80 |  65 6c 65 63 74 65 64 5f 6b 65 79 29 3a 0d 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 63 6c 65 61  | elected_key):..........self.clea | 
| eba0 |  72 28 29 0d 0a 20 20 20 20 20 20 20 20 73 65 6c    65 63 74 65 64 5f 69 64 78 20 3d 20 69 64 78 20  | r()..........selected_idx.=.idx. | 
| ebc0 |  3d 20 2d 31 0d 0a 20 20 20 20 20 20 20 20 66 6f    72 20 6b 65 79 2c 20 76 61 6c 75 65 20 69 6e 20  | =.-1..........for.key,.value.in. | 
| ebe0 |  73 65 6c 66 2e 76 61 6c 75 65 73 2e 69 74 65 6d    73 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | self.values.items():............ | 
| ec00 |  20 20 69 64 78 20 3d 20 69 64 78 20 2b 20 31 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c  | ..idx.=.idx.+.1..............sel | 
| ec20 |  66 2e 61 64 64 49 74 65 6d 28 76 61 6c 75 65 29    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  | f.addItem(value)..............if | 
| ec40 |  20 6b 65 79 20 3d 3d 20 73 65 6c 65 63 74 65 64    5f 6b 65 79 3a 0d 0a 20 20 20 20 20 20 20 20 20  | .key.==.selected_key:........... | 
| ec60 |  20 20 20 20 20 20 20 73 65 6c 65 63 74 65 64 5f    69 64 78 20 3d 20 69 64 78 0d 0a 20 20 20 20 20  | .......selected_idx.=.idx....... | 
| ec80 |  20 20 20 73 65 6c 66 2e 73 65 74 43 75 72 72 65    6e 74 49 6e 64 65 78 28 73 65 6c 65 63 74 65 64  | ...self.setCurrentIndex(selected | 
| eca0 |  5f 69 64 78 29 0d 0a 0d 0a 20 20 20 20 64 65 66    20 73 65 6c 65 63 74 65 64 5f 6b 65 79 28 73 65  | _idx)........def.selected_key(se | 
| ecc0 |  6c 66 29 3a 0d 0a 20 20 20 20 20 20 20 20 66 6f    72 20 6b 65 79 2c 20 76 61 6c 75 65 20 69 6e 20  | lf):..........for.key,.value.in. | 
| ece0 |  73 65 6c 66 2e 76 61 6c 75 65 73 2e 69 74 65 6d    73 28 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | self.values.items():............ | 
| ed00 |  20 20 69 66 20 76 61 6c 75 65 20 3d 3d 20 75 6e    69 63 6f 64 65 28 73 65 6c 66 2e 63 75 72 72 65  | ..if.value.==.unicode(self.curre | 
| ed20 |  6e 74 54 65 78 74 28 29 29 2e 73 74 72 69 70 28    29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ntText()).strip():.............. | 
| ed40 |  20 20 20 20 72 65 74 75 72 6e 20 6b 65 79 0d 0a    0d 0a 0d 0a 63 6c 61 73 73 20 4e 6f 57 68 65 65  | ....return.key......class.NoWhee | 
| ed60 |  6c 43 6f 6d 62 6f 42 6f 78 28 51 43 6f 6d 62 6f    42 6f 78 29 3a 0d 0a 20 20 20 20 27 27 27 0d 0a  | lComboBox(QComboBox):......'''.. | 
| ed80 |  20 20 20 20 46 6f 72 20 63 6f 6d 62 6f 62 6f 78    20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 61 20  | ....For.combobox.displayed.in.a. | 
| eda0 |  74 61 62 6c 65 20 63 65 6c 6c 20 75 73 69 6e 67    20 74 68 65 20 6d 6f 75 73 65 20 77 68 65 65 6c  | table.cell.using.the.mouse.wheel | 
| edc0 |  20 68 61 73 20 6e 61 73 74 79 20 69 6e 74 65 72    61 63 74 69 6f 6e 73 0d 0a 20 20 20 20 64 75 65  | .has.nasty.interactions......due | 
| ede0 |  20 74 6f 20 74 68 65 20 63 6f 6e 66 6c 69 63 74    20 62 65 74 77 65 65 6e 20 73 63 72 6f 6c 6c 69  | .to.the.conflict.between.scrolli | 
| ee00 |  6e 67 20 74 68 65 20 74 61 62 6c 65 20 76 73 20    73 63 72 6f 6c 6c 69 6e 67 20 74 68 65 20 63 6f  | ng.the.table.vs.scrolling.the.co | 
| ee20 |  6d 62 6f 62 6f 78 20 69 74 65 6d 2e 0d 0a 20 20    20 20 49 6e 68 65 72 69 74 20 66 72 6f 6d 20 74  | mbobox.item.......Inherit.from.t | 
| ee40 |  68 69 73 20 63 6c 61 73 73 20 74 6f 20 64 69 73    61 62 6c 65 20 74 68 65 20 63 6f 6d 62 6f 62 6f  | his.class.to.disable.the.combobo | 
| ee60 |  78 20 63 68 61 6e 67 69 6e 67 20 76 61 6c 75 65    20 77 69 74 68 20 6d 6f 75 73 65 20 77 68 65 65  | x.changing.value.with.mouse.whee | 
| ee80 |  6c 2e 0d 0a 20 20 20 20 27 27 27 0d 0a 20 20 20    20 64 65 66 20 77 68 65 65 6c 45 76 65 6e 74 28  | l.......'''......def.wheelEvent( | 
| eea0 |  73 65 6c 66 2c 20 65 76 65 6e 74 29 3a 0d 0a 20    20 20 20 20 20 20 20 65 76 65 6e 74 2e 69 67 6e  | self,.event):..........event.ign | 
| eec0 |  6f 72 65 28 29 0d 0a 0d 0a 0d 0a 63 6c 61 73 73    20 52 65 61 64 4f 6e 6c 79 4c 69 6e 65 45 64 69  | ore()......class.ReadOnlyLineEdi | 
| eee0 |  74 28 51 4c 69 6e 65 45 64 69 74 29 3a 0d 0a 0d    0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f  | t(QLineEdit):........def.__init_ | 
| ef00 |  5f 28 73 65 6c 66 2c 20 74 65 78 74 2c 20 70 61    72 65 6e 74 29 3a 0d 0a 20 20 20 20 20 20 20 20  | _(self,.text,.parent):.......... | 
| ef20 |  69 66 20 74 65 78 74 20 69 73 20 4e 6f 6e 65 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65  | if.text.is.None:..............te | 
| ef40 |  78 74 20 3d 20 27 27 0d 0a 20 20 20 20 20 20 20    20 73 75 70 65 72 28 52 65 61 64 4f 6e 6c 79 4c  | xt.=.''..........super(ReadOnlyL | 
| ef60 |  69 6e 65 45 64 69 74 2c 20 73 65 6c 66 29 2e 5f    5f 69 6e 69 74 5f 5f 28 74 65 78 74 2c 20 70 61  | ineEdit,.self).__init__(text,.pa | 
| ef80 |  72 65 6e 74 29 0d 0a 20 20 20 20 20 20 20 20 73    65 6c 66 2e 73 65 74 45 6e 61 62 6c 65 64 28 46  | rent)..........self.setEnabled(F | 
| efa0 |  61 6c 73 65 29 0d 0a 50 4b 03 04 14 00 00 00 00    00 54 7e 82 56 4e 2b 5a ec 0d 0d 00 00 0d 0d 00  | alse)..PK........T~.VN+Z........ | 
| efc0 |  00 09 00 00 00 63 6f 6e 66 69 67 2e 70 79 66 72    6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20 69 6d  | .....config.pyfrom.__future__.im | 
| efe0 |  70 6f 72 74 20 75 6e 69 63 6f 64 65 5f 6c 69 74    65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f 6e 2c  | port.unicode_literals,.division, | 
| f000 |  20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f 72 74    2c 20 70 72 69 6e 74 5f 66 75 6e 63 74 69 6f 6e  | .absolute_import,.print_function | 
| f020 |  0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f 5f 20 20 20    3d 20 27 47 50 4c 20 76 33 27 0a 5f 5f 63 6f 70  | ..__license__...=.'GPL.v3'.__cop | 
| f040 |  79 72 69 67 68 74 5f 5f 20 3d 20 27 32 30 31 31    2c 20 47 72 61 6e 74 20 44 72 61 6b 65 27 0a 0a  | yright__.=.'2011,.Grant.Drake'.. | 
| f060 |  66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74 20    74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69  | from.six.import.text_type.as.uni | 
| f080 |  63 6f 64 65 0a 23 20 4d 61 69 6e 74 61 69 6e 20    62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74  | code.#.Maintain.backwards.compat | 
| f0a0 |  69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c 64    65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 51  | ibility.with.older.versions.of.Q | 
| f0c0 |  74 20 61 6e 64 20 63 61 6c 69 62 72 65 2e 0a 74    72 79 3a 0a 20 20 20 20 66 72 6f 6d 20 71 74 2e  | t.and.calibre..try:.....from.qt. | 
| f0e0 |  63 6f 72 65 20 69 6d 70 6f 72 74 20 51 4c 61 62    65 6c 2c 20 51 48 42 6f 78 4c 61 79 6f 75 74 2c  | core.import.QLabel,.QHBoxLayout, | 
| f100 |  20 51 56 42 6f 78 4c 61 79 6f 75 74 2c 20 51 74    2c 20 51 47 72 6f 75 70 42 6f 78 2c 20 51 43 68  | .QVBoxLayout,.Qt,.QGroupBox,.QCh | 
| f120 |  65 63 6b 42 6f 78 2c 20 51 53 70 69 6e 42 6f 78    0a 65 78 63 65 70 74 20 49 6d 70 6f 72 74 45 72  | eckBox,.QSpinBox.except.ImportEr | 
| f140 |  72 6f 72 3a 0a 20 20 20 20 66 72 6f 6d 20 50 79    51 74 35 2e 51 74 20 69 6d 70 6f 72 74 20 51 4c  | ror:.....from.PyQt5.Qt.import.QL | 
| f160 |  61 62 65 6c 2c 20 51 48 42 6f 78 4c 61 79 6f 75    74 2c 20 51 56 42 6f 78 4c 61 79 6f 75 74 2c 20  | abel,.QHBoxLayout,.QVBoxLayout,. | 
| f180 |  51 74 2c 20 51 47 72 6f 75 70 42 6f 78 2c 20 51    43 68 65 63 6b 42 6f 78 2c 20 51 53 70 69 6e 42  | Qt,.QGroupBox,.QCheckBox,.QSpinB | 
| f1a0 |  6f 78 0a 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e    67 75 69 32 2e 6d 65 74 61 64 61 74 61 2e 63 6f  | ox.from.calibre.gui2.metadata.co | 
| f1c0 |  6e 66 69 67 20 69 6d 70 6f 72 74 20 43 6f 6e 66    69 67 57 69 64 67 65 74 20 61 73 20 44 65 66 61  | nfig.import.ConfigWidget.as.Defa | 
| f1e0 |  75 6c 74 43 6f 6e 66 69 67 57 69 64 67 65 74 0a    66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69  | ultConfigWidget.from.calibre.uti | 
| f200 |  6c 73 2e 63 6f 6e 66 69 67 20 69 6d 70 6f 72 74    20 4a 53 4f 4e 43 6f 6e 66 69 67 0a 0a 23 20 50  | ls.config.import.JSONConfig..#.P | 
| f220 |  75 6c 6c 20 69 6e 20 74 72 61 6e 73 6c 61 74 69    6f 6e 20 66 69 6c 65 73 20 66 6f 72 20 5f 28 29  | ull.in.translation.files.for._() | 
| f240 |  20 73 74 72 69 6e 67 73 0a 74 72 79 3a 0a 20 20    20 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74 69  | .strings.try:.....load_translati | 
| f260 |  6f 6e 73 28 29 0a 65 78 63 65 70 74 20 4e 61 6d    65 45 72 72 6f 72 3a 0a 20 20 20 20 70 61 73 73  | ons().except.NameError:.....pass | 
| f280 |  20 23 20 6c 6f 61 64 5f 74 72 61 6e 73 6c 61 74    69 6f 6e 73 28 29 20 61 64 64 65 64 20 69 6e 20  | .#.load_translations().added.in. | 
| f2a0 |  63 61 6c 69 62 72 65 20 31 2e 39 0a 0a 53 54 4f    52 45 5f 4e 41 4d 45 20 3d 20 27 4f 70 74 69 6f  | calibre.1.9..STORE_NAME.=.'Optio | 
| f2c0 |  6e 73 27 0a 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e    4c 4f 41 44 53 20 3d 20 27 6d 61 78 44 6f 77 6e  | ns'.KEY_MAX_DOWNLOADS.=.'maxDown | 
| f2e0 |  6c 6f 61 64 73 27 0a 4b 45 59 5f 47 45 54 5f 41    4c 4c 5f 41 55 54 48 4f 52 53 20 3d 20 27 67 65  | loads'.KEY_GET_ALL_AUTHORS.=.'ge | 
| f300 |  74 41 6c 6c 41 75 74 68 6f 72 73 27 0a 0a 44 45    46 41 55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55  | tAllAuthors'..DEFAULT_STORE_VALU | 
| f320 |  45 53 20 3d 20 7b 0a 20 20 20 20 4b 45 59 5f 4d    41 58 5f 44 4f 57 4e 4c 4f 41 44 53 3a 20 31 2c  | ES.=.{.....KEY_MAX_DOWNLOADS:.1, | 
| f340 |  0a 20 20 20 20 4b 45 59 5f 47 45 54 5f 41 4c 4c    5f 41 55 54 48 4f 52 53 3a 20 46 61 6c 73 65 0a  | .....KEY_GET_ALL_AUTHORS:.False. | 
| f360 |  7d 0a 0a 23 20 54 68 69 73 20 69 73 20 77 68 65    72 65 20 61 6c 6c 20 70 72 65 66 65 72 65 6e 63  | }..#.This.is.where.all.preferenc | 
| f380 |  65 73 20 66 6f 72 20 74 68 69 73 20 70 6c 75 67    69 6e 20 77 69 6c 6c 20 62 65 20 73 74 6f 72 65  | es.for.this.plugin.will.be.store | 
| f3a0 |  64 0a 70 6c 75 67 69 6e 5f 70 72 65 66 73 20 3d    20 4a 53 4f 4e 43 6f 6e 66 69 67 28 27 70 6c 75  | d.plugin_prefs.=.JSONConfig('plu | 
| f3c0 |  67 69 6e 73 2f 42 61 72 6e 65 73 20 26 20 4e 6f    62 6c 65 27 29 0a 0a 23 20 53 65 74 20 64 65 66  | gins/Barnes.&.Noble')..#.Set.def | 
| f3e0 |  61 75 6c 74 73 0a 70 6c 75 67 69 6e 5f 70 72 65    66 73 2e 64 65 66 61 75 6c 74 73 5b 53 54 4f 52  | aults.plugin_prefs.defaults[STOR | 
| f400 |  45 5f 4e 41 4d 45 5d 20 3d 20 44 45 46 41 55 4c    54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 0a 0a  | E_NAME].=.DEFAULT_STORE_VALUES.. | 
| f420 |  63 6c 61 73 73 20 43 6f 6e 66 69 67 57 69 64 67    65 74 28 44 65 66 61 75 6c 74 43 6f 6e 66 69 67  | class.ConfigWidget(DefaultConfig | 
| f440 |  57 69 64 67 65 74 29 3a 0a 0a 20 20 20 20 64 65    66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c  | Widget):......def.__init__(self, | 
| f460 |  20 70 6c 75 67 69 6e 29 3a 0a 20 20 20 20 20 20    20 20 44 65 66 61 75 6c 74 43 6f 6e 66 69 67 57  | .plugin):.........DefaultConfigW | 
| f480 |  69 64 67 65 74 2e 5f 5f 69 6e 69 74 5f 5f 28 73    65 6c 66 2c 20 70 6c 75 67 69 6e 29 0a 20 20 20  | idget.__init__(self,.plugin).... | 
| f4a0 |  20 20 20 20 20 63 20 3d 20 70 6c 75 67 69 6e 5f    70 72 65 66 73 5b 53 54 4f 52 45 5f 4e 41 4d 45  | .....c.=.plugin_prefs[STORE_NAME | 
| f4c0 |  5d 0a 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f    6e 73 5f 67 72 6f 75 70 5f 62 6f 78 20 3d 20 51  | ]..........options_group_box.=.Q | 
| f4e0 |  47 72 6f 75 70 42 6f 78 28 27 4f 74 68 65 72 20    4f 70 74 69 6f 6e 73 27 2c 20 73 65 6c 66 29 0a  | GroupBox('Other.Options',.self). | 
| f500 |  20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 5f    67 72 6f 75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74  | ........options_group_box_layout | 
| f520 |  20 3d 20 51 56 42 6f 78 4c 61 79 6f 75 74 28 29    0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73  | .=.QVBoxLayout().........options | 
| f540 |  5f 67 72 6f 75 70 5f 62 6f 78 2e 73 65 74 4c 61    79 6f 75 74 28 6f 70 74 69 6f 6e 73 5f 67 72 6f  | _group_box.setLayout(options_gro | 
| f560 |  75 70 5f 62 6f 78 5f 6c 61 79 6f 75 74 29 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 6c 2e 61 64  | up_box_layout).........self.l.ad | 
| f580 |  64 57 69 64 67 65 74 28 6f 70 74 69 6f 6e 73 5f    67 72 6f 75 70 5f 62 6f 78 2c 20 73 65 6c 66 2e  | dWidget(options_group_box,.self. | 
| f5a0 |  6c 2e 72 6f 77 43 6f 75 6e 74 28 29 2c 20 30 2c    20 31 2c 20 32 29 0a 0a 20 20 20 20 20 20 20 20  | l.rowCount(),.0,.1,.2).......... | 
| f5c0 |  6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f    6c 61 79 6f 75 74 20 3d 20 51 48 42 6f 78 4c 61  | other_group_box_layout.=.QHBoxLa | 
| f5e0 |  79 6f 75 74 28 29 0a 20 20 20 20 20 20 20 20 6d    61 78 5f 6c 61 62 65 6c 20 3d 20 51 4c 61 62 65  | yout().........max_label.=.QLabe | 
| f600 |  6c 28 5f 28 27 4d 61 78 69 6d 75 6d 20 74 69 74    6c 65 2f 61 75 74 68 6f 72 20 73 65 61 72 63 68  | l(_('Maximum.title/author.search | 
| f620 |  20 6d 61 74 63 68 65 73 20 74 6f 20 65 76 61 6c    75 61 74 65 20 28 31 20 3d 20 66 61 73 74 65 73  | .matches.to.evaluate.(1.=.fastes | 
| f640 |  74 29 3a 27 29 2c 20 73 65 6c 66 29 0a 20 20 20    20 20 20 20 20 6d 61 78 5f 6c 61 62 65 6c 2e 73  | t):'),.self).........max_label.s | 
| f660 |  65 74 54 6f 6f 6c 54 69 70 28 5f 28 27 49 6e 63    72 65 61 73 69 6e 67 20 74 68 69 73 20 76 61 6c  | etToolTip(_('Increasing.this.val | 
| f680 |  75 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72    20 6d 6f 72 65 20 65 64 69 74 69 6f 6e 73 20 62  | ue.will.consider.more.editions.b | 
| f6a0 |  75 74 20 61 6c 73 6f 20 69 6e 63 72 65 61 73 65    20 73 65 61 72 63 68 20 74 69 6d 65 73 2e 5c 6e  | ut.also.increase.search.times.\n | 
| f6c0 |  5c 6e 27 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | \n'............................. | 
| f6e0 |  20 27 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 72    65 61 73 65 20 74 68 65 20 70 6f 74 65 6e 74 69  | .'This.will.increase.the.potenti | 
| f700 |  61 6c 20 6c 69 6b 65 6c 69 68 6f 6f 64 20 6f 66    20 67 65 74 74 69 6e 67 20 61 20 6c 61 72 67 65  | al.likelihood.of.getting.a.large | 
| f720 |  72 20 63 6f 76 65 72 20 69 6d 61 67 65 5c 6e 27    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.cover.image\n'................ | 
| f740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62    75 74 20 64 6f 65 73 20 6e 6f 74 20 67 75 61 72  | ..............'but.does.not.guar | 
| f760 |  61 6e 74 65 65 20 69 74 2e 27 29 29 0a 20 20 20    20 20 20 20 20 6f 74 68 65 72 5f 67 72 6f 75 70  | antee.it.')).........other_group | 
| f780 |  5f 62 6f 78 5f 6c 61 79 6f 75 74 2e 61 64 64 57    69 64 67 65 74 28 6d 61 78 5f 6c 61 62 65 6c 29  | _box_layout.addWidget(max_label) | 
| f7a0 |  0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 61    78 5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e  | .........self.max_downloads_spin | 
| f7c0 |  20 3d 20 51 53 70 69 6e 42 6f 78 28 73 65 6c 66    29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d  | .=.QSpinBox(self).........self.m | 
| f7e0 |  61 78 5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69    6e 2e 73 65 74 4d 69 6e 69 6d 75 6d 28 31 29 0a  | ax_downloads_spin.setMinimum(1). | 
| f800 |  20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 61 78    5f 64 6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e 2e  | ........self.max_downloads_spin. | 
| f820 |  73 65 74 4d 61 78 69 6d 75 6d 28 35 29 0a 20 20    20 20 20 20 20 20 73 65 6c 66 2e 6d 61 78 5f 64  | setMaximum(5).........self.max_d | 
| f840 |  6f 77 6e 6c 6f 61 64 73 5f 73 70 69 6e 2e 73 65    74 50 72 6f 70 65 72 74 79 28 27 76 61 6c 75 65  | ownloads_spin.setProperty('value | 
| f860 |  27 2c 20 63 2e 67 65 74 28 4b 45 59 5f 4d 41 58    5f 44 4f 57 4e 4c 4f 41 44 53 2c 20 44 45 46 41  | ',.c.get(KEY_MAX_DOWNLOADS,.DEFA | 
| f880 |  55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53    5b 4b 45 59 5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41  | ULT_STORE_VALUES[KEY_MAX_DOWNLOA | 
| f8a0 |  44 53 5d 29 29 0a 20 20 20 20 20 20 20 20 6f 74    68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c 61  | DS])).........other_group_box_la | 
| f8c0 |  79 6f 75 74 2e 61 64 64 57 69 64 67 65 74 28 73    65 6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64  | yout.addWidget(self.max_download | 
| f8e0 |  73 5f 73 70 69 6e 29 0a 20 20 20 20 20 20 20 20    6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f  | s_spin).........other_group_box_ | 
| f900 |  6c 61 79 6f 75 74 2e 61 64 64 53 74 72 65 74 63    68 28 31 29 0a 20 20 20 20 20 20 20 20 6f 70 74  | layout.addStretch(1).........opt | 
| f920 |  69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c    61 79 6f 75 74 2e 61 64 64 4c 61 79 6f 75 74 28  | ions_group_box_layout.addLayout( | 
| f940 |  6f 74 68 65 72 5f 67 72 6f 75 70 5f 62 6f 78 5f    6c 61 79 6f 75 74 29 0a 0a 20 20 20 20 20 20 20  | other_group_box_layout)......... | 
| f960 |  20 73 65 6c 66 2e 61 6c 6c 5f 61 75 74 68 6f 72    73 5f 63 68 65 63 6b 62 6f 78 20 3d 20 51 43 68  | .self.all_authors_checkbox.=.QCh | 
| f980 |  65 63 6b 42 6f 78 28 5f 28 27 47 65 74 20 61 6c    6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67 20 61  | eckBox(_('Get.all.contributing.a | 
| f9a0 |  75 74 68 6f 72 73 20 28 65 2e 67 2e 20 65 64 69    74 6f 72 73 2c 20 69 6c 6c 75 73 74 72 61 74 6f  | uthors.(e.g..editors,.illustrato | 
| f9c0 |  72 73 20 65 74 63 29 27 29 2c 20 73 65 6c 66 29    0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 6c  | rs.etc)'),.self).........self.al | 
| f9e0 |  6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62    6f 78 2e 73 65 74 54 6f 6f 6c 54 69 70 28 5f 28  | l_authors_checkbox.setToolTip(_( | 
| fa00 |  27 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f    6e 20 69 73 20 63 68 65 63 6b 65 64 2c 20 61 6c  | 'When.this.option.is.checked,.al | 
| fa20 |  6c 20 61 75 74 68 6f 72 73 20 61 72 65 20 72 65    74 72 69 65 76 65 64 2e 5c 6e 5c 6e 27 0a 20 20  | l.authors.are.retrieved.\n\n'... | 
| fa40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| fa60 |  20 20 20 20 20 20 20 20 20 20 20 20 27 57 68 65    6e 20 75 6e 63 68 65 63 6b 65 64 20 28 64 65 66  | ............'When.unchecked.(def | 
| fa80 |  61 75 6c 74 29 20 6f 6e 6c 79 20 74 68 65 20 70    72 69 6d 61 72 79 20 61 75 74 68 6f 72 28 73 29  | ault).only.the.primary.author(s) | 
| faa0 |  20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 27 29    29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61  | .are.returned.')).........self.a | 
| fac0 |  6c 6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b    62 6f 78 2e 73 65 74 43 68 65 63 6b 65 64 28 63  | ll_authors_checkbox.setChecked(c | 
| fae0 |  2e 67 65 74 28 4b 45 59 5f 47 45 54 5f 41 4c 4c    5f 41 55 54 48 4f 52 53 2c 20 44 45 46 41 55 4c  | .get(KEY_GET_ALL_AUTHORS,.DEFAUL | 
| fb00 |  54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53 5b 4b    45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f  | T_STORE_VALUES[KEY_GET_ALL_AUTHO | 
| fb20 |  52 53 5d 29 29 0a 20 20 20 20 20 20 20 20 6f 70    74 69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f  | RS])).........options_group_box_ | 
| fb40 |  6c 61 79 6f 75 74 2e 61 64 64 57 69 64 67 65 74    28 73 65 6c 66 2e 61 6c 6c 5f 61 75 74 68 6f 72  | layout.addWidget(self.all_author | 
| fb60 |  73 5f 63 68 65 63 6b 62 6f 78 29 0a 20 20 20 20    20 20 20 20 0a 20 20 20 20 20 20 20 20 6f 70 74  | s_checkbox)..................opt | 
| fb80 |  69 6f 6e 73 5f 67 72 6f 75 70 5f 62 6f 78 5f 6c    61 79 6f 75 74 2e 61 64 64 53 74 72 65 74 63 68  | ions_group_box_layout.addStretch | 
| fba0 |  28 31 29 0a 0a 20 20 20 20 64 65 66 20 63 6f 6d    6d 69 74 28 73 65 6c 66 29 3a 0a 20 20 20 20 20  | (1)......def.commit(self):...... | 
| fbc0 |  20 20 20 44 65 66 61 75 6c 74 43 6f 6e 66 69 67    57 69 64 67 65 74 2e 63 6f 6d 6d 69 74 28 73 65  | ...DefaultConfigWidget.commit(se | 
| fbe0 |  6c 66 29 0a 20 20 20 20 20 20 20 20 6e 65 77 5f    70 72 65 66 73 20 3d 20 7b 7d 0a 20 20 20 20 20  | lf).........new_prefs.=.{}...... | 
| fc00 |  20 20 20 6e 65 77 5f 70 72 65 66 73 5b 4b 45 59    5f 4d 41 58 5f 44 4f 57 4e 4c 4f 41 44 53 5d 20  | ...new_prefs[KEY_MAX_DOWNLOADS]. | 
| fc20 |  3d 20 69 6e 74 28 75 6e 69 63 6f 64 65 28 73 65    6c 66 2e 6d 61 78 5f 64 6f 77 6e 6c 6f 61 64 73  | =.int(unicode(self.max_downloads | 
| fc40 |  5f 73 70 69 6e 2e 76 61 6c 75 65 28 29 29 29 0a    20 20 20 20 20 20 20 20 6e 65 77 5f 70 72 65 66  | _spin.value())).........new_pref | 
| fc60 |  73 5b 4b 45 59 5f 47 45 54 5f 41 4c 4c 5f 41 55    54 48 4f 52 53 5d 20 3d 20 73 65 6c 66 2e 61 6c  | s[KEY_GET_ALL_AUTHORS].=.self.al | 
| fc80 |  6c 5f 61 75 74 68 6f 72 73 5f 63 68 65 63 6b 62    6f 78 2e 63 68 65 63 6b 53 74 61 74 65 28 29 20  | l_authors_checkbox.checkState(). | 
| fca0 |  3d 3d 20 51 74 2e 43 68 65 63 6b 65 64 0a 20 20    20 20 20 20 20 20 70 6c 75 67 69 6e 5f 70 72 65  | ==.Qt.Checked.........plugin_pre | 
| fcc0 |  66 73 5b 53 54 4f 52 45 5f 4e 41 4d 45 5d 20 3d    20 6e 65 77 5f 70 72 65 66 73 0a 50 4b 03 04 14  | fs[STORE_NAME].=.new_prefs.PK... | 
| fce0 |  00 00 00 00 00 b9 89 ab 58 87 b1 dd 7e 85 60 00    00 85 60 00 00 09 00 00 00 77 6f 72 6b 65 72 2e  | ........X...~.`...`......worker. | 
| fd00 |  70 79 66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f    5f 20 69 6d 70 6f 72 74 20 75 6e 69 63 6f 64 65  | pyfrom.__future__.import.unicode | 
| fd20 |  5f 6c 69 74 65 72 61 6c 73 2c 20 64 69 76 69 73    69 6f 6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d  | _literals,.division,.absolute_im | 
| fd40 |  70 6f 72 74 2c 20 70 72 69 6e 74 5f 66 75 6e 63    74 69 6f 6e 0a 0a 5f 5f 6c 69 63 65 6e 73 65 5f  | port,.print_function..__license_ | 
| fd60 |  5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0a 5f    5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20 27  | _...=.'GPL.v3'.__copyright__.=.' | 
| fd80 |  32 30 31 31 2c 20 47 72 61 6e 74 20 44 72 61 6b    65 27 0a 0a 66 72 6f 6d 20 73 69 78 20 69 6d 70  | 2011,.Grant.Drake'..from.six.imp | 
| fda0 |  6f 72 74 20 74 65 78 74 5f 74 79 70 65 20 61 73    20 75 6e 69 63 6f 64 65 0a 66 72 6f 6d 20 73 69  | ort.text_type.as.unicode.from.si | 
| fdc0 |  78 2e 6d 6f 76 65 73 20 69 6d 70 6f 72 74 20 7a    69 70 0a 0a 69 6d 70 6f 72 74 20 73 6f 63 6b 65  | x.moves.import.zip..import.socke | 
| fde0 |  74 2c 20 72 65 2c 20 64 61 74 65 74 69 6d 65 2c    20 73 69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69  | t,.re,.datetime,.six.moves.urlli | 
| fe00 |  62 2e 70 61 72 73 65 0a 66 72 6f 6d 20 63 6f 6c    6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20  | b.parse.from.collections.import. | 
| fe20 |  4f 72 64 65 72 65 64 44 69 63 74 0a 66 72 6f 6d    20 74 68 72 65 61 64 69 6e 67 20 69 6d 70 6f 72  | OrderedDict.from.threading.impor | 
| fe40 |  74 20 54 68 72 65 61 64 0a 0a 66 72 6f 6d 20 6c    78 6d 6c 2e 68 74 6d 6c 20 69 6d 70 6f 72 74 20  | t.Thread..from.lxml.html.import. | 
| fe60 |  66 72 6f 6d 73 74 72 69 6e 67 2c 20 74 6f 73 74    72 69 6e 67 0a 0a 66 72 6f 6d 20 63 61 6c 69 62  | fromstring,.tostring..from.calib | 
| fe80 |  72 65 2e 65 62 6f 6f 6b 73 2e 6d 65 74 61 64 61    74 61 2e 62 6f 6f 6b 2e 62 61 73 65 20 69 6d 70  | re.ebooks.metadata.book.base.imp | 
| fea0 |  6f 72 74 20 4d 65 74 61 64 61 74 61 0a 66 72 6f    6d 20 63 61 6c 69 62 72 65 2e 6c 69 62 72 61 72  | ort.Metadata.from.calibre.librar | 
| fec0 |  79 2e 63 6f 6d 6d 65 6e 74 73 20 69 6d 70 6f 72    74 20 73 61 6e 69 74 69 7a 65 5f 63 6f 6d 6d 65  | y.comments.import.sanitize_comme | 
| fee0 |  6e 74 73 5f 68 74 6d 6c 0a 66 72 6f 6d 20 63 61    6c 69 62 72 65 2e 75 74 69 6c 73 2e 63 6c 65 61  | nts_html.from.calibre.utils.clea | 
| ff00 |  6e 74 65 78 74 20 69 6d 70 6f 72 74 20 63 6c 65    61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 0a 0a  | ntext.import.clean_ascii_chars.. | 
| ff20 |  69 6d 70 6f 72 74 20 63 61 6c 69 62 72 65 5f 70    6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e 6f  | import.calibre_plugins.barnes_no | 
| ff40 |  62 6c 65 2e 63 6f 6e 66 69 67 20 61 73 20 63 66    67 0a 0a 63 6c 61 73 73 20 57 6f 72 6b 65 72 28  | ble.config.as.cfg..class.Worker( | 
| ff60 |  54 68 72 65 61 64 29 3a 20 23 20 47 65 74 20 64    65 74 61 69 6c 73 0a 0a 20 20 20 20 27 27 27 0a  | Thread):.#.Get.details......'''. | 
| ff80 |  20 20 20 20 47 65 74 20 62 6f 6f 6b 20 64 65 74    61 69 6c 73 20 66 72 6f 6d 20 42 61 72 6e 65 73  | ....Get.book.details.from.Barnes | 
| ffa0 |  20 26 20 4e 6f 62 6c 65 20 62 6f 6f 6b 20 70 61    67 65 20 69 6e 20 61 20 73 65 70 61 72 61 74 65  | .&.Noble.book.page.in.a.separate | 
| ffc0 |  20 74 68 72 65 61 64 0a 20 20 20 20 27 27 27 0a    0a 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f  | .thread.....'''......def.__init_ | 
| ffe0 |  5f 28 73 65 6c 66 2c 20 75 72 6c 2c 20 72 65 73    75 6c 74 5f 71 75 65 75 65 2c 20 62 72 6f 77 73  | _(self,.url,.result_queue,.brows | 
| 10000 |  65 72 2c 20 6c 6f 67 2c 20 72 65 6c 65 76 61 6e    63 65 2c 20 70 6c 75 67 69 6e 2c 20 74 69 6d 65  | er,.log,.relevance,.plugin,.time | 
| 10020 |  6f 75 74 3d 32 30 29 3a 0a 20 20 20 20 20 20 20    20 54 68 72 65 61 64 2e 5f 5f 69 6e 69 74 5f 5f  | out=20):.........Thread.__init__ | 
| 10040 |  28 73 65 6c 66 29 0a 20 20 20 20 20 20 20 20 73    65 6c 66 2e 64 61 65 6d 6f 6e 20 3d 20 54 72 75  | (self).........self.daemon.=.Tru | 
| 10060 |  65 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 75    72 6c 2c 20 73 65 6c 66 2e 72 65 73 75 6c 74 5f  | e.........self.url,.self.result_ | 
| 10080 |  71 75 65 75 65 20 3d 20 75 72 6c 2c 20 72 65 73    75 6c 74 5f 71 75 65 75 65 0a 20 20 20 20 20 20  | queue.=.url,.result_queue....... | 
| 100a0 |  20 20 73 65 6c 66 2e 6c 6f 67 2c 20 73 65 6c 66    2e 74 69 6d 65 6f 75 74 20 3d 20 6c 6f 67 2c 20  | ..self.log,.self.timeout.=.log,. | 
| 100c0 |  74 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 20 20    73 65 6c 66 2e 72 65 6c 65 76 61 6e 63 65 2c 20  | timeout.........self.relevance,. | 
| 100e0 |  73 65 6c 66 2e 70 6c 75 67 69 6e 20 3d 20 72 65    6c 65 76 61 6e 63 65 2c 20 70 6c 75 67 69 6e 0a  | self.plugin.=.relevance,.plugin. | 
| 10100 |  20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 72 6f    77 73 65 72 20 3d 20 62 72 6f 77 73 65 72 2e 63  | ........self.browser.=.browser.c | 
| 10120 |  6c 6f 6e 65 5f 62 72 6f 77 73 65 72 28 29 0a 20    20 20 20 20 20 20 20 73 65 6c 66 2e 62 72 6f 77  | lone_browser().........self.brow | 
| 10140 |  73 65 72 2e 73 65 74 5f 63 75 72 72 65 6e 74 5f    68 65 61 64 65 72 28 27 41 63 63 65 70 74 27 2c  | ser.set_current_header('Accept', | 
| 10160 |  27 2a 2f 2a 27 29 0a 20 20 20 20 20 20 20 20 73    65 6c 66 2e 62 72 6f 77 73 65 72 2e 73 65 74 5f  | '*/*').........self.browser.set_ | 
| 10180 |  63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28 27    41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 27  | current_header('Accept-Encoding' | 
| 101a0 |  2c 27 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 2c    20 62 72 27 29 0a 20 20 20 20 20 20 20 20 73 65  | ,'gzip,.deflate,.br').........se | 
| 101c0 |  6c 66 2e 63 6f 76 65 72 5f 75 72 6c 20 3d 20 73    65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62 6c 65  | lf.cover_url.=.self.barnes_noble | 
| 101e0 |  5f 69 64 20 3d 20 73 65 6c 66 2e 69 73 62 6e 20    3d 20 4e 6f 6e 65 0a 0a 20 20 20 20 64 65 66 20  | _id.=.self.isbn.=.None......def. | 
| 10200 |  72 75 6e 28 73 65 6c 66 29 3a 0a 20 20 20 20 20    20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20  | run(self):.........try:......... | 
| 10220 |  20 20 20 20 73 65 6c 66 2e 67 65 74 5f 64 65 74    61 69 6c 73 28 29 0a 20 20 20 20 20 20 20 20 65  | ....self.get_details().........e | 
| 10240 |  78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20    20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65  | xcept:.............self.log.exce | 
| 10260 |  70 74 69 6f 6e 28 27 67 65 74 5f 64 65 74 61 69    6c 73 20 66 61 69 6c 65 64 20 66 6f 72 20 75 72  | ption('get_details.failed.for.ur | 
| 10280 |  6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29    0a 0a 20 20 20 20 64 65 66 20 67 65 74 5f 64 65  | l:.%r'%self.url)......def.get_de | 
| 102a0 |  74 61 69 6c 73 28 73 65 6c 66 29 3a 0a 20 20 20    20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20  | tails(self):.........try:....... | 
| 102c0 |  20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 69    6e 66 6f 28 27 42 26 4e 20 75 72 6c 3a 20 25 73  | ......self.log.info('B&N.url:.%s | 
| 102e0 |  27 25 73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 72 61 77 20 3d 20 73 65  | '%self.url).............raw.=.se | 
| 10300 |  6c 66 2e 62 72 6f 77 73 65 72 2e 6f 70 65 6e 5f    6e 6f 76 69 73 69 74 28 73 65 6c 66 2e 75 72 6c  | lf.browser.open_novisit(self.url | 
| 10320 |  2c 20 74 69 6d 65 6f 75 74 3d 73 65 6c 66 2e 74    69 6d 65 6f 75 74 29 2e 72 65 61 64 28 29 2e 73  | ,.timeout=self.timeout).read().s | 
| 10340 |  74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 65    78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20  | trip().........except.Exception. | 
| 10360 |  61 73 20 65 3a 0a 20 20 20 20 20 20 20 20 20 20    20 20 69 66 20 63 61 6c 6c 61 62 6c 65 28 67 65  | as.e:.............if.callable(ge | 
| 10380 |  74 61 74 74 72 28 65 2c 20 27 67 65 74 63 6f 64    65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e 64 20 5c  | tattr(e,.'getcode',.None)).and.\ | 
| 103a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 65 2e 67 65 74 63 6f 64 65 28 29  | .....................e.getcode() | 
| 103c0 |  20 3d 3d 20 34 30 34 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f  | .==.404:.................self.lo | 
| 103e0 |  67 2e 65 72 72 6f 72 28 27 55 52 4c 20 6d 61 6c    66 6f 72 6d 65 64 3a 20 25 72 27 25 73 65 6c 66  | g.error('URL.malformed:.%r'%self | 
| 10400 |  2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20  | .url).................return.... | 
| 10420 |  20 20 20 20 20 20 20 20 20 61 74 74 72 20 3d 20    67 65 74 61 74 74 72 28 65 2c 20 27 61 72 67 73  | .........attr.=.getattr(e,.'args | 
| 10440 |  27 2c 20 5b 4e 6f 6e 65 5d 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 61 74 74 72 20 3d 20 61 74  | ',.[None]).............attr.=.at | 
| 10460 |  74 72 20 69 66 20 61 74 74 72 20 65 6c 73 65 20    5b 4e 6f 6e 65 5d 0a 20 20 20 20 20 20 20 20 20  | tr.if.attr.else.[None].......... | 
| 10480 |  20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65    28 61 74 74 72 5b 30 5d 2c 20 73 6f 63 6b 65 74  | ...if.isinstance(attr[0],.socket | 
| 104a0 |  2e 74 69 6d 65 6f 75 74 29 3a 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20 3d  | .timeout):.................msg.= | 
| 104c0 |  20 27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65    20 74 69 6d 65 64 20 6f 75 74 2e 20 54 72 79 20  | .'Barnes.&.Noble.timed.out..Try. | 
| 104e0 |  61 67 61 69 6e 20 6c 61 74 65 72 2e 27 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65  | again.later.'.................se | 
| 10500 |  6c 66 2e 6c 6f 67 2e 65 72 72 6f 72 28 6d 73 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c  | lf.log.error(msg).............el | 
| 10520 |  73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6d 73 67 20 3d 20 27 46 61 69 6c 65  | se:.................msg.=.'Faile | 
| 10540 |  64 20 74 6f 20 6d 61 6b 65 20 64 65 74 61 69 6c    73 20 71 75 65 72 79 3a 20 25 72 27 25 73 65 6c  | d.to.make.details.query:.%r'%sel | 
| 10560 |  66 2e 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65  | f.url.................self.log.e | 
| 10580 |  78 63 65 70 74 69 6f 6e 28 6d 73 67 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  | xception(msg).............return | 
| 105a0 |  0a 0a 20 20 20 20 20 20 20 20 23 6f 70 65 6e 28    27 45 3a 5c 5c 62 61 72 6e 65 73 6e 6f 62 6c 65  | ..........#open('E:\\barnesnoble | 
| 105c0 |  2e 68 74 6d 6c 27 2c 20 27 77 62 27 29 2e 77 72    69 74 65 28 72 61 77 29 0a 20 20 20 20 20 20 20  | .html',.'wb').write(raw)........ | 
| 105e0 |  20 72 61 77 20 3d 20 72 61 77 2e 64 65 63 6f 64    65 28 27 75 74 66 2d 38 27 2c 20 65 72 72 6f 72  | .raw.=.raw.decode('utf-8',.error | 
| 10600 |  73 3d 27 72 65 70 6c 61 63 65 27 29 0a 0a 20 20    20 20 20 20 20 20 69 66 20 27 3c 74 69 74 6c 65  | s='replace')..........if.'<title | 
| 10620 |  3e 34 30 34 20 2d 20 27 20 69 6e 20 72 61 77 3a    0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c  | >404.-.'.in.raw:.............sel | 
| 10640 |  66 2e 6c 6f 67 2e 65 72 72 6f 72 28 27 55 52 4c    20 6d 61 6c 66 6f 72 6d 65 64 3a 20 25 72 27 25  | f.log.error('URL.malformed:.%r'% | 
| 10660 |  73 65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 0a 0a 20 20  | self.url).............return.... | 
| 10680 |  20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20    20 20 20 20 20 20 20 72 6f 6f 74 20 3d 20 66 72  | ......try:.............root.=.fr | 
| 106a0 |  6f 6d 73 74 72 69 6e 67 28 63 6c 65 61 6e 5f 61    73 63 69 69 5f 63 68 61 72 73 28 72 61 77 29 29  | omstring(clean_ascii_chars(raw)) | 
| 106c0 |  0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a    0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67  | .........except:.............msg | 
| 106e0 |  20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 70 61    72 73 65 20 42 61 72 6e 65 73 20 26 20 4e 6f 62  | .=.'Failed.to.parse.Barnes.&.Nob | 
| 10700 |  6c 65 20 64 65 74 61 69 6c 73 20 70 61 67 65 3a    20 25 72 27 25 73 65 6c 66 2e 75 72 6c 0a 20 20  | le.details.page:.%r'%self.url... | 
| 10720 |  20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c    6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 6d 73 67  | ..........self.log.exception(msg | 
| 10740 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65    74 75 72 6e 0a 0a 20 20 20 20 20 20 20 20 73 65  | ).............return..........se | 
| 10760 |  6c 66 2e 70 61 72 73 65 5f 64 65 74 61 69 6c 73    28 72 6f 6f 74 29 0a 0a 20 20 20 20 64 65 66 20  | lf.parse_details(root)......def. | 
| 10780 |  70 61 72 73 65 5f 64 65 74 61 69 6c 73 28 73 65    6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20 20  | parse_details(self,.root):...... | 
| 107a0 |  20 20 20 66 6f 72 20 65 20 69 6e 20 72 6f 6f 74    2e 69 74 65 72 28 22 73 70 61 6e 22 29 3a 0a 20  | ...for.e.in.root.iter("span"):.. | 
| 107c0 |  20 20 20 20 20 20 20 20 20 20 20 69 66 20 22 64    69 73 70 6c 61 79 3a 6e 6f 6e 65 22 20 69 6e 20  | ...........if."display:none".in. | 
| 107e0 |  65 2e 67 65 74 28 22 73 74 79 6c 65 22 2c 20 22    22 29 2e 72 65 70 6c 61 63 65 28 22 20 22 2c 20  | e.get("style",."").replace(".",. | 
| 10800 |  22 22 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 65 2e 74 65 78 74 20 3d 20 22 22 0a  | ""):................e.text.=."". | 
| 10820 |  0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 62 61 72 6e 65 73  | .........try:.............barnes | 
| 10840 |  5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 73 65 6c 66    2e 70 61 72 73 65 5f 62 61 72 6e 65 73 5f 6e 6f  | _noble_id.=.self.parse_barnes_no | 
| 10860 |  62 6c 65 5f 69 64 28 73 65 6c 66 2e 75 72 6c 29    0a 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a  | ble_id(self.url).........except: | 
| 10880 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c    66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28  | .............self.log.exception( | 
| 108a0 |  27 45 72 72 6f 72 20 70 61 72 73 69 6e 67 20 42    61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20 69 64  | 'Error.parsing.Barnes.&.Noble.id | 
| 108c0 |  20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73 65    6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20  | .for.url:.%r'%self.url)......... | 
| 108e0 |  20 20 20 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65    5f 69 64 20 3d 20 4e 6f 6e 65 0a 0a 20 20 20 20  | ....barnes_noble_id.=.None...... | 
| 10900 |  20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 74 69 74 6c 65 2c 20 73 65 72  | ....try:.............(title,.ser | 
| 10920 |  69 65 73 2c 20 73 65 72 69 65 73 5f 69 6e 64 65    78 29 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f  | ies,.series_index).=.self.parse_ | 
| 10940 |  74 69 74 6c 65 5f 73 65 72 69 65 73 28 72 6f 6f    74 29 0a 20 20 20 20 20 20 20 20 65 78 63 65 70  | title_series(root).........excep | 
| 10960 |  74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73    65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74 69 6f  | t:.............self.log.exceptio | 
| 10980 |  6e 28 27 45 72 72 6f 72 20 70 61 72 73 69 6e 67    20 74 69 74 6c 65 20 61 6e 64 20 73 65 72 69 65  | n('Error.parsing.title.and.serie | 
| 109a0 |  73 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73    65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20  | s.for.url:.%r'%self.url)........ | 
| 109c0 |  20 20 20 20 20 74 69 74 6c 65 20 3d 20 73 65 72    69 65 73 20 3d 20 73 65 72 69 65 73 5f 69 6e 64  | .....title.=.series.=.series_ind | 
| 109e0 |  65 78 20 3d 20 4e 6f 6e 65 0a 0a 20 20 20 20 20    20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20 20  | ex.=.None..........try:......... | 
| 10a00 |  20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 73 65    6c 66 2e 70 61 72 73 65 5f 61 75 74 68 6f 72 73  | ....authors.=.self.parse_authors | 
| 10a20 |  28 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 65    78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20  | (root).........except:.......... | 
| 10a40 |  20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65    70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72  | ...self.log.exception('Error.par | 
| 10a60 |  73 69 6e 67 20 61 75 74 68 6f 72 73 20 66 6f 72    20 75 72 6c 3a 20 25 72 27 25 73 65 6c 66 2e 75  | sing.authors.for.url:.%r'%self.u | 
| 10a80 |  72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    61 75 74 68 6f 72 73 20 3d 20 5b 5d 0a 0a 20 20  | rl).............authors.=.[].... | 
| 10aa0 |  20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69 74    6c 65 20 6f 72 20 6e 6f 74 20 61 75 74 68 6f 72  | ......if.not.title.or.not.author | 
| 10ac0 |  73 20 6f 72 20 6e 6f 74 20 62 61 72 6e 65 73 5f    6e 6f 62 6c 65 5f 69 64 3a 0a 20 20 20 20 20 20  | s.or.not.barnes_noble_id:....... | 
| 10ae0 |  20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65    72 72 6f 72 28 27 43 6f 75 6c 64 20 6e 6f 74 20  | ......self.log.error('Could.not. | 
| 10b00 |  66 69 6e 64 20 74 69 74 6c 65 2f 61 75 74 68 6f    72 73 2f 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c  | find.title/authors/Barnes.&.Nobl | 
| 10b20 |  65 20 69 64 20 66 6f 72 20 25 72 27 25 73 65 6c    66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20  | e.id.for.%r'%self.url).......... | 
| 10b40 |  20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 72 72 6f    72 28 27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c  | ...self.log.error('Barnes.&.Nobl | 
| 10b60 |  65 3a 20 25 72 20 54 69 74 6c 65 3a 20 25 72 20    41 75 74 68 6f 72 73 3a 20 25 72 27 25 28 62 61  | e:.%r.Title:.%r.Authors:.%r'%(ba | 
| 10b80 |  72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 74    69 74 6c 65 2c 0a 20 20 20 20 20 20 20 20 20 20  | rnes_noble_id,.title,........... | 
| 10ba0 |  20 20 20 20 20 20 61 75 74 68 6f 72 73 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75  | ......authors)).............retu | 
| 10bc0 |  72 6e 0a 0a 20 20 20 20 20 20 20 20 6d 69 20 3d    20 4d 65 74 61 64 61 74 61 28 74 69 74 6c 65 2c  | rn..........mi.=.Metadata(title, | 
| 10be0 |  20 61 75 74 68 6f 72 73 29 0a 20 20 20 20 20 20    20 20 69 66 20 73 65 72 69 65 73 3a 0a 20 20 20  | .authors).........if.series:.... | 
| 10c00 |  20 20 20 20 20 20 20 20 20 6d 69 2e 73 65 72 69    65 73 20 3d 20 73 65 72 69 65 73 0a 20 20 20 20  | .........mi.series.=.series..... | 
| 10c20 |  20 20 20 20 20 20 20 20 6d 69 2e 73 65 72 69 65    73 5f 69 6e 64 65 78 20 3d 20 73 65 72 69 65 73  | ........mi.series_index.=.series | 
| 10c40 |  5f 69 6e 64 65 78 0a 20 20 20 20 20 20 20 20 6d    69 2e 73 65 74 5f 69 64 65 6e 74 69 66 69 65 72  | _index.........mi.set_identifier | 
| 10c60 |  28 27 62 61 72 6e 65 73 6e 6f 62 6c 65 27 2c 20    62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 29  | ('barnesnoble',.barnes_noble_id) | 
| 10c80 |  0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 62 61    72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20  | .........self.barnes_noble_id.=. | 
| 10ca0 |  62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 0a    0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20  | barnes_noble_id..........try:... | 
| 10cc0 |  20 20 20 20 20 20 20 20 20 20 69 73 62 6e 20 3d    20 73 65 6c 66 2e 70 61 72 73 65 5f 69 73 62 6e  | ..........isbn.=.self.parse_isbn | 
| 10ce0 |  28 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 69 66 20 69 73 62 6e 3a 0a 20 20 20 20  | (root).............if.isbn:..... | 
| 10d00 |  20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66    2e 69 73 62 6e 20 3d 20 6d 69 2e 69 73 62 6e 20  | ............self.isbn.=.mi.isbn. | 
| 10d20 |  3d 20 69 73 62 6e 0a 20 20 20 20 20 20 20 20 65    78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 20  | =.isbn.........except:.......... | 
| 10d40 |  20 20 20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65    70 74 69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72  | ...self.log.exception('Error.par | 
| 10d60 |  73 69 6e 67 20 49 53 42 4e 20 66 6f 72 20 75 72    6c 3a 20 25 72 27 25 73 65 6c 66 2e 75 72 6c 29  | sing.ISBN.for.url:.%r'%self.url) | 
| 10d80 |  0a 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 6d 69 2e 72 61  | ..........try:.............mi.ra | 
| 10da0 |  74 69 6e 67 20 3d 20 73 65 6c 66 2e 70 61 72 73    65 5f 72 61 74 69 6e 67 28 72 6f 6f 74 29 0a 20  | ting.=.self.parse_rating(root).. | 
| 10dc0 |  20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | .......except:.............self. | 
| 10de0 |  6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45    72 72 6f 72 20 70 61 72 73 69 6e 67 20 72 61 74  | log.exception('Error.parsing.rat | 
| 10e00 |  69 6e 67 73 20 66 6f 72 20 75 72 6c 3a 20 25 72    27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20  | ings.for.url:.%r'%self.url)..... | 
| 10e20 |  20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 6d 69 2e 63 6f 6d 6d 65 6e 74  | .....try:.............mi.comment | 
| 10e40 |  73 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 63    6f 6d 6d 65 6e 74 73 28 72 6f 6f 74 29 0a 20 20  | s.=.self.parse_comments(root)... | 
| 10e60 |  20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c  | ......except:.............self.l | 
| 10e80 |  6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72    72 6f 72 20 70 61 72 73 69 6e 67 20 63 6f 6d 6d  | og.exception('Error.parsing.comm | 
| 10ea0 |  65 6e 74 73 20 66 6f 72 20 75 72 6c 3a 20 25 72    27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20  | ents.for.url:.%r'%self.url)..... | 
| 10ec0 |  20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 73 65 6c 66 2e 63 6f 76 65 72  | .....try:.............self.cover | 
| 10ee0 |  5f 75 72 6c 20 3d 20 73 65 6c 66 2e 70 61 72 73    65 5f 63 6f 76 65 72 28 72 6f 6f 74 29 0a 20 20  | _url.=.self.parse_cover(root)... | 
| 10f00 |  20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c  | ......except:.............self.l | 
| 10f20 |  6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45 72    72 6f 72 20 70 61 72 73 69 6e 67 20 63 6f 76 65  | og.exception('Error.parsing.cove | 
| 10f40 |  72 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73    65 6c 66 2e 75 72 6c 29 0a 20 20 20 20 20 20 20  | r.for.url:.%r'%self.url)........ | 
| 10f60 |  20 6d 69 2e 68 61 73 5f 63 6f 76 65 72 20 3d 20    62 6f 6f 6c 28 73 65 6c 66 2e 63 6f 76 65 72 5f  | .mi.has_cover.=.bool(self.cover_ | 
| 10f80 |  75 72 6c 29 0a 20 20 20 20 20 20 20 20 6d 69 2e    63 6f 76 65 72 5f 75 72 6c 20 3d 20 73 65 6c 66  | url).........mi.cover_url.=.self | 
| 10fa0 |  2e 63 6f 76 65 72 5f 75 72 6c 20 23 20 54 68 69    73 20 69 73 20 70 75 72 65 6c 79 20 73 6f 20 77  | .cover_url.#.This.is.purely.so.w | 
| 10fc0 |  65 20 63 61 6e 20 72 75 6e 20 61 20 74 65 73 74    20 66 6f 72 20 69 74 21 21 21 0a 0a 20 20 20 20  | e.can.run.a.test.for.it!!!...... | 
| 10fe0 |  20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 6d 69 2e 70 75 62 6c 69 73 68 65  | ....try:.............mi.publishe | 
| 11000 |  72 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f 70    75 62 6c 69 73 68 65 72 28 72 6f 6f 74 29 0a 20  | r.=.self.parse_publisher(root).. | 
| 11020 |  20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e  | .......except:.............self. | 
| 11040 |  6c 6f 67 2e 65 78 63 65 70 74 69 6f 6e 28 27 45    72 72 6f 72 20 70 61 72 73 69 6e 67 20 70 75 62  | log.exception('Error.parsing.pub | 
| 11060 |  6c 69 73 68 65 72 20 66 6f 72 20 75 72 6c 3a 20    25 72 27 25 73 65 6c 66 2e 75 72 6c 29 0a 0a 20  | lisher.for.url:.%r'%self.url)... | 
| 11080 |  20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 6d 69 2e 70 75 62 64 61  | .......try:.............mi.pubda | 
| 110a0 |  74 65 20 3d 20 73 65 6c 66 2e 70 61 72 73 65 5f    70 75 62 6c 69 73 68 65 64 5f 64 61 74 65 28 72  | te.=.self.parse_published_date(r | 
| 110c0 |  6f 6f 74 29 0a 20 20 20 20 20 20 20 20 65 78 63    65 70 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20  | oot).........except:............ | 
| 110e0 |  20 73 65 6c 66 2e 6c 6f 67 2e 65 78 63 65 70 74    69 6f 6e 28 27 45 72 72 6f 72 20 70 61 72 73 69  | .self.log.exception('Error.parsi | 
| 11100 |  6e 67 20 70 75 62 6c 69 73 68 65 64 20 64 61 74    65 20 66 6f 72 20 75 72 6c 3a 20 25 72 27 25 73  | ng.published.date.for.url:.%r'%s | 
| 11120 |  65 6c 66 2e 75 72 6c 29 0a 0a 20 20 20 20 20 20    20 20 6d 69 2e 73 6f 75 72 63 65 5f 72 65 6c 65  | elf.url)..........mi.source_rele | 
| 11140 |  76 61 6e 63 65 20 3d 20 73 65 6c 66 2e 72 65 6c    65 76 61 6e 63 65 0a 0a 20 20 20 20 20 20 20 20  | vance.=.self.relevance.......... | 
| 11160 |  69 66 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e    6f 62 6c 65 5f 69 64 3a 0a 20 20 20 20 20 20 20  | if.self.barnes_noble_id:........ | 
| 11180 |  20 20 20 20 20 69 66 20 73 65 6c 66 2e 69 73 62    6e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....if.self.isbn:.............. | 
| 111a0 |  20 20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 2e 63    61 63 68 65 5f 69 73 62 6e 5f 74 6f 5f 69 64 65  | ...self.plugin.cache_isbn_to_ide | 
| 111c0 |  6e 74 69 66 69 65 72 28 73 65 6c 66 2e 69 73 62    6e 2c 20 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e  | ntifier(self.isbn,.self.barnes_n | 
| 111e0 |  6f 62 6c 65 5f 69 64 29 0a 0a 20 20 20 20 20 20    20 20 73 65 6c 66 2e 70 6c 75 67 69 6e 2e 63 6c  | oble_id)..........self.plugin.cl | 
| 11200 |  65 61 6e 5f 64 6f 77 6e 6c 6f 61 64 65 64 5f 6d    65 74 61 64 61 74 61 28 6d 69 29 0a 20 20 20 20  | ean_downloaded_metadata(mi)..... | 
| 11220 |  20 20 20 20 73 65 6c 66 2e 72 65 73 75 6c 74 5f    71 75 65 75 65 2e 70 75 74 28 6d 69 29 0a 0a 20  | ....self.result_queue.put(mi)... | 
| 11240 |  20 20 20 64 65 66 20 70 61 72 73 65 5f 62 61 72    6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 28 73 65 6c  | ...def.parse_barnes_noble_id(sel | 
| 11260 |  66 2c 20 75 72 6c 29 3a 0a 20 20 20 20 20 20 20    20 72 65 73 75 6c 74 20 3d 20 72 65 2e 73 65 61  | f,.url):.........result.=.re.sea | 
| 11280 |  72 63 68 28 27 62 61 72 6e 65 73 61 6e 64 6e 6f    62 6c 65 2e 63 6f 6d 2f 2e 2a 2f 28 5c 64 2b 29  | rch('barnesandnoble.com/.*/(\d+) | 
| 112a0 |  27 2c 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20    69 66 20 72 65 73 75 6c 74 3a 0a 20 20 20 20 20  | ',.url).........if.result:...... | 
| 112c0 |  20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65    73 75 6c 74 2e 67 72 6f 75 70 73 28 30 29 5b 30  | .......return.result.groups(0)[0 | 
| 112e0 |  5d 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65    5f 73 65 72 69 65 73 28 73 65 6c 66 2c 20 72 6f  | ]......def.parse_series(self,.ro | 
| 11300 |  6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65 74    61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74  | ot):.........detail_nodes.=.root | 
| 11320 |  2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69    64 3d 22 50 72 6f 64 75 63 74 44 65 74 61 69 6c  | .xpath('//div[@id="ProductDetail | 
| 11340 |  73 54 61 62 22 5d 2f 74 61 62 6c 65 2f 2f 74 72    27 29 0a 20 20 20 20 20 20 20 20 69 66 20 64 65  | sTab"]/table//tr').........if.de | 
| 11360 |  74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 66 6f 72 20 74 68 2c 74  | tail_nodes:.............for.th,t | 
| 11380 |  64 20 69 6e 20 7a 69 70 28 64 65 74 61 69 6c 5f    6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27  | d.in.zip(detail_nodes[0].xpath(' | 
| 113a0 |  2f 2f 74 68 27 29 2c 20 64 65 74 61 69 6c 5f 6e    6f 64 65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f  | //th'),.detail_nodes[0].xpath('/ | 
| 113c0 |  2f 74 64 27 29 29 3a 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 69 66 20 74 68 2e 74 65  | /td')):.................if.th.te | 
| 113e0 |  78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73 74 72    69 70 28 29 2e 73 74 61 72 74 73 77 69 74 68 28  | xt_content().strip().startswith( | 
| 11400 |  27 53 65 72 69 65 73 27 29 3a 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73  | 'Series'):.....................s | 
| 11420 |  65 72 69 65 73 5f 69 6e 66 6f 20 3d 20 74 64 2e    74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e 73  | eries_info.=.td.text_content().s | 
| 11440 |  74 72 69 70 28 29 2e 72 65 70 6c 61 63 65 28 27    5c 6e 27 2c 27 27 29 2e 73 70 6c 69 74 28 27 2c  | trip().replace('\n','').split(', | 
| 11460 |  20 23 27 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 73 65 72 69 65 73 5f  | .#').....................series_ | 
| 11480 |  69 6e 64 65 78 20 3d 20 4e 6f 6e 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | index.=.None.................... | 
| 114a0 |  20 69 66 20 6c 65 6e 28 73 65 72 69 65 73 5f 69    6e 66 6f 29 20 3e 20 31 3a 0a 20 20 20 20 20 20  | .if.len(series_info).>.1:....... | 
| 114c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 73 65 72 69 65 73 5f 69 6e 64 65 78 20 3d  | ..................series_index.= | 
| 114e0 |  20 66 6c 6f 61 74 28 73 65 72 69 65 73 5f 69 6e    66 6f 5b 31 5d 29 0a 20 20 20 20 20 20 20 20 20  | .float(series_info[1]).......... | 
| 11500 |  20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 65    73 5f 6e 61 6d 65 20 3d 20 73 65 72 69 65 73 5f  | ...........series_name.=.series_ | 
| 11520 |  69 6e 66 6f 5b 30 5d 2e 73 74 72 69 70 28 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | info[0].strip()................. | 
| 11540 |  20 20 20 20 72 65 74 75 72 6e 20 28 73 65 72 69    65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f  | ....return.(series_name,.series_ | 
| 11560 |  69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 28 4e 6f 6e 65 2c 20 4e 6f 6e  | index).........return.(None,.Non | 
| 11580 |  65 29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73    65 5f 74 69 74 6c 65 5f 73 65 72 69 65 73 28 73  | e)......def.parse_title_series(s | 
| 115a0 |  65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20    20 20 20 20 74 69 74 6c 65 5f 6e 6f 64 65 20 3d  | elf,.root):.........title_node.= | 
| 115c0 |  20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 68    65 61 64 65 72 5b 40 69 64 3d 22 70 72 6f 64 53  | .root.xpath('//header[@id="prodS | 
| 115e0 |  75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d 2f    2f 68 31 5b 40 69 74 65 6d 70 72 6f 70 3d 22 6e  | ummary-header"]//h1[@itemprop="n | 
| 11600 |  61 6d 65 22 5d 27 29 0a 20 20 20 20 20 20 20 20    69 66 20 6e 6f 74 20 74 69 74 6c 65 5f 6e 6f 64  | ame"]').........if.not.title_nod | 
| 11620 |  65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 74    69 74 6c 65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74  | e:.............title_node.=.root | 
| 11640 |  2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69    64 3d 22 70 72 6f 64 75 63 74 2d 74 69 74 6c 65  | .xpath('//div[@id="product-title | 
| 11660 |  2d 31 22 5d 2f 68 31 5b 40 69 74 65 6d 70 72 6f    70 3d 22 6e 61 6d 65 22 5d 27 29 0a 20 20 20 20  | -1"]/h1[@itemprop="name"]')..... | 
| 11680 |  20 20 20 20 69 66 20 6e 6f 74 20 74 69 74 6c 65    5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20  | ....if.not.title_node:.......... | 
| 116a0 |  20 20 20 23 20 50 72 65 20 76 31 2e 32 20 77 65    62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20  | ...#.Pre.v1.2.website.format.... | 
| 116c0 |  20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 6e    6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68  | .........title_node.=.root.xpath | 
| 116e0 |  28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22    77 2d 62 6f 78 20 77 67 74 2d 70 72 6f 64 75 63  | ('//div[@class="w-box.wgt-produc | 
| 11700 |  74 2d 68 65 61 64 69 6e 67 22 5d 2f 68 31 27 29    0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20  | t-heading"]/h1').........if.not. | 
| 11720 |  74 69 74 6c 65 5f 6e 6f 64 65 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 23 20 68 74 74 70 3a 2f  | title_node:.............#.http:/ | 
| 11740 |  2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f    62 6c 65 2e 63 6f 6d 2f 77 2f 63 2d 70 72 6f 67  | /www.barnesandnoble.com/w/c-prog | 
| 11760 |  72 61 6d 6d 69 6e 67 2d 6c 61 6e 67 75 61 67 65    2d 62 72 69 61 6e 2d 77 2d 6b 65 72 6e 69 67 68  | ramming-language-brian-w-kernigh | 
| 11780 |  61 6e 2f 31 30 30 30 30 35 35 31 37 35 0a 20 20    20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f  | an/1000055175.............title_ | 
| 117a0 |  6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74    68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d  | node.=.root.xpath('//div[@class= | 
| 117c0 |  22 77 2d 62 6f 78 20 77 67 74 2d 70 72 6f 64 75    63 74 54 69 74 6c 65 22 5d 2f 68 31 27 29 0a 20  | "w-box.wgt-productTitle"]/h1').. | 
| 117e0 |  20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 74 69    74 6c 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20  | .......if.not.title_node:....... | 
| 11800 |  20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 28 27    41 62 6f 72 74 69 6e 67 20 73 65 61 72 63 68 20  | ......self.log('Aborting.search. | 
| 11820 |  66 6f 72 20 74 69 74 6c 65 27 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28  | for.title').............return.( | 
| 11840 |  4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65    29 0a 20 20 20 20 20 20 20 20 74 69 74 6c 65 5f  | None,.None,.None).........title_ | 
| 11860 |  74 65 78 74 20 3d 20 74 69 74 6c 65 5f 6e 6f 64    65 5b 30 5d 2e 74 65 78 74 2e 73 74 72 69 70 28  | text.=.title_node[0].text.strip( | 
| 11880 |  29 0a 20 20 20 20 20 20 20 20 23 73 65 6c 66 2e    6c 6f 67 28 27 46 6f 75 6e 64 20 74 69 74 6c 65  | ).........#self.log('Found.title | 
| 118a0 |  20 74 65 78 74 3a 27 2c 74 69 74 6c 65 5f 74 65    78 74 29 0a 20 20 20 20 20 20 20 20 69 66 20 74  | .text:',title_text).........if.t | 
| 118c0 |  69 74 6c 65 5f 74 65 78 74 2e 65 6e 64 73 77 69    74 68 28 27 2f 27 29 3a 0a 20 20 20 20 20 20 20  | itle_text.endswith('/'):........ | 
| 118e0 |  20 20 20 20 20 74 69 74 6c 65 5f 74 65 78 74 20    3d 20 74 69 74 6c 65 5f 74 65 78 74 5b 3a 2d 31  | .....title_text.=.title_text[:-1 | 
| 11900 |  5d 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20    20 20 23 20 41 6c 73 6f 20 73 74 72 69 70 20 6f  | ].strip().........#.Also.strip.o | 
| 11920 |  66 66 20 61 6e 79 20 4e 4f 4f 4b 20 42 6f 6f 6b    20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65 20  | ff.any.NOOK.Book.stuff.from.the. | 
| 11940 |  74 69 74 6c 65 0a 20 20 20 20 20 20 20 20 74 69    74 6c 65 5f 74 65 78 74 20 3d 20 74 69 74 6c 65  | title.........title_text.=.title | 
| 11960 |  5f 74 65 78 74 2e 72 65 70 6c 61 63 65 28 27 5b    4e 4f 4f 4b 20 42 6f 6f 6b 5d 27 2c 27 27 29 2e  | _text.replace('[NOOK.Book]',''). | 
| 11980 |  73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20    69 66 20 74 69 74 6c 65 5f 74 65 78 74 2e 66 69  | strip().........if.title_text.fi | 
| 119a0 |  6e 64 28 27 28 27 29 20 3d 3d 20 2d 31 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 23 73 65 6c 66  | nd('(').==.-1:.............#self | 
| 119c0 |  2e 6c 6f 67 28 27 54 69 74 6c 65 20 68 61 73 20    6e 6f 20 70 61 72 65 6e 74 68 65 73 69 73 20 66  | .log('Title.has.no.parenthesis.f | 
| 119e0 |  6f 72 20 73 65 72 69 65 73 20 73 6f 20 64 6f 6e    65 3a 27 2c 74 69 74 6c 65 5f 74 65 78 74 29 0a  | or.series.so.done:',title_text). | 
| 11a00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 72    69 65 73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73  | ............(series_name,.series | 
| 11a20 |  5f 69 6e 64 65 78 29 20 3d 20 73 65 6c 66 2e 70    61 72 73 65 5f 73 65 72 69 65 73 28 72 6f 6f 74  | _index).=.self.parse_series(root | 
| 11a40 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 73    65 6c 66 2e 6c 6f 67 28 27 53 65 72 69 65 73 20  | ).............#self.log('Series. | 
| 11a60 |  69 6e 66 6f 20 72 65 74 72 69 65 76 65 64 20 73    65 70 61 72 61 74 65 6c 79 20 61 73 20 66 6f 6c  | info.retrieved.separately.as.fol | 
| 11a80 |  6c 6f 77 73 3a 27 2c 73 65 72 69 65 73 5f 6e 61    6d 65 2c 20 27 49 64 78 3a 27 2c 20 73 65 72 69  | lows:',series_name,.'Idx:',.seri | 
| 11aa0 |  65 73 5f 69 6e 64 65 78 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 20 28 74 69  | es_index).............return.(ti | 
| 11ac0 |  74 6c 65 5f 74 65 78 74 2c 20 73 65 72 69 65 73    5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69 6e  | tle_text,.series_name,.series_in | 
| 11ae0 |  64 65 78 29 0a 20 20 20 20 20 20 20 20 23 20 43    6f 6e 74 61 69 6e 73 20 61 20 54 69 74 6c 65 20  | dex).........#.Contains.a.Title. | 
| 11b00 |  61 6e 64 20 70 6f 73 73 69 62 6c 79 20 61 20 73    65 72 69 65 73 2e 20 50 6f 73 73 69 62 6c 65 20  | and.possibly.a.series..Possible. | 
| 11b20 |  76 61 6c 75 65 73 20 63 75 72 72 65 6e 74 6c 79    20 68 61 6e 64 6c 65 64 3a 0a 20 20 20 20 20 20  | values.currently.handled:....... | 
| 11b40 |  20 20 23 20 22 53 6f 6d 65 20 74 69 74 6c 65 20    28 53 6f 6d 65 20 74 65 78 74 29 22 0a 20 20 20  | ..#."Some.title.(Some.text)".... | 
| 11b60 |  20 20 20 20 20 23 20 22 53 6f 6d 65 20 74 69 74    6c 65 20 28 58 58 58 20 23 31 29 22 0a 20 20 20  | .....#."Some.title.(XXX.#1)".... | 
| 11b80 |  20 20 20 20 20 23 20 22 53 6f 6d 65 20 74 69 74    6c 65 20 28 58 58 58 20 53 65 72 69 65 73 20 23  | .....#."Some.title.(XXX.Series.# | 
| 11ba0 |  31 29 22 0a 20 20 20 20 20 20 20 20 23 20 22 53    6f 6d 65 20 74 69 74 6c 65 20 28 53 6f 6d 65 20  | 1)".........#."Some.title.(Some. | 
| 11bc0 |  74 65 78 74 29 20 28 58 58 58 20 53 65 72 69 65    73 20 23 31 29 22 0a 20 20 20 20 20 20 20 20 6d  | text).(XXX.Series.#1)".........m | 
| 11be0 |  61 74 63 68 20 3d 20 72 65 2e 73 65 61 72 63 68    28 72 27 5c 28 28 5b 5e 5c 29 5d 2b 29 20 53 65  | atch.=.re.search(r'\(([^\)]+).Se | 
| 11c00 |  72 69 65 73 20 23 28 5c 64 2b 29 5c 29 27 2c 20    74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20  | ries.#(\d+)\)',.title_text)..... | 
| 11c20 |  20 20 20 20 69 66 20 6e 6f 74 20 6d 61 74 63 68    3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 73  | ....if.not.match:.............#s | 
| 11c40 |  65 6c 66 2e 6c 6f 67 28 27 54 69 74 6c 65 20 68    61 73 20 6e 6f 20 53 65 72 69 65 73 20 77 6f 72  | elf.log('Title.has.no.Series.wor | 
| 11c60 |  64 20 69 6e 20 74 69 74 6c 65 2c 20 74 72 79 69    6e 67 20 77 69 74 68 6f 75 74 20 69 74 3a 27 2c  | d.in.title,.trying.without.it:', | 
| 11c80 |  74 69 74 6c 65 5f 74 65 78 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 6d 61 74 63 68 20 3d 20  | title_text).............match.=. | 
| 11ca0 |  72 65 2e 73 65 61 72 63 68 28 72 27 5c 28 28 5b    5e 5c 29 5d 2b 29 2c 20 23 28 5c 64 2b 29 5c 29  | re.search(r'\(([^\)]+),.#(\d+)\) | 
| 11cc0 |  27 2c 20 74 69 74 6c 65 5f 74 65 78 74 29 0a 20    20 20 20 20 20 20 20 69 66 20 6d 61 74 63 68 3a  | ',.title_text).........if.match: | 
| 11ce0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72    69 65 73 5f 6e 61 6d 65 20 3d 20 6d 61 74 63 68  | .............series_name.=.match | 
| 11d00 |  2e 67 72 6f 75 70 73 28 30 29 5b 30 5d 0a 20 20    20 20 20 20 20 20 20 20 20 20 73 65 72 69 65 73  | .groups(0)[0].............series | 
| 11d20 |  5f 69 6e 64 65 78 20 3d 20 66 6c 6f 61 74 28 6d    61 74 63 68 2e 67 72 6f 75 70 73 28 30 29 5b 31  | _index.=.float(match.groups(0)[1 | 
| 11d40 |  5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74    69 74 6c 65 20 3d 20 74 69 74 6c 65 5f 74 65 78  | ]).............title.=.title_tex | 
| 11d60 |  74 2e 72 70 61 72 74 69 74 69 6f 6e 28 27 28 27    29 5b 30 5d 2e 73 74 72 69 70 28 29 0a 20 20 20  | t.rpartition('(')[0].strip().... | 
| 11d80 |  20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f    67 28 27 54 69 74 6c 65 20 68 61 73 20 73 65 72  | .........self.log('Title.has.ser | 
| 11da0 |  69 65 73 20 69 6e 66 6f 20 61 73 20 66 6f 6c 6c    6f 77 73 3a 27 2c 74 69 74 6c 65 2c 20 27 53 65  | ies.info.as.follows:',title,.'Se | 
| 11dc0 |  72 69 65 73 3a 27 2c 73 65 72 69 65 73 5f 6e 61    6d 65 2c 20 27 49 64 78 3a 27 2c 73 65 72 69 65  | ries:',series_name,.'Idx:',serie | 
| 11de0 |  73 5f 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 72 65 74 75 72 6e 20 28 74 69 74  | s_index).............return.(tit | 
| 11e00 |  6c 65 2c 20 73 65 72 69 65 73 5f 6e 61 6d 65 2c    20 73 65 72 69 65 73 5f 69 6e 64 65 78 29 0a 20  | le,.series_name,.series_index).. | 
| 11e20 |  20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20    20 20 20 20 20 20 20 20 20 23 20 53 65 61 72 63  | .......else:.............#.Searc | 
| 11e40 |  68 20 73 65 72 69 65 73 20 69 6e 66 6f 20 66 72    6f 6d 20 74 68 65 20 50 72 6f 64 75 63 74 20 44  | h.series.info.from.the.Product.D | 
| 11e60 |  65 74 61 69 6c 73 20 73 65 63 74 69 6f 6e 20 6f    66 20 77 65 62 73 69 74 65 20 73 69 6e 63 65 20  | etails.section.of.website.since. | 
| 11e80 |  69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64    20 69 6e 20 74 68 65 20 74 69 74 6c 65 0a 20 20  | it.was.not.found.in.the.title... | 
| 11ea0 |  20 20 20 20 20 20 20 20 20 20 28 73 65 72 69 65    73 5f 6e 61 6d 65 2c 20 73 65 72 69 65 73 5f 69  | ..........(series_name,.series_i | 
| 11ec0 |  6e 64 65 78 29 20 3d 20 73 65 6c 66 2e 70 61 72    73 65 5f 73 65 72 69 65 73 28 72 6f 6f 74 29 0a  | ndex).=.self.parse_series(root). | 
| 11ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66    2e 6c 6f 67 28 27 54 69 74 6c 65 20 61 6e 64 20  | ............self.log('Title.and. | 
| 11f00 |  73 65 72 69 65 73 20 69 6e 66 6f 20 72 65 74 72    69 65 76 65 64 20 73 65 70 61 72 61 74 65 6c 79  | series.info.retrieved.separately | 
| 11f20 |  20 61 73 20 66 6f 6c 6c 6f 77 73 3a 27 2c 74 69    74 6c 65 5f 74 65 78 74 2c 20 27 53 65 72 69 65  | .as.follows:',title_text,.'Serie | 
| 11f40 |  73 3a 27 2c 73 65 72 69 65 73 5f 6e 61 6d 65 2c    20 27 49 64 78 3a 27 2c 20 73 65 72 69 65 73 5f  | s:',series_name,.'Idx:',.series_ | 
| 11f60 |  69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 72 65 74 75 72 6e 20 28 74 69 74 6c 65  | index).............return.(title | 
| 11f80 |  5f 74 65 78 74 2c 20 73 65 72 69 65 73 5f 6e 61    6d 65 2c 20 73 65 72 69 65 73 5f 69 6e 64 65 78  | _text,.series_name,.series_index | 
| 11fa0 |  29 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65    5f 61 75 74 68 6f 72 73 28 73 65 6c 66 2c 20 72  | )......def.parse_authors(self,.r | 
| 11fc0 |  6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20 64 65    66 61 75 6c 74 5f 67 65 74 5f 61 6c 6c 5f 61 75  | oot):.........default_get_all_au | 
| 11fe0 |  74 68 6f 72 73 20 3d 20 63 66 67 2e 44 45 46 41    55 4c 54 5f 53 54 4f 52 45 5f 56 41 4c 55 45 53  | thors.=.cfg.DEFAULT_STORE_VALUES | 
| 12000 |  5b 63 66 67 2e 4b 45 59 5f 47 45 54 5f 41 4c 4c    5f 41 55 54 48 4f 52 53 5d 0a 20 20 20 20 20 20  | [cfg.KEY_GET_ALL_AUTHORS]....... | 
| 12020 |  20 20 67 65 74 5f 61 6c 6c 5f 61 75 74 68 6f 72    73 20 3d 20 63 66 67 2e 70 6c 75 67 69 6e 5f 70  | ..get_all_authors.=.cfg.plugin_p | 
| 12040 |  72 65 66 73 5b 63 66 67 2e 53 54 4f 52 45 5f 4e    41 4d 45 5d 2e 67 65 74 28 63 66 67 2e 4b 45 59  | refs[cfg.STORE_NAME].get(cfg.KEY | 
| 12060 |  5f 47 45 54 5f 41 4c 4c 5f 41 55 54 48 4f 52 53    2c 20 64 65 66 61 75 6c 74 5f 67 65 74 5f 61 6c  | _GET_ALL_AUTHORS,.default_get_al | 
| 12080 |  6c 5f 61 75 74 68 6f 72 73 29 0a 20 20 20 20 20    20 20 20 69 66 20 67 65 74 5f 61 6c 6c 5f 61 75  | l_authors).........if.get_all_au | 
| 120a0 |  74 68 6f 72 73 3a 0a 20 20 20 20 20 20 20 20 20    20 20 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 20  | thors:.............author_nodes. | 
| 120c0 |  3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f    68 65 61 64 65 72 5b 40 69 64 3d 22 70 72 6f 64  | =.root.xpath('//header[@id="prod | 
| 120e0 |  53 75 6d 6d 61 72 79 2d 68 65 61 64 65 72 22 5d    2f 2f 73 70 61 6e 5b 63 6f 6e 74 61 69 6e 73 28  | Summary-header"]//span[contains( | 
| 12100 |  40 63 6c 61 73 73 2c 22 63 6f 6e 74 72 69 62 75    74 6f 72 73 22 29 5d 2f 61 27 29 0a 20 20 20 20  | @class,"contributors")]/a')..... | 
| 12120 |  20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 61    75 74 68 6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20  | ........if.not.author_nodes:.... | 
| 12140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74    68 6f 72 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74  | .............author_nodes.=.root | 
| 12160 |  2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 69    64 3d 22 70 72 6f 64 75 63 74 2d 74 69 74 6c 65  | .xpath('//div[@id="product-title | 
| 12180 |  2d 31 22 5d 2f 75 6c 5b 63 6f 6e 74 61 69 6e 73    28 40 63 6c 61 73 73 2c 22 63 6f 6e 74 72 69 62  | -1"]/ul[contains(@class,"contrib | 
| 121a0 |  75 74 6f 72 73 22 29 5d 2f 6c 69 2f 61 27 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e  | utors")]/li/a').............if.n | 
| 121c0 |  6f 74 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ot.author_nodes:................ | 
| 121e0 |  20 23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73    69 74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20  | .#.Pre.v1.2.website.format...... | 
| 12200 |  20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f    72 5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78  | ...........author_nodes.=.root.x | 
| 12220 |  70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61    73 73 3d 22 77 2d 62 6f 78 20 77 67 74 2d 70 72  | path('//div[@class="w-box.wgt-pr | 
| 12240 |  6f 64 75 63 74 2d 68 65 61 64 69 6e 67 22 5d 2f    73 70 61 6e 2f 61 27 29 0a 20 20 20 20 20 20 20  | oduct-heading"]/span/a')........ | 
| 12260 |  20 20 20 20 20 69 66 20 6e 6f 74 20 61 75 74 68    6f 72 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20  | .....if.not.author_nodes:....... | 
| 12280 |  20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72    5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70  | ..........author_nodes.=.root.xp | 
| 122a0 |  61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73    73 3d 22 77 2d 62 6f 78 20 77 67 74 2d 70 72 6f  | ath('//div[@class="w-box.wgt-pro | 
| 122c0 |  64 75 63 74 54 69 74 6c 65 22 5d 2f 68 31 2f 65    6d 2f 61 27 29 0a 20 20 20 20 20 20 20 20 20 20  | ductTitle"]/h1/em/a')........... | 
| 122e0 |  20 20 69 66 20 61 75 74 68 6f 72 5f 6e 6f 64 65    73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..if.author_nodes:.............. | 
| 12300 |  20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b 5d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...authors.=.[]................. | 
| 12320 |  66 6f 72 20 61 75 74 68 6f 72 5f 6e 6f 64 65 20    69 6e 20 61 75 74 68 6f 72 5f 6e 6f 64 65 73 3a  | for.author_node.in.author_nodes: | 
| 12340 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 61 75 74 68 6f 72 20 3d 20 61 75  | .....................author.=.au | 
| 12360 |  74 68 6f 72 5f 6e 6f 64 65 2e 74 65 78 74 2e 73    74 72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20  | thor_node.text.strip().......... | 
| 12380 |  20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 75    74 68 6f 72 3a 0a 20 20 20 20 20 20 20 20 20 20  | ...........if.author:........... | 
| 123a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 75    74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61 75 74  | ..............authors.append(aut | 
| 123c0 |  68 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 72 65 74 75 72 6e 20 61 75 74 68  | hor).................return.auth | 
| 123e0 |  6f 72 73 0a 20 20 20 20 20 20 20 20 65 6c 73 65    3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20  | ors.........else:.............#. | 
| 12400 |  57 65 20 6e 65 65 64 20 74 6f 20 6d 6f 72 65 20    63 61 72 65 66 75 6c 6c 79 20 6c 6f 6f 6b 20 61  | We.need.to.more.carefully.look.a | 
| 12420 |  74 20 74 68 65 20 61 75 74 68 6f 72 73 20 74 6f    20 6f 6e 6c 79 20 62 72 69 6e 67 20 74 68 65 6d  | t.the.authors.to.only.bring.them | 
| 12440 |  20 69 6e 20 69 66 3a 0a 20 20 20 20 20 20 20 20    20 20 20 20 23 20 31 2e 20 54 68 65 79 20 68 61  | .in.if:.............#.1..They.ha | 
| 12460 |  76 65 20 6e 6f 20 61 75 74 68 6f 72 20 74 79 70    65 20 73 70 65 63 69 66 69 65 64 0a 20 20 20 20  | ve.no.author.type.specified..... | 
| 12480 |  20 20 20 20 20 20 20 20 23 20 32 2e 20 54 68 65    72 65 20 61 72 65 20 6e 6f 20 61 75 74 68 6f 72  | ........#.2..There.are.no.author | 
| 124a0 |  73 20 66 72 6f 6d 20 31 20 61 6e 64 20 74 68 65    79 20 68 61 76 65 20 61 6e 20 61 75 74 68 6f 72  | s.from.1.and.they.have.an.author | 
| 124c0 |  20 74 79 70 65 20 6f 66 20 27 45 64 69 74 6f 72    27 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 70  | .type.of.'Editor'.............sp | 
| 124e0 |  61 6e 5f 61 75 74 68 6f 72 73 20 3d 20 72 6f 6f    74 2e 78 70 61 74 68 28 27 2f 2f 68 65 61 64 65  | an_authors.=.root.xpath('//heade | 
| 12500 |  72 5b 40 69 64 3d 22 70 72 6f 64 53 75 6d 6d 61    72 79 2d 68 65 61 64 65 72 22 5d 2f 2f 73 70 61  | r[@id="prodSummary-header"]//spa | 
| 12520 |  6e 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73    73 2c 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22  | n[contains(@class,"contributors" | 
| 12540 |  29 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 69 66 20 6e 6f 74 20 73 70 61 6e 5f 61 75 74  | )]').............if.not.span_aut | 
| 12560 |  68 6f 72 73 3a 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 73 70 61 6e 5f 61 75 74 68 6f  | hors:.................span_autho | 
| 12580 |  72 73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28    27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72 6f 64  | rs.=.root.xpath('//div[@id="prod | 
| 125a0 |  75 63 74 2d 74 69 74 6c 65 2d 31 22 5d 2f 75 6c    5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73  | uct-title-1"]/ul[contains(@class | 
| 125c0 |  2c 22 63 6f 6e 74 72 69 62 75 74 6f 72 73 22 29    5d 2f 6c 69 2f 61 27 29 0a 20 20 20 20 20 20 20  | ,"contributors")]/li/a')........ | 
| 125e0 |  20 20 20 20 20 69 66 20 6e 6f 74 20 73 70 61 6e    5f 61 75 74 68 6f 72 73 3a 0a 20 20 20 20 20 20  | .....if.not.span_authors:....... | 
| 12600 |  20 20 20 20 20 20 20 20 20 20 23 20 50 72 65 20    76 31 2e 32 20 77 65 62 73 69 74 65 20 66 6f 72  | ..........#.Pre.v1.2.website.for | 
| 12620 |  6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 73 70 61 6e 5f 61 75 74 68 6f 72 73  | mat.................span_authors | 
| 12640 |  20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f    2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 77 2d 62  | .=.root.xpath('//div[@class="w-b | 
| 12660 |  6f 78 20 77 67 74 2d 70 72 6f 64 75 63 74 2d 68    65 61 64 69 6e 67 22 5d 2f 73 70 61 6e 27 29 0a  | ox.wgt-product-heading"]/span'). | 
| 12680 |  20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e    6f 74 20 73 70 61 6e 5f 61 75 74 68 6f 72 73 3a  | ............if.not.span_authors: | 
| 126a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 73 70 61 6e 5f 61 75 74 68 6f 72 73 20 3d 20  | .................span_authors.=. | 
| 126c0 |  72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69    76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20  | root.xpath('//div[@class="w-box. | 
| 126e0 |  77 67 74 2d 70 72 6f 64 75 63 74 54 69 74 6c 65    22 5d 2f 68 31 2f 65 6d 27 29 0a 20 20 20 20 20  | wgt-productTitle"]/h1/em')...... | 
| 12700 |  20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 70    61 6e 5f 61 75 74 68 6f 72 73 3a 0a 20 20 20 20  | .......if.not.span_authors:..... | 
| 12720 |  20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75    72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 61  | ............return.............a | 
| 12740 |  75 74 68 6f 72 73 5f 68 74 6d 6c 20 3d 20 74 6f    73 74 72 69 6e 67 28 73 70 61 6e 5f 61 75 74 68  | uthors_html.=.tostring(span_auth | 
| 12760 |  6f 72 73 5b 30 5d 2c 20 6d 65 74 68 6f 64 3d 27    74 65 78 74 27 2c 20 65 6e 63 6f 64 69 6e 67 3d  | ors[0],.method='text',.encoding= | 
| 12780 |  27 75 6e 69 63 6f 64 65 27 29 2e 72 65 70 6c 61    63 65 28 27 5c 6e 27 2c 27 27 29 2e 73 74 72 69  | 'unicode').replace('\n','').stri | 
| 127a0 |  70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    69 66 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 2e  | p().............if.authors_html. | 
| 127c0 |  73 74 61 72 74 73 77 69 74 68 28 27 62 79 27 29    3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | startswith('by'):............... | 
| 127e0 |  20 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 20 3d    20 61 75 74 68 6f 72 73 5f 68 74 6d 6c 5b 32 3a  | ..authors_html.=.authors_html[2: | 
| 12800 |  5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75    74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 20 3d  | ].............authors_type_map.= | 
| 12820 |  20 4f 72 64 65 72 65 64 44 69 63 74 28 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61  | .OrderedDict().............for.a | 
| 12840 |  20 69 6e 20 61 75 74 68 6f 72 73 5f 68 74 6d 6c    2e 73 70 6c 69 74 28 27 2c 27 29 3a 0a 20 20 20  | .in.authors_html.split(','):.... | 
| 12860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74    68 6f 72 5f 70 61 72 74 73 20 3d 20 61 2e 73 74  | .............author_parts.=.a.st | 
| 12880 |  72 69 70 28 29 2e 73 70 6c 69 74 28 27 28 27 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rip().split('(')................ | 
| 128a0 |  20 69 66 20 6c 65 6e 28 61 75 74 68 6f 72 5f 70    61 72 74 73 29 20 3d 3d 20 31 3a 0a 20 20 20 20  | .if.len(author_parts).==.1:..... | 
| 128c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    61 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70  | ................authors_type_map | 
| 128e0 |  5b 61 75 74 68 6f 72 5f 70 61 72 74 73 5b 30 5d    5d 20 3d 20 27 27 0a 20 20 20 20 20 20 20 20 20  | [author_parts[0]].=.''.......... | 
| 12900 |  20 20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......else:.................... | 
| 12920 |  20 61 75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61    70 5b 61 75 74 68 6f 72 5f 70 61 72 74 73 5b 30  | .authors_type_map[author_parts[0 | 
| 12940 |  5d 5d 20 3d 20 61 75 74 68 6f 72 5f 70 61 72 74    73 5b 31 5d 5b 3a 2d 31 5d 0a 20 20 20 20 20 20  | ]].=.author_parts[1][:-1]....... | 
| 12960 |  20 20 20 20 20 20 23 20 41 74 20 74 68 69 73 20    70 6f 69 6e 74 20 77 65 20 68 61 76 65 20 61 20  | ......#.At.this.point.we.have.a. | 
| 12980 |  64 69 63 74 20 6f 66 20 61 75 74 68 6f 72 73 20    77 69 74 68 20 74 68 65 69 72 20 63 6f 6e 74 72  | dict.of.authors.with.their.contr | 
| 129a0 |  69 62 75 74 69 6f 6e 20 69 66 20 61 6e 79 20 69    6e 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20  | ibution.if.any.in.values........ | 
| 129c0 |  20 20 20 20 20 61 75 74 68 6f 72 73 20 3d 20 5b    5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61  | .....authors.=.[].............va | 
| 129e0 |  6c 69 64 5f 63 6f 6e 74 72 69 62 20 3d 20 4e 6f    6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 66  | lid_contrib.=.None.............f | 
| 12a00 |  6f 72 20 61 2c 20 63 6f 6e 74 72 69 62 20 69 6e    20 73 69 78 2e 69 74 65 72 69 74 65 6d 73 28 61  | or.a,.contrib.in.six.iteritems(a | 
| 12a20 |  75 74 68 6f 72 73 5f 74 79 70 65 5f 6d 61 70 29    3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | uthors_type_map):............... | 
| 12a40 |  20 20 69 66 20 6e 6f 74 20 61 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..if.not.a:..................... | 
| 12a60 |  63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20  | continue.................if.not. | 
| 12a80 |  63 6f 6e 74 72 69 62 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74  | contrib:.....................aut | 
| 12aa0 |  68 6f 72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65  | hors.append(a).................e | 
| 12ac0 |  6c 69 66 20 6c 65 6e 28 61 75 74 68 6f 72 73 29    20 3d 3d 20 30 3a 0a 20 20 20 20 20 20 20 20 20  | lif.len(authors).==.0:.......... | 
| 12ae0 |  20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f    72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20 20 20  | ...........authors.append(a).... | 
| 12b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 76 61 6c 69 64 5f 63 6f 6e 74 72 69 62 20 3d  | .................valid_contrib.= | 
| 12b20 |  20 63 6f 6e 74 72 69 62 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 65 6c 69 66 20 63 6f  | .contrib.................elif.co | 
| 12b40 |  6e 74 72 69 62 20 3d 3d 20 76 61 6c 69 64 5f 63    6f 6e 74 72 69 62 3a 0a 20 20 20 20 20 20 20 20  | ntrib.==.valid_contrib:......... | 
| 12b60 |  20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68    6f 72 73 2e 61 70 70 65 6e 64 28 61 29 0a 20 20  | ............authors.append(a)... | 
| 12b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c    73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..............else:............. | 
| 12ba0 |  20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 20 20    20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  | ........break.............return | 
| 12bc0 |  20 61 75 74 68 6f 72 73 0a 0a 20 20 20 20 64 65    66 20 70 61 72 73 65 5f 72 61 74 69 6e 67 28 73  | .authors......def.parse_rating(s | 
| 12be0 |  65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20    20 20 20 20 23 20 72 61 74 69 6e 67 73 20 6e 6f  | elf,.root):.........#.ratings.no | 
| 12c00 |  20 6c 6f 6e 67 65 72 20 6f 6e 20 6d 61 69 6e 20    70 61 67 65 2e 20 4e 65 65 64 20 74 6f 20 6f 62  | .longer.on.main.page..Need.to.ob | 
| 12c20 |  74 61 69 6e 20 76 69 61 20 61 20 6a 73 6f 6e 20    71 75 65 72 79 2e 0a 20 20 20 20 20 20 20 20 23  | tain.via.a.json.query..........# | 
| 12c40 |  20 54 72 79 20 74 68 65 20 6e 65 77 20 77 61 79    0a 20 20 20 20 20 20 20 20 72 61 74 69 6e 67 5f  | .Try.the.new.way.........rating_ | 
| 12c60 |  6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74    68 28 27 2f 2f 68 65 61 64 65 72 5b 40 69 64 3d  | node.=.root.xpath('//header[@id= | 
| 12c80 |  22 70 72 6f 64 53 75 6d 6d 61 72 79 2d 68 65 61    64 65 72 22 5d 2f 2f 64 69 76 5b 40 69 74 65 6d  | "prodSummary-header"]//div[@item | 
| 12ca0 |  70 72 6f 70 3d 22 61 67 67 72 65 67 61 74 65 52    61 74 69 6e 67 22 5d 2f 73 70 61 6e 5b 40 69 74  | prop="aggregateRating"]/span[@it | 
| 12cc0 |  65 6d 70 72 6f 70 3d 22 72 61 74 69 6e 67 56 61    6c 75 65 22 5d 2f 74 65 78 74 28 29 27 29 0a 20  | emprop="ratingValue"]/text()').. | 
| 12ce0 |  20 20 20 20 20 20 20 69 66 20 72 61 74 69 6e 67    5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20  | .......if.rating_node:.......... | 
| 12d00 |  20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75 65 20    3d 20 66 6c 6f 61 74 28 72 61 74 69 6e 67 5f 6e  | ...rating_value.=.float(rating_n | 
| 12d20 |  6f 64 65 5b 30 5d 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 72 65 74 75 72 6e 20 72 61 74 69 6e  | ode[0]).............return.ratin | 
| 12d40 |  67 5f 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20    23 20 50 72 65 20 76 31 2e 32 20 77 65 62 73 69  | g_value.........#.Pre.v1.2.websi | 
| 12d60 |  74 65 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20    20 20 72 61 74 69 6e 67 5f 6e 6f 64 65 20 3d 20  | te.format.........rating_node.=. | 
| 12d80 |  72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69    76 5b 40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20  | root.xpath('//div[@class="w-box. | 
| 12da0 |  77 67 74 2d 70 72 6f 64 75 63 74 2d 72 61 74 69    6e 67 73 22 5d 2f 61 2f 64 69 76 2f 40 63 6c 61  | wgt-product-ratings"]/a/div/@cla | 
| 12dc0 |  73 73 27 29 0a 20 20 20 20 20 20 20 20 69 66 20    72 61 74 69 6e 67 5f 6e 6f 64 65 3a 0a 20 20 20  | ss').........if.rating_node:.... | 
| 12de0 |  20 20 20 20 20 20 20 20 20 23 20 42 26 4e 20 6e    6f 20 6c 6f 6e 67 65 72 20 70 75 74 20 74 68 65  | .........#.B&N.no.longer.put.the | 
| 12e00 |  20 61 63 74 75 61 6c 20 76 61 6c 75 65 73 20 6f    66 20 74 68 65 20 72 61 74 69 6e 67 20 69 6e 20  | .actual.values.of.the.rating.in. | 
| 12e20 |  74 68 65 20 77 65 62 20 70 61 67 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 23 20 49 6e 73 74 65  | the.web.page.............#.Inste | 
| 12e40 |  61 64 20 74 68 65 79 20 70 75 74 20 77 6f 72 64    73 20 6c 69 6b 65 20 22 66 6f 75 72 20 68 61 6c  | ad.they.put.words.like."four.hal | 
| 12e60 |  66 22 20 66 6f 72 20 34 2e 35 20 61 6e 64 20 22    66 6f 75 72 22 20 66 6f 72 20 22 34 22 20 69 6e  | f".for.4.5.and."four".for."4".in | 
| 12e80 |  20 74 68 65 20 73 74 79 6c 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 23 20 3c 64 69 76 20 63 6c  | .the.style.............#.<div.cl | 
| 12ea0 |  61 73 73 3d 22 70 72 6f 64 75 63 74 2d 72 61 74    69 6e 67 20 66 6f 75 72 20 68 61 6c 66 22 3e 0a  | ass="product-rating.four.half">. | 
| 12ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69    6e 67 5f 63 6c 61 73 73 20 3d 20 72 61 74 69 6e  | ............rating_class.=.ratin | 
| 12ee0 |  67 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20 20 20    20 20 20 20 20 20 6d 61 74 63 68 20 3d 20 72 65  | g_node[0].............match.=.re | 
| 12f00 |  2e 73 65 61 72 63 68 28 27 70 72 6f 64 75 63 74    2d 72 61 74 69 6e 67 20 28 2e 2b 29 27 2c 20 72  | .search('product-rating.(.+)',.r | 
| 12f20 |  61 74 69 6e 67 5f 63 6c 61 73 73 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 69 66 20 6d 61 74 63  | ating_class).............if.matc | 
| 12f40 |  68 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 72 61 74 69 6e 67 5f 74 65 78 74 20 3d  | h:.................rating_text.= | 
| 12f60 |  20 6d 61 74 63 68 2e 67 72 6f 75 70 73 28 30 29    5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .match.groups(0)[0]............. | 
| 12f80 |  20 20 20 20 72 61 74 69 6e 67 5f 70 61 72 74 73    20 3d 20 72 61 74 69 6e 67 5f 74 65 78 74 2e 73  | ....rating_parts.=.rating_text.s | 
| 12fa0 |  70 6c 69 74 28 27 20 27 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67  | plit('.').................rating | 
| 12fc0 |  5f 76 61 6c 75 65 73 20 3d 20 5b 27 7a 65 72 6f    27 2c 27 6f 6e 65 27 2c 27 74 77 6f 27 2c 27 74  | _values.=.['zero','one','two','t | 
| 12fe0 |  68 72 65 65 27 2c 27 66 6f 75 72 27 2c 27 66 69    76 65 27 5d 0a 20 20 20 20 20 20 20 20 20 20 20  | hree','four','five']............ | 
| 13000 |  20 20 20 20 20 72 61 74 69 6e 67 5f 76 61 6c 75    65 20 3d 20 66 6c 6f 61 74 28 72 61 74 69 6e 67  | .....rating_value.=.float(rating | 
| 13020 |  5f 76 61 6c 75 65 73 2e 69 6e 64 65 78 28 72 61    74 69 6e 67 5f 70 61 72 74 73 5b 30 5d 29 29 0a  | _values.index(rating_parts[0])). | 
| 13040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    69 66 20 6c 65 6e 28 72 61 74 69 6e 67 5f 70 61  | ................if.len(rating_pa | 
| 13060 |  72 74 73 29 20 3e 20 31 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61  | rts).>.1:.....................ra | 
| 13080 |  74 69 6e 67 5f 76 61 6c 75 65 20 2b 3d 20 30 2e    35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ting_value.+=.0.5............... | 
| 130a0 |  20 20 72 65 74 75 72 6e 20 72 61 74 69 6e 67 5f    76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 65 6c  | ..return.rating_value.........el | 
| 130c0 |  73 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20    23 20 54 72 79 20 74 68 65 20 74 65 78 74 62 6f  | se:.............#.Try.the.textbo | 
| 130e0 |  6f 6b 20 70 61 67 65 20 72 61 74 69 6e 67 20 6c    6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 20 20  | ok.page.rating.lookup........... | 
| 13100 |  20 20 23 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d    22 61 76 67 2d 34 68 20 73 65 63 74 69 6f 6e 5f  | ..#.<span.class="avg-4h.section_ | 
| 13120 |  75 70 64 61 74 65 52 61 74 69 6e 67 22 3e 0a 20    20 20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e  | updateRating">.............ratin | 
| 13140 |  67 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70    61 74 68 28 27 2f 2f 73 70 61 6e 5b 63 6f 6e 74  | g_node.=.root.xpath('//span[cont | 
| 13160 |  61 69 6e 73 28 40 63 6c 61 73 73 2c 22 73 65 63    74 69 6f 6e 5f 75 70 64 61 74 65 52 61 74 69 6e  | ains(@class,"section_updateRatin | 
| 13180 |  67 22 29 5d 2f 40 63 6c 61 73 73 27 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 69 66 20 72 61 74  | g")]/@class').............if.rat | 
| 131a0 |  69 6e 67 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 72 61 74 69 6e 67  | ing_node:.................rating | 
| 131c0 |  5f 74 65 78 74 20 3d 20 72 61 74 69 6e 67 5f 6e    6f 64 65 5b 30 5d 5b 34 3a 36 5d 0a 20 20 20 20  | _text.=.rating_node[0][4:6]..... | 
| 131e0 |  20 20 20 20 20 20 20 20 20 20 20 20 72 61 74 69    6e 67 5f 76 61 6c 75 65 20 3d 20 66 6c 6f 61 74  | ............rating_value.=.float | 
| 13200 |  28 72 61 74 69 6e 67 5f 74 65 78 74 5b 30 5d 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (rating_text[0])................ | 
| 13220 |  20 69 66 20 72 61 74 69 6e 67 5f 74 65 78 74 5b    31 5d 20 3d 3d 20 27 68 27 3a 0a 20 20 20 20 20  | .if.rating_text[1].==.'h':...... | 
| 13240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    61 74 69 6e 67 5f 76 61 6c 75 65 20 2b 3d 20 30  | ...............rating_value.+=.0 | 
| 13260 |  2e 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 72 65 74 75 72 6e 20 72 61 74 69 6e 67  | .5.................return.rating | 
| 13280 |  5f 76 61 6c 75 65 0a 0a 20 20 20 20 64 65 66 20    70 61 72 73 65 5f 69 73 62 6e 28 73 65 6c 66 2c  | _value......def.parse_isbn(self, | 
| 132a0 |  20 72 6f 6f 74 29 3a 0a 20 20 20 20 20 20 20 20    64 65 74 61 69 6c 5f 6e 6f 64 65 73 20 3d 20 72  | .root):.........detail_nodes.=.r | 
| 132c0 |  6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76    5b 40 69 64 3d 22 50 72 6f 64 75 63 74 44 65 74  | oot.xpath('//div[@id="ProductDet | 
| 132e0 |  61 69 6c 73 54 61 62 22 5d 2f 74 61 62 6c 65 2f    2f 74 72 27 29 0a 20 20 20 20 20 20 20 20 69 66  | ailsTab"]/table//tr').........if | 
| 13300 |  20 64 65 74 61 69 6c 5f 6e 6f 64 65 73 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74  | .detail_nodes:.............for.t | 
| 13320 |  68 2c 74 64 20 69 6e 20 7a 69 70 28 64 65 74 61    69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74  | h,td.in.zip(detail_nodes[0].xpat | 
| 13340 |  68 28 27 2f 2f 74 68 27 29 2c 20 64 65 74 61 69    6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78 70 61 74 68  | h('//th'),.detail_nodes[0].xpath | 
| 13360 |  28 27 2f 2f 74 64 27 29 29 3a 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68  | ('//td')):.................if.th | 
| 13380 |  2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28 29 2e    73 74 72 69 70 28 29 2e 73 74 61 72 74 73 77 69  | .text_content().strip().startswi | 
| 133a0 |  74 68 28 27 49 53 42 4e 27 29 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | th('ISBN'):..................... | 
| 133c0 |  72 65 74 75 72 6e 20 74 64 2e 74 65 78 74 5f 63    6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29  | return.td.text_content().strip() | 
| 133e0 |  0a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c    5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70  | ..........detail_nodes.=.root.xp | 
| 13400 |  61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73    73 3d 22 70 72 6f 64 75 63 74 2d 64 65 74 61 69  | ath('//div[@class="product-detai | 
| 13420 |  6c 73 20 62 6f 78 22 5d 2f 75 6c 2f 6c 69 27 29    0a 20 20 20 20 20 20 20 20 69 66 20 64 65 74 61  | ls.box"]/ul/li').........if.deta | 
| 13440 |  69 6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 66 6f 72 20 64 65 74 61 69 6c  | il_nodes:.............for.detail | 
| 13460 |  5f 6e 6f 64 65 20 69 6e 20 64 65 74 61 69 6c 5f    6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20  | _node.in.detail_nodes:.......... | 
| 13480 |  20 20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c    5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f  | .......if.detail_node[0].text_co | 
| 134a0 |  6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e    73 74 61 72 74 73 77 69 74 68 28 27 49 53 42 4e  | ntent().strip().startswith('ISBN | 
| 134c0 |  27 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 64  | '):.....................return.d | 
| 134e0 |  65 74 61 69 6c 5f 6e 6f 64 65 5b 30 5d 2e 74 61    69 6c 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20  | etail_node[0].tail.strip()...... | 
| 13500 |  20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 23 20 50 72 65 20 76 31 2e 32 20  | ...else:.............#.Pre.v1.2. | 
| 13520 |  77 65 62 73 69 74 65 20 66 6f 72 6d 61 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 69 73 62 6e 5f  | website.format.............isbn_ | 
| 13540 |  6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61    74 68 28 27 2f 2f 61 5b 40 63 6c 61 73 73 3d 22  | nodes.=.root.xpath('//a[@class=" | 
| 13560 |  69 73 62 6e 2d 61 22 5d 27 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 69 66 20 69 73 62 6e 5f 6e  | isbn-a"]').............if.isbn_n | 
| 13580 |  6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 20 69 73 62  | odes:.................return.isb | 
| 135a0 |  6e 5f 6e 6f 64 65 73 5b 30 5d 2e 74 65 78 74 5f    63 6f 6e 74 65 6e 74 28 29 0a 20 20 20 20 20 20  | n_nodes[0].text_content()....... | 
| 135c0 |  20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 23 20 4c 65  | ......else:.................#.Le | 
| 135e0 |  67 61 63 79 20 77 61 79 20 28 74 65 78 74 62 6f    6f 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | gacy.way.(textbooks)............ | 
| 13600 |  20 20 20 20 20 69 73 62 6e 5f 6e 6f 64 65 73 20    3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f  | .....isbn_nodes.=.root.xpath('// | 
| 13620 |  61 5b 40 63 6c 61 73 73 3d 22 69 73 62 6e 2d 61    22 5d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20  | a[@class="isbn-a"]')............ | 
| 13640 |  20 20 20 20 20 69 66 20 69 73 62 6e 5f 6e 6f 64    65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .....if.isbn_nodes:............. | 
| 13660 |  20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69    73 62 6e 5f 6e 6f 64 65 73 5b 30 5d 2e 74 65 78  | ........return.isbn_nodes[0].tex | 
| 13680 |  74 5f 63 6f 6e 74 65 6e 74 28 29 0a 0a 20 20 20    20 64 65 66 20 70 61 72 73 65 5f 70 75 62 6c 69  | t_content()......def.parse_publi | 
| 136a0 |  73 68 65 72 28 73 65 6c 66 2c 20 72 6f 6f 74 29    3a 0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c  | sher(self,.root):.........detail | 
| 136c0 |  5f 6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70    61 74 68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22  | _nodes.=.root.xpath('//div[@id=" | 
| 136e0 |  50 72 6f 64 75 63 74 44 65 74 61 69 6c 73 54 61    62 22 5d 2f 74 61 62 6c 65 2f 2f 74 72 27 29 0a  | ProductDetailsTab"]/table//tr'). | 
| 13700 |  20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69    6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20  | ........if.detail_nodes:........ | 
| 13720 |  20 20 20 20 20 66 6f 72 20 74 68 2c 74 64 20 69    6e 20 7a 69 70 28 64 65 74 61 69 6c 5f 6e 6f 64  | .....for.th,td.in.zip(detail_nod | 
| 13740 |  65 73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74    68 27 29 2c 20 64 65 74 61 69 6c 5f 6e 6f 64 65  | es[0].xpath('//th'),.detail_node | 
| 13760 |  73 5b 30 5d 2e 78 70 61 74 68 28 27 2f 2f 74 64    27 29 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20  | s[0].xpath('//td')):............ | 
| 13780 |  20 20 20 20 20 69 66 20 74 68 2e 74 65 78 74 5f    63 6f 6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28  | .....if.th.text_content().strip( | 
| 137a0 |  29 2e 73 74 61 72 74 73 77 69 74 68 28 27 50 75    62 6c 69 73 68 65 72 27 29 3a 0a 20 20 20 20 20  | ).startswith('Publisher'):...... | 
| 137c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 74 64 2e 74 65 78 74 5f 63 6f  | ...............return.td.text_co | 
| 137e0 |  6e 74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 0a    0a 20 20 20 20 20 20 20 20 64 65 74 61 69 6c 5f  | ntent().strip()..........detail_ | 
| 13800 |  6e 6f 64 65 73 20 3d 20 72 6f 6f 74 2e 78 70 61    74 68 28 27 2f 2f 64 69 76 5b 40 63 6c 61 73 73  | nodes.=.root.xpath('//div[@class | 
| 13820 |  3d 22 70 72 6f 64 75 63 74 2d 64 65 74 61 69 6c    73 20 62 6f 78 22 5d 2f 75 6c 2f 6c 69 27 29 0a  | ="product-details.box"]/ul/li'). | 
| 13840 |  20 20 20 20 20 20 20 20 69 66 20 64 65 74 61 69    6c 5f 6e 6f 64 65 73 3a 0a 20 20 20 20 20 20 20  | ........if.detail_nodes:........ | 
| 13860 |  20 20 20 20 20 66 6f 72 20 64 65 74 61 69 6c 5f    6e 6f 64 65 20 69 6e 20 64 65 74 61 69 6c 5f 6e  | .....for.detail_node.in.detail_n | 
| 13880 |  6f 64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 69 66 20 64 65 74 61 69 6c 5f  | odes:.................if.detail_ | 
| 138a0 |  6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e    74 65 6e 74 28 29 2e 73 74 72 69 70 28 29 2e 73  | node[0].text_content().strip().s | 
| 138c0 |  74 61 72 74 73 77 69 74 68 28 27 50 75 62 6c 69    73 68 65 72 27 29 3a 0a 20 20 20 20 20 20 20 20  | tartswith('Publisher'):......... | 
| 138e0 |  20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75    72 6e 20 64 65 74 61 69 6c 5f 6e 6f 64 65 5b 30  | ............return.detail_node[0 | 
| 13900 |  5d 2e 74 61 69 6c 2e 73 74 72 69 70 28 29 0a 0a    20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31  | ].tail.strip()..........#.Pre.v1 | 
| 13920 |  2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61    74 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 73  | .2.website.format.........publis | 
| 13940 |  68 65 72 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e    78 70 61 74 68 28 27 2f 2f 64 69 76 5b 40 63 6c  | her_node.=.root.xpath('//div[@cl | 
| 13960 |  61 73 73 3d 22 77 2d 62 6f 78 20 64 65 74 61 69    6c 73 22 5d 2f 75 6c 2f 6c 69 5b 32 5d 27 29 0a  | ass="w-box.details"]/ul/li[2]'). | 
| 13980 |  20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 70    75 62 6c 69 73 68 65 72 5f 6e 6f 64 65 3a 0a 20  | ........if.not.publisher_node:.. | 
| 139a0 |  20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69    73 68 65 72 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74  | ...........publisher_node.=.root | 
| 139c0 |  2e 78 70 61 74 68 28 27 2f 2f 6c 69 5b 40 63 6c    61 73 73 3d 22 70 75 62 6c 69 73 68 65 72 22 5d  | .xpath('//li[@class="publisher"] | 
| 139e0 |  27 29 0a 0a 20 20 20 20 20 20 20 20 69 66 20 70    75 62 6c 69 73 68 65 72 5f 6e 6f 64 65 3a 0a 20  | ')..........if.publisher_node:.. | 
| 13a00 |  20 20 20 20 20 20 20 20 20 20 20 70 75 62 6c 69    73 68 65 72 5f 74 65 78 74 20 3d 20 70 75 62 6c  | ...........publisher_text.=.publ | 
| 13a20 |  69 73 68 65 72 5f 6e 6f 64 65 5b 30 5d 2e 74 65    78 74 5f 63 6f 6e 74 65 6e 74 28 29 0a 20 20 20  | isher_node[0].text_content().... | 
| 13a40 |  20 20 20 20 20 20 20 20 20 23 20 50 75 62 6c 69    73 68 65 72 3a 20 52 61 6e 64 6f 6d 20 48 6f 75  | .........#.Publisher:.Random.Hou | 
| 13a60 |  73 65 20 50 75 62 6c 69 73 68 69 6e 67 20 47 72    6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20  | se.Publishing.Group............. | 
| 13a80 |  72 65 74 75 72 6e 20 70 75 62 6c 69 73 68 65 72    5f 74 65 78 74 2e 72 70 61 72 74 69 74 69 6f 6e  | return.publisher_text.rpartition | 
| 13aa0 |  28 27 3a 27 29 5b 32 5d 2e 73 74 72 69 70 28 29    0a 0a 20 20 20 20 64 65 66 20 70 61 72 73 65 5f  | (':')[2].strip()......def.parse_ | 
| 13ac0 |  70 75 62 6c 69 73 68 65 64 5f 64 61 74 65 28 73    65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20 20  | published_date(self,.root):..... | 
| 13ae0 |  20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73    20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f  | ....detail_nodes.=.root.xpath('/ | 
| 13b00 |  2f 64 69 76 5b 40 69 64 3d 22 50 72 6f 64 75 63    74 44 65 74 61 69 6c 73 54 61 62 22 5d 2f 74 61  | /div[@id="ProductDetailsTab"]/ta | 
| 13b20 |  62 6c 65 2f 2f 74 72 27 29 0a 20 20 20 20 20 20    20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65  | ble//tr').........if.detail_node | 
| 13b40 |  73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66    6f 72 20 74 68 2c 74 64 20 69 6e 20 7a 69 70 28  | s:.............for.th,td.in.zip( | 
| 13b60 |  64 65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e    78 70 61 74 68 28 27 2f 2f 74 68 27 29 2c 20 64  | detail_nodes[0].xpath('//th'),.d | 
| 13b80 |  65 74 61 69 6c 5f 6e 6f 64 65 73 5b 30 5d 2e 78    70 61 74 68 28 27 2f 2f 74 64 27 29 29 3a 0a 20  | etail_nodes[0].xpath('//td')):.. | 
| 13ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69    66 20 74 68 2e 74 65 78 74 5f 63 6f 6e 74 65 6e  | ...............if.th.text_conten | 
| 13bc0 |  74 28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72    74 73 77 69 74 68 28 27 50 75 62 6c 69 63 61 74  | t().strip().startswith('Publicat | 
| 13be0 |  69 6f 6e 20 64 61 74 65 27 29 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ion.date'):..................... | 
| 13c00 |  70 75 62 5f 64 61 74 65 5f 74 65 78 74 20 3d 20    74 64 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74 28  | pub_date_text.=.td.text_content( | 
| 13c20 |  29 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65  | ).strip().....................re | 
| 13c40 |  74 75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76 65    72 74 5f 64 61 74 65 5f 74 65 78 74 28 70 75 62  | turn.self._convert_date_text(pub | 
| 13c60 |  5f 64 61 74 65 5f 74 65 78 74 29 0a 0a 20 20 20    20 20 20 20 20 64 65 74 61 69 6c 5f 6e 6f 64 65  | _date_text)..........detail_node | 
| 13c80 |  73 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27    2f 2f 64 69 76 5b 40 63 6c 61 73 73 3d 22 70 72  | s.=.root.xpath('//div[@class="pr | 
| 13ca0 |  6f 64 75 63 74 2d 64 65 74 61 69 6c 73 20 62 6f    78 22 5d 2f 75 6c 2f 6c 69 27 29 0a 20 20 20 20  | oduct-details.box"]/ul/li')..... | 
| 13cc0 |  20 20 20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f    64 65 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20  | ....if.detail_nodes:............ | 
| 13ce0 |  20 66 6f 72 20 64 65 74 61 69 6c 5f 6e 6f 64 65    20 69 6e 20 64 65 74 61 69 6c 5f 6e 6f 64 65 73  | .for.detail_node.in.detail_nodes | 
| 13d00 |  3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 69 66 20 64 65 74 61 69 6c 5f 6e 6f 64 65  | :.................if.detail_node | 
| 13d20 |  5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74    28 29 2e 73 74 72 69 70 28 29 2e 73 74 61 72 74  | [0].text_content().strip().start | 
| 13d40 |  73 77 69 74 68 28 27 50 75 62 6c 69 63 61 74 69    6f 6e 20 64 61 74 65 27 29 3a 0a 20 20 20 20 20  | swith('Publication.date'):...... | 
| 13d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70    75 62 5f 64 61 74 65 5f 74 65 78 74 20 3d 20 64  | ...............pub_date_text.=.d | 
| 13d80 |  65 74 61 69 6c 5f 6e 6f 64 65 5b 30 5d 2e 74 61    69 6c 2e 73 74 72 69 70 28 29 0a 20 20 20 20 20  | etail_node[0].tail.strip()...... | 
| 13da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76  | ...............return.self._conv | 
| 13dc0 |  65 72 74 5f 64 61 74 65 5f 74 65 78 74 28 70 75    62 5f 64 61 74 65 5f 74 65 78 74 29 0a 0a 20 20  | ert_date_text(pub_date_text).... | 
| 13de0 |  20 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 23 20 50 72 65 20 76 31  | ......else:.............#.Pre.v1 | 
| 13e00 |  2e 32 20 77 65 62 73 69 74 65 20 66 6f 72 6d 61    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 75  | .2.website.format.............pu | 
| 13e20 |  62 5f 64 61 74 65 5f 6e 6f 64 65 20 3d 20 72 6f    6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b  | b_date_node.=.root.xpath('//div[ | 
| 13e40 |  40 63 6c 61 73 73 3d 22 77 2d 62 6f 78 20 64 65    74 61 69 6c 73 22 5d 2f 75 6c 2f 6c 69 5b 31 5d  | @class="w-box.details"]/ul/li[1] | 
| 13e60 |  27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69    66 20 6e 6f 74 20 70 75 62 5f 64 61 74 65 5f 6e  | ').............if.not.pub_date_n | 
| 13e80 |  6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 70 75 62 5f 64 61 74 65 5f 6e 6f  | ode:.................pub_date_no | 
| 13ea0 |  64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28    27 2f 2f 6c 69 5b 40 63 6c 61 73 73 3d 22 70 75  | de.=.root.xpath('//li[@class="pu | 
| 13ec0 |  62 44 61 74 65 22 5d 27 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 69 66 20 70 75 62 5f 64 61 74  | bDate"]').............if.pub_dat | 
| 13ee0 |  65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 70 75 62 5f 64 61 74 65  | e_node:.................pub_date | 
| 13f00 |  5f 74 65 78 74 20 3d 20 70 75 62 5f 64 61 74 65    5f 6e 6f 64 65 5b 30 5d 2e 74 65 78 74 5f 63 6f  | _text.=.pub_date_node[0].text_co | 
| 13f20 |  6e 74 65 6e 74 28 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 23 20 50 75 62 2e 20 44  | ntent().................#.Pub..D | 
| 13f40 |  61 74 65 3a 20 53 65 70 74 65 6d 62 65 72 20 32    30 31 30 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ate:.September.2010............. | 
| 13f60 |  20 20 20 20 70 75 62 5f 64 61 74 65 5f 74 65 78    74 20 3d 20 70 75 62 5f 64 61 74 65 5f 74 65 78  | ....pub_date_text.=.pub_date_tex | 
| 13f80 |  74 2e 72 70 61 72 74 69 74 69 6f 6e 28 27 3a 27    29 5b 32 5d 2e 73 74 72 69 70 28 29 0a 20 20 20  | t.rpartition(':')[2].strip().... | 
| 13fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74    75 72 6e 20 73 65 6c 66 2e 5f 63 6f 6e 76 65 72  | .............return.self._conver | 
| 13fc0 |  74 5f 64 61 74 65 5f 74 65 78 74 5f 6c 65 67 61    63 79 28 70 75 62 5f 64 61 74 65 5f 74 65 78 74  | t_date_text_legacy(pub_date_text | 
| 13fe0 |  29 0a 0a 20 20 20 20 64 65 66 20 5f 63 6f 6e 76    65 72 74 5f 64 61 74 65 5f 74 65 78 74 28 73 65  | )......def._convert_date_text(se | 
| 14000 |  6c 66 2c 20 64 61 74 65 5f 74 65 78 74 29 3a 0a    20 20 20 20 20 20 20 20 23 20 38 2f 33 30 2f 32  | lf,.date_text):.........#.8/30/2 | 
| 14020 |  30 31 31 0a 20 20 20 20 20 20 20 20 79 65 61 72    20 3d 20 69 6e 74 28 64 61 74 65 5f 74 65 78 74  | 011.........year.=.int(date_text | 
| 14040 |  5b 2d 34 3a 5d 29 0a 20 20 20 20 20 20 20 20 6d    6f 6e 74 68 20 3d 20 31 0a 20 20 20 20 20 20 20  | [-4:]).........month.=.1........ | 
| 14060 |  20 64 61 79 20 3d 20 31 0a 20 20 20 20 20 20 20    20 69 66 20 6c 65 6e 28 64 61 74 65 5f 74 65 78  | .day.=.1.........if.len(date_tex | 
| 14080 |  74 29 20 3e 20 34 3a 0a 20 20 20 20 20 20 20 20    20 20 20 20 74 65 78 74 5f 70 61 72 74 73 20 3d  | t).>.4:.............text_parts.= | 
| 140a0 |  20 64 61 74 65 5f 74 65 78 74 5b 3a 6c 65 6e 28    64 61 74 65 5f 74 65 78 74 29 2d 35 5d 2e 70 61  | .date_text[:len(date_text)-5].pa | 
| 140c0 |  72 74 69 74 69 6f 6e 28 27 2f 27 29 20 23 20 6d    2f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d  | rtition('/').#.m/d.............m | 
| 140e0 |  6f 6e 74 68 20 3d 20 69 6e 74 28 74 65 78 74 5f    70 61 72 74 73 5b 30 5d 29 0a 20 20 20 20 20 20  | onth.=.int(text_parts[0])....... | 
| 14100 |  20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 65 78    74 5f 70 61 72 74 73 5b 32 5d 29 20 3e 20 30 3a  | ......if.len(text_parts[2]).>.0: | 
| 14120 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 64 61 79 20 3d 20 69 6e 74 28 74 65 78 74 5f  | .................day.=.int(text_ | 
| 14140 |  70 61 72 74 73 5b 32 5d 29 0a 20 20 20 20 20 20    20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75  | parts[2]).........from.calibre.u | 
| 14160 |  74 69 6c 73 2e 64 61 74 65 20 69 6d 70 6f 72 74    20 75 74 63 5f 74 7a 0a 20 20 20 20 20 20 20 20  | tils.date.import.utc_tz......... | 
| 14180 |  72 65 74 75 72 6e 20 64 61 74 65 74 69 6d 65 2e    64 61 74 65 74 69 6d 65 28 79 65 61 72 2c 20 6d  | return.datetime.datetime(year,.m | 
| 141a0 |  6f 6e 74 68 2c 20 64 61 79 2c 20 74 7a 69 6e 66    6f 3d 75 74 63 5f 74 7a 29 0a 0a 20 20 20 20 64  | onth,.day,.tzinfo=utc_tz)......d | 
| 141c0 |  65 66 20 5f 63 6f 6e 76 65 72 74 5f 64 61 74 65    5f 74 65 78 74 5f 6c 65 67 61 63 79 28 73 65 6c  | ef._convert_date_text_legacy(sel | 
| 141e0 |  66 2c 20 64 61 74 65 5f 74 65 78 74 29 3a 0a 20    20 20 20 20 20 20 20 23 20 4e 6f 74 65 20 74 68  | f,.date_text):.........#.Note.th | 
| 14200 |  61 74 20 74 68 65 20 64 61 74 65 20 74 65 78 74    20 63 6f 75 6c 64 20 62 65 20 22 32 30 30 33 22  | at.the.date.text.could.be."2003" | 
| 14220 |  2c 20 22 44 65 63 65 6d 62 65 72 20 32 30 30 33    22 20 6f 72 20 22 44 65 63 65 6d 62 65 72 20 31  | ,."December.2003".or."December.1 | 
| 14240 |  30 74 68 20 32 30 30 33 22 0a 20 20 20 20 20 20    20 20 79 65 61 72 20 3d 20 69 6e 74 28 64 61 74  | 0th.2003".........year.=.int(dat | 
| 14260 |  65 5f 74 65 78 74 5b 2d 34 3a 5d 29 0a 20 20 20    20 20 20 20 20 6d 6f 6e 74 68 20 3d 20 31 0a 20  | e_text[-4:]).........month.=.1.. | 
| 14280 |  20 20 20 20 20 20 20 64 61 79 20 3d 20 31 0a 20    20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 64 61  | .......day.=.1.........if.len(da | 
| 142a0 |  74 65 5f 74 65 78 74 29 20 3e 20 34 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 74 65 78 74 5f 70  | te_text).>.4:.............text_p | 
| 142c0 |  61 72 74 73 20 3d 20 64 61 74 65 5f 74 65 78 74    5b 3a 6c 65 6e 28 64 61 74 65 5f 74 65 78 74 29  | arts.=.date_text[:len(date_text) | 
| 142e0 |  2d 35 5d 2e 70 61 72 74 69 74 69 6f 6e 28 27 20    27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d  | -5].partition('.').............m | 
| 14300 |  6f 6e 74 68 5f 6e 61 6d 65 20 3d 20 74 65 78 74    5f 70 61 72 74 73 5b 30 5d 0a 20 20 20 20 20 20  | onth_name.=.text_parts[0]....... | 
| 14320 |  20 20 20 20 20 20 23 20 4e 65 65 64 20 74 6f 20    63 6f 6e 76 65 72 74 20 74 68 65 20 6d 6f 6e 74  | ......#.Need.to.convert.the.mont | 
| 14340 |  68 20 6e 61 6d 65 20 69 6e 74 6f 20 61 20 6e 75    6d 65 72 69 63 20 76 61 6c 75 65 0a 20 20 20 20  | h.name.into.a.numeric.value..... | 
| 14360 |  20 20 20 20 20 20 20 20 23 20 46 6f 72 20 6e 6f    77 20 49 20 61 6d 20 22 61 73 73 75 6d 69 6e 67  | ........#.For.now.I.am."assuming | 
| 14380 |  22 20 74 68 65 20 47 6f 6f 64 72 65 61 64 73 20    77 65 62 73 69 74 65 20 6f 6e 6c 79 20 64 69 73  | ".the.Goodreads.website.only.dis | 
| 143a0 |  70 6c 61 79 73 20 69 6e 20 45 6e 67 6c 69 73 68    0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49  | plays.in.English.............#.I | 
| 143c0 |  66 20 69 74 20 64 6f 65 73 6e 27 74 20 77 69 6c    6c 20 6a 75 73 74 20 66 61 6c 6c 62 61 63 6b 20  | f.it.doesn't.will.just.fallback. | 
| 143e0 |  74 6f 20 61 73 73 75 6d 69 6e 67 20 4a 61 6e 75    61 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20  | to.assuming.January............. | 
| 14400 |  6d 6f 6e 74 68 5f 64 69 63 74 20 3d 20 7b 22 4a    61 6e 75 61 72 79 22 3a 31 2c 20 22 46 65 62 72  | month_dict.=.{"January":1,."Febr | 
| 14420 |  75 61 72 79 22 3a 32 2c 20 22 4d 61 72 63 68 22    3a 33 2c 20 22 41 70 72 69 6c 22 3a 34 2c 20 22  | uary":2,."March":3,."April":4,." | 
| 14440 |  4d 61 79 22 3a 35 2c 20 22 4a 75 6e 65 22 3a 36    2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | May":5,."June":6,............... | 
| 14460 |  20 20 22 4a 75 6c 79 22 3a 37 2c 20 22 41 75 67    75 73 74 22 3a 38 2c 20 22 53 65 70 74 65 6d 62  | .."July":7,."August":8,."Septemb | 
| 14480 |  65 72 22 3a 39 2c 20 22 4f 63 74 6f 62 65 72 22    3a 31 30 2c 20 22 4e 6f 76 65 6d 62 65 72 22 3a  | er":9,."October":10,."November": | 
| 144a0 |  31 31 2c 20 22 44 65 63 65 6d 62 65 72 22 3a 31    32 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d  | 11,."December":12}.............m | 
| 144c0 |  6f 6e 74 68 20 3d 20 6d 6f 6e 74 68 5f 64 69 63    74 2e 67 65 74 28 6d 6f 6e 74 68 5f 6e 61 6d 65  | onth.=.month_dict.get(month_name | 
| 144e0 |  2c 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 69 66 20 6c 65 6e 28 74 65 78 74 5f 70 61 72  | ,.1).............if.len(text_par | 
| 14500 |  74 73 5b 32 5d 29 20 3e 20 30 3a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 64 61 79 20  | ts[2]).>.0:.................day. | 
| 14520 |  3d 20 69 6e 74 28 72 65 2e 6d 61 74 63 68 28 27    28 5b 30 2d 39 5d 2b 29 27 2c 20 74 65 78 74 5f  | =.int(re.match('([0-9]+)',.text_ | 
| 14540 |  70 61 72 74 73 5b 32 5d 29 2e 67 72 6f 75 70 73    28 30 29 5b 30 5d 29 0a 20 20 20 20 20 20 20 20  | parts[2]).groups(0)[0])......... | 
| 14560 |  66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69    6c 73 2e 64 61 74 65 20 69 6d 70 6f 72 74 20 75  | from.calibre.utils.date.import.u | 
| 14580 |  74 63 5f 74 7a 0a 20 20 20 20 20 20 20 20 72 65    74 75 72 6e 20 64 61 74 65 74 69 6d 65 2e 64 61  | tc_tz.........return.datetime.da | 
| 145a0 |  74 65 74 69 6d 65 28 79 65 61 72 2c 20 6d 6f 6e    74 68 2c 20 64 61 79 2c 20 74 7a 69 6e 66 6f 3d  | tetime(year,.month,.day,.tzinfo= | 
| 145c0 |  75 74 63 5f 74 7a 29 0a 0a 20 20 20 20 64 65 66    20 70 61 72 73 65 5f 63 6f 6d 6d 65 6e 74 73 28  | utc_tz)......def.parse_comments( | 
| 145e0 |  73 65 6c 66 2c 20 72 6f 6f 74 29 3a 0a 20 20 20    20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20  | self,.root):.........comments.=. | 
| 14600 |  27 27 0a 0a 20 20 20 20 20 20 20 20 23 20 54 68    69 73 20 69 73 20 61 20 66 69 63 74 69 6f 6e 20  | ''..........#.This.is.a.fiction. | 
| 14620 |  62 6f 6f 6b 20 74 68 61 74 20 68 61 73 20 61 20    74 61 62 6c 65 20 6f 66 20 63 6f 6e 74 65 6e 74  | book.that.has.a.table.of.content | 
| 14640 |  73 20 61 74 20 62 6f 74 74 6f 6d 20 6f 66 20 70    61 67 65 0a 20 20 20 20 20 20 20 20 23 20 43 6f  | s.at.bottom.of.page.........#.Co | 
| 14660 |  6c 6c 65 63 74 65 64 20 53 74 6f 72 69 65 73 20    62 79 20 53 61 75 6c 20 42 65 6c 6c 6f 77 0a 20  | llected.Stories.by.Saul.Bellow.. | 
| 14680 |  20 20 20 20 20 20 20 23 20 68 74 74 70 3a 2f 2f    77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62  | .......#.http://www.barnesandnob | 
| 146a0 |  6c 65 2e 63 6f 6d 2f 77 2f 63 6f 6c 6c 65 63 74    65 64 2d 73 74 6f 72 69 65 73 2d 73 61 75 6c 2d  | le.com/w/collected-stories-saul- | 
| 146c0 |  62 65 6c 6c 6f 77 2f 31 31 30 30 31 35 34 38 38    33 3f 65 61 6e 3d 39 37 38 30 31 34 33 31 30 37  | bellow/1100154883?ean=9780143107 | 
| 146e0 |  32 35 35 0a 20 20 20 20 20 20 20 20 64 65 73 63    72 69 70 74 69 6f 6e 5f 6e 6f 64 65 20 3d 20 72  | 255.........description_node.=.r | 
| 14700 |  6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76    5b 40 69 74 65 6d 70 72 6f 70 3d 22 64 65 73 63  | oot.xpath('//div[@itemprop="desc | 
| 14720 |  72 69 70 74 69 6f 6e 22 5d 27 29 0a 20 20 20 20    20 20 20 20 69 66 20 64 65 73 63 72 69 70 74 69  | ription"]').........if.descripti | 
| 14740 |  6f 6e 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20  | on_node:.............comments.=. | 
| 14760 |  74 6f 73 74 72 69 6e 67 28 64 65 73 63 72 69 70    74 69 6f 6e 5f 6e 6f 64 65 5b 30 5d 2c 20 6d 65  | tostring(description_node[0],.me | 
| 14780 |  74 68 6f 64 3d 27 68 74 6d 6c 27 2c 20 65 6e 63    6f 64 69 6e 67 3d 27 75 6e 69 63 6f 64 65 27 29  | thod='html',.encoding='unicode') | 
| 147a0 |  2e 73 74 72 69 70 28 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20  | .strip().............comments.=. | 
| 147c0 |  73 61 6e 69 74 69 7a 65 5f 63 6f 6d 6d 65 6e 74    73 5f 68 74 6d 6c 28 63 6f 6d 6d 65 6e 74 73 29  | sanitize_comments_html(comments) | 
| 147e0 |  0a 0a 20 20 20 20 20 20 20 20 69 66 20 63 6f 6d    6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 20 20 20  | ..........if.comments:.......... | 
| 14800 |  20 20 20 72 65 74 75 72 6e 20 63 6f 6d 6d 65 6e    74 73 0a 0a 20 20 20 20 64 65 66 20 70 61 72 73  | ...return.comments......def.pars | 
| 14820 |  65 5f 63 6f 76 65 72 28 73 65 6c 66 2c 20 72 6f    6f 74 29 3a 0a 20 20 20 20 20 20 20 20 23 20 46  | e_cover(self,.root):.........#.F | 
| 14840 |  69 72 73 74 20 63 68 65 63 6b 20 74 6f 20 6d 61    6b 65 20 73 75 72 65 20 69 74 20 69 73 20 6e 6f  | irst.check.to.make.sure.it.is.no | 
| 14860 |  74 20 61 6e 20 69 6d 61 67 65 20 4e 41 20 6c 69    6e 6b 2e 0a 20 20 20 20 20 20 20 20 70 61 67 65  | t.an.image.NA.link..........page | 
| 14880 |  5f 69 6d 61 67 65 5f 6e 6f 64 65 20 3d 20 72 6f    6f 74 2e 78 70 61 74 68 28 27 2f 2f 69 6d 67 5b  | _image_node.=.root.xpath('//img[ | 
| 148a0 |  40 69 64 3d 22 70 64 70 4d 61 69 6e 49 6d 61 67    65 22 5d 2f 40 73 72 63 27 29 0a 20 20 20 20 20  | @id="pdpMainImage"]/@src')...... | 
| 148c0 |  20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69    6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20  | ...if.not.page_image_node:...... | 
| 148e0 |  20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67    65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70  | .......page_image_node.=.root.xp | 
| 14900 |  61 74 68 28 27 2f 2f 73 65 63 74 69 6f 6e 5b 63    6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 22  | ath('//section[contains(@class," | 
| 14920 |  70 72 69 6d 2d 69 6d 61 67 65 22 29 5d 2f 61 2f    69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20  | prim-image")]/a/img/@src')...... | 
| 14940 |  20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69    6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20  | ...if.not.page_image_node:...... | 
| 14960 |  20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67    65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70  | .......page_image_node.=.root.xp | 
| 14980 |  61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61    69 6e 73 28 40 63 6c 61 73 73 2c 22 70 72 6f 64  | ath('//div[contains(@class,"prod | 
| 149a0 |  75 63 74 2d 69 6d 61 67 65 22 29 5d 2f 61 2f 69    6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20 20  | uct-image")]/a/img/@src')....... | 
| 149c0 |  20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69 6d    61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20  | ..if.not.page_image_node:....... | 
| 149e0 |  20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67 65    5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61  | ......page_image_node.=.root.xpa | 
| 14a00 |  74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69    6e 73 28 40 63 6c 61 73 73 2c 22 6c 6f 6f 6b 2d  | th('//div[contains(@class,"look- | 
| 14a20 |  69 6e 73 69 64 65 2d 70 64 70 22 29 5d 2f 61 2f    69 6d 67 2f 40 73 72 63 27 29 0a 20 20 20 20 20  | inside-pdp")]/a/img/@src')...... | 
| 14a40 |  20 20 20 69 66 20 6e 6f 74 20 70 61 67 65 5f 69    6d 61 67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20  | ...if.not.page_image_node:...... | 
| 14a60 |  20 20 20 20 20 20 20 70 61 67 65 5f 69 6d 61 67    65 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70  | .......page_image_node.=.root.xp | 
| 14a80 |  61 74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61    69 6e 73 28 40 63 6c 61 73 73 2c 22 69 6d 61 67  | ath('//div[contains(@class,"imag | 
| 14aa0 |  65 2d 62 6c 6f 63 6b 22 29 5d 2f 69 6d 67 2f 40    73 72 63 27 29 0a 20 20 20 20 20 20 20 20 69 66  | e-block")]/img/@src').........if | 
| 14ac0 |  20 70 61 67 65 5f 69 6d 61 67 65 5f 6e 6f 64 65    3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61  | .page_image_node:.............pa | 
| 14ae0 |  67 65 5f 75 72 6c 20 3d 20 70 61 67 65 5f 69 6d    61 67 65 5f 6e 6f 64 65 5b 30 5d 2e 73 74 72 69  | ge_url.=.page_image_node[0].stri | 
| 14b00 |  70 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    69 66 20 6e 6f 74 20 73 65 6c 66 2e 5f 69 73 5f  | p().............if.not.self._is_ | 
| 14b20 |  76 61 6c 69 64 5f 69 6d 61 67 65 28 70 61 67 65    5f 75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 20  | valid_image(page_url):.......... | 
| 14b40 |  20 20 20 20 20 20 20 73 65 6c 66 2e 6c 6f 67 2e    69 6e 66 6f 28 27 41 62 6f 72 74 69 6e 67 20 70  | .......self.log.info('Aborting.p | 
| 14b60 |  61 72 73 65 5f 63 6f 76 65 72 27 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74  | arse_cover').................ret | 
| 14b80 |  75 72 6e 0a 0a 20 20 20 20 20 20 20 20 64 61 74    61 5f 6d 6f 64 61 6c 5f 75 72 6c 20 3d 20 72 6f  | urn..........data_modal_url.=.ro | 
| 14ba0 |  6f 74 2e 78 70 61 74 68 28 27 2f 2f 64 69 76 5b    40 69 64 3d 22 70 72 6f 64 49 6d 61 67 65 22 5d  | ot.xpath('//div[@id="prodImage"] | 
| 14bc0 |  2f 2f 61 5b 40 64 61 74 61 2d 6d 6f 64 61 6c 2d    63 6c 61 73 73 3d 22 42 4e 2e 4d 6f 64 61 6c 2e  | //a[@data-modal-class="BN.Modal. | 
| 14be0 |  42 72 6f 77 73 65 2e 50 44 50 2e 49 6d 61 67 65    56 69 65 77 65 72 22 5d 2f 40 64 61 74 61 2d 6d  | Browse.PDP.ImageViewer"]/@data-m | 
| 14c00 |  6f 64 61 6c 2d 75 72 6c 27 29 0a 20 20 20 20 20    20 20 20 69 66 20 64 61 74 61 5f 6d 6f 64 61 6c  | odal-url').........if.data_modal | 
| 14c20 |  5f 75 72 6c 3a 0a 20 20 20 20 20 20 20 20 20 20    20 20 23 20 4f 62 74 61 69 6e 20 74 68 65 20 73  | _url:.............#.Obtain.the.s | 
| 14c40 |  6b 75 49 64 20 66 72 6f 6d 20 74 68 65 20 64 61    74 61 2d 6d 6f 64 61 6c 2d 75 72 6c 0a 20 20 20  | kuId.from.the.data-modal-url.... | 
| 14c60 |  20 20 20 20 20 20 20 20 20 71 72 79 20 3d 20 73    69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 62 2e  | .........qry.=.six.moves.urllib. | 
| 14c80 |  70 61 72 73 65 2e 70 61 72 73 65 5f 71 73 28 73    69 78 2e 6d 6f 76 65 73 2e 75 72 6c 6c 69 62 2e  | parse.parse_qs(six.moves.urllib. | 
| 14ca0 |  70 61 72 73 65 2e 75 72 6c 70 61 72 73 65 28 64    61 74 61 5f 6d 6f 64 61 6c 5f 75 72 6c 5b 30 5d  | parse.urlparse(data_modal_url[0] | 
| 14cc0 |  29 2e 71 75 65 72 79 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 73 6b 75 69 64 20 3d 20 71 72 79  | ).query).............skuid.=.qry | 
| 14ce0 |  5b 27 73 6b 75 49 64 27 5d 5b 30 5d 0a 20 20 20    20 20 20 20 20 20 20 20 20 69 6d 67 5f 73 76 72  | ['skuId'][0].............img_svr | 
| 14d00 |  5f 75 72 6c 20 3d 20 72 6f 6f 74 2e 78 70 61 74    68 28 27 2f 2f 64 69 76 5b 40 69 64 3d 22 70 72  | _url.=.root.xpath('//div[@id="pr | 
| 14d20 |  6f 64 49 6d 61 67 65 22 5d 2f 2f 61 5b 40 64 61    74 61 2d 6d 6f 64 61 6c 2d 63 6c 61 73 73 3d 22  | odImage"]//a[@data-modal-class=" | 
| 14d40 |  42 4e 2e 4d 6f 64 61 6c 2e 42 72 6f 77 73 65 2e    50 44 50 2e 49 6d 61 67 65 56 69 65 77 65 72 22  | BN.Modal.Browse.PDP.ImageViewer" | 
| 14d60 |  5d 2f 40 64 61 74 61 2d 6c 69 71 75 69 64 64 6f    6d 61 69 6e 27 29 0a 20 20 20 20 20 20 20 20 20  | ]/@data-liquiddomain').......... | 
| 14d80 |  20 20 20 69 66 20 69 6d 67 5f 73 76 72 5f 75 72    6c 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...if.img_svr_url:.............. | 
| 14da0 |  20 20 20 23 69 6d 67 5f 75 72 6c 20 3d 20 27 68    74 74 70 3a 2f 2f 27 20 2b 20 69 6d 67 5f 73 76  | ...#img_url.=.'http://'.+.img_sv | 
| 14dc0 |  72 5f 75 72 6c 5b 30 5d 20 2b 20 27 2f 6c 66 3f    73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a  | r_url[0].+.'/lf?source=url[file: | 
| 14de0 |  69 6d 61 67 65 73 2f 49 6d 61 67 65 73 2f 70 69    6d 61 67 65 73 2f 25 73 2f 25 73 5f 70 30 2e 6a  | images/Images/pimages/%s/%s_p0.j | 
| 14e00 |  70 67 5d 26 73 63 61 6c 65 3d 73 69 7a 65 5b 25    73 78 25 73 5d 26 73 69 6e 6b 27 20 25 20 28 73  | pg]&scale=size[%sx%s]&sink'.%.(s | 
| 14e20 |  6b 75 69 64 5b 2d 34 3a 5d 2c 20 73 6b 75 69 64    2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 29  | kuid[-4:],.skuid,.width,.height) | 
| 14e40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 69 6d 67 5f 75 72 6c 20 3d 20 27 68 74 74 70  | .................img_url.=.'http | 
| 14e60 |  3a 2f 2f 27 20 2b 20 69 6d 67 5f 73 76 72 5f 75    72 6c 5b 30 5d 20 2b 20 27 2f 6c 66 3f 73 6f 75  | ://'.+.img_svr_url[0].+.'/lf?sou | 
| 14e80 |  72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a 69 6d 61    67 65 73 2f 49 6d 61 67 65 73 2f 70 69 6d 61 67  | rce=url[file:images/Images/pimag | 
| 14ea0 |  65 73 2f 25 73 2f 25 73 5f 70 30 2e 6a 70 67 5d    26 73 69 6e 6b 27 20 25 20 28 73 6b 75 69 64 5b  | es/%s/%s_p0.jpg]&sink'.%.(skuid[ | 
| 14ec0 |  2d 34 3a 5d 2c 20 73 6b 75 69 64 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 6c  | -4:],.skuid).............self.pl | 
| 14ee0 |  75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 6e 74    69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75  | ugin.cache_identifier_to_cover_u | 
| 14f00 |  72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e    6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75 72 6c  | rl(self.barnes_noble_id,.img_url | 
| 14f20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65    74 75 72 6e 20 69 6d 67 5f 75 72 6c 0a 0a 20 20  | ).............return.img_url.... | 
| 14f40 |  20 20 20 20 20 20 23 20 4e 65 77 20 73 74 79 6c    65 20 70 61 67 65 20 6c 61 79 6f 75 74 20 2d 20  | ......#.New.style.page.layout.-. | 
| 14f60 |  6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 65 78 70    61 6e 64 65 64 20 6e 6f 64 65 0a 20 20 20 20 20  | look.for.the.expanded.node...... | 
| 14f80 |  20 20 20 23 20 68 74 74 70 3a 2f 2f 77 77 77 2e    62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63  | ...#.http://www.barnesandnoble.c | 
| 14fa0 |  6f 6d 2f 77 2f 65 6d 70 65 72 6f 72 73 2d 74 6f    6d 62 2d 73 74 65 76 65 2d 62 65 72 72 79 2f 31  | om/w/emperors-tomb-steve-berry/1 | 
| 14fc0 |  31 30 30 30 35 38 33 32 31 3f 65 61 6e 3d 39 37    38 30 33 34 35 35 30 35 35 30 37 26 69 74 6d 3d  | 100058321?ean=9780345505507&itm= | 
| 14fe0 |  31 26 75 73 72 69 3d 73 74 65 76 65 2b 62 65 72    72 79 0a 20 20 20 20 20 20 20 20 69 6d 67 63 6f  | 1&usri=steve+berry.........imgco | 
| 15000 |  6c 5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70    61 74 68 28 27 2f 2f 69 6d 67 5b 40 69 64 3d 22  | l_node.=.root.xpath('//img[@id=" | 
| 15020 |  76 69 65 77 65 72 2d 69 6d 61 67 65 2d 31 22 5d    2f 40 64 61 74 61 2d 62 6e 2d 73 72 63 2d 75 72  | viewer-image-1"]/@data-bn-src-ur | 
| 15040 |  6c 27 29 0a 20 20 20 20 20 20 20 20 69 66 20 6e    6f 74 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a 0a  | l').........if.not.imgcol_node:. | 
| 15060 |  20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 72    79 20 75 73 69 6e 67 20 74 68 65 20 6f 6e 20 70  | ............#.Try.using.the.on.p | 
| 15080 |  61 67 65 20 69 6d 61 67 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 69 6d 67 63 6f 6c 5f 6e 6f 64  | age.image.............imgcol_nod | 
| 150a0 |  65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27    2f 2f 69 6d 67 5b 40 64 61 74 61 2d 62 6e 74 72  | e.=.root.xpath('//img[@data-bntr | 
| 150c0 |  61 63 6b 3d 22 50 72 6f 64 75 63 74 49 6d 61 67    65 4d 61 69 6e 22 5d 2f 40 73 72 63 27 29 0a 20  | ack="ProductImageMain"]/@src').. | 
| 150e0 |  20 20 20 20 20 20 20 69 66 20 69 6d 67 63 6f 6c    5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20 20 20  | .......if.imgcol_node:.......... | 
| 15100 |  20 20 20 69 6d 67 5f 75 72 6c 20 3d 20 69 6d 67    63 6f 6c 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20  | ...img_url.=.imgcol_node[0]..... | 
| 15120 |  20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e    5f 69 73 5f 76 61 6c 69 64 5f 69 6d 61 67 65 28  | ........if.self._is_valid_image( | 
| 15140 |  69 6d 67 5f 75 72 6c 29 3a 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70  | img_url):.................self.p | 
| 15160 |  6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65 6e    74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f  | lugin.cache_identifier_to_cover_ | 
| 15180 |  75 72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73 5f    6e 6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75 72  | url(self.barnes_noble_id,.img_ur | 
| 151a0 |  6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 72 65 74 75 72 6e 20 69 6d 67 5f 75 72  | l).................return.img_ur | 
| 151c0 |  6c 0a 0a 20 20 20 20 20 20 20 20 23 20 4c 65 67    61 63 79 20 6d 6f 64 65 20 28 50 72 65 2d 31 2e  | l..........#.Legacy.mode.(Pre-1. | 
| 151e0 |  32 20 26 20 74 65 78 74 62 6f 6f 6b 73 29 0a 20    20 20 20 20 20 20 20 69 6d 67 63 6f 6c 5f 6e 6f  | 2.&.textbooks).........imgcol_no | 
| 15200 |  64 65 20 3d 20 72 6f 6f 74 2e 78 70 61 74 68 28    27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28  | de.=.root.xpath('//div[contains( | 
| 15220 |  40 63 6c 61 73 73 2c 22 77 67 74 2d 70 72 6f 64    75 63 74 2d 69 6d 61 67 65 22 29 5d 2f 61 2f 40  | @class,"wgt-product-image")]/a/@ | 
| 15240 |  64 61 74 61 2d 62 6e 2d 6f 70 74 69 6f 6e 73 27    29 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74  | data-bn-options').........if.not | 
| 15260 |  20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 69 6d 67 63 6f 6c  | .imgcol_node:.............imgcol | 
| 15280 |  5f 6e 6f 64 65 20 3d 20 72 6f 6f 74 2e 78 70 61    74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69  | _node.=.root.xpath('//div[contai | 
| 152a0 |  6e 73 28 40 63 6c 61 73 73 2c 22 6c 6f 6f 6b 2d    69 6e 73 69 64 65 2d 70 64 70 22 29 5d 2f 61 2f  | ns(@class,"look-inside-pdp")]/a/ | 
| 152c0 |  40 68 72 65 66 27 29 0a 0a 20 20 20 20 20 20 20    20 69 66 20 69 6d 67 63 6f 6c 5f 6e 6f 64 65 3a  | @href')..........if.imgcol_node: | 
| 152e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67    5f 6f 70 74 69 6f 6e 73 20 3d 20 69 6d 67 63 6f  | .............img_options.=.imgco | 
| 15300 |  6c 5f 6e 6f 64 65 5b 30 5d 0a 20 20 20 20 20 20    20 20 20 20 20 20 23 20 54 68 69 73 20 67 65 74  | l_node[0].............#.This.get | 
| 15320 |  73 20 75 73 20 61 20 73 65 74 20 6f 66 20 64 61    74 61 20 66 6f 72 20 70 61 73 73 69 6e 67 20 74  | s.us.a.set.of.data.for.passing.t | 
| 15340 |  6f 20 61 6e 6f 74 68 65 72 20 70 61 67 65 3a 0a    20 20 20 20 20 20 20 20 20 20 20 20 23 20 20 20  | o.another.page:.............#... | 
| 15360 |  22 7b 75 72 6c 3a 27 68 74 74 70 3a 2f 2f 73 65    61 72 63 68 2e 62 61 72 6e 65 73 61 6e 64 6e 6f  | "{url:'http://search.barnesandno | 
| 15380 |  62 6c 65 2e 63 6f 6d 2f 62 6f 6f 6b 73 65 61 72    63 68 2f 69 6d 61 67 65 76 69 65 77 65 72 2e 61  | ble.com/booksearch/imageviewer.a | 
| 153a0 |  73 70 3f 65 61 6e 3d 39 37 38 30 37 36 35 33 34    32 39 38 30 26 61 6d 70 3b 69 6d 49 64 3d 27 2c  | sp?ean=9780765342980&imId=', | 
| 153c0 |  6e 61 6d 65 3a 27 54 68 75 6d 62 6e 61 69 6c 49    6d 61 67 65 27 2c 77 69 64 74 68 3a 27 37 32 30  | name:'ThumbnailImage',width:'720 | 
| 153e0 |  27 2c 68 65 69 67 68 74 3a 27 39 30 30 27 2c 73    63 72 6f 6c 6c 62 61 72 73 3a 27 79 65 73 27 7d  | ',height:'900',scrollbars:'yes'} | 
| 15400 |  22 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20    4f 72 20 6f 6e 20 54 65 78 74 62 6f 6f 6b 20 70  | ".............#.Or.on.Textbook.p | 
| 15420 |  61 67 65 73 2c 20 69 74 20 67 65 74 73 20 75 73    20 74 6f 20 74 68 65 20 68 72 65 66 20 64 69 72  | ages,.it.gets.us.to.the.href.dir | 
| 15440 |  65 63 74 6c 79 3a 0a 20 20 20 20 20 20 20 20 20    20 20 20 23 20 20 20 22 68 74 74 70 3a 2f 2f 73  | ectly:.............#..."http://s | 
| 15460 |  65 61 72 63 68 2e 62 61 72 6e 65 73 61 6e 64 6e    6f 62 6c 65 2e 63 6f 6d 2f 62 6f 6f 6b 73 65 61  | earch.barnesandnoble.com/booksea | 
| 15480 |  72 63 68 2f 69 6d 61 67 65 76 69 65 77 65 72 2e    61 73 70 3f 65 61 6e 3d 39 37 38 30 34 37 30 35  | rch/imageviewer.asp?ean=97804705 | 
| 154a0 |  32 36 39 31 30 26 61 6d 70 3b 69 6d 49 64 3d 37    37 31 39 32 39 39 35 22 0a 20 20 20 20 20 20 20  | 26910&imId=77192995"........ | 
| 154c0 |  20 20 20 20 20 23 20 57 69 74 68 20 74 68 65 20    77 65 62 73 69 74 65 20 72 65 77 72 69 74 65 2c  | .....#.With.the.website.rewrite, | 
| 154e0 |  20 77 65 20 63 61 6e 6e 6f 74 20 67 65 74 20 64    69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 6c  | .we.cannot.get.directly.to.the.l | 
| 15500 |  61 72 67 65 20 69 6d 61 67 65 2c 20 61 73 20 69    74 73 20 64 65 74 61 69 6c 73 0a 20 20 20 20 20  | arge.image,.as.its.details...... | 
| 15520 |  20 20 20 20 20 20 20 23 20 61 72 65 20 6e 6f 77    68 65 72 65 20 69 6e 73 69 64 65 20 74 68 65 20  | .......#.are.nowhere.inside.the. | 
| 15540 |  70 61 67 65 20 77 65 20 68 61 76 65 20 6a 75 73    74 20 70 61 72 73 65 64 2e 20 57 68 69 63 68 20  | page.we.have.just.parsed..Which. | 
| 15560 |  75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 20 6d 65    61 6e 73 20 77 65 20 6e 6f 77 0a 20 20 20 20 20  | unfortunately.means.we.now...... | 
| 15580 |  20 20 20 20 20 20 20 23 20 68 61 76 65 20 74 6f    20 64 6f 20 61 6e 6f 74 68 65 72 20 68 6f 70 20  | .......#.have.to.do.another.hop. | 
| 155a0 |  74 6f 20 74 68 65 20 55 52 4c 20 61 62 6f 76 65    20 61 6e 64 20 70 61 72 73 65 20 74 68 65 20 72  | to.the.URL.above.and.parse.the.r | 
| 155c0 |  65 73 75 6c 74 73 20 6f 66 20 74 68 61 74 20 70    61 67 65 20 74 6f 20 67 65 74 0a 20 20 20 20 20  | esults.of.that.page.to.get...... | 
| 155e0 |  20 20 20 20 20 20 20 23 20 74 68 65 20 61 63 74    75 61 6c 20 6c 61 72 67 65 20 69 6d 61 67 65 20  | .......#.the.actual.large.image. | 
| 15600 |  55 52 4c 2e 20 56 65 72 79 20 61 6e 6e 6f 79 65    64 20 61 74 20 74 68 65 20 70 65 72 66 6f 72 6d  | URL..Very.annoyed.at.the.perform | 
| 15620 |  61 6e 63 65 20 68 69 74 20 6f 66 20 64 6f 69 6e    67 20 74 68 69 73 21 0a 20 20 20 20 20 20 20 20  | ance.hit.of.doing.this!......... | 
| 15640 |  20 20 20 20 6d 61 74 63 68 20 3d 20 72 65 2e 73    65 61 72 63 68 28 27 28 68 74 74 70 3a 2f 2f 2e  | ....match.=.re.search('(http://. | 
| 15660 |  2a 65 61 6e 3d 5c 64 2b 29 27 2c 20 69 6d 67 5f    6f 70 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20  | *ean=\d+)',.img_options)........ | 
| 15680 |  20 20 20 20 20 69 66 20 6d 61 74 63 68 3a 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64  | .....if.match:.................d | 
| 156a0 |  65 74 61 69 6c 5f 70 61 67 65 5f 75 72 6c 20 3d    20 6d 61 74 63 68 2e 67 72 6f 75 70 73 28 30 29  | etail_page_url.=.match.groups(0) | 
| 156c0 |  5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 74 72 79 3a 0a 20 20 20 20 20 20 20  | [0].................try:........ | 
| 156e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77    20 3d 20 73 65 6c 66 2e 62 72 6f 77 73 65 72 2e  | .............raw.=.self.browser. | 
| 15700 |  6f 70 65 6e 5f 6e 6f 76 69 73 69 74 28 64 65 74    61 69 6c 5f 70 61 67 65 5f 75 72 6c 2c 20 74 69  | open_novisit(detail_page_url,.ti | 
| 15720 |  6d 65 6f 75 74 3d 73 65 6c 66 2e 74 69 6d 65 6f    75 74 29 2e 72 65 61 64 28 29 2e 73 74 72 69 70  | meout=self.timeout).read().strip | 
| 15740 |  28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 72 61 77 20 3d 20 72 61 77  | ().....................raw.=.raw | 
| 15760 |  2e 64 65 63 6f 64 65 28 27 75 74 66 2d 38 27 2c    20 65 72 72 6f 72 73 3d 27 72 65 70 6c 61 63 65  | .decode('utf-8',.errors='replace | 
| 15780 |  27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 69 6d 67 5f 72 6f 6f 74 20  | ').....................img_root. | 
| 157a0 |  3d 20 66 72 6f 6d 73 74 72 69 6e 67 28 63 6c 65    61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73 28 72  | =.fromstring(clean_ascii_chars(r | 
| 157c0 |  61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 69 6d 61 67 65 5f 72  | aw)).....................image_r | 
| 157e0 |  65 66 73 20 3d 20 69 6d 67 5f 72 6f 6f 74 2e 78    70 61 74 68 28 27 2f 2f 74 61 62 6c 65 5b 40 63  | efs.=.img_root.xpath('//table[@c | 
| 15800 |  6c 61 73 73 3d 22 49 6d 61 67 65 56 69 65 77 65    72 4e 61 76 22 5d 2f 74 72 2f 74 64 2f 61 2f 40  | lass="ImageViewerNav"]/tr/td/a/@ | 
| 15820 |  68 72 65 66 27 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65  | href').....................if.le | 
| 15840 |  6e 28 69 6d 61 67 65 5f 72 65 66 73 29 20 3e 20    30 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | n(image_refs).>.0:.............. | 
| 15860 |  20 20 20 20 20 20 20 20 20 20 20 23 20 4e 6f 77    20 77 69 74 68 69 6e 3a 20 3c 61 20 68 72 65 66  | ...........#.Now.within:.<a.href | 
| 15880 |  3d 22 69 6d 61 67 65 76 69 65 77 65 72 2e 61 73    70 3f 65 61 6e 3d 39 37 38 31 35 39 33 30 38 30  | ="imageviewer.asp?ean=9781593080 | 
| 158a0 |  37 37 38 26 61 6d 70 3b 69 6d 49 64 3d 37 31 31    35 35 32 34 31 22 3e 0a 20 20 20 20 20 20 20 20  | 778&imId=71155241">......... | 
| 158c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    66 72 6f 6e 74 5f 69 6d 49 64 20 3d 20 69 6d 61  | ................front_imId.=.ima | 
| 158e0 |  67 65 5f 72 65 66 73 5b 30 5d 2e 72 70 61 72 74    69 74 69 6f 6e 28 27 3d 27 29 5b 32 5d 2e 73 74  | ge_refs[0].rpartition('=')[2].st | 
| 15900 |  72 69 70 28 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61  | rip().........................pa | 
| 15920 |  72 65 6e 74 5f 66 6f 6c 64 65 72 20 3d 20 66 72    6f 6e 74 5f 69 6d 49 64 5b 3a 2d 34 5d 0a 20 20  | rent_folder.=.front_imId[:-4]... | 
| 15940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 69 6d 67 5f 75 72 6c 20 3d 20  | ......................img_url.=. | 
| 15960 |  27 68 74 74 70 3a 2f 2f 69 6d 61 67 65 73 2e 62    61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65 2e 63 6f  | 'http://images.barnesandnoble.co | 
| 15980 |  6d 2f 69 6d 61 67 65 73 2f 25 73 30 30 30 30 2f    25 73 2e 6a 70 67 27 25 28 70 61 72 65 6e 74 5f  | m/images/%s0000/%s.jpg'%(parent_ | 
| 159a0 |  66 6f 6c 64 65 72 2c 66 72 6f 6e 74 5f 69 6d 49    64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | folder,front_imId).............. | 
| 159c0 |  20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e    70 6c 75 67 69 6e 2e 63 61 63 68 65 5f 69 64 65  | ...........self.plugin.cache_ide | 
| 159e0 |  6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72    5f 75 72 6c 28 73 65 6c 66 2e 62 61 72 6e 65 73  | ntifier_to_cover_url(self.barnes | 
| 15a00 |  5f 6e 6f 62 6c 65 5f 69 64 2c 20 69 6d 67 5f 75    72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | _noble_id,.img_url)............. | 
| 15a20 |  20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75    72 6e 20 69 6d 67 5f 75 72 6c 0a 20 20 20 20 20  | ............return.img_url...... | 
| 15a40 |  20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70    74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........except:.............. | 
| 15a60 |  20 20 20 20 20 20 20 70 61 73 73 0a 0a 20 20 20    20 20 20 20 20 23 20 57 65 20 64 69 64 6e 27 74  | .......pass..........#.We.didn't | 
| 15a80 |  20 66 69 6e 64 20 61 6e 20 65 78 74 65 72 6e 61    6c 20 69 6d 61 67 65 20 6c 69 6e 6b 0a 20 20 20  | .find.an.external.image.link.... | 
| 15aa0 |  20 20 20 20 20 23 20 41 73 20 61 20 66 61 6c 6c    62 61 63 6b 20 74 6f 20 70 72 6f 76 69 64 65 20  | .....#.As.a.fallback.to.provide. | 
| 15ac0 |  22 73 6f 6d 65 74 68 69 6e 67 22 20 75 73 65 20    74 68 65 20 6f 6e 20 70 61 67 65 20 69 6d 61 67  | "something".use.the.on.page.imag | 
| 15ae0 |  65 20 6c 69 6e 6b 20 2d 20 73 6d 61 6c 6c 20 62    75 74 20 6d 61 79 62 65 20 62 65 74 74 65 72 20  | e.link.-.small.but.maybe.better. | 
| 15b00 |  74 68 61 6e 20 6e 6f 74 68 69 6e 67 0a 20 20 20    20 20 20 20 20 69 66 20 70 61 67 65 5f 69 6d 61  | than.nothing.........if.page_ima | 
| 15b20 |  67 65 5f 6e 6f 64 65 3a 0a 20 20 20 20 20 20 20    20 20 20 20 20 69 66 20 73 65 6c 66 2e 62 61 72  | ge_node:.............if.self.bar | 
| 15b40 |  6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65  | nes_noble_id:.................se | 
| 15b60 |  6c 66 2e 70 6c 75 67 69 6e 2e 63 61 63 68 65 5f    69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f  | lf.plugin.cache_identifier_to_co | 
| 15b80 |  76 65 72 5f 75 72 6c 28 27 73 6d 61 6c 6c 2f 27    2b 73 65 6c 66 2e 62 61 72 6e 65 73 5f 6e 6f 62  | ver_url('small/'+self.barnes_nob | 
| 15ba0 |  6c 65 5f 69 64 2c 20 70 61 67 65 5f 75 72 6c 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4c  | le_id,.page_url).............#.L | 
| 15bc0 |  6f 77 65 72 20 6f 75 72 20 72 65 6c 65 76 61 6e    63 65 20 66 61 63 74 6f 72 20 69 6e 20 66 61 76  | ower.our.relevance.factor.in.fav | 
| 15be0 |  6f 75 72 20 6f 66 20 61 6e 20 49 53 42 4e 20 74    68 61 74 20 68 61 73 20 61 20 66 75 6c 6c 20 63  | our.of.an.ISBN.that.has.a.full.c | 
| 15c00 |  6f 76 65 72 20 69 66 20 70 6f 73 73 69 62 6c 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c  | over.if.possible.............sel | 
| 15c20 |  66 2e 72 65 6c 65 76 61 6e 63 65 20 2b 3d 20 35    0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74  | f.relevance.+=.5.............ret | 
| 15c40 |  75 72 6e 20 70 61 67 65 5f 75 72 6c 0a 0a 20 20    20 20 64 65 66 20 5f 69 73 5f 76 61 6c 69 64 5f  | urn.page_url......def._is_valid_ | 
| 15c60 |  69 6d 61 67 65 28 73 65 6c 66 2c 20 69 6d 67 5f    75 72 6c 29 3a 0a 20 20 20 20 20 20 20 20 23 20  | image(self,.img_url):.........#. | 
| 15c80 |  4d 61 6b 65 20 73 75 72 65 20 74 68 69 73 20 69    6d 61 67 65 20 69 73 20 6e 6f 74 20 61 6e 20 4e  | Make.sure.this.image.is.not.an.N | 
| 15ca0 |  41 20 73 74 79 6c 65 20 6f 66 20 69 6d 61 67 65    0a 20 20 20 20 20 20 20 20 69 66 20 69 6d 67 5f  | A.style.of.image.........if.img_ | 
| 15cc0 |  75 72 6c 2e 65 6e 64 73 77 69 74 68 28 27 49 6d    61 67 65 4e 41 5f 70 72 6f 64 75 63 74 2e 67 69  | url.endswith('ImageNA_product.gi | 
| 15ce0 |  66 27 29 20 6f 72 20 69 6d 67 5f 75 72 6c 2e 65    6e 64 73 77 69 74 68 28 27 4e 41 2d 50 72 6f 64  | f').or.img_url.endswith('NA-Prod | 
| 15d00 |  75 63 74 50 61 67 65 32 5f 58 58 4c 2d 35 33 2e    4a 50 47 27 29 20 6f 72 20 27 30 30 30 30 30 30  | uctPage2_XXL-53.JPG').or.'000000 | 
| 15d20 |  30 30 30 30 30 31 37 5f 27 20 69 6e 20 69 6d 67    5f 75 72 6c 20 6f 72 20 27 30 30 30 30 30 30 30  | 0000017_'.in.img_url.or.'0000000 | 
| 15d40 |  30 30 30 30 30 30 5f 70 30 5f 76 30 27 20 69 6e    20 69 6d 67 5f 75 72 6c 3a 0a 20 20 20 20 20 20  | 000000_p0_v0'.in.img_url:....... | 
| 15d60 |  20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c    73 65 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  | ......return.False.........retur | 
| 15d80 |  6e 20 54 72 75 65 0a 50 4b 03 04 14 00 00 00 00    00 42 a0 ac 5a c1 ed 80 20 f0 4d 00 00 f0 4d 00  | n.True.PK........B..Z.....M...M. | 
| 15da0 |  00 0b 00 00 00 5f 5f 69 6e 69 74 5f 5f 2e 70 79    66 72 6f 6d 20 5f 5f 66 75 74 75 72 65 5f 5f 20  | .....__init__.pyfrom.__future__. | 
| 15dc0 |  69 6d 70 6f 72 74 20 75 6e 69 63 6f 64 65 5f 6c    69 74 65 72 61 6c 73 2c 20 64 69 76 69 73 69 6f  | import.unicode_literals,.divisio | 
| 15de0 |  6e 2c 20 61 62 73 6f 6c 75 74 65 5f 69 6d 70 6f    72 74 2c 20 70 72 69 6e 74 5f 66 75 6e 63 74 69  | n,.absolute_import,.print_functi | 
| 15e00 |  6f 6e 0d 0a 0d 0a 5f 5f 6c 69 63 65 6e 73 65 5f    5f 20 20 20 3d 20 27 47 50 4c 20 76 33 27 0d 0a  | on....__license__...=.'GPL.v3'.. | 
| 15e20 |  5f 5f 63 6f 70 79 72 69 67 68 74 5f 5f 20 3d 20    27 32 30 31 31 2c 20 47 72 61 6e 74 20 44 72 61  | __copyright__.=.'2011,.Grant.Dra | 
| 15e40 |  6b 65 27 0d 0a 0d 0a 69 6d 70 6f 72 74 20 74 69    6d 65 2c 20 72 65 2c 20 72 61 6e 64 6f 6d 0d 0a  | ke'....import.time,.re,.random.. | 
| 15e60 |  66 72 6f 6d 20 73 69 78 20 69 6d 70 6f 72 74 20    74 65 78 74 5f 74 79 70 65 20 61 73 20 75 6e 69  | from.six.import.text_type.as.uni | 
| 15e80 |  63 6f 64 65 0d 0a 66 72 6f 6d 20 73 69 78 2e 6d    6f 76 65 73 2e 75 72 6c 6c 69 62 2e 70 61 72 73  | code..from.six.moves.urllib.pars | 
| 15ea0 |  65 20 69 6d 70 6f 72 74 20 71 75 6f 74 65 0d 0a    74 72 79 3a 0d 0a 20 20 20 20 66 72 6f 6d 20 71  | e.import.quote..try:......from.q | 
| 15ec0 |  75 65 75 65 20 69 6d 70 6f 72 74 20 45 6d 70 74    79 2c 20 51 75 65 75 65 0d 0a 65 78 63 65 70 74  | ueue.import.Empty,.Queue..except | 
| 15ee0 |  20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 0d 0a 20    20 20 20 66 72 6f 6d 20 51 75 65 75 65 20 69 6d  | .ImportError:......from.Queue.im | 
| 15f00 |  70 6f 72 74 20 45 6d 70 74 79 2c 20 51 75 65 75    65 0d 0a 66 72 6f 6d 20 63 6f 6c 6c 65 63 74 69  | port.Empty,.Queue..from.collecti | 
| 15f20 |  6f 6e 73 20 69 6d 70 6f 72 74 20 4f 72 64 65 72    65 64 44 69 63 74 0d 0a 0d 0a 66 72 6f 6d 20 6c  | ons.import.OrderedDict....from.l | 
| 15f40 |  78 6d 6c 2e 68 74 6d 6c 20 69 6d 70 6f 72 74 20    66 72 6f 6d 73 74 72 69 6e 67 0d 0a 0d 0a 66 72  | xml.html.import.fromstring....fr | 
| 15f60 |  6f 6d 20 63 61 6c 69 62 72 65 20 69 6d 70 6f 72    74 20 61 73 5f 75 6e 69 63 6f 64 65 0d 0a 66 72  | om.calibre.import.as_unicode..fr | 
| 15f80 |  6f 6d 20 63 61 6c 69 62 72 65 2e 63 6f 6e 73 74    61 6e 74 73 20 69 6d 70 6f 72 74 20 6e 75 6d 65  | om.calibre.constants.import.nume | 
| 15fa0 |  72 69 63 5f 76 65 72 73 69 6f 6e 20 61 73 20 63    61 6c 69 62 72 65 5f 76 65 72 73 69 6f 6e 0d 0a  | ric_version.as.calibre_version.. | 
| 15fc0 |  66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 65 62 6f    6f 6b 73 2e 6d 65 74 61 64 61 74 61 20 69 6d 70  | from.calibre.ebooks.metadata.imp | 
| 15fe0 |  6f 72 74 20 63 68 65 63 6b 5f 69 73 62 6e 0d 0a    66 72 6f 6d 20 63 61 6c 69 62 72 65 2e 65 62 6f  | ort.check_isbn..from.calibre.ebo | 
| 16000 |  6f 6b 73 2e 6d 65 74 61 64 61 74 61 2e 73 6f 75    72 63 65 73 2e 62 61 73 65 20 69 6d 70 6f 72 74  | oks.metadata.sources.base.import | 
| 16020 |  20 53 6f 75 72 63 65 0d 0a 66 72 6f 6d 20 63 61    6c 69 62 72 65 2e 75 74 69 6c 73 2e 69 63 75 20  | .Source..from.calibre.utils.icu. | 
| 16040 |  69 6d 70 6f 72 74 20 6c 6f 77 65 72 0d 0a 66 72    6f 6d 20 63 61 6c 69 62 72 65 2e 75 74 69 6c 73  | import.lower..from.calibre.utils | 
| 16060 |  2e 63 6c 65 61 6e 74 65 78 74 20 69 6d 70 6f 72    74 20 63 6c 65 61 6e 5f 61 73 63 69 69 5f 63 68  | .cleantext.import.clean_ascii_ch | 
| 16080 |  61 72 73 0d 0a 66 72 6f 6d 20 63 61 6c 69 62 72    65 2e 75 74 69 6c 73 2e 6c 6f 63 61 6c 69 7a 61  | ars..from.calibre.utils.localiza | 
| 160a0 |  74 69 6f 6e 20 69 6d 70 6f 72 74 20 67 65 74 5f    75 64 63 0d 0a 0d 0a 63 6c 61 73 73 20 42 61 72  | tion.import.get_udc....class.Bar | 
| 160c0 |  6e 65 73 4e 6f 62 6c 65 28 53 6f 75 72 63 65 29    3a 0d 0a 0d 0a 20 20 20 20 6e 61 6d 65 20 3d 20  | nesNoble(Source):........name.=. | 
| 160e0 |  27 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 27    0d 0a 20 20 20 20 64 65 73 63 72 69 70 74 69 6f  | 'Barnes.&.Noble'......descriptio | 
| 16100 |  6e 20 3d 20 27 44 6f 77 6e 6c 6f 61 64 73 20 6d    65 74 61 64 61 74 61 20 61 6e 64 20 63 6f 76 65  | n.=.'Downloads.metadata.and.cove | 
| 16120 |  72 73 20 66 72 6f 6d 20 42 61 72 6e 65 73 20 26    20 4e 6f 62 6c 65 27 0d 0a 20 20 20 20 61 75 74  | rs.from.Barnes.&.Noble'......aut | 
| 16140 |  68 6f 72 20 3d 20 27 47 72 61 6e 74 20 44 72 61    6b 65 27 0d 0a 20 20 20 20 76 65 72 73 69 6f 6e  | hor.=.'Grant.Drake'......version | 
| 16160 |  20 3d 20 28 31 2c 20 35 2c 20 37 29 0d 0a 20 20    20 20 6d 69 6e 69 6d 75 6d 5f 63 61 6c 69 62 72  | .=.(1,.5,.7)......minimum_calibr | 
| 16180 |  65 5f 76 65 72 73 69 6f 6e 20 3d 20 28 32 2c 20    30 2c 20 30 29 0d 0a 0d 0a 20 20 20 20 49 44 5f  | e_version.=.(2,.0,.0)........ID_ | 
| 161a0 |  4e 41 4d 45 20 3d 20 27 62 61 72 6e 65 73 6e 6f    62 6c 65 27 0d 0a 20 20 20 20 63 61 70 61 62 69  | NAME.=.'barnesnoble'......capabi | 
| 161c0 |  6c 69 74 69 65 73 20 3d 20 66 72 6f 7a 65 6e 73    65 74 28 5b 27 69 64 65 6e 74 69 66 79 27 2c 20  | lities.=.frozenset(['identify',. | 
| 161e0 |  27 63 6f 76 65 72 27 5d 29 0d 0a 20 20 20 20 74    6f 75 63 68 65 64 5f 66 69 65 6c 64 73 20 3d 20  | 'cover'])......touched_fields.=. | 
| 16200 |  66 72 6f 7a 65 6e 73 65 74 28 5b 27 74 69 74 6c    65 27 2c 20 27 61 75 74 68 6f 72 73 27 2c 20 27  | frozenset(['title',.'authors',.' | 
| 16220 |  69 64 65 6e 74 69 66 69 65 72 3a 27 20 2b 20 49    44 5f 4e 41 4d 45 2c 0d 0a 20 20 20 20 20 20 20  | identifier:'.+.ID_NAME,......... | 
| 16240 |  20 27 69 64 65 6e 74 69 66 69 65 72 3a 69 73 62    6e 27 2c 20 27 72 61 74 69 6e 67 27 2c 20 27 63  | .'identifier:isbn',.'rating',.'c | 
| 16260 |  6f 6d 6d 65 6e 74 73 27 2c 20 27 70 75 62 6c 69    73 68 65 72 27 2c 20 27 70 75 62 64 61 74 65 27  | omments',.'publisher',.'pubdate' | 
| 16280 |  2c 0d 0a 20 20 20 20 20 20 20 20 27 73 65 72 69    65 73 27 5d 29 0d 0a 20 20 20 20 68 61 73 5f 68  | ,..........'series'])......has_h | 
| 162a0 |  74 6d 6c 5f 63 6f 6d 6d 65 6e 74 73 20 3d 20 54    72 75 65 0d 0a 20 20 20 20 73 75 70 70 6f 72 74  | tml_comments.=.True......support | 
| 162c0 |  73 5f 67 7a 69 70 5f 74 72 61 6e 73 66 65 72 5f    65 6e 63 6f 64 69 6e 67 20 3d 20 54 72 75 65 0d  | s_gzip_transfer_encoding.=.True. | 
| 162e0 |  0a 0d 0a 20 20 20 20 42 41 53 45 5f 55 52 4c 20    3d 20 27 68 74 74 70 73 3a 2f 2f 73 65 61 72 63  | .......BASE_URL.=.'https://searc | 
| 16300 |  68 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c 65    2e 63 6f 6d 27 0d 0a 20 20 20 20 42 52 4f 57 53  | h.barnesandnoble.com'......BROWS | 
| 16320 |  45 5f 55 52 4c 20 3d 20 27 68 74 74 70 73 3a 2f    2f 77 77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f  | E_URL.=.'https://www.barnesandno | 
| 16340 |  62 6c 65 2e 63 6f 6d 27 0d 0a 20 20 20 20 53 45    41 52 43 48 5f 55 52 4c 20 3d 20 27 68 74 74 70  | ble.com'......SEARCH_URL.=.'http | 
| 16360 |  73 3a 2f 2f 77 77 77 2e 62 61 72 6e 65 73 61 6e    64 6e 6f 62 6c 65 2e 63 6f 6d 2f 73 27 0d 0a 0d  | s://www.barnesandnoble.com/s'... | 
| 16380 |  0a 20 20 20 20 64 65 66 20 63 6f 6e 66 69 67 5f    77 69 64 67 65 74 28 73 65 6c 66 29 3a 0d 0a 20  | .....def.config_widget(self):... | 
| 163a0 |  20 20 20 20 20 20 20 27 27 27 0d 0a 20 20 20 20    20 20 20 20 4f 76 65 72 72 69 64 69 6e 67 20 74  | .......'''..........Overriding.t | 
| 163c0 |  68 65 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69    67 75 72 61 74 69 6f 6e 20 73 63 72 65 65 6e 20  | he.default.configuration.screen. | 
| 163e0 |  66 6f 72 20 6f 75 72 20 6f 77 6e 20 63 75 73 74    6f 6d 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  | for.our.own.custom.configuration | 
| 16400 |  0d 0a 20 20 20 20 20 20 20 20 27 27 27 0d 0a 20    20 20 20 20 20 20 20 66 72 6f 6d 20 63 61 6c 69  | ..........'''..........from.cali | 
| 16420 |  62 72 65 5f 70 6c 75 67 69 6e 73 2e 62 61 72 6e    65 73 5f 6e 6f 62 6c 65 2e 63 6f 6e 66 69 67 20  | bre_plugins.barnes_noble.config. | 
| 16440 |  69 6d 70 6f 72 74 20 43 6f 6e 66 69 67 57 69 64    67 65 74 0d 0a 20 20 20 20 20 20 20 20 72 65 74  | import.ConfigWidget..........ret | 
| 16460 |  75 72 6e 20 43 6f 6e 66 69 67 57 69 64 67 65 74    28 73 65 6c 66 29 0d 0a 0d 0a 20 20 20 20 40 70  | urn.ConfigWidget(self)........@p | 
| 16480 |  72 6f 70 65 72 74 79 0d 0a 20 20 20 20 64 65 66    20 75 73 65 72 5f 61 67 65 6e 74 28 73 65 6c 66  | roperty......def.user_agent(self | 
| 164a0 |  29 3a 0d 0a 20 20 20 20 20 20 20 20 23 20 4d 61    79 20 32 30 32 34 20 2d 20 42 26 4e 20 73 74 61  | ):..........#.May.2024.-.B&N.sta | 
| 164c0 |  72 74 65 64 20 67 65 74 74 69 6e 67 20 70 69 63    6b 79 20 61 62 6f 75 74 20 74 68 65 20 75 73 65  | rted.getting.picky.about.the.use | 
| 164e0 |  72 20 61 67 65 6e 74 2c 20 72 65 6a 65 63 74 69    6e 67 20 43 68 72 6f 6d 65 20 76 65 72 73 69 6f  | r.agent,.rejecting.Chrome.versio | 
| 16500 |  6e 20 38 30 20 77 68 69 63 68 20 77 61 73 20 74    68 65 20 63 61 6c 69 62 72 65 20 64 65 66 61 75  | n.80.which.was.the.calibre.defau | 
| 16520 |  6c 74 2e 0d 0a 20 20 20 20 20 20 20 20 72 65 74    75 72 6e 20 27 4d 6f 7a 69 6c 6c 61 2f 35 2e 30  | lt...........return.'Mozilla/5.0 | 
| 16540 |  20 28 57 69 6e 64 6f 77 73 20 4e 54 20 31 30 2e    30 3b 20 57 69 6e 36 34 3b 20 78 36 34 3b 20 72  | .(Windows.NT.10.0;.Win64;.x64;.r | 
| 16560 |  76 3a 31 33 38 2e 30 29 20 47 65 63 6b 6f 2f 32    30 31 30 30 31 30 31 20 46 69 72 65 66 6f 78 2f  | v:138.0).Gecko/20100101.Firefox/ | 
| 16580 |  31 33 38 2e 30 27 0d 0a 0d 0a 20 20 20 20 64 65    66 20 67 65 74 5f 62 6f 6f 6b 5f 75 72 6c 28 73  | 138.0'........def.get_book_url(s | 
| 165a0 |  65 6c 66 2c 20 69 64 65 6e 74 69 66 69 65 72 73    29 3a 0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e  | elf,.identifiers):..........barn | 
| 165c0 |  65 73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64    65 6e 74 69 66 69 65 72 73 2e 67 65 74 28 73 65  | es_noble_id.=.identifiers.get(se | 
| 165e0 |  6c 66 2e 49 44 5f 4e 41 4d 45 2c 20 4e 6f 6e 65    29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61  | lf.ID_NAME,.None)..........if.ba | 
| 16600 |  72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 3a 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 20  | rnes_noble_id:..............url. | 
| 16620 |  3d 20 73 65 6c 66 2e 66 6f 72 6d 61 74 5f 75 72    6c 5f 66 6f 72 5f 69 64 28 62 61 72 6e 65 73 5f  | =.self.format_url_for_id(barnes_ | 
| 16640 |  6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 73  | noble_id)..............return.(s | 
| 16660 |  65 6c 66 2e 49 44 5f 4e 41 4d 45 2c 20 62 61 72    6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 2c 20 75 72  | elf.ID_NAME,.barnes_noble_id,.ur | 
| 16680 |  6c 29 0d 0a 0d 0a 20 20 20 20 64 65 66 20 66 6f    72 6d 61 74 5f 75 72 6c 5f 66 6f 72 5f 69 64 28  | l)........def.format_url_for_id( | 
| 166a0 |  73 65 6c 66 2c 20 62 61 72 6e 65 73 5f 6e 6f 62    6c 65 5f 69 64 29 3a 0d 0a 20 20 20 20 20 20 20  | self,.barnes_noble_id):......... | 
| 166c0 |  20 69 66 20 27 2f 27 20 69 6e 20 62 61 72 6e 65    73 5f 6e 6f 62 6c 65 5f 69 64 3a 0d 0a 20 20 20  | .if.'/'.in.barnes_noble_id:..... | 
| 166e0 |  20 20 20 20 20 20 20 20 20 23 20 68 69 73 74 6f    72 69 63 61 6c 6c 79 20 74 68 65 20 42 26 4e 20  | .........#.historically.the.B&N. | 
| 16700 |  69 64 65 6e 74 69 66 69 65 72 20 77 61 73 20 74    68 65 20 66 75 6c 6c 20 70 61 74 68 20 74 6f 20  | identifier.was.the.full.path.to. | 
| 16720 |  74 68 65 20 62 6f 6f 6b 20 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 23 20 65 2e 67 2e 20 77 2f  | the.book...............#.e.g..w/ | 
| 16740 |  6c 6f 79 61 6c 74 79 2d 6c 69 73 61 2d 73 63 6f    74 74 6f 6c 69 6e 65 2f 31 31 34 31 37 30 37 39  | loyalty-lisa-scottoline/11417079 | 
| 16760 |  31 34 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    75 72 6c 20 3d 20 27 25 73 2f 25 73 27 20 25 20  | 14..............url.=.'%s/%s'.%. | 
| 16780 |  28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f    57 53 45 5f 55 52 4c 2c 20 62 61 72 6e 65 73 5f  | (BarnesNoble.BROWSE_URL,.barnes_ | 
| 167a0 |  6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20    20 20 20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20  | noble_id)..........else:........ | 
| 167c0 |  20 20 20 20 20 20 23 20 41 73 20 6f 66 20 31 2e    35 2e 30 20 74 68 65 20 42 26 4e 20 69 64 65 6e  | ......#.As.of.1.5.0.the.B&N.iden | 
| 167e0 |  74 69 66 69 65 72 20 77 69 6c 6c 20 6a 75 73 74    20 62 65 20 61 20 6e 75 6d 65 72 69 63 20 69 64  | tifier.will.just.be.a.numeric.id | 
| 16800 |  65 6e 74 69 66 69 65 72 20 65 2e 67 2e 20 31 31    34 31 37 30 37 39 31 34 0d 0a 20 20 20 20 20 20  | entifier.e.g..1141707914........ | 
| 16820 |  20 20 20 20 20 20 23 20 42 26 4e 20 77 69 6c 6c    20 69 74 73 65 6c 66 20 72 65 64 69 72 65 63 74  | ......#.B&N.will.itself.redirect | 
| 16840 |  20 74 6f 20 61 20 70 61 67 65 20 77 69 74 68 20    74 68 65 20 66 75 6c 6c 20 55 52 4c 2c 20 6f 72  | .to.a.page.with.the.full.URL,.or | 
| 16860 |  20 77 65 20 75 73 65 20 77 2f 3c 69 64 3e 20 65    2e 67 2e 20 77 2f 31 31 34 31 37 30 37 39 31 34  | .we.use.w/<id>.e.g..w/1141707914 | 
| 16880 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 72    6c 20 3d 20 27 25 73 2f 77 2f 25 73 27 20 25 20  | ..............url.=.'%s/w/%s'.%. | 
| 168a0 |  28 42 61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f    57 53 45 5f 55 52 4c 2c 20 62 61 72 6e 65 73 5f  | (BarnesNoble.BROWSE_URL,.barnes_ | 
| 168c0 |  6e 6f 62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20    20 20 20 72 65 74 75 72 6e 20 75 72 6c 0d 0a 0d  | noble_id)..........return.url... | 
| 168e0 |  0a 20 20 20 20 64 65 66 20 69 64 5f 66 72 6f 6d    5f 75 72 6c 28 73 65 6c 66 2c 20 75 72 6c 29 3a  | .....def.id_from_url(self,.url): | 
| 16900 |  0d 0a 20 20 20 20 20 20 20 20 6d 61 74 63 68 20    3d 20 72 65 2e 6d 61 74 63 68 28 73 65 6c 66 2e  | ..........match.=.re.match(self. | 
| 16920 |  42 52 4f 57 53 45 5f 55 52 4c 20 2b 20 72 22 2f    2e 2a 2f 28 5c 64 2b 29 2e 2a 22 2c 20 75 72 6c  | BROWSE_URL.+.r"/.*/(\d+).*",.url | 
| 16940 |  29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6d 61    74 63 68 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | )..........if.match:............ | 
| 16960 |  20 20 72 65 74 75 72 6e 20 28 73 65 6c 66 2e 49    44 5f 4e 41 4d 45 2c 20 6d 61 74 63 68 2e 67 72  | ..return.(self.ID_NAME,.match.gr | 
| 16980 |  6f 75 70 73 28 30 29 5b 30 5d 29 0d 0a 20 20 20    20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65  | oups(0)[0])..........return.None | 
| 169a0 |  0d 0a 0d 0a 20 20 20 20 64 65 66 20 63 72 65 61    74 65 5f 71 75 65 72 79 28 73 65 6c 66 2c 20 6c  | ........def.create_query(self,.l | 
| 169c0 |  6f 67 2c 20 74 69 74 6c 65 3d 4e 6f 6e 65 2c 20    61 75 74 68 6f 72 73 3d 4e 6f 6e 65 2c 20 69 64  | og,.title=None,.authors=None,.id | 
| 169e0 |  65 6e 74 69 66 69 65 72 73 3d 7b 7d 29 3a 0d 0a    20 20 20 20 20 20 20 20 69 73 62 6e 20 3d 20 63  | entifiers={}):..........isbn.=.c | 
| 16a00 |  68 65 63 6b 5f 69 73 62 6e 28 69 64 65 6e 74 69    66 69 65 72 73 2e 67 65 74 28 27 69 73 62 6e 27  | heck_isbn(identifiers.get('isbn' | 
| 16a20 |  2c 20 4e 6f 6e 65 29 29 0d 0a 20 20 20 20 20 20    20 20 69 66 20 69 73 62 6e 20 69 73 20 6e 6f 74  | ,.None))..........if.isbn.is.not | 
| 16a40 |  20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 72 65 74 75 72 6e 20 27 25 73 2f 73  | .None:..............return.'%s/s | 
| 16a60 |  2f 25 73 3f 65 61 6e 3d 25 73 27 20 25 20 28 42    61 72 6e 65 73 4e 6f 62 6c 65 2e 42 52 4f 57 53  | /%s?ean=%s'.%.(BarnesNoble.BROWS | 
| 16a80 |  45 5f 55 52 4c 2c 20 69 73 62 6e 2c 20 69 73 62    6e 29 0d 0a 20 20 20 20 20 20 20 20 74 6f 6b 65  | E_URL,.isbn,.isbn)..........toke | 
| 16aa0 |  6e 73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20    20 69 66 20 74 69 74 6c 65 3a 0d 0a 20 20 20 20  | ns.=.[]..........if.title:...... | 
| 16ac0 |  20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d 20    74 69 74 6c 65 2e 72 65 70 6c 61 63 65 28 27 3f  | ........title.=.title.replace('? | 
| 16ae0 |  27 2c 20 27 27 29 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73  | ',.'')..............title_tokens | 
| 16b00 |  20 3d 20 6c 69 73 74 28 73 65 6c 66 2e 67 65 74    5f 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 28 74 69  | .=.list(self.get_title_tokens(ti | 
| 16b20 |  74 6c 65 2c 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tle,............................ | 
| 16b40 |  20 20 20 20 20 20 73 74 72 69 70 5f 6a 6f 69 6e    65 72 73 3d 46 61 6c 73 65 2c 20 73 74 72 69 70  | ......strip_joiners=False,.strip | 
| 16b60 |  5f 73 75 62 74 69 74 6c 65 3d 54 72 75 65 29 29    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  | _subtitle=True))..............if | 
| 16b80 |  20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 3a 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .title_tokens:.................. | 
| 16ba0 |  74 6f 6b 65 6e 73 20 2b 3d 20 5b 71 75 6f 74 65    28 74 2e 65 6e 63 6f 64 65 28 27 75 74 66 2d 38  | tokens.+=.[quote(t.encode('utf-8 | 
| 16bc0 |  27 29 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65    28 74 2c 20 75 6e 69 63 6f 64 65 29 20 65 6c 73  | ').if.isinstance(t,.unicode).els | 
| 16be0 |  65 20 74 29 20 66 6f 72 20 74 20 69 6e 20 74 69    74 6c 65 5f 74 6f 6b 65 6e 73 5d 0d 0a 20 20 20  | e.t).for.t.in.title_tokens]..... | 
| 16c00 |  20 20 20 20 20 69 66 20 61 75 74 68 6f 72 73 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 75  | .....if.authors:..............au | 
| 16c20 |  74 68 6f 72 5f 74 6f 6b 65 6e 73 20 3d 20 73 65    6c 66 2e 67 65 74 5f 61 75 74 68 6f 72 5f 74 6f  | thor_tokens.=.self.get_author_to | 
| 16c40 |  6b 65 6e 73 28 61 75 74 68 6f 72 73 2c 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | kens(authors,................... | 
| 16c60 |  20 20 20 6f 6e 6c 79 5f 66 69 72 73 74 5f 61 75    74 68 6f 72 3d 54 72 75 65 29 0d 0a 20 20 20 20  | ...only_first_author=True)...... | 
| 16c80 |  20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f    72 5f 74 6f 6b 65 6e 73 3a 0d 0a 20 20 20 20 20  | ........if.author_tokens:....... | 
| 16ca0 |  20 20 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e    73 20 2b 3d 20 5b 71 75 6f 74 65 28 74 2e 65 6e  | ...........tokens.+=.[quote(t.en | 
| 16cc0 |  63 6f 64 65 28 27 75 74 66 2d 38 27 29 20 69 66    20 69 73 69 6e 73 74 61 6e 63 65 28 74 2c 20 75  | code('utf-8').if.isinstance(t,.u | 
| 16ce0 |  6e 69 63 6f 64 65 29 20 65 6c 73 65 20 74 29 20    66 6f 72 20 74 20 69 6e 20 61 75 74 68 6f 72 5f  | nicode).else.t).for.t.in.author_ | 
| 16d00 |  74 6f 6b 65 6e 73 5d 0d 0a 20 20 20 20 20 20 20    20 69 66 20 6c 65 6e 28 74 6f 6b 65 6e 73 29 20  | tokens]..........if.len(tokens). | 
| 16d20 |  3d 3d 20 30 3a 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 0d 0a  | ==.0:..............return.None.. | 
| 16d40 |  20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 42    61 72 6e 65 73 4e 6f 62 6c 65 2e 53 45 41 52 43  | ........return.BarnesNoble.SEARC | 
| 16d60 |  48 5f 55 52 4c 20 2b 20 27 2f 27 20 2b 20 27 25    32 30 27 2e 6a 6f 69 6e 28 74 6f 6b 65 6e 73 29  | H_URL.+.'/'.+.'%20'.join(tokens) | 
| 16d80 |  2e 6c 6f 77 65 72 28 29 0d 0a 0d 0a 20 20 20 20    64 65 66 20 67 65 74 5f 63 61 63 68 65 64 5f 63  | .lower()........def.get_cached_c | 
| 16da0 |  6f 76 65 72 5f 75 72 6c 28 73 65 6c 66 2c 20 69    64 65 6e 74 69 66 69 65 72 73 29 3a 0d 0a 20 20  | over_url(self,.identifiers):.... | 
| 16dc0 |  20 20 20 20 20 20 75 72 6c 20 3d 20 4e 6f 6e 65    0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e 65 73  | ......url.=.None..........barnes | 
| 16de0 |  5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64 65 6e    74 69 66 69 65 72 73 2e 67 65 74 28 27 62 61 72  | _noble_id.=.identifiers.get('bar | 
| 16e00 |  6e 65 73 6e 6f 62 6c 65 27 2c 20 4e 6f 6e 65 29    0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61 72  | nesnoble',.None)..........if.bar | 
| 16e20 |  6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 69 73 20    4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20  | nes_noble_id.is.None:........... | 
| 16e40 |  20 20 20 69 73 62 6e 20 3d 20 69 64 65 6e 74 69    66 69 65 72 73 2e 67 65 74 28 27 69 73 62 6e 27  | ...isbn.=.identifiers.get('isbn' | 
| 16e60 |  2c 20 4e 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 69 66 20 69 73 62 6e 20 69 73 20  | ,.None)..............if.isbn.is. | 
| 16e80 |  6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 62 61 72 6e 65  | not.None:..................barne | 
| 16ea0 |  73 5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 73 65 6c    66 2e 63 61 63 68 65 64 5f 69 73 62 6e 5f 74 6f  | s_noble_id.=.self.cached_isbn_to | 
| 16ec0 |  5f 69 64 65 6e 74 69 66 69 65 72 28 69 73 62 6e    29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 62 61  | _identifier(isbn)..........if.ba | 
| 16ee0 |  72 6e 65 73 5f 6e 6f 62 6c 65 5f 69 64 20 69 73    20 6e 6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20  | rnes_noble_id.is.not.None:...... | 
| 16f00 |  20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73 65    6c 66 2e 63 61 63 68 65 64 5f 69 64 65 6e 74 69  | ........url.=.self.cached_identi | 
| 16f20 |  66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72    6c 28 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69  | fier_to_cover_url(barnes_noble_i | 
| 16f40 |  64 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75    72 6e 20 75 72 6c 0d 0a 0d 0a 20 20 20 20 64 65  | d)..........return.url........de | 
| 16f60 |  66 20 63 61 63 68 65 64 5f 69 64 65 6e 74 69 66    69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c  | f.cached_identifier_to_cover_url | 
| 16f80 |  28 73 65 6c 66 2c 20 69 64 5f 29 3a 0d 0a 20 20    20 20 20 20 20 20 77 69 74 68 20 73 65 6c 66 2e  | (self,.id_):..........with.self. | 
| 16fa0 |  63 61 63 68 65 5f 6c 6f 63 6b 3a 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 73  | cache_lock:..............url.=.s | 
| 16fc0 |  65 6c 66 2e 5f 67 65 74 5f 63 61 63 68 65 64 5f    69 64 65 6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f  | elf._get_cached_identifier_to_co | 
| 16fe0 |  76 65 72 5f 75 72 6c 28 69 64 5f 29 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74  | ver_url(id_)..............if.not | 
| 17000 |  20 75 72 6c 3a 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 23 20 54 72 79 20 66 6f 72  | .url:..................#.Try.for | 
| 17020 |  20 61 20 22 73 6d 61 6c 6c 22 20 69 6d 61 67 65    20 69 6e 20 74 68 65 20 63 61 63 68 65 0d 0a 20  | .a."small".image.in.the.cache... | 
| 17040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75    72 6c 20 3d 20 73 65 6c 66 2e 5f 67 65 74 5f 63  | ...............url.=.self._get_c | 
| 17060 |  61 63 68 65 64 5f 69 64 65 6e 74 69 66 69 65 72    5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 28 27 73  | ached_identifier_to_cover_url('s | 
| 17080 |  6d 61 6c 6c 2f 27 20 2b 20 69 64 5f 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72  | mall/'.+.id_)..............retur | 
| 170a0 |  6e 20 75 72 6c 0d 0a 0d 0a 20 20 20 20 64 65 66    20 5f 67 65 74 5f 63 61 63 68 65 64 5f 69 64 65  | n.url........def._get_cached_ide | 
| 170c0 |  6e 74 69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72    5f 75 72 6c 28 73 65 6c 66 2c 20 69 64 5f 29 3a  | ntifier_to_cover_url(self,.id_): | 
| 170e0 |  0d 0a 20 20 20 20 20 20 20 20 23 20 54 68 69 73    20 6d 75 73 74 20 6f 6e 6c 79 20 62 65 20 63 61  | ..........#.This.must.only.be.ca | 
| 17100 |  6c 6c 65 64 20 6f 6e 63 65 20 77 65 20 68 61 76    65 20 74 68 65 20 63 61 63 68 65 20 6c 6f 63 6b  | lled.once.we.have.the.cache.lock | 
| 17120 |  0d 0a 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20    73 65 6c 66 2e 5f 69 64 65 6e 74 69 66 69 65 72  | ..........url.=.self._identifier | 
| 17140 |  5f 74 6f 5f 63 6f 76 65 72 5f 75 72 6c 5f 63 61    63 68 65 2e 67 65 74 28 69 64 5f 2c 20 4e 6f 6e  | _to_cover_url_cache.get(id_,.Non | 
| 17160 |  65 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e    6f 74 20 75 72 6c 3a 0d 0a 20 20 20 20 20 20 20  | e)..........if.not.url:......... | 
| 17180 |  20 20 20 20 20 23 20 57 65 20 63 6f 75 6c 64 20    6e 6f 74 20 67 65 74 20 61 20 75 72 6c 20 66 6f  | .....#.We.could.not.get.a.url.fo | 
| 171a0 |  72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61    72 20 42 26 4e 20 69 64 0d 0a 20 20 20 20 20 20  | r.this.particular.B&N.id........ | 
| 171c0 |  20 20 20 20 20 20 23 20 48 6f 77 65 76 65 72 20    77 65 20 6d 69 67 68 74 20 68 61 76 65 20 6f 6e  | ......#.However.we.might.have.on | 
| 171e0 |  65 20 66 6f 72 20 61 20 64 69 66 66 65 72 65 6e    74 20 69 73 62 6e 20 66 6f 72 20 74 68 69 73 20  | e.for.a.different.isbn.for.this. | 
| 17200 |  62 6f 6f 6b 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 23 20 42 61 72 6e 65 73 20 26 20 4e 6f 62  | book..............#.Barnes.&.Nob | 
| 17220 |  6c 65 20 61 72 65 20 6e 6f 74 20 76 65 72 79 20    63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20  | le.are.not.very.consistent.with. | 
| 17240 |  74 68 65 69 72 20 63 6f 76 65 72 73 20 61 6e 64    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20  | their.covers.and..............#. | 
| 17260 |  69 74 20 63 6f 75 6c 64 20 62 65 20 74 68 61 74    20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20  | it.could.be.that.the.particular. | 
| 17280 |  49 53 42 4e 20 77 65 20 63 68 6f 73 65 20 64 6f    65 73 20 6e 6f 74 20 68 61 76 65 0d 0a 20 20 20  | ISBN.we.chose.does.not.have..... | 
| 172a0 |  20 20 20 20 20 20 20 20 20 23 20 61 20 6c 61 72    67 65 20 69 6d 61 67 65 20 62 75 74 20 61 6e 6f  | .........#.a.large.image.but.ano | 
| 172c0 |  74 68 65 72 20 49 53 42 4e 20 77 65 20 72 65 74    72 69 65 76 65 64 20 64 6f 65 73 2e 0d 0a 20 20  | ther.ISBN.we.retrieved.does..... | 
| 172e0 |  20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65    79 20 69 6e 20 73 65 6c 66 2e 5f 69 64 65 6e 74  | ..........for.key.in.self._ident | 
| 17300 |  69 66 69 65 72 5f 74 6f 5f 63 6f 76 65 72 5f 75    72 6c 5f 63 61 63 68 65 2e 6b 65 79 73 28 29 3a  | ifier_to_cover_url_cache.keys(): | 
| 17320 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 69 66 20 6b 65 79 2e 73 74 61 72 74 73 77  | ..................if.key.startsw | 
| 17340 |  69 74 68 28 27 6b 65 79 5f 70 72 65 66 69 78 27    29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ith('key_prefix'):.............. | 
| 17360 |  20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73    65 6c 66 2e 5f 69 64 65 6e 74 69 66 69 65 72 5f  | ........return.self._identifier_ | 
| 17380 |  74 6f 5f 63 6f 76 65 72 5f 75 72 6c 5f 63 61 63    68 65 5b 6b 65 79 5d 0d 0a 20 20 20 20 20 20 20  | to_cover_url_cache[key]......... | 
| 173a0 |  20 72 65 74 75 72 6e 20 75 72 6c 0d 0a 0d 0a 20    20 20 20 64 65 66 20 69 64 65 6e 74 69 66 79 28  | .return.url........def.identify( | 
| 173c0 |  73 65 6c 66 2c 20 6c 6f 67 2c 20 72 65 73 75 6c    74 5f 71 75 65 75 65 2c 20 61 62 6f 72 74 2c 20  | self,.log,.result_queue,.abort,. | 
| 173e0 |  74 69 74 6c 65 3d 4e 6f 6e 65 2c 20 61 75 74 68    6f 72 73 3d 4e 6f 6e 65 2c 0d 0a 20 20 20 20 20  | title=None,.authors=None,....... | 
| 17400 |  20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65    72 73 3d 7b 7d 2c 20 74 69 6d 65 6f 75 74 3d 33  | .......identifiers={},.timeout=3 | 
| 17420 |  30 29 3a 0d 0a 20 20 20 20 20 20 20 20 27 27 27    0d 0a 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74  | 0):..........'''..........Note.t | 
| 17440 |  68 69 73 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20    72 65 74 72 79 20 77 69 74 68 6f 75 74 20 69 64  | his.method.will.retry.without.id | 
| 17460 |  65 6e 74 69 66 69 65 72 73 20 61 75 74 6f 6d 61    74 69 63 61 6c 6c 79 20 69 66 20 6e 6f 0d 0a 20  | entifiers.automatically.if.no... | 
| 17480 |  20 20 20 20 20 20 20 6d 61 74 63 68 20 69 73 20    66 6f 75 6e 64 20 77 69 74 68 20 69 64 65 6e 74  | .......match.is.found.with.ident | 
| 174a0 |  69 66 69 65 72 73 2e 0d 0a 20 20 20 20 20 20 20    20 27 27 27 0d 0a 20 20 20 20 20 20 20 20 6d 61  | ifiers...........'''..........ma | 
| 174c0 |  74 63 68 65 73 20 3d 20 5b 5d 0d 0a 20 20 20 20    20 20 20 20 23 20 49 66 20 77 65 20 68 61 76 65  | tches.=.[]..........#.If.we.have | 
| 174e0 |  20 61 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c    65 20 69 64 20 74 68 65 6e 20 77 65 20 64 6f 20  | .a.Barnes.&.Noble.id.then.we.do. | 
| 17500 |  6e 6f 74 20 6e 65 65 64 20 74 6f 20 66 69 72 65    20 61 20 22 73 65 61 72 63 68 22 0d 0a 20 20 20  | not.need.to.fire.a."search"..... | 
| 17520 |  20 20 20 20 20 23 20 61 74 20 62 61 72 6e 65 73    6e 6f 62 6c 65 2e 63 6f 6d 2e 20 49 6e 73 74 65  | .....#.at.barnesnoble.com..Inste | 
| 17540 |  61 64 20 77 65 20 77 69 6c 6c 20 67 6f 20 73 74    72 61 69 67 68 74 20 74 6f 20 74 68 65 20 55 52  | ad.we.will.go.straight.to.the.UR | 
| 17560 |  4c 20 66 6f 72 20 74 68 61 74 20 62 6f 6f 6b 2e    0d 0a 20 20 20 20 20 20 20 20 62 61 72 6e 65 73  | L.for.that.book...........barnes | 
| 17580 |  5f 6e 6f 62 6c 65 5f 69 64 20 3d 20 69 64 65 6e    74 69 66 69 65 72 73 2e 67 65 74 28 27 62 61 72  | _noble_id.=.identifiers.get('bar | 
| 175a0 |  6e 65 73 6e 6f 62 6c 65 27 2c 20 4e 6f 6e 65 29    0d 0a 20 20 20 20 20 20 20 20 69 73 62 6e 20 3d  | nesnoble',.None)..........isbn.= | 
| 175c0 |  20 63 68 65 63 6b 5f 69 73 62 6e 28 69 64 65 6e    74 69 66 69 65 72 73 2e 67 65 74 28 27 69 73 62  | .check_isbn(identifiers.get('isb | 
| 175e0 |  6e 27 2c 20 4e 6f 6e 65 29 29 0d 0a 20 20 20 20    20 20 20 20 62 72 20 3d 20 73 65 6c 66 2e 62 72  | n',.None))..........br.=.self.br | 
| 17600 |  6f 77 73 65 72 0d 0a 20 20 20 20 20 20 20 20 69    66 20 62 61 72 6e 65 73 5f 6e 6f 62 6c 65 5f 69  | owser..........if.barnes_noble_i | 
| 17620 |  64 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    6c 6f 67 2e 69 6e 66 6f 28 27 46 6f 75 6e 64 20  | d:..............log.info('Found. | 
| 17640 |  62 61 72 6e 65 73 20 6e 6f 62 6c 65 20 49 44 3a    20 25 72 27 20 25 20 62 61 72 6e 65 73 5f 6e 6f  | barnes.noble.ID:.%r'.%.barnes_no | 
| 17660 |  62 6c 65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 69 64 5f 75 72 6c 20 3d 20 73 65  | ble_id)..............id_url.=.se | 
| 17680 |  6c 66 2e 66 6f 72 6d 61 74 5f 75 72 6c 5f 66 6f    72 5f 69 64 28 62 61 72 6e 65 73 5f 6e 6f 62 6c  | lf.format_url_for_id(barnes_nobl | 
| 176a0 |  65 5f 69 64 29 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 6c 6f 67 2e 69 6e 66 6f 28 27 41 64 64  | e_id)..............log.info('Add | 
| 176c0 |  69 6e 67 20 6d 61 74 63 68 3a 20 25 73 27 20 25    20 69 64 5f 75 72 6c 29 0d 0a 20 20 20 20 20 20  | ing.match:.%s'.%.id_url)........ | 
| 176e0 |  20 20 20 20 20 20 6d 61 74 63 68 65 73 2e 61 70    70 65 6e 64 28 69 64 5f 75 72 6c 29 0d 0a 20 20  | ......matches.append(id_url).... | 
| 17700 |  20 20 20 20 20 20 65 6c 73 65 3a 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 23 20 42 61 72 6e 65  | ......else:..............#.Barne | 
| 17720 |  73 20 26 20 4e 6f 62 6c 65 20 64 6f 65 73 6e 27    74 20 63 6f 70 65 20 76 65 72 79 20 77 65 6c 6c  | s.&.Noble.doesn't.cope.very.well | 
| 17740 |  20 77 69 74 68 20 6e 6f 6e 20 61 73 63 69 69 20    6e 61 6d 65 73 20 73 6f 20 63 6f 6e 76 65 72 74  | .with.non.ascii.names.so.convert | 
| 17760 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69    74 6c 65 20 3d 20 67 65 74 5f 75 64 63 28 29 2e  | ..............title.=.get_udc(). | 
| 17780 |  64 65 63 6f 64 65 28 74 69 74 6c 65 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f  | decode(title)..............autho | 
| 177a0 |  72 73 20 3d 20 5b 67 65 74 5f 75 64 63 28 29 2e    64 65 63 6f 64 65 28 61 29 20 66 6f 72 20 61 20  | rs.=.[get_udc().decode(a).for.a. | 
| 177c0 |  69 6e 20 61 75 74 68 6f 72 73 5d 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 71 75 65 72 79 20 3d  | in.authors]..............query.= | 
| 177e0 |  20 73 65 6c 66 2e 63 72 65 61 74 65 5f 71 75 65    72 79 28 6c 6f 67 2c 20 74 69 74 6c 65 3d 74 69  | .self.create_query(log,.title=ti | 
| 17800 |  74 6c 65 2c 20 61 75 74 68 6f 72 73 3d 61 75 74    68 6f 72 73 2c 0d 0a 20 20 20 20 20 20 20 20 20  | tle,.authors=authors,........... | 
| 17820 |  20 20 20 20 20 20 20 20 20 20 20 69 64 65 6e 74    69 66 69 65 72 73 3d 69 64 65 6e 74 69 66 69 65  | ...........identifiers=identifie | 
| 17840 |  72 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 69 66 20 71 75 65 72 79 20 69 73 20 4e 6f 6e  | rs)..............if.query.is.Non | 
| 17860 |  65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6c 6f 67 2e 65 72 72 6f 72 28 27 49  | e:..................log.error('I | 
| 17880 |  6e 73 75 66 66 69 63 69 65 6e 74 20 6d 65 74 61    64 61 74 61 20 74 6f 20 63 6f 6e 73 74 72 75 63  | nsufficient.metadata.to.construc | 
| 178a0 |  74 20 71 75 65 72 79 27 29 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72  | t.query')..................retur | 
| 178c0 |  6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d    75 6c 74 69 70 6c 65 5f 72 65 73 75 6c 74 73 5f  | n..............multiple_results_ | 
| 178e0 |  66 6f 75 6e 64 20 3d 20 46 61 6c 73 65 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0d  | found.=.False..............try:. | 
| 17900 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6c 6f 67 2e 69 6e 66 6f 28 27 51 75 65 72 79  | .................log.info('Query | 
| 17920 |  69 6e 67 3a 20 25 73 27 20 25 20 71 75 65 72 79    29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ing:.%s'.%.query)............... | 
| 17940 |  20 20 20 62 72 2e 73 65 74 5f 63 75 72 72 65 6e    74 5f 68 65 61 64 65 72 28 27 41 63 63 65 70 74  | ...br.set_current_header('Accept | 
| 17960 |  27 2c 27 2a 2f 2a 27 29 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 62 72 2e 73 65 74  | ','*/*')..................br.set | 
| 17980 |  5f 63 75 72 72 65 6e 74 5f 68 65 61 64 65 72 28    27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67  | _current_header('Accept-Encoding | 
| 179a0 |  27 2c 27 67 7a 69 70 2c 20 64 65 66 6c 61 74 65    2c 20 62 72 27 29 0d 0a 20 20 20 20 20 20 20 20  | ','gzip,.deflate,.br').......... | 
| 179c0 |  20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65    20 3d 20 62 72 2e 6f 70 65 6e 5f 6e 6f 76 69 73  | ........response.=.br.open_novis | 
| 179e0 |  69 74 28 71 75 65 72 79 2c 20 74 69 6d 65 6f 75    74 3d 74 69 6d 65 6f 75 74 29 0d 0a 20 20 20 20  | it(query,.timeout=timeout)...... | 
| 17a00 |  20 20 20 20 20 20 20 20 20 20 20 20 23 20 43 68    65 63 6b 20 77 68 65 74 68 65 72 20 77 65 20 67  | ............#.Check.whether.we.g | 
| 17a20 |  6f 74 20 72 65 64 69 72 65 63 74 65 64 20 74 6f    20 61 20 62 6f 6f 6b 20 70 61 67 65 2e 0d 0a 20  | ot.redirected.to.a.book.page.... | 
| 17a40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23    20 49 66 20 77 65 20 64 69 64 2c 20 77 69 6c 6c  | ...............#.If.we.did,.will | 
| 17a60 |  20 75 73 65 20 74 68 65 20 75 72 6c 2e 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23  | .use.the.url...................# | 
| 17a80 |  20 49 66 20 77 65 20 64 69 64 6e 27 74 20 74 68    65 6e 20 74 72 65 61 74 20 69 74 20 61 73 20 6e  | .If.we.didn't.then.treat.it.as.n | 
| 17aa0 |  6f 20 6d 61 74 63 68 65 73 20 6f 6e 20 42 61 72    6e 65 73 20 26 20 4e 6f 62 6c 65 0d 0a 20 20 20  | o.matches.on.Barnes.&.Noble..... | 
| 17ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63    61 74 69 6f 6e 20 3d 20 72 65 73 70 6f 6e 73 65  | .............location.=.response | 
| 17ae0 |  2e 67 65 74 75 72 6c 28 29 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 23 20 49 66 20  | .geturl()..................#.If. | 
| 17b00 |  6e 6f 74 20 61 6e 20 65 78 61 63 74 20 6d 61 74    63 68 20 77 65 20 63 61 6e 20 67 65 74 20 61 20  | not.an.exact.match.we.can.get.a. | 
| 17b20 |  73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20 70    61 67 65 20 62 61 63 6b 0d 0a 20 20 20 20 20 20  | search.results.page.back........ | 
| 17b40 |  20 20 20 20 20 20 20 20 20 20 6d 75 6c 74 69 70    6c 65 5f 72 65 73 75 6c 74 73 5f 66 6f 75 6e 64  | ..........multiple_results_found | 
| 17b60 |  20 3d 20 6c 6f 63 61 74 69 6f 6e 2e 66 69 6e 64    28 27 2f 73 2f 27 29 20 3e 20 30 0d 0a 20 20 20  | .=.location.find('/s/').>.0..... | 
| 17b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20    6c 6f 63 61 74 69 6f 6e 2e 66 69 6e 64 28 27 6e  | .............if.location.find('n | 
| 17ba0 |  6f 72 65 73 75 6c 74 73 27 29 20 3d 3d 20 2d 31    20 61 6e 64 20 6e 6f 74 20 6d 75 6c 74 69 70 6c  | oresults').==.-1.and.not.multipl | 
| 17bc0 |  65 5f 72 65 73 75 6c 74 73 5f 66 6f 75 6e 64 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e_results_found:................ | 
| 17be0 |  20 20 20 20 20 20 23 20 54 68 69 73 20 73 74 69    6c 6c 20 6d 69 67 68 74 20 6e 6f 74 20 62 65 20  | ......#.This.still.might.not.be. | 
| 17c00 |  61 20 73 70 65 63 69 66 69 63 20 62 6f 6f 6b 20    70 61 67 65 0d 0a 20 20 20 20 20 20 20 20 20 20  | a.specific.book.page............ | 
| 17c20 |  20 20 20 20 20 20 20 20 20 20 23 20 65 2e 67 2e    20 69 66 20 6e 6f 20 49 53 42 4e 20 6d 61 74 63  | ..........#.e.g..if.no.ISBN.matc | 
| 17c40 |  68 2c 20 42 26 4e 20 63 61 6e 20 62 6f 75 6e 63    65 20 62 61 63 6b 20 74 6f 20 74 68 65 20 68 6f  | h,.B&N.can.bounce.back.to.the.ho | 
| 17c60 |  6d 65 20 70 61 67 65 2e 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66  | me.page.......................if | 
| 17c80 |  20 6c 65 6e 28 6c 6f 63 61 74 69 6f 6e 29 20 3e    20 6c 65 6e 28 42 61 72 6e 65 73 4e 6f 62 6c 65  | .len(location).>.len(BarnesNoble | 
| 17ca0 |  2e 42 52 4f 57 53 45 5f 55 52 4c 29 20 2b 20 32    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .BROWSE_URL).+.2:............... | 
| 17cc0 |  20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69    6e 66 6f 28 27 6d 61 74 63 68 20 6c 6f 63 61 74  | ...........log.info('match.locat | 
| 17ce0 |  69 6f 6e 3a 20 25 72 27 20 25 20 6c 6f 63 61 74    69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20 20 20  | ion:.%r'.%.location)............ | 
| 17d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61    74 63 68 65 73 2e 61 70 70 65 6e 64 28 6c 6f 63  | ..............matches.append(loc | 
| 17d20 |  61 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70  | ation)..............except.Excep | 
| 17d40 |  74 69 6f 6e 20 61 73 20 65 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69  | tion.as.e:..................if.i | 
| 17d60 |  73 62 6e 20 61 6e 64 20 63 61 6c 6c 61 62 6c 65    28 67 65 74 61 74 74 72 28 65 2c 20 27 67 65 74  | sbn.and.callable(getattr(e,.'get | 
| 17d80 |  63 6f 64 65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e    64 20 65 2e 67 65 74 63 6f 64 65 28 29 20 3d 3d  | code',.None)).and.e.getcode().== | 
| 17da0 |  20 34 30 34 3a 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 23 20 57 65 20  | .404:......................#.We. | 
| 17dc0 |  64 69 64 20 61 20 6c 6f 6f 6b 75 70 20 62 79 20    49 53 42 4e 20 62 75 74 20 64 69 64 20 6e 6f 74  | did.a.lookup.by.ISBN.but.did.not | 
| 17de0 |  20 66 69 6e 64 20 61 20 6d 61 74 63 68 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .find.a.match................... | 
| 17e00 |  20 20 20 23 20 57 65 20 77 69 6c 6c 20 66 61 6c    6c 62 61 63 6b 20 74 6f 20 64 6f 69 6e 67 20 61  | ...#.We.will.fallback.to.doing.a | 
| 17e20 |  20 6c 6f 6f 6b 75 70 20 62 79 20 74 69 74 6c 65    20 61 75 74 68 6f 72 0d 0a 20 20 20 20 20 20 20  | .lookup.by.title.author......... | 
| 17e40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67    2e 69 6e 66 6f 28 27 46 61 69 6c 65 64 20 74 6f  | .............log.info('Failed.to | 
| 17e60 |  20 66 69 6e 64 20 6d 61 74 63 68 20 66 6f 72 20    49 53 42 4e 3a 20 25 73 27 20 25 20 69 73 62 6e  | .find.match.for.ISBN:.%s'.%.isbn | 
| 17e80 |  29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 65 6c 69 66 20 63 61 6c 6c 61 62 6c 65  | )..................elif.callable | 
| 17ea0 |  28 67 65 74 61 74 74 72 28 65 2c 20 27 67 65 74    63 6f 64 65 27 2c 20 4e 6f 6e 65 29 29 20 61 6e  | (getattr(e,.'getcode',.None)).an | 
| 17ec0 |  64 20 65 2e 67 65 74 63 6f 64 65 28 29 20 3d 3d    20 34 30 34 3a 0d 0a 20 20 20 20 20 20 20 20 20  | d.e.getcode().==.404:........... | 
| 17ee0 |  20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 65    72 72 6f 72 28 27 4e 6f 20 6d 61 74 63 68 65 73  | ...........log.error('No.matches | 
| 17f00 |  20 66 6f 72 20 69 64 65 6e 74 69 66 79 20 71 75    65 72 79 27 29 0d 0a 20 20 20 20 20 20 20 20 20  | .for.identify.query')........... | 
| 17f20 |  20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72    6e 20 61 73 5f 75 6e 69 63 6f 64 65 28 65 29 0d  | ...........return.as_unicode(e). | 
| 17f40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 65 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20  | .................else:.......... | 
| 17f60 |  20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 20    3d 20 27 46 61 69 6c 65 64 20 74 6f 20 6d 61 6b  | ............err.=.'Failed.to.mak | 
| 17f80 |  65 20 69 64 65 6e 74 69 66 79 20 71 75 65 72 79    27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.identify.query'............... | 
| 17fa0 |  20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65 70    74 69 6f 6e 28 65 72 72 29 0d 0a 20 20 20 20 20  | .......log.exception(err)....... | 
| 17fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 61 73 5f 75 6e 69 63 6f 64 65  | ...............return.as_unicode | 
| 17fe0 |  28 65 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 69 66 20 6d 75 6c 74 69 70 6c 65 5f 72  | (e)................if.multiple_r | 
| 18000 |  65 73 75 6c 74 73 5f 66 6f 75 6e 64 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74  | esults_found:..................t | 
| 18020 |  72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66  | ry:......................log.inf | 
| 18040 |  6f 28 27 50 61 72 73 69 6e 67 20 73 65 61 72 63    68 20 72 65 73 75 6c 74 73 27 29 0d 0a 20 20 20  | o('Parsing.search.results')..... | 
| 18060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 72 61 77 20 3d 20 72 65 73 70 6f 6e 73 65 2e  | .................raw.=.response. | 
| 18080 |  72 65 61 64 28 29 2e 73 74 72 69 70 28 29 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | read().strip().................. | 
| 180a0 |  20 20 20 20 23 6f 70 65 6e 28 27 45 3a 5c 5c 73    65 61 72 63 68 5f 72 65 73 75 6c 74 73 2e 68 74  | ....#open('E:\\search_results.ht | 
| 180c0 |  6d 6c 27 2c 20 27 77 62 27 29 2e 77 72 69 74 65    28 72 61 77 29 0d 0a 20 20 20 20 20 20 20 20 20  | ml',.'wb').write(raw)........... | 
| 180e0 |  20 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d    20 72 61 77 2e 64 65 63 6f 64 65 28 27 75 74 66  | ...........raw.=.raw.decode('utf | 
| 18100 |  2d 38 27 2c 20 65 72 72 6f 72 73 3d 27 72 65 70    6c 61 63 65 27 29 2e 72 65 70 6c 61 63 65 28 27  | -8',.errors='replace').replace(' | 
| 18120 |  26 68 65 6c 6c 69 70 3b 27 2c 27 27 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | …','')................... | 
| 18140 |  20 20 20 69 66 20 6e 6f 74 20 72 61 77 3a 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...if.not.raw:.................. | 
| 18160 |  20 20 20 20 20 20 20 20 6c 6f 67 2e 65 72 72 6f    72 28 27 46 61 69 6c 65 64 20 74 6f 20 67 65 74  | ........log.error('Failed.to.get | 
| 18180 |  20 72 61 77 20 72 65 73 75 6c 74 20 66 6f 72 20    71 75 65 72 79 27 29 0d 0a 20 20 20 20 20 20 20  | .raw.result.for.query')......... | 
| 181a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20  | .................return......... | 
| 181c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f    74 20 3d 20 66 72 6f 6d 73 74 72 69 6e 67 28 63  | .............root.=.fromstring(c | 
| 181e0 |  6c 65 61 6e 5f 61 73 63 69 69 5f 63 68 61 72 73    28 72 61 77 29 29 0d 0a 20 20 20 20 20 20 20 20  | lean_ascii_chars(raw)).......... | 
| 18200 |  20 20 20 20 20 20 20 20 20 20 20 20 23 20 4e 6f    77 20 67 72 61 62 20 74 68 65 20 6d 61 74 63 68  | ............#.Now.grab.the.match | 
| 18220 |  65 73 20 66 72 6f 6d 20 74 68 65 20 73 65 61 72    63 68 20 72 65 73 75 6c 74 73 2c 20 70 72 6f 76  | es.from.the.search.results,.prov | 
| 18240 |  69 64 65 64 20 74 68 65 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20  | ided.the......................#. | 
| 18260 |  74 69 74 6c 65 20 61 6e 64 20 61 75 74 68 6f 72    73 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 66  | title.and.authors.appear.to.be.f | 
| 18280 |  6f 72 20 74 68 65 20 73 61 6d 65 20 62 6f 6f 6b    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | or.the.same.book................ | 
| 182a0 |  20 20 20 20 20 20 73 65 6c 66 2e 5f 70 61 72 73    65 5f 73 65 61 72 63 68 5f 72 65 73 75 6c 74 73  | ......self._parse_search_results | 
| 182c0 |  28 6c 6f 67 2c 20 74 69 74 6c 65 2c 20 61 75 74    68 6f 72 73 2c 20 72 6f 6f 74 2c 20 6d 61 74 63  | (log,.title,.authors,.root,.matc | 
| 182e0 |  68 65 73 2c 20 74 69 6d 65 6f 75 74 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65  | hes,.timeout)..................e | 
| 18300 |  78 63 65 70 74 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20  | xcept:......................msg. | 
| 18320 |  3d 20 27 46 61 69 6c 65 64 20 74 6f 20 70 61 72    73 65 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c  | =.'Failed.to.parse.Barnes.&.Nobl | 
| 18340 |  65 20 70 61 67 65 20 66 6f 72 20 71 75 65 72 79    27 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.page.for.query'............... | 
| 18360 |  20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65 70    74 69 6f 6e 28 6d 73 67 29 0d 0a 20 20 20 20 20  | .......log.exception(msg)....... | 
| 18380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 6d 73 67 0d 0a 0d 0a 20 20 20  | ...............return.msg....... | 
| 183a0 |  20 20 20 20 20 69 66 20 61 62 6f 72 74 2e 69 73    5f 73 65 74 28 29 3a 0d 0a 20 20 20 20 20 20 20  | .....if.abort.is_set():......... | 
| 183c0 |  20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a 20    20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6d 61  | .....return............if.not.ma | 
| 183e0 |  74 63 68 65 73 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 69 66 20 28 62 61 72 6e 65 73 5f 6e  | tches:..............if.(barnes_n | 
| 18400 |  6f 62 6c 65 5f 69 64 20 6f 72 20 69 73 62 6e 29    20 61 6e 64 20 74 69 74 6c 65 20 61 6e 64 20 61  | oble_id.or.isbn).and.title.and.a | 
| 18420 |  75 74 68 6f 72 73 3a 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66  | uthors:..................log.inf | 
| 18440 |  6f 28 27 4e 6f 20 6d 61 74 63 68 65 73 20 66 6f    75 6e 64 20 77 69 74 68 20 69 64 65 6e 74 69 66  | o('No.matches.found.with.identif | 
| 18460 |  69 65 72 73 2c 20 72 65 74 72 79 69 6e 67 20 75    73 69 6e 67 20 6f 6e 6c 79 27 0d 0a 20 20 20 20  | iers,.retrying.using.only'...... | 
| 18480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 27 20 74 69 74 6c 65 20 61 6e 64 20  | ....................'.title.and. | 
| 184a0 |  61 75 74 68 6f 72 73 27 29 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72  | authors')..................retur | 
| 184c0 |  6e 20 73 65 6c 66 2e 69 64 65 6e 74 69 66 79 28    6c 6f 67 2c 20 72 65 73 75 6c 74 5f 71 75 65 75  | n.self.identify(log,.result_queu | 
| 184e0 |  65 2c 20 61 62 6f 72 74 2c 20 74 69 74 6c 65 3d    74 69 74 6c 65 2c 0d 0a 20 20 20 20 20 20 20 20  | e,.abort,.title=title,.......... | 
| 18500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73 2c  | ................authors=authors, | 
| 18520 |  20 74 69 6d 65 6f 75 74 3d 74 69 6d 65 6f 75 74    29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c  | .timeout=timeout)..............l | 
| 18540 |  6f 67 2e 65 72 72 6f 72 28 27 4e 6f 20 6d 61 74    63 68 65 73 20 66 6f 75 6e 64 20 77 69 74 68 20  | og.error('No.matches.found.with. | 
| 18560 |  71 75 65 72 79 3a 20 25 72 27 20 25 20 71 75 65    72 79 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | query:.%r'.%.query)............. | 
| 18580 |  20 72 65 74 75 72 6e 0d 0a 0d 0a 20 20 20 20 20    20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 5f  | .return............from.calibre_ | 
| 185a0 |  70 6c 75 67 69 6e 73 2e 62 61 72 6e 65 73 5f 6e    6f 62 6c 65 2e 77 6f 72 6b 65 72 20 69 6d 70 6f  | plugins.barnes_noble.worker.impo | 
| 185c0 |  72 74 20 57 6f 72 6b 65 72 0d 0a 20 20 20 20 20    20 20 20 77 6f 72 6b 65 72 73 20 3d 20 5b 57 6f  | rt.Worker..........workers.=.[Wo | 
| 185e0 |  72 6b 65 72 28 75 72 6c 2c 20 72 65 73 75 6c 74    5f 71 75 65 75 65 2c 20 62 72 2c 20 6c 6f 67 2c  | rker(url,.result_queue,.br,.log, | 
| 18600 |  20 69 2c 20 73 65 6c 66 29 20 66 6f 72 20 69 2c    20 75 72 6c 20 69 6e 0d 0a 20 20 20 20 20 20 20  | .i,.self).for.i,.url.in......... | 
| 18620 |  20 20 20 20 20 20 20 20 20 65 6e 75 6d 65 72 61    74 65 28 6d 61 74 63 68 65 73 29 5d 0d 0a 0d 0a  | .........enumerate(matches)].... | 
| 18640 |  20 20 20 20 20 20 20 20 66 6f 72 20 77 20 69 6e    20 77 6f 72 6b 65 72 73 3a 0d 0a 20 20 20 20 20  | ........for.w.in.workers:....... | 
| 18660 |  20 20 20 20 20 20 20 77 2e 73 74 61 72 74 28 29    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20  | .......w.start()..............#. | 
| 18680 |  44 6f 6e 27 74 20 73 65 6e 64 20 61 6c 6c 20 72    65 71 75 65 73 74 73 20 61 74 20 74 68 65 20 73  | Don't.send.all.requests.at.the.s | 
| 186a0 |  61 6d 65 20 74 69 6d 65 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 74 69 6d 65 2e 73 6c 65 65 70  | ame.time..............time.sleep | 
| 186c0 |  28 30 2e 31 29 0d 0a 0d 0a 20 20 20 20 20 20 20    20 77 68 69 6c 65 20 6e 6f 74 20 61 62 6f 72 74  | (0.1)............while.not.abort | 
| 186e0 |  2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 61 5f 77 6f 72 6b 65 72  | .is_set():..............a_worker | 
| 18700 |  5f 69 73 5f 61 6c 69 76 65 20 3d 20 46 61 6c 73    65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66  | _is_alive.=.False..............f | 
| 18720 |  6f 72 20 77 20 69 6e 20 77 6f 72 6b 65 72 73 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | or.w.in.workers:................ | 
| 18740 |  20 20 77 2e 6a 6f 69 6e 28 30 2e 32 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69  | ..w.join(0.2)..................i | 
| 18760 |  66 20 61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | f.abort.is_set():............... | 
| 18780 |  20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66  | .......break..................if | 
| 187a0 |  20 77 2e 69 73 5f 61 6c 69 76 65 28 29 3a 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .w.is_alive():.................. | 
| 187c0 |  20 20 20 20 61 5f 77 6f 72 6b 65 72 5f 69 73 5f    61 6c 69 76 65 20 3d 20 54 72 75 65 0d 0a 20 20  | ....a_worker_is_alive.=.True.... | 
| 187e0 |  20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74    20 61 5f 77 6f 72 6b 65 72 5f 69 73 5f 61 6c 69  | ..........if.not.a_worker_is_ali | 
| 18800 |  76 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 62 72 65 61 6b 0d 0a 0d 0a 20 20  | ve:..................break...... | 
| 18820 |  20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e    65 0d 0a 0d 0a 20 20 20 20 64 65 66 20 5f 70 61  | ......return.None........def._pa | 
| 18840 |  72 73 65 5f 73 65 61 72 63 68 5f 72 65 73 75 6c    74 73 28 73 65 6c 66 2c 20 6c 6f 67 2c 20 6f 72  | rse_search_results(self,.log,.or | 
| 18860 |  69 67 5f 74 69 74 6c 65 2c 20 6f 72 69 67 5f 61    75 74 68 6f 72 73 2c 20 72 6f 6f 74 2c 20 6d 61  | ig_title,.orig_authors,.root,.ma | 
| 18880 |  74 63 68 65 73 2c 20 74 69 6d 65 6f 75 74 29 3a    0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 65 20  | tches,.timeout):..........for.e. | 
| 188a0 |  69 6e 20 72 6f 6f 74 2e 69 74 65 72 28 22 73 70    61 6e 22 29 3a 0d 0a 20 20 20 20 20 20 20 20 20  | in.root.iter("span"):........... | 
| 188c0 |  20 20 20 69 66 20 22 64 69 73 70 6c 61 79 3a 6e    6f 6e 65 22 20 69 6e 20 65 2e 67 65 74 28 22 73  | ...if."display:none".in.e.get("s | 
| 188e0 |  74 79 6c 65 22 2c 20 22 22 29 2e 72 65 70 6c 61    63 65 28 22 20 22 2c 20 22 22 29 3a 0d 0a 20 20  | tyle",."").replace(".",.""):.... | 
| 18900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 2e    74 65 78 74 20 3d 20 22 22 0d 0a 0d 0a 20 20 20  | ..............e.text.=.""....... | 
| 18920 |  20 20 20 20 20 55 4e 53 55 50 50 4f 52 54 45 44    5f 46 4f 52 4d 41 54 53 20 3d 20 5b 27 61 75 64  | .....UNSUPPORTED_FORMATS.=.['aud | 
| 18940 |  69 6f 62 6f 6f 6b 27 2c 20 27 6f 74 68 65 72 20    66 6f 72 6d 61 74 27 2c 20 27 63 64 27 2c 20 27  | iobook',.'other.format',.'cd',.' | 
| 18960 |  69 74 65 6d 27 2c 20 27 73 65 65 20 61 6c 6c 20    66 6f 72 6d 61 74 73 20 26 20 65 64 69 74 69 6f  | item',.'see.all.formats.&.editio | 
| 18980 |  6e 73 27 5d 0d 0a 20 20 20 20 20 20 20 20 72 65    73 75 6c 74 73 20 3d 20 72 6f 6f 74 2e 78 70 61  | ns']..........results.=.root.xpa | 
| 189a0 |  74 68 28 27 2f 2f 64 69 76 5b 63 6f 6e 74 61 69    6e 73 28 40 63 6c 61 73 73 2c 20 22 72 65 73 75  | th('//div[contains(@class,."resu | 
| 189c0 |  6c 74 73 4c 69 73 74 43 6f 6e 74 61 69 6e 65 72    22 29 5d 2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e  | ltsListContainer")]//div[contain | 
| 189e0 |  73 28 40 63 6c 61 73 73 2c 20 22 70 72 6f 64 75    63 74 2d 69 6e 66 6f 2d 76 69 65 77 22 29 5d 27  | s(@class,."product-info-view")]' | 
| 18a00 |  29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f    74 20 72 65 73 75 6c 74 73 3a 0d 0a 20 20 20 20  | )..........if.not.results:...... | 
| 18a20 |  20 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 20    3d 20 72 6f 6f 74 2e 78 70 61 74 68 28 27 2f 2f  | ........results.=.root.xpath('// | 
| 18a40 |  6f 6c 5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61    73 73 2c 20 22 72 65 73 75 6c 74 2d 73 65 74 22  | ol[contains(@class,."result-set" | 
| 18a60 |  29 5d 2f 6c 69 5b 63 6f 6e 74 61 69 6e 73 28 40    63 6c 61 73 73 2c 20 22 72 65 73 75 6c 74 22 29  | )]/li[contains(@class,."result") | 
| 18a80 |  5d 27 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20    6e 6f 74 20 72 65 73 75 6c 74 73 3a 0d 0a 20 20  | ]')..........if.not.results:.... | 
| 18aa0 |  20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e    66 6f 28 27 46 4f 55 4e 44 20 4e 4f 20 52 45 53  | ..........log.info('FOUND.NO.RES | 
| 18ac0 |  55 4c 54 53 3a 27 29 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 72 65 74 75 72 6e 0d 0a 0d 0a 20  | ULTS:')..............return..... | 
| 18ae0 |  20 20 20 20 20 20 20 64 65 66 20 69 73 6d 61 74    63 68 28 74 69 74 6c 65 2c 20 61 75 74 68 6f 72  | .......def.ismatch(title,.author | 
| 18b00 |  73 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 61 75 74 68 6f 72 73 20 3d 20 6c 6f 77 65 72  | s):..............authors.=.lower | 
| 18b20 |  28 27 20 27 2e 6a 6f 69 6e 28 61 75 74 68 6f 72    73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | ('.'.join(authors))............. | 
| 18b40 |  20 74 69 74 6c 65 20 3d 20 6c 6f 77 65 72 28 74    69 74 6c 65 29 0d 0a 20 20 20 20 20 20 20 20 20  | .title.=.lower(title)........... | 
| 18b60 |  20 20 20 6d 61 74 63 68 20 3d 20 6e 6f 74 20 74    69 74 6c 65 5f 74 6f 6b 65 6e 73 0d 0a 20 20 20  | ...match.=.not.title_tokens..... | 
| 18b80 |  20 20 20 20 20 20 20 20 20 66 6f 72 20 74 20 69    6e 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73 3a 0d  | .........for.t.in.title_tokens:. | 
| 18ba0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 69 66 20 6c 6f 77 65 72 28 74 29 20 69 6e 20  | .................if.lower(t).in. | 
| 18bc0 |  74 69 74 6c 65 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63  | title:......................matc | 
| 18be0 |  68 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72  | h.=.True......................br | 
| 18c00 |  65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 61 6d 61 74 63 68 20 3d 20 6e 6f 74 20 61 75  | eak..............amatch.=.not.au | 
| 18c20 |  74 68 6f 72 5f 74 6f 6b 65 6e 73 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 66 6f 72 20 61 20 69  | thor_tokens..............for.a.i | 
| 18c40 |  6e 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 3a    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.author_tokens:................ | 
| 18c60 |  20 20 69 66 20 6c 6f 77 65 72 28 61 29 20 69 6e    20 61 75 74 68 6f 72 73 3a 0d 0a 20 20 20 20 20  | ..if.lower(a).in.authors:....... | 
| 18c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61    6d 61 74 63 68 20 3d 20 54 72 75 65 0d 0a 20 20  | ...............amatch.=.True.... | 
| 18ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20  | ..................break......... | 
| 18cc0 |  20 20 20 20 20 69 66 20 6e 6f 74 20 61 75 74 68    6f 72 5f 74 6f 6b 65 6e 73 3a 20 61 6d 61 74 63  | .....if.not.author_tokens:.amatc | 
| 18ce0 |  68 20 3d 20 54 72 75 65 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 74  | h.=.True..............return.mat | 
| 18d00 |  63 68 20 61 6e 64 20 61 6d 61 74 63 68 0d 0a 0d    0a 20 20 20 20 20 20 20 20 69 6d 70 6f 72 74 20  | ch.and.amatch............import. | 
| 18d20 |  63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73 2e    62 61 72 6e 65 73 5f 6e 6f 62 6c 65 2e 63 6f 6e  | calibre_plugins.barnes_noble.con | 
| 18d40 |  66 69 67 20 61 73 20 63 66 67 0d 0a 20 20 20 20    20 20 20 20 6d 61 78 5f 72 65 73 75 6c 74 73 20  | fig.as.cfg..........max_results. | 
| 18d60 |  3d 20 63 66 67 2e 70 6c 75 67 69 6e 5f 70 72 65    66 73 5b 63 66 67 2e 53 54 4f 52 45 5f 4e 41 4d  | =.cfg.plugin_prefs[cfg.STORE_NAM | 
| 18d80 |  45 5d 5b 63 66 67 2e 4b 45 59 5f 4d 41 58 5f 44    4f 57 4e 4c 4f 41 44 53 5d 0d 0a 20 20 20 20 20  | E][cfg.KEY_MAX_DOWNLOADS]....... | 
| 18da0 |  20 20 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70    20 3d 20 4f 72 64 65 72 65 64 44 69 63 74 28 29  | ...title_url_map.=.OrderedDict() | 
| 18dc0 |  0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 72 65    73 75 6c 74 20 69 6e 20 72 65 73 75 6c 74 73 3a  | ..........for.result.in.results: | 
| 18de0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 6c    6f 67 2e 69 6e 66 6f 28 27 4c 6f 6f 6b 69 6e 67  | ..............#log.info('Looking | 
| 18e00 |  20 61 74 20 72 65 73 75 6c 74 3a 27 29 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 23 74 69 74 6c  | .at.result:')..............#titl | 
| 18e20 |  65 20 3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75    6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 69 6d 67  | e.=.''.join(result.xpath('.//img | 
| 18e40 |  5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73    2c 20 22 70 72 6f 64 75 63 74 2d 69 6d 61 67 65  | [contains(@class,."product-image | 
| 18e60 |  22 29 5d 2f 40 61 6c 74 27 29 29 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 74 69 74 6c 65 20 3d  | ")]/@alt'))..............title.= | 
| 18e80 |  20 72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 2e    2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40  | .result.xpath('.//div[contains(@ | 
| 18ea0 |  63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d    73 68 65 6c 66 2d 74 69 74 6c 65 22 29 5d 27 29  | class,."product-shelf-title")]') | 
| 18ec0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66    20 6e 6f 74 20 74 69 74 6c 65 3a 0d 0a 20 20 20  | ..............if.not.title:..... | 
| 18ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f    67 2e 69 6e 66 6f 28 27 43 6f 75 6c 64 20 6e 6f  | .............#log.info('Could.no | 
| 18f00 |  74 20 66 69 6e 64 20 74 69 74 6c 65 27 29 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.find.title').................. | 
| 18f20 |  63 6f 6e 74 69 6e 75 65 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 74 69 74 6c 65 20 3d 20 74 69  | continue..............title.=.ti | 
| 18f40 |  74 6c 65 5b 30 5d 2e 74 65 78 74 5f 63 6f 6e 74    65 6e 74 28 29 2e 73 74 72 69 70 28 29 0d 0a 20  | tle[0].text_content().strip()... | 
| 18f60 |  20 20 20 20 20 20 20 20 20 20 20 23 20 53 74 72    69 70 20 6f 66 66 20 61 6e 79 20 73 65 72 69 65  | ...........#.Strip.off.any.serie | 
| 18f80 |  73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72    6f 6d 20 74 68 65 20 74 69 74 6c 65 0d 0a 20 20  | s.information.from.the.title.... | 
| 18fa0 |  20 20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69    6e 66 6f 28 27 46 4f 55 4e 44 20 54 49 54 4c 45  | ..........#log.info('FOUND.TITLE | 
| 18fc0 |  3a 27 2c 74 69 74 6c 65 29 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 69 66 20 27 28 27 20 69 6e  | :',title)..............if.'('.in | 
| 18fe0 |  20 74 69 74 6c 65 3a 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 23 6c 6f 67 2e 69 6e  | .title:..................#log.in | 
| 19000 |  66 6f 28 27 53 74 72 69 70 70 69 6e 67 20 6f 66    66 20 73 65 72 69 65 73 28 27 29 0d 0a 20 20 20  | fo('Stripping.off.series(')..... | 
| 19020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74    6c 65 20 3d 20 74 69 74 6c 65 2e 72 70 61 72 74  | .............title.=.title.rpart | 
| 19040 |  69 74 69 6f 6e 28 27 28 27 29 5b 30 5d 2e 73 74    72 69 70 28 29 0d 0a 20 20 20 20 20 20 20 20 20  | ition('(')[0].strip()........... | 
| 19060 |  20 20 20 23 20 41 6c 73 6f 20 73 74 72 69 70 20    6f 66 66 20 61 6e 79 20 4e 4f 4f 4b 20 42 6f 6f  | ...#.Also.strip.off.any.NOOK.Boo | 
| 19080 |  6b 20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65    20 74 69 74 6c 65 0d 0a 20 20 20 20 20 20 20 20  | k.stuff.from.the.title.......... | 
| 190a0 |  20 20 20 20 74 69 74 6c 65 20 3d 20 74 69 74 6c    65 2e 72 65 70 6c 61 63 65 28 27 5b 4e 4f 4f 4b  | ....title.=.title.replace('[NOOK | 
| 190c0 |  20 42 6f 6f 6b 5d 27 2c 20 27 27 29 2e 73 74 72    69 70 28 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20  | .Book]',.'').strip()............ | 
| 190e0 |  20 20 20 20 23 63 6f 6e 74 72 69 62 75 74 6f 72    73 20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68  | ....#contributors.=.result.xpath | 
| 19100 |  28 27 2e 2f 2f 75 6c 5b 40 63 6c 61 73 73 3d 22    63 6f 6e 74 72 69 62 75 74 6f 72 73 22 5d 2f 2f  | ('.//ul[@class="contributors"]// | 
| 19120 |  6c 69 5b 70 6f 73 69 74 69 6f 6e 28 29 3e 31 5d    2f 2f 61 27 29 0d 0a 20 20 20 20 20 20 20 20 20  | li[position()>1]//a')........... | 
| 19140 |  20 20 20 23 63 6f 6e 74 72 69 62 75 74 6f 72 73    20 3d 20 72 65 73 75 6c 74 2e 78 70 61 74 68 28  | ...#contributors.=.result.xpath( | 
| 19160 |  27 2e 2f 2f 61 5b 40 63 6c 61 73 73 3d 22 63 6f    6e 74 72 69 62 75 74 6f 72 22 5d 27 29 0d 0a 20  | './/a[@class="contributor"]')... | 
| 19180 |  20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 72    69 62 75 74 6f 72 73 20 3d 20 72 65 73 75 6c 74  | ...........contributors.=.result | 
| 191a0 |  2e 78 70 61 74 68 28 27 2e 2f 2f 64 69 76 5b 63    6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73 2c 20  | .xpath('.//div[contains(@class,. | 
| 191c0 |  22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66 2d 61    75 74 68 6f 72 22 29 5d 2f 61 27 29 0d 0a 20 20  | "product-shelf-author")]/a').... | 
| 191e0 |  20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72    73 20 3d 20 5b 5d 0d 0a 20 20 20 20 20 20 20 20  | ..........authors.=.[].......... | 
| 19200 |  20 20 20 20 66 6f 72 20 63 20 69 6e 20 63 6f 6e    74 72 69 62 75 74 6f 72 73 3a 0d 0a 20 20 20 20  | ....for.c.in.contributors:...... | 
| 19220 |  20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 68    6f 72 20 3d 20 63 2e 74 65 78 74 5f 63 6f 6e 74  | ............author.=.c.text_cont | 
| 19240 |  65 6e 74 28 29 2e 73 70 6c 69 74 28 27 2c 27 29    5b 30 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | ent().split(',')[0]............. | 
| 19260 |  20 20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27    46 6f 75 6e 64 20 61 75 74 68 6f 72 3a 27 2c 61  | .....#log.info('Found.author:',a | 
| 19280 |  75 74 68 6f 72 29 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 69 66 20 61 75 74 68 6f  | uthor)..................if.autho | 
| 192a0 |  72 2e 73 74 72 69 70 28 29 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.strip():...................... | 
| 192c0 |  61 75 74 68 6f 72 73 2e 61 70 70 65 6e 64 28 61    75 74 68 6f 72 2e 73 74 72 69 70 28 29 29 0d 0a  | authors.append(author.strip()).. | 
| 192e0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 6c    6f 67 2e 69 6e 66 6f 28 27 4c 6f 6f 6b 69 6e 67  | ..............#log.info('Looking | 
| 19300 |  20 61 74 20 74 6f 6b 65 6e 73 3a 20 25 72 20 25    72 27 25 20 74 69 74 6c 65 5f 74 6f 6b 65 6e 73  | .at.tokens:.%r.%r'%.title_tokens | 
| 19320 |  2c 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 29    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 69  | ,.author_tokens)..............ti | 
| 19340 |  74 6c 65 5f 74 6f 6b 65 6e 73 20 3d 20 6c 69 73    74 28 73 65 6c 66 2e 67 65 74 5f 74 69 74 6c 65  | tle_tokens.=.list(self.get_title | 
| 19360 |  5f 74 6f 6b 65 6e 73 28 6f 72 69 67 5f 74 69 74    6c 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20  | _tokens(orig_title))............ | 
| 19380 |  20 20 61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 20    3d 20 6c 69 73 74 28 73 65 6c 66 2e 67 65 74 5f  | ..author_tokens.=.list(self.get_ | 
| 193a0 |  61 75 74 68 6f 72 5f 74 6f 6b 65 6e 73 28 6f 72    69 67 5f 61 75 74 68 6f 72 73 29 29 0d 0a 20 20  | author_tokens(orig_authors)).... | 
| 193c0 |  20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74    20 69 73 6d 61 74 63 68 28 74 69 74 6c 65 2c 20  | ..........if.not.ismatch(title,. | 
| 193e0 |  61 75 74 68 6f 72 73 29 3a 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69  | authors):..................log.i | 
| 19400 |  6e 66 6f 28 27 52 65 6a 65 63 74 69 6e 67 20 61    73 20 6e 6f 74 20 63 6c 6f 73 65 20 65 6e 6f 75  | nfo('Rejecting.as.not.close.enou | 
| 19420 |  67 68 20 6d 61 74 63 68 3a 20 25 73 20 62 79 20    25 73 27 20 25 20 28 74 69 74 6c 65 2c 20 27 20  | gh.match:.%s.by.%s'.%.(title,.'. | 
| 19440 |  26 20 27 2e 6a 6f 69 6e 28 61 75 74 68 6f 72 73    29 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | &.'.join(authors)))............. | 
| 19460 |  20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20  | .....continue................... | 
| 19480 |  20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69 6e 66    6f 28 27 43 6f 6e 73 69 64 65 72 69 6e 67 20 73  | .........log.info('Considering.s | 
| 194a0 |  65 61 72 63 68 20 72 65 73 75 6c 74 3a 20 25 73    20 62 79 20 25 73 27 20 25 20 28 74 69 74 6c 65  | earch.result:.%s.by.%s'.%.(title | 
| 194c0 |  2c 20 27 20 26 20 27 2e 6a 6f 69 6e 28 61 75 74    68 6f 72 73 29 29 29 0d 0a 0d 0a 20 20 20 20 20  | ,.'.&.'.join(authors)))......... | 
| 194e0 |  20 20 20 20 20 20 20 23 20 56 61 6c 69 64 61 74    65 20 74 68 61 74 20 74 68 65 20 66 6f 72 6d 61  | .......#.Validate.that.the.forma | 
| 19500 |  74 20 69 73 20 6f 6e 65 20 77 65 20 61 72 65 20    69 6e 74 65 72 65 73 74 65 64 20 69 6e 0d 0a 20  | t.is.one.we.are.interested.in... | 
| 19520 |  20 20 20 20 20 20 20 20 20 20 20 23 66 6f 72 6d    61 74 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73  | ...........#format_details.=.res | 
| 19540 |  75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 73 70    61 6e 5b 40 63 6c 61 73 73 3d 22 66 6f 72 6d 61  | ult.xpath('.//span[@class="forma | 
| 19560 |  74 22 5d 2f 74 65 78 74 28 29 27 29 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74  | t"]/text()')..............format | 
| 19580 |  5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73 75 6c    74 2e 78 70 61 74 68 28 27 28 2e 2f 2f 64 69 76  | _details.=.result.xpath('(.//div | 
| 195a0 |  5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73    2c 20 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66  | [contains(@class,."product-shelf | 
| 195c0 |  2d 70 72 69 63 69 6e 67 22 29 5d 2f 2f 73 70 61    6e 29 5b 31 5d 27 29 20 23 20 67 72 69 64 56 69  | -pricing")]//span)[1]').#.gridVi | 
| 195e0 |  65 77 20 66 6f 72 6d 61 74 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 66 6f  | ew.format..............if.not.fo | 
| 19600 |  72 6d 61 74 5f 64 65 74 61 69 6c 73 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66  | rmat_details:..................f | 
| 19620 |  6f 72 6d 61 74 5f 64 65 74 61 69 6c 73 20 3d 20    72 65 73 75 6c 74 2e 78 70 61 74 68 28 27 28 2e  | ormat_details.=.result.xpath('(. | 
| 19640 |  2f 2f 64 69 76 5b 63 6f 6e 74 61 69 6e 73 28 40    63 6c 61 73 73 2c 20 22 70 72 6f 64 75 63 74 2d  | //div[contains(@class,."product- | 
| 19660 |  73 68 65 6c 66 2d 70 72 69 63 69 6e 67 22 29 5d    2f 2f 61 29 5b 31 5d 27 29 20 23 20 6c 69 73 74  | shelf-pricing")]//a)[1]').#.list | 
| 19680 |  56 69 65 77 20 66 6f 72 6d 61 74 0d 0a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 23 66 6f 72 6d  | View.format................#form | 
| 196a0 |  61 74 5f 64 65 74 61 69 6c 73 20 3d 20 72 65 73    75 6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 75 6c  | at_details.=.result.xpath('.//ul | 
| 196c0 |  5b 40 63 6c 61 73 73 3d 22 66 6f 72 6d 61 74 73    22 5d 2f 6c 69 2f 61 2f 74 65 78 74 28 29 27 29  | [@class="formats"]/li/a/text()') | 
| 196e0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61    6c 69 64 5f 66 6f 72 6d 61 74 20 3d 20 46 61 6c  | ..............valid_format.=.Fal | 
| 19700 |  73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    66 6f 72 20 66 6f 72 6d 61 74 20 69 6e 20 66 6f  | se..............for.format.in.fo | 
| 19720 |  72 6d 61 74 5f 64 65 74 61 69 6c 73 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66  | rmat_details:..................f | 
| 19740 |  6f 72 6d 61 74 5f 74 65 78 74 20 3d 20 66 6f 72    6d 61 74 2e 74 65 78 74 5f 63 6f 6e 74 65 6e 74  | ormat_text.=.format.text_content | 
| 19760 |  28 29 2e 73 74 72 69 70 28 29 2e 6c 6f 77 65 72    28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ().strip().lower().............. | 
| 19780 |  20 20 20 20 23 6c 6f 67 2e 69 6e 66 6f 28 27 2a    2a 46 6f 75 6e 64 20 66 6f 72 6d 61 74 3a 20 25  | ....#log.info('**Found.format:.% | 
| 197a0 |  73 27 25 66 6f 72 6d 61 74 5f 74 65 78 74 29 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s'%format_text)................. | 
| 197c0 |  20 69 66 20 66 6f 72 6d 61 74 5f 74 65 78 74 20    6e 6f 74 20 69 6e 20 55 4e 53 55 50 50 4f 52 54  | .if.format_text.not.in.UNSUPPORT | 
| 197e0 |  45 44 5f 46 4f 52 4d 41 54 53 3a 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ED_FORMATS:..................... | 
| 19800 |  20 76 61 6c 69 64 5f 66 6f 72 6d 61 74 20 3d 20    54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20 20  | .valid_format.=.True............ | 
| 19820 |  20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73  | ..........break..............res | 
| 19840 |  75 6c 74 5f 75 72 6c 20 3d 20 4e 6f 6e 65 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 76  | ult_url.=.None..............if.v | 
| 19860 |  61 6c 69 64 5f 66 6f 72 6d 61 74 3a 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20  | alid_format:..................#. | 
| 19880 |  47 65 74 20 74 68 65 20 64 65 74 61 69 6c 65 64    20 75 72 6c 20 74 6f 20 71 75 65 72 79 20 6e 65  | Get.the.detailed.url.to.query.ne | 
| 198a0 |  78 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 23 72 65 73 75 6c 74 5f 75 72 6c 20  | xt..................#result_url. | 
| 198c0 |  3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75 6c 74    2e 78 70 61 74 68 28 27 2e 2f 2f 61 5b 40 63 6c  | =.''.join(result.xpath('.//a[@cl | 
| 198e0 |  61 73 73 3d 22 74 69 74 6c 65 22 5d 2f 40 68 72    65 66 27 29 29 0d 0a 20 20 20 20 20 20 20 20 20  | ass="title"]/@href'))........... | 
| 19900 |  20 20 20 20 20 20 20 72 65 73 75 6c 74 5f 75 72    6c 20 3d 20 27 27 2e 6a 6f 69 6e 28 72 65 73 75  | .......result_url.=.''.join(resu | 
| 19920 |  6c 74 2e 78 70 61 74 68 28 27 2e 2f 2f 64 69 76    5b 63 6f 6e 74 61 69 6e 73 28 40 63 6c 61 73 73  | lt.xpath('.//div[contains(@class | 
| 19940 |  2c 20 22 70 72 6f 64 75 63 74 2d 73 68 65 6c 66    2d 74 69 74 6c 65 22 29 5d 2f 61 2f 40 68 72 65  | ,."product-shelf-title")]/a/@hre | 
| 19960 |  66 27 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 69 66 20 72 65 73 75 6c 74 5f  | f'))..................if.result_ | 
| 19980 |  75 72 6c 2e 73 74 61 72 74 73 77 69 74 68 28 27    2f 27 29 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | url.startswith('/'):............ | 
| 199a0 |  20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74    5f 75 72 6c 20 3d 20 42 61 72 6e 65 73 4e 6f 62  | ..........result_url.=.BarnesNob | 
| 199c0 |  6c 65 2e 42 52 4f 57 53 45 5f 55 52 4c 20 2b 20    72 65 73 75 6c 74 5f 75 72 6c 0d 0a 20 20 20 20  | le.BROWSE_URL.+.result_url...... | 
| 199e0 |  20 20 20 20 20 20 20 20 20 20 20 20 23 6c 6f 67    2e 69 6e 66 6f 28 27 2a 2a 46 6f 75 6e 64 20 68  | ............#log.info('**Found.h | 
| 19a00 |  72 65 66 3a 20 25 73 27 25 72 65 73 75 6c 74 5f    75 72 6c 29 0d 0a 0d 0a 20 20 20 20 20 20 20 20  | ref:.%s'%result_url)............ | 
| 19a20 |  20 20 20 20 69 66 20 72 65 73 75 6c 74 5f 75 72    6c 20 61 6e 64 20 74 69 74 6c 65 20 6e 6f 74 20  | ....if.result_url.and.title.not. | 
| 19a40 |  69 6e 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | in.title_url_map:............... | 
| 19a60 |  20 20 20 74 69 74 6c 65 5f 75 72 6c 5f 6d 61 70    5b 74 69 74 6c 65 5d 20 3d 20 72 65 73 75 6c 74  | ...title_url_map[title].=.result | 
| 19a80 |  5f 75 72 6c 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 69 66 20 6c 65 6e 28 74 69 74  | _url..................if.len(tit | 
| 19aa0 |  6c 65 5f 75 72 6c 5f 6d 61 70 29 20 3e 3d 20 35    3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | le_url_map).>=.5:............... | 
| 19ac0 |  20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 0d 0a    20 20 20 20 20 20 20 20 66 6f 72 20 74 69 74 6c  | .......break............for.titl | 
| 19ae0 |  65 20 69 6e 20 74 69 74 6c 65 5f 75 72 6c 5f 6d    61 70 2e 6b 65 79 73 28 29 3a 0d 0a 20 20 20 20  | e.in.title_url_map.keys():...... | 
| 19b00 |  20 20 20 20 20 20 20 20 6d 61 74 63 68 65 73 2e    61 70 70 65 6e 64 28 74 69 74 6c 65 5f 75 72 6c  | ........matches.append(title_url | 
| 19b20 |  5f 6d 61 70 5b 74 69 74 6c 65 5d 29 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e  | _map[title])..............if.len | 
| 19b40 |  28 6d 61 74 63 68 65 73 29 20 3e 3d 20 6d 61 78    5f 72 65 73 75 6c 74 73 3a 0d 0a 20 20 20 20 20  | (matches).>=.max_results:....... | 
| 19b60 |  20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b    0d 0a 0d 0a 0d 0a 20 20 20 20 64 65 66 20 64 6f  | ...........break..........def.do | 
| 19b80 |  77 6e 6c 6f 61 64 5f 63 6f 76 65 72 28 73 65 6c    66 2c 20 6c 6f 67 2c 20 72 65 73 75 6c 74 5f 71  | wnload_cover(self,.log,.result_q | 
| 19ba0 |  75 65 75 65 2c 20 61 62 6f 72 74 2c 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 74 69 74 6c 65 3d  | ueue,.abort,..............title= | 
| 19bc0 |  4e 6f 6e 65 2c 20 61 75 74 68 6f 72 73 3d 4e 6f    6e 65 2c 20 69 64 65 6e 74 69 66 69 65 72 73 3d  | None,.authors=None,.identifiers= | 
| 19be0 |  7b 7d 2c 20 74 69 6d 65 6f 75 74 3d 33 30 29 3a    0d 0a 20 20 20 20 20 20 20 20 63 61 63 68 65 64  | {},.timeout=30):..........cached | 
| 19c00 |  5f 75 72 6c 20 3d 20 73 65 6c 66 2e 67 65 74 5f    63 61 63 68 65 64 5f 63 6f 76 65 72 5f 75 72 6c  | _url.=.self.get_cached_cover_url | 
| 19c20 |  28 69 64 65 6e 74 69 66 69 65 72 73 29 0d 0a 20    20 20 20 20 20 20 20 69 66 20 63 61 63 68 65 64  | (identifiers)..........if.cached | 
| 19c40 |  5f 75 72 6c 20 69 73 20 4e 6f 6e 65 3a 0d 0a 20    20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 2e 69  | _url.is.None:..............log.i | 
| 19c60 |  6e 66 6f 28 27 4e 6f 20 63 61 63 68 65 64 20 63    6f 76 65 72 20 66 6f 75 6e 64 2c 20 72 75 6e 6e  | nfo('No.cached.cover.found,.runn | 
| 19c80 |  69 6e 67 20 69 64 65 6e 74 69 66 79 27 29 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 72 71 20 3d  | ing.identify')..............rq.= | 
| 19ca0 |  20 51 75 65 75 65 28 29 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 73 65 6c 66 2e 69 64 65 6e 74  | .Queue()..............self.ident | 
| 19cc0 |  69 66 79 28 6c 6f 67 2c 20 72 71 2c 20 61 62 6f    72 74 2c 20 74 69 74 6c 65 3d 74 69 74 6c 65 2c  | ify(log,.rq,.abort,.title=title, | 
| 19ce0 |  20 61 75 74 68 6f 72 73 3d 61 75 74 68 6f 72 73    2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .authors=authors,............... | 
| 19d00 |  20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65    72 73 3d 69 64 65 6e 74 69 66 69 65 72 73 29 0d  | .......identifiers=identifiers). | 
| 19d20 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20    61 62 6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d  | .............if.abort.is_set():. | 
| 19d40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20  | .................return......... | 
| 19d60 |  20 20 20 20 20 72 65 73 75 6c 74 73 20 3d 20 5b    5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77  | .....results.=.[]..............w | 
| 19d80 |  68 69 6c 65 20 54 72 75 65 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a  | hile.True:..................try: | 
| 19da0 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 72 65 73 75 6c 74 73 2e 61 70  | ......................results.ap | 
| 19dc0 |  70 65 6e 64 28 72 71 2e 67 65 74 5f 6e 6f 77 61    69 74 28 29 29 0d 0a 20 20 20 20 20 20 20 20 20  | pend(rq.get_nowait())........... | 
| 19de0 |  20 20 20 20 20 20 20 65 78 63 65 70 74 20 45 6d    70 74 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | .......except.Empty:............ | 
| 19e00 |  20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73  | ..........break..............res | 
| 19e20 |  75 6c 74 73 2e 73 6f 72 74 28 6b 65 79 3d 73 65    6c 66 2e 69 64 65 6e 74 69 66 79 5f 72 65 73 75  | ults.sort(key=self.identify_resu | 
| 19e40 |  6c 74 73 5f 6b 65 79 67 65 6e 28 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 74  | lts_keygen(..................tit | 
| 19e60 |  6c 65 3d 74 69 74 6c 65 2c 20 61 75 74 68 6f 72    73 3d 61 75 74 68 6f 72 73 2c 20 69 64 65 6e 74  | le=title,.authors=authors,.ident | 
| 19e80 |  69 66 69 65 72 73 3d 69 64 65 6e 74 69 66 69 65    72 73 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20  | ifiers=identifiers))............ | 
| 19ea0 |  20 20 66 6f 72 20 6d 69 20 69 6e 20 72 65 73 75    6c 74 73 3a 0d 0a 20 20 20 20 20 20 20 20 20 20  | ..for.mi.in.results:............ | 
| 19ec0 |  20 20 20 20 20 20 63 61 63 68 65 64 5f 75 72 6c    20 3d 20 73 65 6c 66 2e 67 65 74 5f 63 61 63 68  | ......cached_url.=.self.get_cach | 
| 19ee0 |  65 64 5f 63 6f 76 65 72 5f 75 72 6c 28 6d 69 2e    69 64 65 6e 74 69 66 69 65 72 73 29 0d 0a 20 20  | ed_cover_url(mi.identifiers).... | 
| 19f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66    20 63 61 63 68 65 64 5f 75 72 6c 20 69 73 20 6e  | ..............if.cached_url.is.n | 
| 19f20 |  6f 74 20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72  | ot.None:......................br | 
| 19f40 |  65 61 6b 0d 0a 20 20 20 20 20 20 20 20 69 66 20    63 61 63 68 65 64 5f 75 72 6c 20 69 73 20 4e 6f  | eak..........if.cached_url.is.No | 
| 19f60 |  6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 6c 6f 67 2e 69 6e 66 6f 28 27 4e 6f 20 63 6f  | ne:..............log.info('No.co | 
| 19f80 |  76 65 72 20 66 6f 75 6e 64 27 29 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0d  | ver.found')..............return. | 
| 19fa0 |  0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 61 62    6f 72 74 2e 69 73 5f 73 65 74 28 29 3a 0d 0a 20  | ...........if.abort.is_set():... | 
| 19fc0 |  20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72    6e 0d 0a 20 20 20 20 20 20 20 20 62 72 20 3d 20  | ...........return..........br.=. | 
| 19fe0 |  73 65 6c 66 2e 62 72 6f 77 73 65 72 0d 0a 20 20    20 20 20 20 20 20 62 72 2e 73 65 74 5f 63 75 72  | self.browser..........br.set_cur | 
| 1a000 |  72 65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63    65 70 74 27 2c 27 2a 2f 2a 27 29 0d 0a 20 20 20  | rent_header('Accept','*/*')..... | 
| 1a020 |  20 20 20 20 20 62 72 2e 73 65 74 5f 63 75 72 72    65 6e 74 5f 68 65 61 64 65 72 28 27 41 63 63 65  | .....br.set_current_header('Acce | 
| 1a040 |  70 74 2d 45 6e 63 6f 64 69 6e 67 27 2c 27 67 7a    69 70 2c 20 64 65 66 6c 61 74 65 2c 20 62 72 27  | pt-Encoding','gzip,.deflate,.br' | 
| 1a060 |  29 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 28 27    44 6f 77 6e 6c 6f 61 64 69 6e 67 20 63 6f 76 65  | )..........log('Downloading.cove | 
| 1a080 |  72 20 66 72 6f 6d 3a 27 2c 20 63 61 63 68 65 64    5f 75 72 6c 29 0d 0a 20 20 20 20 20 20 20 20 74  | r.from:',.cached_url)..........t | 
| 1a0a0 |  72 79 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 63 64 61 74 61 20 3d 20 62 72 2e 6f 70 65 6e  | ry:..............cdata.=.br.open | 
| 1a0c0 |  5f 6e 6f 76 69 73 69 74 28 63 61 63 68 65 64 5f    75 72 6c 2c 20 74 69 6d 65 6f 75 74 3d 74 69 6d  | _novisit(cached_url,.timeout=tim | 
| 1a0e0 |  65 6f 75 74 29 2e 72 65 61 64 28 29 0d 0a 20 20    20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74  | eout).read()..............result | 
| 1a100 |  5f 71 75 65 75 65 2e 70 75 74 28 28 73 65 6c 66    2c 20 63 64 61 74 61 29 29 0d 0a 20 20 20 20 20  | _queue.put((self,.cdata))....... | 
| 1a120 |  20 20 20 65 78 63 65 70 74 3a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 6c 6f 67 2e 65 78 63 65  | ...except:..............log.exce | 
| 1a140 |  70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f    20 64 6f 77 6e 6c 6f 61 64 20 63 6f 76 65 72 20  | ption('Failed.to.download.cover. | 
| 1a160 |  66 72 6f 6d 3a 27 2c 20 63 61 63 68 65 64 5f 75    72 6c 29 0d 0a 0d 0a 0d 0a 69 66 20 5f 5f 6e 61  | from:',.cached_url)......if.__na | 
| 1a180 |  6d 65 5f 5f 20 3d 3d 20 27 5f 5f 6d 61 69 6e 5f    5f 27 3a 20 23 20 74 65 73 74 73 0d 0a 20 20 20  | me__.==.'__main__':.#.tests..... | 
| 1a1a0 |  20 23 20 54 6f 20 72 75 6e 20 74 68 65 73 65 20    74 65 73 74 20 75 73 65 3a 0d 0a 20 20 20 20 23  | .#.To.run.these.test.use:......# | 
| 1a1c0 |  20 63 61 6c 69 62 72 65 2d 64 65 62 75 67 20 2d    65 20 5f 5f 69 6e 69 74 5f 5f 2e 70 79 0d 0a 20  | .calibre-debug.-e.__init__.py... | 
| 1a1e0 |  20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 20    69 6d 70 6f 72 74 20 70 72 69 6e 74 73 0d 0a 20  | ...from.calibre.import.prints... | 
| 1a200 |  20 20 20 66 72 6f 6d 20 63 61 6c 69 62 72 65 2e    65 62 6f 6f 6b 73 2e 6d 65 74 61 64 61 74 61 2e  | ...from.calibre.ebooks.metadata. | 
| 1a220 |  73 6f 75 72 63 65 73 2e 74 65 73 74 20 69 6d 70    6f 72 74 20 28 74 65 73 74 5f 69 64 65 6e 74 69  | sources.test.import.(test_identi | 
| 1a240 |  66 79 5f 70 6c 75 67 69 6e 2c 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 74 69 74 6c 65 5f 74 65  | fy_plugin,..............title_te | 
| 1a260 |  73 74 2c 20 61 75 74 68 6f 72 73 5f 74 65 73 74    2c 20 73 65 72 69 65 73 5f 74 65 73 74 29 0d 0a  | st,.authors_test,.series_test).. | 
| 1a280 |  0d 0a 20 20 20 20 64 65 66 20 63 6f 76 65 72 5f    74 65 73 74 28 63 6f 76 65 72 5f 75 72 6c 29 3a  | ......def.cover_test(cover_url): | 
| 1a2a0 |  0d 0a 20 20 20 20 20 20 20 20 69 66 20 63 6f 76    65 72 5f 75 72 6c 20 69 73 20 6e 6f 74 20 4e 6f  | ..........if.cover_url.is.not.No | 
| 1a2c0 |  6e 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 63 6f 76 65 72 5f 75 72 6c 20 3d 20 63 6f 76  | ne:..............cover_url.=.cov | 
| 1a2e0 |  65 72 5f 75 72 6c 2e 6c 6f 77 65 72 28 29 0d 0a    0d 0a 20 20 20 20 20 20 20 20 64 65 66 20 74 65  | er_url.lower()............def.te | 
| 1a300 |  73 74 28 6d 69 29 3a 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 6d 63 20 3d 20 6d 69 2e 63 6f 76  | st(mi):..............mc.=.mi.cov | 
| 1a320 |  65 72 5f 75 72 6c 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 69 66 20 6d 63 20 69 73 20 6e 6f 74  | er_url..............if.mc.is.not | 
| 1a340 |  20 4e 6f 6e 65 3a 0d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6d 63 20 3d 20 6d 63 2e  | .None:..................mc.=.mc. | 
| 1a360 |  6c 6f 77 65 72 28 29 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 69 66 20 6d 63 20 3d 3d 20 63 6f  | lower()..............if.mc.==.co | 
| 1a380 |  76 65 72 5f 75 72 6c 3a 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  | ver_url:..................return | 
| 1a3a0 |  20 54 72 75 65 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 70 72 69 6e 74 73 28 27 43 6f 76 65 72  | .True..............prints('Cover | 
| 1a3c0 |  20 74 65 73 74 20 66 61 69 6c 65 64 2e 20 45 78    70 65 63 74 65 64 3a 20 5c 27 25 73 5c 27 20 66  | .test.failed..Expected:.\'%s\'.f | 
| 1a3e0 |  6f 75 6e 64 3a 20 27 20 25 20 63 6f 76 65 72 5f    75 72 6c 2c 20 6d 63 29 0d 0a 20 20 20 20 20 20  | ound:.'.%.cover_url,.mc)........ | 
| 1a400 |  20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c    73 65 0d 0a 0d 0a 20 20 20 20 20 20 20 20 72 65  | ......return.False............re | 
| 1a420 |  74 75 72 6e 20 74 65 73 74 0d 0a 0d 0a 20 20 20    20 74 65 73 74 5f 69 64 65 6e 74 69 66 79 5f 70  | turn.test........test_identify_p | 
| 1a440 |  6c 75 67 69 6e 28 42 61 72 6e 65 73 4e 6f 62 6c    65 2e 6e 61 6d 65 2c 0d 0a 20 20 20 20 20 20 20  | lugin(BarnesNoble.name,......... | 
| 1a460 |  20 5b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 23 20 41 20 62 6f 6f 6b 20 77 69 74 68  | .[................(#.A.book.with | 
| 1a480 |  20 61 6e 20 49 53 42 4e 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 7b 27 69 64 65 6e  | .an.ISBN..................{'iden | 
| 1a4a0 |  74 69 66 69 65 72 73 27 3a 7b 27 69 73 62 6e 27    3a 20 27 39 37 38 30 34 33 39 30 36 34 38 36 36  | tifiers':{'isbn':.'9780439064866 | 
| 1a4c0 |  27 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 27 74 69 74 6c 65 27  | '},......................'title' | 
| 1a4e0 |  3a 27 43 68 61 6d 62 65 72 20 6f 66 20 53 65 63    72 65 74 73 27 2c 20 27 61 75 74 68 6f 72 73 27  | :'Chamber.of.Secrets',.'authors' | 
| 1a500 |  3a 5b 27 4a 2e 4b 2e 20 52 6f 77 6c 69 6e 67 27    5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | :['J.K..Rowling']},............. | 
| 1a520 |  20 20 20 20 20 5b 74 69 74 6c 65 5f 74 65 73 74    28 27 48 61 72 72 79 20 50 6f 74 74 65 72 20 61  | .....[title_test('Harry.Potter.a | 
| 1a540 |  6e 64 20 74 68 65 20 43 68 61 6d 62 65 72 20 6f    66 20 53 65 63 72 65 74 73 27 2c 20 65 78 61 63  | nd.the.Chamber.of.Secrets',.exac | 
| 1a560 |  74 3d 54 72 75 65 29 2c 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f  | t=True),...................autho | 
| 1a580 |  72 73 5f 74 65 73 74 28 5b 27 4a 2e 20 4b 2e 20    52 6f 77 6c 69 6e 67 27 5d 29 2c 0d 0a 20 20 20  | rs_test(['J..K..Rowling']),..... | 
| 1a5a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65    72 69 65 73 5f 74 65 73 74 28 27 48 61 72 72 79  | ..............series_test('Harry | 
| 1a5c0 |  20 50 6f 74 74 65 72 27 2c 20 32 2e 30 29 2c 0d    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .Potter',.2.0),................. | 
| 1a5e0 |  20 20 63 6f 76 65 72 5f 74 65 73 74 28 27 68 74    74 70 3a 2f 2f 70 72 6f 64 69 6d 61 67 65 2e 69  | ..cover_test('http://prodimage.i | 
| 1a600 |  6d 61 67 65 73 2d 62 6e 2e 63 6f 6d 2f 6c 66 3f    73 6f 75 72 63 65 3d 75 72 6c 5b 66 69 6c 65 3a  | mages-bn.com/lf?source=url[file: | 
| 1a620 |  69 6d 61 67 65 73 2f 49 6d 61 67 65 73 2f 70 69    6d 61 67 65 73 2f 34 38 36 36 2f 39 37 38 30 34  | images/Images/pimages/4866/97804 | 
| 1a640 |  33 39 30 36 34 38 36 36 5f 70 30 2e 6a 70 67 5d    26 73 69 6e 6b 27 29 5d 0d 0a 20 20 20 20 20 20  | 39064866_p0.jpg]&sink')]........ | 
| 1a660 |  20 20 20 20 20 20 29 2c 0d 0a 0d 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 23 20 41 20 62 6f 6f  | ......),................(#.A.boo | 
| 1a680 |  6b 20 77 69 74 68 20 6e 6f 20 49 53 42 4e 20 73    70 65 63 69 66 69 65 64 0d 0a 20 20 20 20 20 20  | k.with.no.ISBN.specified........ | 
| 1a6a0 |  20 20 20 20 20 20 20 20 20 20 7b 27 74 69 74 6c    65 27 3a 22 53 74 6f 6e 65 20 6f 66 20 54 65 61  | ..........{'title':"Stone.of.Tea | 
| 1a6c0 |  72 73 22 2c 20 27 61 75 74 68 6f 72 73 27 3a 5b    27 54 65 72 72 79 20 47 6f 6f 64 6b 69 6e 64 27  | rs",.'authors':['Terry.Goodkind' | 
| 1a6e0 |  5d 7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 5b 74 69 74 6c 65 5f 74 65 73 74  | ]},..................[title_test | 
| 1a700 |  28 22 53 74 6f 6e 65 20 6f 66 20 54 65 61 72 73    22 2c 20 65 78 61 63 74 3d 54 72 75 65 29 2c 0d  | ("Stone.of.Tears",.exact=True),. | 
| 1a720 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 61 75 74 68 6f 72 73 5f 74 65 73 74 28 5b  | ..................authors_test([ | 
| 1a740 |  27 54 65 72 72 79 20 47 6f 6f 64 6b 69 6e 64 27    5d 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  | 'Terry.Goodkind']),............. | 
| 1a760 |  20 20 20 20 20 20 73 65 72 69 65 73 5f 74 65 73    74 28 27 53 77 6f 72 64 20 6f 66 20 54 72 75 74  | ......series_test('Sword.of.Trut | 
| 1a780 |  68 27 2c 20 32 2e 30 29 2c 0d 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 63 6f 76 65  | h',.2.0),...................cove | 
| 1a7a0 |  72 5f 74 65 73 74 28 27 68 74 74 70 3a 2f 2f 70    72 6f 64 69 6d 61 67 65 2e 69 6d 61 67 65 73 2d  | r_test('http://prodimage.images- | 
| 1a7c0 |  62 6e 2e 63 6f 6d 2f 6c 66 3f 73 6f 75 72 63 65    3d 75 72 6c 5b 66 69 6c 65 3a 69 6d 61 67 65 73  | bn.com/lf?source=url[file:images | 
| 1a7e0 |  2f 49 6d 61 67 65 73 2f 70 69 6d 61 67 65 73 2f    38 30 39 39 2f 39 37 38 30 38 31 32 35 34 38 30  | /Images/pimages/8099/97808125480 | 
| 1a800 |  39 39 5f 70 30 2e 6a 70 67 5d 26 73 69 6e 6b 27    29 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | 99_p0.jpg]&sink')].............. | 
| 1a820 |  29 2c 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 23 20 41 20 62 6f 6f 6b 20 77 69 74 68  | ),................(#.A.book.with | 
| 1a840 |  20 61 20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c    65 20 69 64 0d 0a 20 20 20 20 20 20 20 20 20 20  | .a.Barnes.&.Noble.id............ | 
| 1a860 |  20 20 20 20 20 20 7b 27 69 64 65 6e 74 69 66 69    65 72 73 27 3a 7b 27 62 61 72 6e 65 73 6e 6f 62  | ......{'identifiers':{'barnesnob | 
| 1a880 |  6c 65 27 3a 20 27 77 2f 36 31 2d 68 6f 75 72 73    2d 6c 65 65 2d 63 68 69 6c 64 2f 31 30 31 38 39  | le':.'w/61-hours-lee-child/10189 | 
| 1a8a0 |  31 34 33 30 33 27 7d 2c 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74  | 14303'},......................'t | 
| 1a8c0 |  69 74 6c 65 27 3a 27 36 31 20 48 6f 75 72 73 27    2c 20 27 61 75 74 68 6f 72 73 27 3a 5b 27 4c 65  | itle':'61.Hours',.'authors':['Le | 
| 1a8e0 |  65 20 43 68 69 6c 64 27 5d 7d 2c 0d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 5b 74 69  | e.Child']},..................[ti | 
| 1a900 |  74 6c 65 5f 74 65 73 74 28 27 36 31 20 48 6f 75    72 73 27 2c 20 65 78 61 63 74 3d 54 72 75 65 29  | tle_test('61.Hours',.exact=True) | 
| 1a920 |  2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 61 75 74 68 6f 72 73 5f 74 65 73 74  | ,...................authors_test | 
| 1a940 |  28 5b 27 4c 65 65 20 43 68 69 6c 64 27 5d 29 2c    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (['Lee.Child']),................ | 
| 1a960 |  20 20 20 73 65 72 69 65 73 5f 74 65 73 74 28 27    4a 61 63 6b 20 52 65 61 63 68 65 72 27 2c 20 31  | ...series_test('Jack.Reacher',.1 | 
| 1a980 |  34 2e 30 29 2c 0d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 63 6f 76 65 72 5f 74 65  | 4.0),...................cover_te | 
| 1a9a0 |  73 74 28 27 68 74 74 70 3a 2f 2f 70 72 6f 64 69    6d 61 67 65 2e 69 6d 61 67 65 73 2d 62 6e 2e 63  | st('http://prodimage.images-bn.c | 
| 1a9c0 |  6f 6d 2f 6c 66 3f 73 6f 75 72 63 65 3d 75 72 6c    5b 66 69 6c 65 3a 69 6d 61 67 65 73 2f 49 6d 61  | om/lf?source=url[file:images/Ima | 
| 1a9e0 |  67 65 73 2f 70 69 6d 61 67 65 73 2f 31 35 39 38    2f 39 37 38 30 33 34 35 35 34 31 35 39 38 5f 70  | ges/pimages/1598/9780345541598_p | 
| 1aa00 |  30 2e 6a 70 67 5d 26 73 69 6e 6b 27 29 5d 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 29 2c 0d 0a  | 0.jpg]&sink')]..............),.. | 
| 1aa20 |  0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 23    20 41 20 62 6f 6f 6b 20 77 69 74 68 20 61 6e 20  | ..............(#.A.book.with.an. | 
| 1aa40 |  4e 41 20 63 6f 76 65 72 0d 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 7b 27 69 64 65 6e  | NA.cover..................{'iden | 
| 1aa60 |  74 69 66 69 65 72 73 27 3a 7b 27 69 73 62 6e 27    3a 27 39 37 38 30 34 35 31 30 36 33 39 35 33 27  | tifiers':{'isbn':'9780451063953' | 
| 1aa80 |  7d 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 27 74 69 74 6c 65 27 3a 27 54 68  | },...................'title':'Th | 
| 1aaa0 |  65 20 47 69 72 6c 20 48 75 6e 74 65 72 73 27 2c    20 27 61 75 74 68 6f 72 73 27 3a 5b 27 4d 69 63  | e.Girl.Hunters',.'authors':['Mic | 
| 1aac0 |  6b 65 79 20 53 70 69 6c 6c 61 6e 65 27 5d 7d 2c    0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | key.Spillane']},................ | 
| 1aae0 |  20 20 5b 74 69 74 6c 65 5f 74 65 73 74 28 27 54    68 65 20 47 69 72 6c 20 48 75 6e 74 65 72 73 27  | ..[title_test('The.Girl.Hunters' | 
| 1ab00 |  2c 20 65 78 61 63 74 3d 54 72 75 65 29 2c 0d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ,.exact=True),.................. | 
| 1ab20 |  20 61 75 74 68 6f 72 73 5f 74 65 73 74 28 5b 27    4d 69 63 6b 65 79 20 53 70 69 6c 6c 61 6e 65 27  | .authors_test(['Mickey.Spillane' | 
| 1ab40 |  5d 29 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 63 6f 76 65 72 5f 74 65 73 74  | ]),...................cover_test | 
| 1ab60 |  28 4e 6f 6e 65 29 5d 0d 0a 20 20 20 20 20 20 20    20 20 20 20 20 29 2c 0d 0a 0d 0a 20 20 20 20 20  | (None)]..............),......... | 
| 1ab80 |  20 20 20 5d 2c 20 66 61 69 6c 5f 6d 69 73 73 69    6e 67 5f 6d 65 74 61 3d 46 61 6c 73 65 29 0d 0a  | ...],.fail_missing_meta=False).. | 
| 1aba0 |  50 4b 03 04 14 00 00 00 00 00 61 a0 ac 5a 62 b2    8b 1f de 15 00 00 de 15 00 00 0c 00 00 00 43 48  | PK........a..Zb...............CH | 
| 1abc0 |  41 4e 47 45 4c 4f 47 2e 6d 64 23 20 42 61 72 6e    65 73 20 26 20 4e 6f 62 6c 65 20 43 68 61 6e 67  | ANGELOG.md#.Barnes.&.Noble.Chang | 
| 1abe0 |  65 20 4c 6f 67 0a 0a 23 23 20 5b 31 2e 35 2e 37    5d 20 2d 20 32 30 32 35 2d 30 35 2d 31 32 0a 23  | e.Log..##.[1.5.7].-.2025-05-12.# | 
| 1ac00 |  23 23 20 46 69 78 65 64 0a 2d 20 41 6e 6f 74 68    65 72 20 75 73 65 72 2d 61 67 65 6e 74 20 75 70  | ##.Fixed.-.Another.user-agent.up | 
| 1ac20 |  64 61 74 65 20 72 65 71 75 69 72 65 64 2e 0a 0a    23 23 20 5b 31 2e 35 2e 36 5d 20 2d 20 32 30 32  | date.required...##.[1.5.6].-.202 | 
| 1ac40 |  34 2d 30 38 2d 30 34 0a 23 23 23 20 41 64 64 65    64 0a 2d 20 47 61 6c 69 63 69 61 6e 20 74 72 61  | 4-08-04.###.Added.-.Galician.tra | 
| 1ac60 |  6e 73 6c 61 74 69 6f 6e 2e 0a 23 23 23 20 46 69    78 65 64 0a 2d 20 41 6e 6f 74 68 65 72 20 75 73  | nslation..###.Fixed.-.Another.us | 
| 1ac80 |  65 72 2d 61 67 65 6e 74 20 75 70 64 61 74 65 20    72 65 71 75 69 72 65 64 2e 20 28 40 73 72 76 72  | er-agent.update.required..(@srvr | 
| 1aca0 |  67 75 79 29 0a 0a 23 23 20 5b 31 2e 35 2e 35 5d    20 2d 20 32 30 32 34 2d 30 35 2d 31 31 0a 23 23  | guy)..##.[1.5.5].-.2024-05-11.## | 
| 1acc0 |  23 20 41 64 64 65 64 0a 2d 20 47 65 72 6d 61 6e    20 74 72 61 6e 73 6c 61 74 69 6f 6e 2e 0a 23 23  | #.Added.-.German.translation..## | 
| 1ace0 |  23 20 46 69 78 65 64 0a 2d 20 43 68 61 6e 67 65    73 20 74 6f 20 74 68 65 20 42 26 4e 20 77 65 62  | #.Fixed.-.Changes.to.the.B&N.web | 
| 1ad00 |  73 69 74 65 20 63 61 75 73 69 6e 67 20 74 69 6d    65 6f 75 74 73 20 72 65 71 75 69 72 69 6e 67 20  | site.causing.timeouts.requiring. | 
| 1ad20 |  43 68 72 6f 6d 65 20 75 73 65 72 2d 61 67 65 6e    74 20 3e 20 38 30 20 61 6e 64 20 73 6f 6d 65 20  | Chrome.user-agent.>.80.and.some. | 
| 1ad40 |  73 70 65 63 69 66 69 63 20 61 63 63 65 70 74 20    68 65 61 64 65 72 73 2e 0a 0a 23 23 20 5b 31 2e  | specific.accept.headers...##.[1. | 
| 1ad60 |  35 2e 34 5d 20 2d 20 32 30 32 34 2d 30 34 2d 30    32 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41 64  | 5.4].-.2024-04-02.###.Added.-.Ad | 
| 1ad80 |  64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 70 61    73 74 69 6e 67 20 77 65 62 20 75 72 6c 73 20 61  | d.support.for.pasting.web.urls.a | 
| 1ada0 |  73 20 69 64 65 6e 74 69 66 69 65 72 73 20 66 72    6f 6d 20 74 68 65 20 42 26 4e 20 77 65 62 73 69  | s.identifiers.from.the.B&N.websi | 
| 1adc0 |  74 65 2e 0a 2d 20 43 68 69 6e 65 73 65 20 28 43    68 69 6e 61 29 20 74 72 61 6e 73 6c 61 74 69 6f  | te..-.Chinese.(China).translatio | 
| 1ade0 |  6e 2e 0a 0a 23 23 20 5b 31 2e 35 2e 33 5d 20 2d    20 32 30 32 34 2d 30 33 2d 31 37 0a 23 23 23 20  | n...##.[1.5.3].-.2024-03-17.###. | 
| 1ae00 |  41 64 64 65 64 0a 2d 20 46 69 6e 6e 69 73 68 20    61 6e 64 20 54 61 6d 69 6c 20 74 72 61 6e 73 6c  | Added.-.Finnish.and.Tamil.transl | 
| 1ae20 |  61 74 69 6f 6e 73 2e 0a 23 23 23 20 43 68 61 6e    67 65 64 0a 2d 20 53 70 61 6e 69 73 68 20 61 6e  | ations..###.Changed.-.Spanish.an | 
| 1ae40 |  64 20 50 6f 72 74 75 67 75 65 73 65 20 74 72 61    6e 73 6c 61 74 69 6f 6e 73 2e 0a 0a 23 23 20 5b  | d.Portuguese.translations...##.[ | 
| 1ae60 |  31 2e 35 2e 32 5d 20 2d 20 32 30 32 33 2d 30 34    2d 33 30 0a 23 23 23 20 46 69 78 65 64 0a 2d 20  | 1.5.2].-.2023-04-30.###.Fixed.-. | 
| 1ae80 |  52 65 6d 6f 76 65 20 74 72 61 69 6c 69 6e 67 20    63 6f 6d 6d 61 20 66 72 6f 6d 20 73 65 72 69 65  | Remove.trailing.comma.from.serie | 
| 1aea0 |  73 20 6e 61 6d 65 73 2e 0a 0a 23 23 20 5b 31 2e    35 2e 31 5d 20 2d 20 32 30 32 33 2d 30 34 2d 31  | s.names...##.[1.5.1].-.2023-04-1 | 
| 1aec0 |  34 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 54 75    72 6b 69 73 68 20 74 72 61 6e 73 6c 61 74 69 6f  | 4.###.Added.-.Turkish.translatio | 
| 1aee0 |  6e 20 28 42 6f 72 61 20 41 74 c4 b1 63 c4 b1 29    20 0a 23 23 23 20 46 69 78 65 64 0a 2d 20 46 69  | n.(Bora.At..c..)..###.Fixed.-.Fi | 
| 1af00 |  78 20 66 6f 72 20 73 6f 6d 65 20 63 6f 64 65 20    66 72 6f 6d 20 6c 6f 6e 67 20 61 67 6f 20 74 68  | x.for.some.code.from.long.ago.th | 
| 1af20 |  61 74 20 77 6f 75 6c 64 20 72 65 6d 6f 76 65 20    61 6e 79 20 63 68 61 72 61 63 74 65 72 73 20 6f  | at.would.remove.any.characters.o | 
| 1af40 |  66 20 27 73 65 72 69 65 73 27 20 66 72 6f 6d 20    73 65 72 69 65 73 20 6e 61 6d 65 73 2e 0a 0a 23  | f.'series'.from.series.names...# | 
| 1af60 |  23 20 5b 31 2e 35 2e 30 5d 20 2d 20 32 30 32 33    2d 30 34 2d 30 32 0a 23 23 23 20 43 68 61 6e 67  | #.[1.5.0].-.2023-04-02.###.Chang | 
| 1af80 |  65 64 0a 2d 20 42 26 4e 20 69 64 65 6e 74 69 66    69 65 72 20 6e 6f 77 20 6a 75 73 74 20 75 73 69  | ed.-.B&N.identifier.now.just.usi | 
| 1afa0 |  6e 67 20 74 68 65 20 6e 75 6d 65 72 69 63 20 73    74 6f 72 65 20 76 61 6c 75 65 20 61 6c 6f 6e 65  | ng.the.numeric.store.value.alone | 
| 1afc0 |  2c 20 77 69 74 68 6f 75 74 20 74 68 65 20 73 75    62 2d 70 61 67 65 20 70 72 65 66 69 78 2e 0a 23  | ,.without.the.sub-page.prefix..# | 
| 1afe0 |  23 23 20 46 69 78 65 64 0a 2d 20 43 6f 6e 66 69    67 75 72 61 74 69 6f 6e 20 73 63 72 65 65 6e 20  | ##.Fixed.-.Configuration.screen. | 
| 1b000 |  62 72 6f 6b 65 6e 20 66 72 6f 6d 20 72 65 6d 6f    76 61 6c 20 6f 66 20 54 4f 43 20 66 65 61 74 75  | broken.from.removal.of.TOC.featu | 
| 1b020 |  72 65 2e 20 28 61 72 61 67 6f 6e 69 74 29 0a 0a    23 23 20 5b 31 2e 34 2e 30 5d 20 2d 20 32 30 32  | re..(aragonit)..##.[1.4.0].-.202 | 
| 1b040 |  32 2d 31 30 2d 31 36 0a 23 23 23 20 41 64 64 65    64 0a 2d 20 41 6c 6c 20 6b 69 77 69 64 75 64 65  | 2-10-16.###.Added.-.All.kiwidude | 
| 1b060 |  20 70 6c 75 67 69 6e 73 20 75 70 64 61 74 65 64    2f 6d 69 67 72 61 74 65 64 20 74 6f 3a 20 68 74  | .plugins.updated/migrated.to:.ht | 
| 1b080 |  74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d    2f 6b 69 77 69 64 75 64 65 36 38 2f 63 61 6c 69  | tps://github.com/kiwidude68/cali | 
| 1b0a0 |  62 72 65 5f 70 6c 75 67 69 6e 73 0a 2d 20 50 6f    72 74 75 67 75 65 73 65 20 74 72 61 6e 73 6c 61  | bre_plugins.-.Portuguese.transla | 
| 1b0c0 |  74 69 6f 6e 20 28 43 6f 6d 66 79 2e 6e 29 0a 2d    20 50 6f 6c 69 73 68 20 74 72 61 6e 73 6c 61 74  | tion.(Comfy.n).-.Polish.translat | 
| 1b0e0 |  69 6f 6e 20 28 6d 6f 6a 65 20 6b 6f 6e 74 6f 29    0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 2a  | ion.(moje.konto).###.Changed.-.* | 
| 1b100 |  2a 42 72 65 61 6b 69 6e 67 3a 2a 2a 20 44 72 6f    70 20 50 79 51 74 34 20 73 75 70 70 6f 72 74 2c  | *Breaking:**.Drop.PyQt4.support, | 
| 1b120 |  20 72 65 71 75 69 72 65 20 63 61 6c 69 62 72 65    20 32 2e 78 20 6f 72 20 6c 61 74 65 72 2e 0a 0a  | .require.calibre.2.x.or.later... | 
| 1b140 |  23 23 20 5b 31 2e 33 2e 30 5d 20 2d 20 32 30 32    32 2d 30 39 2d 30 39 0a 23 23 23 20 41 64 64 65  | ##.[1.3.0].-.2022-09-09.###.Adde | 
| 1b160 |  64 0a 2d 20 41 64 64 20 74 72 61 6e 73 6c 61 74    69 6f 6e 20 73 75 70 70 6f 72 74 20 66 6f 72 20  | d.-.Add.translation.support.for. | 
| 1b180 |  63 6f 6e 66 69 67 20 73 63 72 65 65 6e 2e 0a 2d    20 53 70 61 6e 69 73 68 2c 20 46 72 65 6e 63 68  | config.screen..-.Spanish,.French | 
| 1b1a0 |  2c 20 4a 61 70 61 6e 65 73 65 2c 20 44 75 74 63    68 2c 20 55 6b 72 61 6e 69 61 6e 20 74 72 61 6e  | ,.Japanese,.Dutch,.Ukranian.tran | 
| 1b1c0 |  73 6c 61 74 69 6f 6e 73 20 2d 20 74 68 61 6e 6b    73 20 74 6f 20 65 76 65 72 79 6f 6e 65 21 21 21  | slations.-.thanks.to.everyone!!! | 
| 1b1e0 |  0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 52    65 6d 6f 76 65 20 54 4f 43 20 61 70 70 65 6e 64  | .###.Changed.-.Remove.TOC.append | 
| 1b200 |  20 6f 70 74 69 6f 6e 20 66 72 6f 6d 20 63 6f 6e    66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 6e 6f  | .option.from.configuration.as.no | 
| 1b220 |  74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 70    6c 75 67 69 6e 20 61 6e 79 20 6d 6f 72 65 2e 0a  | t.supported.by.plugin.any.more.. | 
| 1b240 |  23 23 23 20 46 69 78 65 64 0a 2d 20 55 70 64 61    74 65 64 20 66 6f 72 20 6c 61 74 65 73 74 20 77  | ###.Fixed.-.Updated.for.latest.w | 
| 1b260 |  65 62 73 69 74 65 20 70 61 67 65 73 2e 0a 2d 20    53 75 70 70 6f 72 74 20 66 6f 72 20 63 61 6c 69  | ebsite.pages..-.Support.for.cali | 
| 1b280 |  62 72 65 20 36 2f 51 74 36 2e 0a 0a 23 23 20 5b    31 2e 32 2e 31 36 5d 20 2d 20 32 30 32 30 2d 30  | bre.6/Qt6...##.[1.2.16].-.2020-0 | 
| 1b2a0 |  34 2d 31 36 0a 23 23 23 20 43 68 61 6e 67 65 64    0a 2d 20 50 6f 72 74 65 64 20 74 6f 20 70 79 74  | 4-16.###.Changed.-.Ported.to.pyt | 
| 1b2c0 |  68 6f 6e 20 33 20 2d 20 61 75 74 68 6f 72 20 28    67 62 6d 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 35  | hon.3.-.author.(gbm)..##.[1.2.15 | 
| 1b2e0 |  5d 20 2d 20 32 30 31 38 2d 30 34 2d 32 32 0a 23    23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72  | ].-.2018-04-22.###.Changed.-.For | 
| 1b300 |  20 63 68 61 6e 67 65 73 20 74 6f 20 42 26 4e 20    77 65 62 73 69 74 65 20 2d 20 61 75 74 68 6f 72  | .changes.to.B&N.website.-.author | 
| 1b320 |  20 28 71 73 78 77 64 63 29 0a 0a 23 23 20 5b 31    2e 32 2e 31 34 5d 20 2d 20 32 30 31 36 2d 30 38  | .(qsxwdc)..##.[1.2.14].-.2016-08 | 
| 1b340 |  2d 30 31 0a 23 23 23 20 43 68 61 6e 67 65 64 0a    2d 20 46 6f 72 20 63 68 61 6e 67 65 73 20 74 6f  | -01.###.Changed.-.For.changes.to | 
| 1b360 |  20 42 26 4e 20 77 65 62 73 69 74 65 20 2d 20 61    75 74 68 6f 72 20 6e 61 6d 65 73 20 28 6a 68 6f  | .B&N.website.-.author.names.(jho | 
| 1b380 |  77 65 6c 6c 29 0a 0a 23 23 20 5b 31 2e 32 2e 31    33 5d 20 2d 20 32 30 31 35 2d 30 37 2d 33 30 0a  | well)..##.[1.2.13].-.2015-07-30. | 
| 1b3a0 |  23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 46 6f    72 20 63 68 61 6e 67 65 73 20 74 6f 20 42 26 4e  | ###.Changed.-.For.changes.to.B&N | 
| 1b3c0 |  20 77 65 62 73 69 74 65 20 28 6a 68 6f 77 65 6c    6c 29 0a 0a 23 23 20 5b 31 2e 32 2e 31 32 5d 20  | .website.(jhowell)..##.[1.2.12]. | 
| 1b3e0 |  2d 20 32 30 31 34 2d 30 37 2d 31 37 0a 23 23 23    20 43 68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 51  | -.2014-07-17.###.Changed.-.For.Q | 
| 1b400 |  74 34 20 61 6e 64 20 51 74 35 0a 0a 23 23 20 5b    31 2e 32 2e 31 31 5d 20 2d 20 32 30 31 33 2d 30  | t4.and.Qt5..##.[1.2.11].-.2013-0 | 
| 1b420 |  39 2d 30 38 0a 23 23 23 20 43 68 61 6e 67 65 64    0a 2d 20 55 70 64 61 74 65 64 20 66 6f 72 20 63  | 9-08.###.Changed.-.Updated.for.c | 
| 1b440 |  68 61 6e 67 65 73 20 74 6f 20 42 26 4e 20 77 65    62 73 69 74 65 0a 0a 23 23 20 5b 31 2e 32 2e 31  | hanges.to.B&N.website..##.[1.2.1 | 
| 1b460 |  30 5d 20 2d 20 32 30 31 33 2d 30 34 2d 31 35 0a    23 23 23 20 46 69 78 65 64 0a 2d 20 54 68 65 20  | 0].-.2013-04-15.###.Fixed.-.The. | 
| 1b480 |  55 52 4c 20 68 79 70 65 72 6c 69 6e 6b 20 77 68    65 6e 20 63 6c 69 63 6b 69 6e 67 20 66 72 6f 6d  | URL.hyperlink.when.clicking.from | 
| 1b4a0 |  20 62 6f 6f 6b 20 64 65 74 61 69 6c 73 20 70 61    6e 65 6c 20 74 6f 20 72 65 66 6c 65 63 74 20 63  | .book.details.panel.to.reflect.c | 
| 1b4c0 |  68 61 6e 67 65 73 20 74 6f 20 77 65 62 73 69 74    65 0a 0a 23 23 20 5b 31 2e 32 2e 39 5d 20 2d 20  | hanges.to.website..##.[1.2.9].-. | 
| 1b4e0 |  32 30 31 32 2d 31 32 2d 32 37 0a 23 23 23 20 43    68 61 6e 67 65 64 0a 2d 20 46 6f 72 20 63 68 61  | 2012-12-27.###.Changed.-.For.cha | 
| 1b500 |  6e 67 65 73 20 74 6f 20 42 26 4e 20 77 65 62 73    69 74 65 0a 0a 23 23 20 5b 31 2e 32 2e 38 5d 20  | nges.to.B&N.website..##.[1.2.8]. | 
| 1b520 |  2d 20 32 30 31 32 2d 30 37 2d 30 31 0a 23 23 23    20 43 68 61 6e 67 65 64 0a 2d 20 55 73 65 20 61  | -.2012-07-01.###.Changed.-.Use.a | 
| 1b540 |  20 64 69 66 66 65 72 65 6e 74 20 73 65 61 72 63    68 20 55 52 4c 20 66 6f 72 20 74 69 74 6c 65 2f  | .different.search.URL.for.title/ | 
| 1b560 |  61 75 74 68 6f 72 20 73 65 61 72 63 68 65 73 20    77 68 69 63 68 20 73 65 65 6d 73 20 74 6f 20 67  | author.searches.which.seems.to.g | 
| 1b580 |  69 76 65 20 62 65 74 74 65 72 20 73 65 61 72 63    68 20 72 65 73 75 6c 74 73 0a 0a 23 23 20 5b 31  | ive.better.search.results..##.[1 | 
| 1b5a0 |  2e 32 2e 37 5d 20 2d 20 32 30 31 32 2d 30 36 2d    32 33 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d  | .2.7].-.2012-06-23.###.Changed.- | 
| 1b5c0 |  20 49 6d 70 72 6f 76 65 20 74 68 65 20 69 6d 61    67 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65  | .Improve.the.image.not.available | 
| 1b5e0 |  20 65 78 63 6c 75 73 69 6f 6e 20 63 68 65 63 6b    69 6e 67 0a 23 23 23 20 46 69 78 65 64 0a 2d 20  | .exclusion.checking.###.Fixed.-. | 
| 1b600 |  4c 6f 67 69 63 20 66 6f 72 20 65 78 74 72 61 63    74 69 6e 67 20 73 65 72 69 65 73 20 66 72 6f 6d  | Logic.for.extracting.series.from | 
| 1b620 |  20 74 69 74 6c 65 20 64 75 65 20 74 6f 20 42 26    4e 20 77 65 62 73 69 74 65 20 63 68 61 6e 67 65  | .title.due.to.B&N.website.change | 
| 1b640 |  73 0a 0a 23 23 20 5b 31 2e 32 2e 36 5d 20 2d 20    32 30 31 32 2d 30 36 2d 30 37 0a 23 23 23 20 43  | s..##.[1.2.6].-.2012-06-07.###.C | 
| 1b660 |  68 61 6e 67 65 64 0a 2d 20 46 75 72 74 68 65 72    20 74 77 65 61 6b 69 6e 67 20 74 6f 20 69 6d 70  | hanged.-.Further.tweaking.to.imp | 
| 1b680 |  72 6f 76 65 20 6d 61 74 63 68 69 6e 67 20 6f 66    20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20  | rove.matching.of.search.results. | 
| 1b6a0 |  74 6f 20 6d 61 74 63 68 20 6c 61 74 65 73 74 20    77 65 62 73 69 74 65 20 6c 61 79 6f 75 74 0a 0a  | to.match.latest.website.layout.. | 
| 1b6c0 |  23 23 20 5b 31 2e 32 2e 35 5d 20 2d 20 32 30 31    32 2d 30 36 2d 30 31 0a 23 23 23 20 43 68 61 6e  | ##.[1.2.5].-.2012-06-01.###.Chan | 
| 1b6e0 |  67 65 64 0a 2d 20 49 6d 70 72 6f 76 65 20 74 68    65 20 74 69 74 6c 65 2f 61 75 74 68 6f 72 20 6d  | ged.-.Improve.the.title/author.m | 
| 1b700 |  61 74 63 68 69 6e 67 20 6c 6f 67 69 63 20 66 6f    72 20 6e 65 77 20 77 65 62 73 69 74 65 20 6c 61  | atching.logic.for.new.website.la | 
| 1b720 |  79 6f 75 74 0a 2d 20 45 6e 73 75 72 65 20 22 5b    4e 4f 4f 4b 20 42 6f 6f 6b 5d 22 20 69 73 20 61  | yout.-.Ensure."[NOOK.Book]".is.a | 
| 1b740 |  6c 77 61 79 73 20 73 74 72 69 70 70 65 64 20 66    72 6f 6d 20 74 68 65 20 74 69 74 6c 65 0a 0a 23  | lways.stripped.from.the.title..# | 
| 1b760 |  23 20 5b 31 2e 32 2e 34 5d 20 2d 20 32 30 31 32    2d 30 34 2d 32 39 0a 23 23 23 20 43 68 61 6e 67  | #.[1.2.4].-.2012-04-29.###.Chang | 
| 1b780 |  65 64 0a 2d 20 45 6e 73 75 72 65 20 74 68 65 20    22 49 6d 61 67 65 20 6e 6f 74 20 61 76 61 69 6c  | ed.-.Ensure.the."Image.not.avail | 
| 1b7a0 |  61 62 6c 65 22 20 69 6d 61 67 65 73 20 61 72 65    20 65 78 63 6c 75 64 65 64 0a 0a 23 23 20 5b 31  | able".images.are.excluded..##.[1 | 
| 1b7c0 |  2e 32 2e 33 5d 20 2d 20 32 30 31 32 2d 30 34 2d    31 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d  | .2.3].-.2012-04-16.###.Changed.- | 
| 1b7e0 |  20 4d 6f 72 65 20 42 26 4e 20 77 65 62 73 69 74    65 20 63 68 61 6e 67 65 73 20 2d 20 69 66 20 66  | .More.B&N.website.changes.-.if.f | 
| 1b800 |  61 6c 6c 62 61 63 6b 20 74 6f 20 74 69 74 6c 65    2f 61 75 74 68 6f 72 20 73 65 61 72 63 68 2c 20  | allback.to.title/author.search,. | 
| 1b820 |  6a 75 73 74 20 75 73 65 20 61 20 6b 65 79 77 6f    72 64 20 73 65 61 72 63 68 0a 2d 20 57 68 65 6e  | just.use.a.keyword.search.-.When | 
| 1b840 |  20 6d 61 74 63 68 69 6e 67 20 72 65 73 75 6c 74    73 20 66 6f 72 20 74 69 74 6c 65 2f 61 75 74 68  | .matching.results.for.title/auth | 
| 1b860 |  6f 72 2c 20 68 61 6e 64 6c 65 20 6e 65 77 20 77    65 62 73 69 74 65 20 70 61 67 65 20 6c 61 79 6f  | or,.handle.new.website.page.layo | 
| 1b880 |  75 74 0a 0a 23 23 20 5b 31 2e 32 2e 32 5d 20 2d    20 32 30 31 32 2d 30 33 2d 30 36 0a 23 23 23 20  | ut..##.[1.2.2].-.2012-03-06.###. | 
| 1b8a0 |  43 68 61 6e 67 65 64 0a 2d 20 46 69 78 20 66 6f    72 20 63 68 61 6e 67 65 20 74 6f 20 42 26 4e 20  | Changed.-.Fix.for.change.to.B&N. | 
| 1b8c0 |  77 65 62 73 69 74 65 20 61 66 66 65 63 74 69 6e    67 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73 20 66  | website.affecting.the.comments.f | 
| 1b8e0 |  69 65 6c 64 2e 0a 0a 23 23 20 5b 31 2e 32 2e 31    5d 20 2d 20 32 30 31 31 2d 31 31 2d 32 35 0a 23  | ield...##.[1.2.1].-.2011-11-25.# | 
| 1b900 |  23 23 20 43 68 61 6e 67 65 64 0a 2d 20 41 64 64    20 62 61 63 6b 20 73 75 70 70 6f 72 74 20 66 6f  | ##.Changed.-.Add.back.support.fo | 
| 1b920 |  72 20 74 68 65 20 6f 6c 64 20 73 74 79 6c 65 20    77 65 62 73 69 74 65 20 70 61 67 65 73 20 61 73  | r.the.old.style.website.pages.as | 
| 1b940 |  20 42 26 4e 20 68 61 76 65 6e 27 74 20 63 6f 6d    70 6c 65 74 65 6c 79 20 6d 69 67 72 61 74 65 64  | .B&N.haven't.completely.migrated | 
| 1b960 |  20 79 65 74 2e 0a 0a 23 23 20 5b 31 2e 32 2e 30    5d 20 2d 20 32 30 31 31 2d 31 31 2d 32 32 0a 23  | .yet...##.[1.2.0].-.2011-11-22.# | 
| 1b980 |  23 23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 77    72 69 74 74 65 6e 20 74 6f 20 73 75 70 70 6f 72  | ##.Changed.-.Rewritten.to.suppor | 
| 1b9a0 |  74 20 6e 65 77 20 42 26 4e 20 77 65 62 73 69 74    65 20 66 6f 72 20 6e 6f 6e 20 74 65 78 74 62 6f  | t.new.B&N.website.for.non.textbo | 
| 1b9c0 |  6f 6b 73 0a 0a 23 23 20 5b 31 2e 31 2e 33 5d 20    2d 20 32 30 31 31 2d 30 38 2d 32 35 0a 23 23 23  | oks..##.[1.1.3].-.2011-08-25.### | 
| 1b9e0 |  20 43 68 61 6e 67 65 64 0a 2d 20 43 68 61 6e 67    65 20 6c 6f 67 69 63 20 66 6f 72 20 64 65 74 65  | .Changed.-.Change.logic.for.dete | 
| 1ba00 |  72 6d 69 6e 69 6e 67 20 69 6d 61 67 65 20 64 69    72 65 63 74 6f 72 79 20 74 6f 20 68 61 6e 64 6c  | rmining.image.directory.to.handl | 
| 1ba20 |  65 20 73 6d 61 6c 6c 65 72 20 6e 75 6d 62 65 72    65 64 20 69 6d 61 67 65 73 0a 0a 23 23 20 5b 31  | e.smaller.numbered.images..##.[1 | 
| 1ba40 |  2e 31 2e 32 5d 20 2d 20 32 30 31 31 2d 30 38 2d    30 36 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d  | .1.2].-.2011-08-06.###.Changed.- | 
| 1ba60 |  20 47 72 61 62 20 74 68 65 20 66 72 6f 6e 74 20    63 6f 76 65 72 20 77 68 65 6e 20 74 68 65 72 65  | .Grab.the.front.cover.when.there | 
| 1ba80 |  20 61 72 65 20 6d 75 6c 74 69 70 6c 65 20 63 6f    76 65 72 73 20 61 76 61 69 6c 61 62 6c 65 0a 2d  | .are.multiple.covers.available.- | 
| 1baa0 |  20 53 75 70 70 6f 72 74 20 63 68 61 6e 67 65 20    74 6f 20 77 65 62 73 69 74 65 20 77 68 65 72 65  | .Support.change.to.website.where | 
| 1bac0 |  20 77 67 74 2d 50 72 6f 64 75 63 74 54 69 74 6c    65 20 63 6c 61 73 73 20 74 69 74 6c 65 73 20 6e  | .wgt-ProductTitle.class.titles.n | 
| 1bae0 |  6f 20 6c 6f 6e 67 65 72 20 69 6e 73 69 64 65 20    61 20 73 70 61 6e 0a 0a 23 23 20 5b 31 2e 31 2e  | o.longer.inside.a.span..##.[1.1. | 
| 1bb00 |  31 5d 20 2d 20 32 30 31 31 2d 30 36 2d 31 36 0a    23 23 23 20 43 68 61 6e 67 65 64 0a 2d 20 53 75  | 1].-.2011-06-16.###.Changed.-.Su | 
| 1bb20 |  70 70 6f 72 74 20 61 64 64 69 74 69 6f 6e 61 6c    20 6e 6f 72 65 73 75 6c 74 73 20 75 72 6c 20 6c  | pport.additional.noresults.url.l | 
| 1bb40 |  6f 63 61 74 69 6f 6e 20 61 66 74 65 72 20 72 65    77 72 69 74 65 20 77 68 65 6e 20 6c 6f 6f 6b 75  | ocation.after.rewrite.when.looku | 
| 1bb60 |  70 20 62 79 20 49 53 42 4e 0a 2d 20 41 6c 74 65    72 20 74 68 65 20 64 65 74 61 69 6c 73 20 55 52  | p.by.ISBN.-.Alter.the.details.UR | 
| 1bb80 |  4c 20 6c 6f 6f 6b 65 64 20 75 70 20 74 6f 20 70    72 65 76 65 6e 74 20 61 6e 20 69 6e 66 69 6e 69  | L.looked.up.to.prevent.an.infini | 
| 1bba0 |  74 65 20 6c 6f 6f 70 20 6f 6e 20 73 6f 6d 65 20    62 6f 6f 6b 73 20 64 75 65 20 74 6f 20 42 26 4e  | te.loop.on.some.books.due.to.B&N | 
| 1bbc0 |  20 77 65 62 73 69 74 65 20 65 72 72 6f 72 0a 2d    20 49 66 20 74 68 65 20 6d 61 69 6e 20 66 6f 72  | .website.error.-.If.the.main.for | 
| 1bbe0 |  6d 61 74 20 72 65 74 75 72 6e 65 64 20 69 73 20    6e 6f 74 20 61 63 63 65 70 74 61 62 6c 65 20 28  | mat.returned.is.not.acceptable.( | 
| 1bc00 |  65 2e 67 2e 20 41 75 64 69 6f 62 6f 6f 6b 29 20    6c 6f 6f 6b 20 66 6f 72 20 61 6e 20 22 41 6c 73  | e.g..Audiobook).look.for.an."Als | 
| 1bc20 |  6f 20 41 76 61 69 6c 61 62 6c 65 20 41 73 3a 22    20 73 65 63 74 69 6f 6e 0a 2d 20 52 65 6f 72 64  | o.Available.As:".section.-.Reord | 
| 1bc40 |  65 72 20 70 72 69 6f 72 69 74 79 20 6f 66 20 6d    61 74 63 68 69 6e 67 20 72 65 73 75 6c 74 73 20  | er.priority.of.matching.results. | 
| 1bc60 |  74 6f 20 74 68 6f 73 65 20 77 69 74 68 20 73 68    6f 72 74 65 73 74 20 74 69 74 6c 65 73 20 28 74  | to.those.with.shortest.titles.(t | 
| 1bc80 |  6f 20 64 65 2d 70 72 69 6f 72 69 74 69 73 65 20    62 6f 78 20 73 65 74 73 29 0a 2d 20 53 74 72 69  | o.de-prioritise.box.sets).-.Stri | 
| 1bca0 |  70 20 27 3f 27 20 66 72 6f 6d 20 74 69 74 6c 65    20 62 61 73 65 64 20 6c 6f 6f 6b 75 70 73 0a 2d  | p.'?'.from.title.based.lookups.- | 
| 1bcc0 |  20 46 6f 72 20 6e 6f 6e 20 61 73 63 69 69 20 6e    61 6d 65 73 2c 20 65 6e 73 75 72 65 20 74 68 65  | .For.non.ascii.names,.ensure.the | 
| 1bce0 |  20 63 6f 6d 70 61 72 69 73 6f 6e 20 69 73 20 64    6f 6e 65 20 77 69 74 68 20 6e 6f 6e 2d 61 73 69  | .comparison.is.done.with.non-asi | 
| 1bd00 |  69 20 65 71 75 69 76 61 6c 65 6e 74 73 0a 0a 23    23 20 5b 31 2e 31 2e 30 5d 20 2d 20 32 30 31 31  | i.equivalents..##.[1.1.0].-.2011 | 
| 1bd20 |  2d 30 36 2d 30 35 0a 23 23 23 20 43 68 61 6e 67    65 64 0a 2d 20 52 65 77 72 69 74 74 65 6e 20 74  | -06-05.###.Changed.-.Rewritten.t | 
| 1bd40 |  6f 20 73 75 70 70 6f 72 74 20 6e 65 77 20 42 26    4e 20 77 65 62 73 69 74 65 0a 0a 23 23 20 5b 31  | o.support.new.B&N.website..##.[1 | 
| 1bd60 |  2e 30 2e 36 5d 20 2d 20 32 30 31 31 2d 30 35 2d    32 39 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d  | .0.6].-.2011-05-29.###.Changed.- | 
| 1bd80 |  20 57 68 65 6e 20 61 6e 20 49 53 42 4e 20 69 73    20 6e 6f 74 20 64 69 72 65 63 74 6c 79 20 66 6f  | .When.an.ISBN.is.not.directly.fo | 
| 1bda0 |  75 6e 64 2c 20 70 72 6f 63 65 73 73 20 74 68 65    20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20  | und,.process.the.search.results. | 
| 1bdc0 |  70 61 67 65 0a 0a 23 23 20 5b 31 2e 30 2e 35 5d    20 2d 20 32 30 31 31 2d 30 35 2d 32 31 0a 23 23  | page..##.[1.0.5].-.2011-05-21.## | 
| 1bde0 |  23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 73 70    6f 6e 64 20 74 6f 20 63 68 61 6e 67 65 20 74 6f  | #.Changed.-.Respond.to.change.to | 
| 1be00 |  20 77 65 62 73 69 74 65 20 6c 61 79 6f 75 74 20    77 68 69 63 68 20 70 72 65 76 65 6e 74 65 64 20  | .website.layout.which.prevented. | 
| 1be20 |  6d 65 74 61 64 61 74 61 20 64 6f 77 6e 6c 6f 61    64 20 77 6f 72 6b 69 6e 67 0a 0a 23 23 20 5b 31  | metadata.download.working..##.[1 | 
| 1be40 |  2e 30 2e 34 5d 20 2d 20 32 30 31 31 2d 30 35 2d    32 30 0a 23 23 23 20 41 64 64 65 64 0a 2d 20 41  | .0.4].-.2011-05-20.###.Added.-.A | 
| 1be60 |  64 64 20 6f 70 74 69 6f 6e 20 74 6f 20 61 70 70    65 6e 64 20 54 4f 43 20 66 72 6f 6d 20 77 65 62  | dd.option.to.append.TOC.from.web | 
| 1be80 |  73 69 74 65 20 46 65 61 74 75 72 65 73 20 74 61    62 20 74 6f 20 74 68 65 20 63 6f 6d 6d 65 6e 74  | site.Features.tab.to.the.comment | 
| 1bea0 |  73 20 66 69 65 6c 64 20 28 61 76 61 69 6c 61 62    6c 65 20 6f 6e 20 42 26 4e 20 54 65 78 74 62 6f  | s.field.(available.on.B&N.Textbo | 
| 1bec0 |  6f 6b 73 29 0a 0a 23 23 20 5b 31 2e 30 2e 33 5d    20 2d 20 32 30 31 31 2d 30 35 2d 31 33 0a 23 23  | oks)..##.[1.0.3].-.2011-05-13.## | 
| 1bee0 |  23 20 43 68 61 6e 67 65 64 0a 2d 20 52 65 6d 6f    76 65 20 73 6f 6d 65 20 64 65 62 75 67 67 69 6e  | #.Changed.-.Remove.some.debuggin | 
| 1bf00 |  67 20 73 74 75 66 66 20 66 72 6f 6d 20 74 68 65    20 6c 6f 67 0a 2d 20 53 74 72 69 70 20 68 79 70  | g.stuff.from.the.log.-.Strip.hyp | 
| 1bf20 |  65 72 6c 69 6e 6b 73 20 74 65 78 74 20 66 72 6f    6d 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73 20 73  | erlinks.text.from.the.comments.s | 
| 1bf40 |  69 6e 63 65 20 74 68 65 73 65 20 64 6f 6e 27 74    20 67 65 74 20 72 65 74 61 69 6e 65 64 20 61 6e  | ince.these.don't.get.retained.an | 
| 1bf60 |  64 20 6a 75 73 74 20 63 6f 6e 66 75 73 65 20 74    68 65 20 6f 75 74 70 75 74 0a 0a 23 23 20 5b 31  | d.just.confuse.the.output..##.[1 | 
| 1bf80 |  2e 30 2e 32 5d 20 2d 20 32 30 31 31 2d 30 35 2d    30 39 0a 23 23 23 20 43 68 61 6e 67 65 64 0a 2d  | .0.2].-.2011-05-09.###.Changed.- | 
| 1bfa0 |  20 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20    49 6d 61 67 65 20 6e 6f 74 20 61 76 61 69 6c 61  | .Make.sure.that.Image.not.availa | 
| 1bfc0 |  62 6c 65 20 67 69 66 73 20 61 72 65 20 6e 6f 74    20 72 65 74 75 72 6e 65 64 20 61 73 20 66 61 6c  | ble.gifs.are.not.returned.as.fal | 
| 1bfe0 |  6c 62 61 63 6b 20 63 6f 76 65 72 73 0a 0a 23 23    20 5b 31 2e 30 2e 31 5d 20 2d 20 32 30 31 31 2d  | lback.covers..##.[1.0.1].-.2011- | 
| 1c000 |  30 35 2d 30 39 0a 23 23 23 20 41 64 64 65 64 0a    2d 20 41 64 64 20 22 41 75 64 69 6f 22 20 74 6f  | 05-09.###.Added.-.Add."Audio".to | 
| 1c020 |  20 6c 69 73 74 20 6f 66 20 65 78 63 6c 75 64 65    64 20 66 6f 72 6d 61 74 20 74 79 70 65 73 0a 2d  | .list.of.excluded.format.types.- | 
| 1c040 |  20 41 64 64 20 61 20 63 6f 6e 66 69 67 20 6f 70    74 69 6f 6e 20 28 6c 69 6b 65 20 47 6f 6f 64 72  | .Add.a.config.option.(like.Goodr | 
| 1c060 |  65 61 64 73 29 20 74 6f 20 72 65 74 75 72 6e 20    61 6c 6c 20 63 6f 6e 74 72 69 62 75 74 69 6e 67  | eads).to.return.all.contributing | 
| 1c080 |  20 61 75 74 68 6f 72 73 20 28 6f 66 66 20 62 79    20 64 65 66 61 75 6c 74 29 0a 23 23 23 20 43 68  | .authors.(off.by.default).###.Ch | 
| 1c0a0 |  61 6e 67 65 64 0a 2d 20 4d 6f 64 69 66 79 20 70    72 69 6f 72 69 74 69 73 61 74 69 6f 6e 20 6f 66  | anged.-.Modify.prioritisation.of | 
| 1c0c0 |  20 72 65 73 75 6c 74 73 20 74 6f 20 69 6e 63 72    65 61 73 65 20 63 68 61 6e 63 65 20 6f 66 20 67  | .results.to.increase.chance.of.g | 
| 1c0e0 |  65 74 74 69 6e 67 20 61 20 6c 61 72 67 65 20 63    6f 76 65 72 20 77 68 65 6e 20 6d 75 6c 74 69 70  | etting.a.large.cover.when.multip | 
| 1c100 |  6c 65 20 68 61 76 65 20 63 6f 76 65 72 73 0a 23    23 23 20 46 69 78 65 64 0a 2d 20 4d 75 6c 74 69  | le.have.covers.###.Fixed.-.Multi | 
| 1c120 |  70 6c 65 20 61 75 74 68 6f 72 73 20 62 65 69 6e    67 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20  | ple.authors.being.returned.when. | 
| 1c140 |  74 68 65 79 20 68 61 76 65 20 63 6f 6e 74 72 69    62 75 74 69 6f 6e 20 74 79 70 65 20 69 6e 20 62  | they.have.contribution.type.in.b | 
| 1c160 |  72 61 63 6b 65 74 73 20 61 66 74 65 72 20 74 68    65 6d 0a 0a 23 23 20 5b 31 2e 30 2e 30 5d 20 2d  | rackets.after.them..##.[1.0.0].- | 
| 1c180 |  20 32 30 31 31 2d 30 35 2d 30 38 0a 5f 49 6e 69    74 69 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20  | .2011-05-08._Initial.release.of. | 
| 1c1a0 |  70 6c 75 67 69 6e 5f 0a 50 4b 03 04 14 00 00 00    00 00 ae 08 49 55 f6 da 03 20 e6 0c 00 00 e6 0c  | plugin_.PK..........IU.......... | 
| 1c1c0 |  00 00 09 00 00 00 52 45 41 44 4d 45 2e 6d 64 23    20 42 61 72 6e 65 73 20 26 20 4e 6f 62 6c 65 20  | ......README.md#.Barnes.&.Noble. | 
| 1c1e0 |  50 6c 75 67 69 6e 0d 0a 5b 21 5b 4d 6f 62 69 6c    65 52 65 61 64 5d 5b 6d 6f 62 69 6c 65 72 65 61  | Plugin..[![MobileRead][mobilerea | 
| 1c200 |  64 2d 69 6d 61 67 65 5d 5d 5b 6d 6f 62 69 6c 65    72 65 61 64 2d 75 72 6c 5d 0d 0a 5b 21 5b 48 69  | d-image]][mobileread-url]..[![Hi | 
| 1c220 |  73 74 6f 72 79 5d 5b 63 68 61 6e 67 65 6c 6f 67    2d 69 6d 61 67 65 5d 5d 5b 63 68 61 6e 67 65 6c  | story][changelog-image]][changel | 
| 1c240 |  6f 67 2d 75 72 6c 5d 20 0d 0a 5b 21 5b 4c 69 63    65 6e 73 65 5d 5b 6c 69 63 65 6e 73 65 2d 69 6d  | og-url]...[![License][license-im | 
| 1c260 |  61 67 65 5d 5d 5b 6c 69 63 65 6e 73 65 2d 75 72    6c 5d 0d 0a 5b 21 5b 63 61 6c 69 62 72 65 20 56  | age]][license-url]..[![calibre.V | 
| 1c280 |  65 72 73 69 6f 6e 5d 5b 63 61 6c 69 62 72 65 2d    69 6d 61 67 65 5d 5d 5b 63 61 6c 69 62 72 65 2d  | ersion][calibre-image]][calibre- | 
| 1c2a0 |  75 72 6c 5d 0d 0a 5b 21 5b 53 74 61 74 75 73 5d    5b 73 74 61 74 75 73 2d 69 6d 61 67 65 5d 5d 5b  | url]..[![Status][status-image]][ | 
| 1c2c0 |  73 74 61 74 75 73 2d 69 6d 61 67 65 5d 20 0d 0a    0d 0a 23 23 20 4f 76 65 72 76 69 65 77 0d 0a 0d  | status-image].....##.Overview... | 
| 1c2e0 |  0a 54 68 69 73 20 70 6c 75 67 69 6e 20 6f 66 66    65 72 73 20 61 20 64 6f 77 6e 6c 6f 61 64 20 73  | .This.plugin.offers.a.download.s | 
| 1c300 |  6f 75 72 63 65 20 66 6f 72 20 62 6f 6f 6b 20 6d    65 74 61 64 61 74 61 20 69 6e 63 6c 75 64 69 6e  | ource.for.book.metadata.includin | 
| 1c320 |  67 20 73 6f 6d 65 20 65 78 63 65 6c 6c 65 6e 74    20 71 75 61 6c 69 74 79 20 63 6f 76 65 72 73 20  | g.some.excellent.quality.covers. | 
| 1c340 |  62 79 20 72 65 74 72 69 65 76 69 6e 67 20 66 72    6f 6d 20 5b 62 61 72 6e 65 73 61 6e 64 6e 6f 62  | by.retrieving.from.[barnesandnob | 
| 1c360 |  6c 65 2e 63 6f 6d 5d 28 68 74 74 70 3a 2f 2f 77    77 77 2e 62 61 72 6e 65 73 61 6e 64 6e 6f 62 6c  | le.com](http://www.barnesandnobl | 
| 1c380 |  65 2e 63 6f 6d 2f 29 2e 0d 0a 0d 0a 49 74 20 69    73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 65 69  | e.com/).....It.is.designed.to.ei | 
| 1c3a0 |  74 68 65 72 20 73 75 70 70 6c 65 6d 65 6e 74 20    6f 72 20 72 65 70 6c 61 63 65 20 74 68 65 20 6d  | ther.supplement.or.replace.the.m | 
| 1c3c0 |  65 74 61 64 61 74 61 20 70 6c 75 67 69 6e 73 20    74 68 61 74 20 63 6f 6d 65 20 77 69 74 68 20 43  | etadata.plugins.that.come.with.C | 
| 1c3e0 |  61 6c 69 62 72 65 2e 20 59 6f 75 20 63 61 6e 6e    6f 74 20 67 65 74 20 61 6e 79 20 67 65 74 20 61  | alibre..You.cannot.get.any.get.a | 
| 1c400 |  6e 79 20 74 61 67 73 20 28 67 65 6e 72 65 73 29    20 66 72 6f 6d 20 74 68 69 73 20 70 6c 75 67 69  | ny.tags.(genres).from.this.plugi | 
| 1c420 |  6e 20 61 73 20 42 61 72 6e 65 73 20 26 20 4e 6f    62 6c 65 20 64 6f 20 6e 6f 74 20 68 61 76 65 20  | n.as.Barnes.&.Noble.do.not.have. | 
| 1c440 |  61 6e 79 20 73 75 63 68 20 69 6e 66 6f 72 6d 61    74 69 6f 6e 20 6f 6e 20 61 20 62 6f 6f 6b 20 64  | any.such.information.on.a.book.d | 
| 1c460 |  65 74 61 69 6c 20 70 61 67 65 2e 0d 0a 0d 0a 48    6f 77 65 76 65 72 20 69 74 20 64 6f 65 73 20 68  | etail.page.....However.it.does.h | 
| 1c480 |  61 76 65 20 68 69 67 68 65 72 20 71 75 61 6c 69    74 79 20 63 6f 76 65 72 73 20 61 76 61 69 6c 61  | ave.higher.quality.covers.availa | 
| 1c4a0 |  62 6c 65 20 69 6e 20 6c 61 72 67 65 72 20 73 69    7a 65 73 20 74 68 61 6e 20 6d 61 6e 79 20 6f 66  | ble.in.larger.sizes.than.many.of | 
| 1c4c0 |  20 74 68 65 20 6f 74 68 65 72 20 6d 65 74 61 64    61 74 61 20 70 6c 75 67 69 6e 73 20 6f 66 66 65  | .the.other.metadata.plugins.offe | 
| 1c4e0 |  72 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 73 65    72 69 65 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  | r,.as.well.as.series.information | 
| 1c500 |  2e 0d 0a 0d 0a 46 6f 72 20 6d 6f 72 65 20 69 6e    66 6f 72 6d 61 74 69 6f 6e 2c 20 73 65 65 20 74  | .....For.more.information,.see.t | 
| 1c520 |  68 65 20 5b 57 69 6b 69 5d 28 68 74 74 70 73 3a    2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 69 77  | he.[Wiki](https://github.com/kiw | 
| 1c540 |  69 64 75 64 65 36 38 2f 63 61 6c 69 62 72 65 5f    70 6c 75 67 69 6e 73 2f 77 69 6b 69 2f 42 61 72  | idude68/calibre_plugins/wiki/Bar | 
| 1c560 |  6e 65 73 2d 26 2d 4e 6f 62 6c 65 29 0d 0a 0d 0a    23 23 20 44 65 76 65 6c 6f 70 6d 65 6e 74 20 2f  | nes-&-Noble)....##.Development./ | 
| 1c580 |  20 43 6f 6e 74 72 69 62 75 74 69 6f 6e 73 0d 0a    0d 0a 41 6c 6c 20 6b 69 77 69 64 75 64 65 27 73  | .Contributions....All.kiwidude's | 
| 1c5a0 |  20 63 61 6c 69 62 72 65 20 70 6c 75 67 69 6e 73    20 61 72 65 20 6e 6f 77 20 64 65 76 65 6c 6f 70  | .calibre.plugins.are.now.develop | 
| 1c5c0 |  65 64 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 65    64 20 69 6e 20 47 69 74 48 75 62 20 61 74 3a 0d  | ed.and.maintained.in.GitHub.at:. | 
| 1c5e0 |  0a 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75    62 2e 63 6f 6d 2f 6b 69 77 69 64 75 64 65 36 38  | .-.https://github.com/kiwidude68 | 
| 1c600 |  2f 63 61 6c 69 62 72 65 5f 70 6c 75 67 69 6e 73    0d 0a 0d 0a 50 6c 65 61 73 65 20 73 65 65 20 74  | /calibre_plugins....Please.see.t | 
| 1c620 |  68 65 20 52 45 41 44 4d 45 2e 6d 64 20 61 6e 64    20 43 4f 4e 54 52 49 42 55 54 49 4e 47 2e 6d 64  | he.README.md.and.CONTRIBUTING.md | 
| 1c640 |  20 61 74 20 74 68 65 20 61 62 6f 76 65 20 73 69    74 65 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f  | .at.the.above.site.for.more.info | 
| 1c660 |  72 6d 61 74 69 6f 6e 2e 0d 0a 0d 0a 0d 0a 5b 6d    6f 62 69 6c 65 72 65 61 64 2d 69 6d 61 67 65 5d  | rmation.......[mobileread-image] | 
| 1c680 |  3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68    69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 4d  | :.https://img.shields.io/badge/M | 
| 1c6a0 |  6f 62 69 6c 65 52 65 61 64 2d 50 6c 75 67 69 6e    25 32 30 54 68 72 65 61 64 2d 62 6c 75 65 3f 6c  | obileRead-Plugin%20Thread-blue?l | 
| 1c6c0 |  6f 67 6f 3d 64 61 74 61 3a 69 6d 61 67 65 2f 78    2d 69 63 6f 6e 3b 62 61 73 65 36 34 2c 41 41 41  | ogo=data:image/x-icon;base64,AAA | 
| 1c6e0 |  42 41 41 45 41 45 42 41 41 41 41 45 41 49 41 42    6f 42 41 41 41 46 67 41 41 41 43 67 41 41 41 41  | BAAEAEBAAAAEAIABoBAAAFgAAACgAAAA | 
| 1c700 |  51 41 41 41 41 49 41 41 41 41 41 45 41 49 41 41    41 41 41 41 41 51 41 51 41 41 41 41 41 41 41 41  | QAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAA | 
| 1c720 |  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41    41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 
| 1c740 |  41 41 41 41 41 6e 73 33 32 2f 7a 71 54 35 76 38    53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 38  | AAAAAns32/zqT5v8SeeD/Enng/xJ54P8 | 
| 1c760 |  53 65 65 44 2f 4c 59 76 6c 2f 33 2b 37 38 76 38    41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  | SeeD/LYvl/3+78v8AAAAAAAAAAAAAAAA | 
| 1c780 |  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41    41 41 41 41 41 5a 61 7a 76 2f 78 4a 35 34 50 38  | AAAAAAAAAAAAAAAAAAAAAZazv/xJ54P8 | 
| 1c7a0 |  53 65 65 44 2f 45 6e 6e 67 2f 7a 71 54 35 76 39    4a 6d 2b 6e 2f 48 6f 4c 69 2f 78 4a 35 34 50 38  | SeeD/Enng/zqT5v9Jm+n/HoLi/xJ54P8 | 
| 1c7c0 |  53 65 65 44 2f 4f 70 50 6d 2f 77 41 41 41 41 41    41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  | SeeD/OpPm/wAAAAAAAAAAAAAAAAAAAAA | 
| 1c7e0 |  41 41 41 41 41 7a 75 62 37 2f 78 4a 35 34 50 38    53 65 65 44 2f 45 6e 6e 67 2f 34 2f 44 39 50 2f  | AAAAAzub7/xJ54P8SeeD/Enng/4/D9P/ | 
| 1c800 |  70 36 65 6e 2f 30 74 4c 53 2f 38 54 63 38 50 38    53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 2b  | p6en/0tLS/8Tc8P8SeeD/Enng/xJ54P+ | 
| 1c820 |  50 77 2f 54 2f 41 41 41 41 41 41 41 41 41 41 41    41 41 41 41 41 41 41 41 41 41 4c 33 65 2b 76 38  | Pw/T/AAAAAAAAAAAAAAAAAAAAAL3e+v8 | 
| 1c840 |  53 65 65 44 2f 45 6e 6e 67 2f 78 4a 35 34 50 2b    39 33 76 72 2f 57 6c 70 61 2f 7a 63 33 4e 2f 38  | SeeD/Enng/xJ54P+93vr/Wlpa/zc3N/8 | 
| 1c860 |  41 41 41 41 41 45 6e 6e 67 2f 78 4a 35 34 50 38    53 65 65 44 2f 66 37 76 79 2f 77 41 41 41 41 41  | AAAAAEnng/xJ54P8SeeD/f7vy/wAAAAA | 
| 1c880 |  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41    41 41 41 41 41 48 6f 4c 69 2f 78 4a 35 34 50 38  | AAAAAAAAAAAAAAAAAAAAAHoLi/xJ54P8 | 
| 1c8a0 |  53 65 65 44 2f 54 33 2b 72 2f 79 51 6b 4a 50 39    2b 6a 70 7a 2f 5a 61 7a 76 2f 78 4a 35 34 50 38  | SeeD/T3+r/yQkJP9+jpz/Zazv/xJ54P8 | 
| 1c8c0 |  53 65 65 44 2f 45 6e 6e 67 2f 37 33 65 2b 76 38    41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  | SeeD/Enng/73e+v8AAAAAAAAAAAAAAAA | 
| 1c8e0 |  41 41 41 41 41 7a 38 4b 74 2f 36 36 75 6f 66 2b    47 6a 34 4c 2f 68 6f 2b 43 2f 35 53 4b 62 2f 2b  | AAAAAz8Kt/66uof+Gj4L/ho+C/5SKb/+ | 
| 1c900 |  56 68 32 6a 2f 68 6f 2b 43 2f 34 61 50 67 76 2b    47 6a 34 4c 2f 68 6f 2b 43 2f 35 4f 56 67 76 2b  | Vh2j/ho+C/4aPgv+Gj4L/ho+C/5OVgv+ | 
| 1c920 |  36 71 59 50 2f 79 72 79 69 2f 77 41 41 41 41 41    41 41 41 41 41 70 35 42 57 2f 36 65 51 56 76 2b  | 6qYP/yryi/wAAAAAAAAAAp5BW/6eQVv+ | 
| 1c940 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b  | nkFb/p5BW/6eQVv+nkFb/p5BW/6eQVv+ | 
| 1c960 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 38  | nkFb/p5BW/6eQVv+nkFb/p5BW/6eQVv8 | 
| 1c980 |  41 41 41 41 41 36 65 50 62 34 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b  | AAAAA6ePb46eQVv+nkFb/p5BW/6eQVv+ | 
| 1c9a0 |  6e 6b 46 62 2f 78 4c 57 59 2f 38 2f 43 72 66 2f    50 77 71 33 2f 76 71 36 4e 2f 37 71 6f 67 76 2b  | nkFb/xLWY/8/Crf/Pwq3/vq6N/7qogv+ | 
| 1c9c0 |  36 71 49 4c 2f 75 71 69 43 2f 37 71 6f 67 76 2b    6e 6b 46 62 2f 35 75 44 57 2f 2b 62 67 31 76 2b  | 6qIL/uqiC/7qogv+nkFb/5uDW/+bg1v+ | 
| 1c9e0 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 2b 7a 6e 34 66 2f  | nkFb/p5BW/6eQVv+nkFb/p5BW/+zn4f/ | 
| 1ca00 |  2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 38 7a 4d 7a 50 39    32 64 6e 62 2f 56 46 52 55 2f 39 6e 5a 32 66 2f  | //////////8zMzP92dnb/VFRU/9nZ2f/ | 
| 1ca20 |  2f 2f 2f 2f 2f 74 61 4a 35 2f 38 2f 43 72 66 2f    6d 34 4e 62 2f 70 35 42 57 2f 36 65 51 56 76 2b  | /////taJ5/8/Crf/m4Nb/p5BW/6eQVv+ | 
| 1ca40 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2f    6d 34 4e 62 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  | nkFb/p5BW/6eQVv/m4Nb//////////// | 
| 1ca60 |  4d 7a 4d 7a 2f 6b 35 4f 54 2f 38 7a 4d 7a 50 2f    7a 38 2f 50 2f 2f 2f 2f 2f 2f 38 53 31 6d 50 2f  | MzMz/k5OT/8zMzP/z8/P//////8S1mP/ | 
| 1ca80 |  45 74 5a 6a 2f 35 75 44 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b  | EtZj/5uDW/6eQVv+nkFb/p5BW/6eQVv+ | 
| 1caa0 |  6e 6b 46 62 2f 6f 5a 36 5a 2f 35 4f 54 6b 2f 2f    6d 35 75 62 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  | nkFb/oZ6Z/5OTk//m5ub//////////// | 
| 1cac0 |  2f 2f 2f 2f 2f 38 2f 50 7a 2f 33 5a 32 64 76 39    78 63 48 44 2f 6a 34 68 37 2f 39 72 52 77 66 2b  | /////8/Pz/3Z2dv9xcHD/j4h7/9rRwf+ | 
| 1cae0 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 56 56 4e 50 2f 38 7a 4d 7a 50 2f  | nkFb/p5BW/6eQVv+nkFb/VVNP/8zMzP/ | 
| 1cb00 |  7a 38 2f 50 2f 64 6e 5a 32 2f 39 6e 5a 32 66 2f    2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 35 4f 54 6b 2f 2f  | z8/P/dnZ2/9nZ2f///////////5OTk// | 
| 1cb20 |  7a 38 2f 50 2f 2f 2f 2f 2f 2f 33 52 78 61 2f 2f    50 77 71 33 2f 70 35 42 57 2f 36 65 51 56 76 2b  | z8/P//////3Rxa//Pwq3/p5BW/6eQVv+ | 
| 1cb40 |  6e 6b 46 62 2f 70 35 42 57 2f 32 46 67 59 50 2f    2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 37 36 2b 76 76 2f  | nkFb/p5BW/2FgYP///////////76+vv/ | 
| 1cb60 |  4d 7a 4d 7a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2b    69 6f 71 4c 2f 6f 71 4b 69 2f 37 36 2b 76 76 39  | MzMz///////////+ioqL/oqKi/76+vv9 | 
| 1cb80 |  31 62 32 58 2f 7a 38 4b 74 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b  | 1b2X/z8Kt/6eQVv+nkFb/p5BW/6eQVv+ | 
| 1cba0 |  4a 66 57 58 2f 62 47 74 71 2f 34 57 46 68 66 2b    46 68 59 58 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  | JfWX/bGtq/4WFhf+FhYX//////////// | 
| 1cbc0 |  2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 37 36 2b 76 76 2b    2b 76 72 37 2f 74 61 4a 35 2f 38 2f 43 72 66 2b  | //////////76+vv++vr7/taJ5/8/Crf+ | 
| 1cbe0 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 70 35 42 57 2f 38 6d 37 6f 76 2f  | nkFb/p5BW/6eQVv+nkFb/p5BW/8m7ov/ | 
| 1cc00 |  2f 2f 2f 2f 2f 2b 50 62 31 2f 2b 62 67 31 76 2f    67 32 4d 7a 2f 7a 38 4b 74 2f 38 2f 43 72 66 2b  | /////+Pb1/+bg1v/g2Mz/z8Kt/8/Crf+ | 
| 1cc20 |  36 71 49 4c 2f 75 71 69 43 2f 36 65 51 56 76 2f    6d 34 4e 62 2f 75 71 6d 44 2f 37 71 70 67 2f 2b  | 6qIL/uqiC/6eQVv/m4Nb/uqmD/7qpg/+ | 
| 1cc40 |  6e 6b 46 62 2f 70 35 42 57 2f 36 65 51 56 76 2b    6e 6b 46 62 2f 72 5a 5a 68 2f 37 71 70 67 2f 2b  | nkFb/p5BW/6eQVv+nkFb/rZZh/7qpg/+ | 
| 1cc60 |  2f 72 34 33 2f 7a 38 4b 74 2f 38 2f 43 72 66 2f    6d 34 4e 59 64 35 75 44 57 56 51 41 41 41 41 41  | /r43/z8Kt/8/Crf/m4NYd5uDWVQAAAAA | 
| 1cc80 |  41 41 41 41 41 38 41 38 41 41 4f 41 48 41 41 44    41 41 77 41 41 77 45 4d 41 41 4f 41 44 41 41 44  | AAAAA8A8AAOAHAADAAwAAwEMAAOADAAD | 
| 1cca0 |  41 41 51 41 41 67 41 45 41 41 41 41 41 41 41 41    41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  | AAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAA | 
| 1ccc0 |  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41    41 41 41 41 41 41 41 4d 41 41 41 3d 3d 0d 0a 5b  | AAAAAAAAAAAAAAAAAAAAAAAMAAA==..[ | 
| 1cce0 |  6d 6f 62 69 6c 65 72 65 61 64 2d 75 72 6c 5d 3a    20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6d 6f 62  | mobileread-url]:.https://www.mob | 
| 1cd00 |  69 6c 65 72 65 61 64 2e 63 6f 6d 2f 66 6f 72 75    6d 73 2f 73 68 6f 77 74 68 72 65 61 64 2e 70 68  | ileread.com/forums/showthread.ph | 
| 1cd20 |  70 3f 74 3d 31 33 32 35 30 38 0d 0a 0d 0a 5b 63    68 61 6e 67 65 6c 6f 67 2d 69 6d 61 67 65 5d 3a  | p?t=132508....[changelog-image]: | 
| 1cd40 |  20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69    65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 48 69  | .https://img.shields.io/badge/Hi | 
| 1cd60 |  73 74 6f 72 79 2d 43 48 41 4e 47 45 4c 4f 47 2d    62 6c 75 65 2e 73 76 67 0d 0a 5b 63 68 61 6e 67  | story-CHANGELOG-blue.svg..[chang | 
| 1cd80 |  65 6c 6f 67 2d 75 72 6c 5d 3a 20 43 48 41 4e 47    45 4c 4f 47 2e 6d 64 0d 0a 0d 0a 5b 6c 69 63 65  | elog-url]:.CHANGELOG.md....[lice | 
| 1cda0 |  6e 73 65 2d 69 6d 61 67 65 5d 3a 20 68 74 74 70    73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e  | nse-image]:.https://img.shields. | 
| 1cdc0 |  69 6f 2f 62 61 64 67 65 2f 4c 69 63 65 6e 73 65    2d 47 50 4c 2d 79 65 6c 6c 6f 77 2e 73 76 67 0d  | io/badge/License-GPL-yellow.svg. | 
| 1cde0 |  0a 5b 6c 69 63 65 6e 73 65 2d 75 72 6c 5d 3a 20    2e 2e 2f 4c 49 43 45 4e 53 45 2e 6d 64 0d 0a 0d  | .[license-url]:.../LICENSE.md... | 
| 1ce00 |  0a 5b 63 61 6c 69 62 72 65 2d 69 6d 61 67 65 5d    3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68  | .[calibre-image]:.https://img.sh | 
| 1ce20 |  69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 63    61 6c 69 62 72 65 2d 32 2e 30 2e 30 2d 67 72 65  | ields.io/badge/calibre-2.0.0-gre | 
| 1ce40 |  65 6e 0d 0a 5b 63 61 6c 69 62 72 65 2d 75 72 6c    5d 3a 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 63  | en..[calibre-url]:.https://www.c | 
| 1ce60 |  61 6c 69 62 72 65 2d 65 62 6f 6f 6b 2e 63 6f 6d    2f 0d 0a 0d 0a 5b 73 74 61 74 75 73 2d 69 6d 61  | alibre-ebook.com/....[status-ima | 
| 1ce80 |  67 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67    2e 73 68 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67  | ge]:.https://img.shields.io/badg | 
| 1cea0 |  65 2f 53 74 61 74 75 73 2d 53 74 61 62 6c 65 2d    67 72 65 65 6e 50 4b 03 04 14 00 00 00 00 00 f5  | e/Status-Stable-greenPK......... | 
| 1cec0 |  68 7c 3e 00 00 00 00 00 00 00 00 00 00 00 00 23    00 00 00 70 6c 75 67 69 6e 2d 69 6d 70 6f 72 74  | h|>............#...plugin-import | 
| 1cee0 |  2d 6e 61 6d 65 2d 62 61 72 6e 65 73 5f 6e 6f 62    6c 65 2e 74 78 74 50 4b 01 02 14 00 14 00 00 00  | -name-barnes_noble.txtPK........ | 
| 1cf00 |  00 00 86 a0 ac 5a 3d 20 12 41 67 05 00 00 67 05    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z=..Ag...g................. | 
| 1cf20 |  00 00 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 64 65 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/de.moPK........ | 
| 1cf40 |  00 00 86 a0 ac 5a ef c8 59 08 19 06 00 00 19 06    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z..Y....................... | 
| 1cf60 |  97 05 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 65 73 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/es.moPK........ | 
| 1cf80 |  00 00 86 a0 ac 5a 45 90 fc 94 8b 05 00 00 8b 05    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....ZE......................... | 
| 1cfa0 |  e0 0b 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 66 69 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/fi.moPK........ | 
| 1cfc0 |  00 00 86 a0 ac 5a a4 b4 0f e4 4b 06 00 00 4b 06    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z....K...K................. | 
| 1cfe0 |  9b 11 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 66 72 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/fr.moPK........ | 
| 1d000 |  00 00 86 a0 ac 5a fa 03 c8 3b c2 05 00 00 c2 05    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z...;...................... | 
| 1d020 |  16 18 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 67 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/gl.moPK........ | 
| 1d040 |  00 00 87 a0 ac 5a 68 a2 95 1f f6 05 00 00 f6 05    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Zh......................... | 
| 1d060 |  08 1e 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 6a 61 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | ....translations/ja.moPK........ | 
| 1d080 |  00 00 87 a0 ac 5a c7 30 7a b3 77 05 00 00 77 05    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z.0z.w...w................. | 
| 1d0a0 |  2e 24 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 6e 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | .$..translations/nl.moPK........ | 
| 1d0c0 |  00 00 87 a0 ac 5a 61 3a 02 b5 60 06 00 00 60 06    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Za:..`...`................. | 
| 1d0e0 |  d5 29 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 70 6c 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | .)..translations/pl.moPK........ | 
| 1d100 |  00 00 87 a0 ac 5a 19 79 dd 7f 51 06 00 00 51 06    00 00 12 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z.y..Q...Q................. | 
| 1d120 |  65 30 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 70 74 2e 6d 6f 50 4b 01 02 14 00 14 00 00 00  | e0..translations/pt.moPK........ | 
| 1d140 |  00 00 87 a0 ac 5a b6 eb de 20 42 06 00 00 42 06    00 00 15 00 00 00 00 00 00 00 00 00 00 00 b6 81  | .....Z....B...B................. | 
| 1d160 |  e6 36 00 00 74 72 61 6e 73 6c 61 74 69 6f 6e 73    2f 70 74 5f 42 52 2e 6d 6f 50 4b 01 02 14 00 14  | .6..translations/pt_BR.moPK..... | 
| 1d180 |  00 00 00 00 00 e0 35 28 55 55 1a 5c 16 06 01 00    00 06 01 00 00 16 00 00 00 00 00 00 00 00 00 00  | ......5(UU.\.................... | 
| 1d1a0 |  00 b6 81 5b 3d 00 00 74 72 61 6e 73 6c 61 74 69    6f 6e 73 2f 52 45 41 44 4d 45 2e 6d 64 50 4b 01  | ...[=..translations/README.mdPK. | 
| 1d1c0 |  02 14 00 14 00 00 00 00 00 87 a0 ac 5a 19 b1 5d    0d fc 06 00 00 fc 06 00 00 12 00 00 00 00 00 00  | ............Z..]................ | 
| 1d1e0 |  00 00 00 00 00 b6 81 95 3e 00 00 74 72 61 6e 73    6c 61 74 69 6f 6e 73 2f 72 75 2e 6d 6f 50 4b 01  | ........>..translations/ru.moPK. | 
| 1d200 |  02 14 00 14 00 00 00 00 00 87 a0 ac 5a c8 30 37    e8 a2 09 00 00 a2 09 00 00 12 00 00 00 00 00 00  | ............Z.07................ | 
| 1d220 |  00 00 00 00 00 b6 81 c1 45 00 00 74 72 61 6e 73    6c 61 74 69 6f 6e 73 2f 74 61 2e 6d 6f 50 4b 01  | ........E..translations/ta.moPK. | 
| 1d240 |  02 14 00 14 00 00 00 00 00 87 a0 ac 5a 45 1b ed    ed 98 05 00 00 98 05 00 00 12 00 00 00 00 00 00  | ............ZE.................. | 
| 1d260 |  00 00 00 00 00 b6 81 93 4f 00 00 74 72 61 6e 73    6c 61 74 69 6f 6e 73 2f 74 72 2e 6d 6f 50 4b 01  | ........O..translations/tr.moPK. | 
| 1d280 |  02 14 00 14 00 00 00 00 00 87 a0 ac 5a a5 fd 37    25 39 08 00 00 39 08 00 00 12 00 00 00 00 00 00  | ............Z..7%9...9.......... | 
| 1d2a0 |  00 00 00 00 00 b6 81 5b 55 00 00 74 72 61 6e 73    6c 61 74 69 6f 6e 73 2f 75 6b 2e 6d 6f 50 4b 01  | .......[U..translations/uk.moPK. | 
| 1d2c0 |  02 14 00 14 00 00 00 00 00 87 a0 ac 5a 60 34 7a    d9 55 05 00 00 55 05 00 00 15 00 00 00 00 00 00  | ............Z`4z.U...U.......... | 
| 1d2e0 |  00 00 00 00 00 b6 81 c4 5d 00 00 74 72 61 6e 73    6c 61 74 69 6f 6e 73 2f 7a 68 5f 43 4e 2e 6d 6f  | ........]..translations/zh_CN.mo | 
| 1d300 |  50 4b 01 02 14 00 14 00 00 00 00 00 0e 22 35 55    9f 9e 33 d9 1f 05 00 00 1f 05 00 00 17 00 00 00  | PK..........."5U..3............. | 
| 1d320 |  00 00 00 00 00 00 00 00 b6 81 4c 63 00 00 63 6f    6d 6d 6f 6e 5f 63 6f 6d 70 61 74 69 62 69 6c 69  | ..........Lc..common_compatibili | 
| 1d340 |  74 79 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00    00 87 a0 ac 5a 55 6a 15 1b 4f 2e 00 00 4f 2e 00  | ty.pyPK.............ZUj..O...O.. | 
| 1d360 |  00 11 00 00 00 00 00 00 00 00 00 00 00 b6 81 a0    68 00 00 63 6f 6d 6d 6f 6e 5f 64 69 61 6c 6f 67  | ................h..common_dialog | 
| 1d380 |  73 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00    97 a3 33 55 39 8a c0 f7 60 11 00 00 60 11 00 00  | s.pyPK............3U9...`...`... | 
| 1d3a0 |  0f 00 00 00 00 00 00 00 00 00 00 00 b6 81 1e 97    00 00 63 6f 6d 6d 6f 6e 5f 69 63 6f 6e 73 2e 70  | ..................common_icons.p | 
| 1d3c0 |  79 50 4b 01 02 14 00 14 00 00 00 00 00 87 a0 ac    5a 3d 30 d6 d8 2d 16 00 00 2d 16 00 00 0f 00 00  | yPK.............Z=0..-...-...... | 
| 1d3e0 |  00 00 00 00 00 00 00 00 00 b6 81 ab a8 00 00 63    6f 6d 6d 6f 6e 5f 6d 65 6e 75 73 2e 70 79 50 4b  | ...............common_menus.pyPK | 
| 1d400 |  01 02 14 00 14 00 00 00 00 00 87 a0 ac 5a d5 66    bd bc 73 30 00 00 73 30 00 00 11 00 00 00 00 00  | .............Z.f..s0..s0........ | 
| 1d420 |  00 00 00 00 00 00 b6 81 05 bf 00 00 63 6f 6d 6d    6f 6e 5f 77 69 64 67 65 74 73 2e 70 79 50 4b 01  | ............common_widgets.pyPK. | 
| 1d440 |  02 14 00 14 00 00 00 00 00 54 7e 82 56 4e 2b 5a    ec 0d 0d 00 00 0d 0d 00 00 09 00 00 00 00 00 00  | .........T~.VN+Z................ | 
| 1d460 |  00 00 00 00 00 b6 81 a7 ef 00 00 63 6f 6e 66 69    67 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00  | ...........config.pyPK.......... | 
| 1d480 |  b9 89 ab 58 87 b1 dd 7e 85 60 00 00 85 60 00 00    09 00 00 00 00 00 00 00 00 00 00 00 b6 81 db fc  | ...X...~.`...`.................. | 
| 1d4a0 |  00 00 77 6f 72 6b 65 72 2e 70 79 50 4b 01 02 14    00 14 00 00 00 00 00 42 a0 ac 5a c1 ed 80 20 f0  | ..worker.pyPK..........B..Z..... | 
| 1d4c0 |  4d 00 00 f0 4d 00 00 0b 00 00 00 00 00 00 00 00    00 00 00 b6 81 87 5d 01 00 5f 5f 69 6e 69 74 5f  | M...M.................]..__init_ | 
| 1d4e0 |  5f 2e 70 79 50 4b 01 02 14 00 14 00 00 00 00 00    61 a0 ac 5a 62 b2 8b 1f de 15 00 00 de 15 00 00  | _.pyPK..........a..Zb........... | 
| 1d500 |  0c 00 00 00 00 00 00 00 00 00 00 00 b6 81 a0 ab    01 00 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 50 4b  | ..................CHANGELOG.mdPK | 
| 1d520 |  01 02 14 00 14 00 00 00 00 00 ae 08 49 55 f6 da    03 20 e6 0c 00 00 e6 0c 00 00 09 00 00 00 00 00  | ............IU.................. | 
| 1d540 |  00 00 00 00 00 00 b6 81 a8 c1 01 00 52 45 41 44    4d 45 2e 6d 64 50 4b 01 02 14 00 14 00 00 00 00  | ............README.mdPK......... | 
| 1d560 |  00 f5 68 7c 3e 00 00 00 00 00 00 00 00 00 00 00    00 23 00 00 00 00 00 00 00 00 00 00 00 b6 81 b5  | ..h|>............#.............. | 
| 1d580 |  ce 01 00 70 6c 75 67 69 6e 2d 69 6d 70 6f 72 74    2d 6e 61 6d 65 2d 62 61 72 6e 65 73 5f 6e 6f 62  | ...plugin-import-name-barnes_nob | 
| 1d5a0 |  6c 65 2e 74 78 74 50 4b 05 06 00 00 00 00 1b 00    1b 00 b0 06 00 00 f6 ce 01 00 00 00  | le.txtPK.................... |