| 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.................... |